一種基于層次標識路由的網絡化關系數據查詢方法
【技術領域】
[0001] 本發明涉及關系數據庫、自組織網絡環境、命名數據網絡領域,具體地說涉及一種 基于層次標識路由的網絡化關系數據查詢方法。
【背景技術】
[0002] 自組織P2P、無線傳感網絡WSN、移動互聯網等都存在動態分布數據的復雜查詢和 獲取的困難,因為既要考慮在動態分布環境下查詢請求的正確、有效路由問題,還要考慮分 布式結果的動態聚合和可靠返回問題。其中動態路由會影響查詢結果的查全率、查準率以 及數據傳輸效率。此外,查詢結果的動態聚合和可靠返回會影響查詢結果的可用性、可靠 性。而動態分布環境下查詢系統所支持的形式對動態分布數據的個性化獲取能力具有重要 影響。為便于更好的開放查詢和共享,對動態分布的數據對象進行結構化或半結構化描述, 建立規范的元數據格式及結構化或半結構化數據庫具有重要的作用。
[0003] 為了有效獲取互聯網絡環境中的動態分布內容塊,CCN/NDN網絡(即 Content-Centric Network/Named Data Networking)提出了一種基于層次命名標識獲取 動態分布內容塊的路由方法(我們稱之為層次標識路由)。該路由方法中路由的名字不僅 標識了內容所屬層次及名字,更重要的是代替IP地址成為路由處理中的基本單元。其核 心的路由實現機制是根據來自所有數據源的層次化名字在網絡中建立形式為(層次化前 綴-接口)的轉發樹。因此,該路由機制與機器位置(包括IP地址)無關,并能實現用戶 請求的異步組播,而且其數據傳輸更為有效,因為其路由通告會優先選擇最快的路徑。
[0004] 然而,面對大規模、動態和分布的關系數據或其它結構化數據或半結構化數據,復 雜查詢應該適應路由變化和數據移動,并且各種形式的查詢應能以統一的方式智能的路 由。而且構造查詢語句時系統應不需要提前知道數據的分布和變化情況;為減少數據源的 計算負擔和提高查詢效率,當查詢通過通信網絡向相關數據源轉發時,該查詢應不需要查 看數據的分布特征而進行查詢分解,即大規模數據的分布和動態變化情況能夠對查詢用戶 和上層應用透明。當前實現了單播或組播模式的查詢方法主要基于地址映射方式,當網絡 拓撲或數據的存儲地址變化時很難及時獲取大規模、分布的數據并且達到較高的數據傳輸 效率。
【發明內容】
[0005] 針對現有技術存在的上述技術問題,本發明的目的是提供一種當網絡拓撲或數據 的存儲地址變化時能及時獲取大規模、分布的數據并且具有較高的數據傳輸效率的基于層 次標識路由的網絡化關系數據查詢方法。
[0006] 為實現上述目的,本發明的一種基于層次標識路由的網絡化關系數據查詢方法, 包括以下步驟:
[0007] (1)在每個本地關系數據庫中識別數據實體之間的包含關系,構造各數據實體的 層次化命名,并將每一個層次化的命名或者前綴通告到命名數據網絡(簡稱為NDN網絡) 的各路由節點中的轉發信息表(簡稱為FIB表)中;
[0008] (2)針對每一查詢請求根據用戶查詢的數據類別和其它約束條件參照轉發信息表 中的層次化命名將其轉換為由層次化路由因子和查詢約束因子組成的查詢分組(簡稱為 NDNQL),發送到與客戶端連接的一個路由節點中;
[0009] (3)每個路由節點對收到的每個查詢分組,使用命名數據網絡的路由匹配算法將 查詢分組中的層次化路由因子與轉發信息表中的每一項進行匹配和轉發,在命名數據網絡 的請求暫存表(簡稱為PIT表)中登記從每個接口轉發出去的查詢分組的信息;
[0010] (4)當查詢分組的信息到達相關的數據庫節點后,將查詢分組的信息轉換為支持 本地關系數據庫的SQL查詢語句,進行本地查詢;
[0011] (5)本地查詢結果(簡稱為LRS)加上原查詢請求的層次化路由因子封裝成數據分 組(簡稱為NDNRS),然后將其回送至收到對應查詢分組的接口上;
[0012] (6)各路由節點對收到的數據分組進行緩存、聚合和原路返回(用戶獲得結果簡 稱為RS)。
[0013] 所述查詢分組包括以下項目:層次化命名或前綴,查詢約束條件,返回形式,其它 條件,安全參數,不重數,其中層次化命名或前綴、返回形式可以多于一個。
[0014] 所述數據分組包括以下項目:層次化命名或前綴,返回結果,安全參數和時間戳, 其中返回結果可以一維、二維數組或鏈表的形式組織。
[0015] 所述步驟(4)中的SQL查詢語句解構為由層次化路由因子和查詢約束因子組成的 查詢分組。
[0016] 所述步驟(4)中的層次化路由因子與轉發信息表中的每一項進行的匹配為最長 前綴匹配,將查詢分組經過多次路由轉發,送到相關本地數據庫中。
[0017] 本發明能夠解決由NDN網絡連接的所有關系數據庫的SQL查詢問題,使用時采用 統一格式,使用一個查詢分組可以路由到所有相關數據庫節點,各數據庫節點可以很容易 將該查詢分組轉換為支持本地查詢的SQL語句。
[0018] 本發明一方面可以解決在NDN網絡環境下進行關系數據查詢時,用戶的SQL查詢 請求在動態分布網絡環境中的高效路由問題及其查詢結果的返回和聚合問題;另一方面, 只需要抽取各數據實體的層次化分類和命名信息并通告到路由節點,就可以很容易使各本 地數據庫發布共享內容,用戶只要根據發布內容的多級分類(或者加上命名信息)即可找 到發布的內容。
[0019] 本發明能在動態分布的網絡環境下(如非結構化P2P網絡、WSN和其它自組織網 絡)提供比現有查詢方法如概率查詢方法、基于標識-地址映射的查詢方法、基于語義-地 址映射的查詢方法等更好的查詢召回率和精確度。本發明的查詢對象不限于動態分布網絡 中的關系數據、結構化數據或半結構化數據,還可以是所有能對其進行層次化分類和命名 的數字化對象。
【附圖說明】
[0020] 圖1為本發明中查詢分組的數據結構圖;
[0021] 圖2為本發明中數據分組的數據結構圖;
[0022] 圖3為本發明中基于NDN網絡的SQL查詢系統圖;
[0023] 圖4為本發明中從關系數據庫中抽取層次化命名信息的流程圖;
[0024] 圖5為本發明中單個概念(表)的SQL查詢語句到查詢分組的映射實例圖;
[0025] 圖6為本發明中兩個概念(表)的有關連接(join)查詢的SQL語句到查詢分組 的映射實例圖;
[0026] 圖7為本發明中兩個概念(表)的有關聯合(union)查詢的SQL語句到查詢分組 的映射實例圖;
[0027] 圖8