[發明專利]基于自身連接的數據庫查詢方法在審
| 申請號: | 201310580481.3 | 申請日: | 2013-11-19 |
| 公開(公告)號: | CN103593448A | 公開(公告)日: | 2014-02-19 |
| 發明(設計)人: | 不公告發明人 | 申請(專利權)人: | 湖南人文科技學院 |
| 主分類號: | G06F17/30 | 分類號: | G06F17/30 |
| 代理公司: | 暫無信息 | 代理人: | 暫無信息 |
| 地址: | 417000 湖南省*** | 國省代碼: | 湖南;43 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 基于 自身 連接 數據庫 查詢 方法 | ||
1.一種基于自身連接的數據庫查詢方法,其特征在于:具體包括:
(1)遞歸循環檢測查詢,所述遞歸循環檢測算法的基本思想如下:錨定成員和遞歸成員中的對應列具有相同的數據類型、長度和精度,生成?path?值的表達式在兩個成員中都被轉換為VARCHAR(50);在遞歸成員中,調用該結果列路徑,使用?CASE表達式和LIKE?謂詞檢查當前子節點是否已經出現在父節點的路徑中;如果答案是肯定的,則意味著找到了循環,則在名為cycle的結果列中返回1,否則返回0;并向遞歸成員中添加一個篩選器,確保只返回未檢測到循環的父節點的下屬;然后,向外部查詢中添加一個篩選器,以便只返回找到循環的子節點(cycle=1),得到遞歸路徑;實現遞歸常見表達式的步驟為:終止檢查在遞歸常見表表達式中是隱式的,沒有從上一個調用中返回任何行時,遞歸停止;
(2)非一致性檢測查詢:所述非一致性檢測查詢的遞歸算法的基本思想如下:
(2a)cand1類似于初始查詢,加入了DISTINCT關鍵字和鍵屬性:基于cand1結果集,通過對鍵分組得到存在于多個分組屬性的鍵值,然后cand1結果集過濾Filter1結果集中的這些鍵值,得到cand2結果集;再基于cand2結果集,考慮再滿足初始查詢中鍵值及其分組屬性中,過濾相反條件和條件屬性出現空值的元組,得到普通的一致性;
(2b)然后考慮剔除可能的非一致性循環元組:為了檢測循環,為cand3結果集中的每個節點構建通向該節點的所有節點的枚舉路徑;在遞歸成員中,調用該結果列路徑,使用?CASE?表達式和?LIKE?謂詞檢查當前鍵值是否已經出現在父節點的路徑中;如果答案是肯定的,則意味著找到了循環,則在名為cycle的結果列中返回1,否則返回0;并向遞歸成員中添加一個篩選器,確保只返回未檢測到循環的父節點的下屬;
(2c)最后,向外部查詢中添加一個篩選器,返回存在于cand3結果集中且不存在于CTE中的節點。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于湖南人文科技學院,未經湖南人文科技學院許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201310580481.3/1.html,轉載請聲明來源鉆瓜專利網。





