專利名稱:用于在一個(gè)關(guān)系數(shù)據(jù)庫中組織分層數(shù)據(jù)的方法和設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明主要涉及數(shù)據(jù)組織系統(tǒng)、部件和方法。具體來說,本發(fā)明是關(guān)于用來在 一個(gè)關(guān)系數(shù)據(jù)庫中組織層次數(shù)據(jù)的數(shù)據(jù)組織系統(tǒng)、部件和方法。
背景技術(shù):
在數(shù)據(jù)庫管理和構(gòu)建方面,如何在層次數(shù)據(jù)庫和關(guān)系數(shù)據(jù)庫二者之間作出選擇 構(gòu)成了一個(gè)基礎(chǔ)性的問題。層次數(shù)據(jù)庫能夠很好地組織數(shù)據(jù),其中數(shù)據(jù)庫中的每個(gè)數(shù)據(jù) 元與其它數(shù)據(jù)元之間被設(shè)為一種嚴(yán)格的層次關(guān)系。然而,層次數(shù)據(jù)庫具有一些較大的缺 點(diǎn)。最大的缺點(diǎn)是,缺少方便地處理數(shù)據(jù)庫中的數(shù)據(jù)元之間的各種非層次式關(guān)系的能 力,同時(shí)在處理數(shù)據(jù)元之間的復(fù)雜關(guān)系時(shí)不能很好地工作。作為一種替代,關(guān)系數(shù)據(jù)庫產(chǎn)品在處理信息和數(shù)據(jù)之間的復(fù)雜關(guān)系方面相對(duì)較 好。關(guān)系數(shù)據(jù)庫為軟件開發(fā)者和數(shù)據(jù)庫管理者提供了很大的幫助,包括結(jié)構(gòu)化查詢語言 (SQL)和適于關(guān)鍵任務(wù)應(yīng)用的事務(wù)處理。但是,關(guān)系數(shù)據(jù)庫不適宜于存儲(chǔ)分層數(shù)據(jù)。因 此,數(shù)據(jù)庫管理者和開發(fā)人員經(jīng)常面對(duì)如何在關(guān)系數(shù)據(jù)庫和層次數(shù)據(jù)庫之間作出選擇的 問題,特別是考慮到許多類型的數(shù)據(jù)需要分層式管理和關(guān)聯(lián)式管理。之前的一些方法和設(shè)備能夠協(xié)同開發(fā)層次數(shù)據(jù)管理和關(guān)系數(shù)據(jù)管理。然而,這 些方法和設(shè)備具有越來越強(qiáng)的復(fù)雜性、浩大的程序設(shè)計(jì)、不斷增長(zhǎng)的計(jì)算管理費(fèi)用,并 缺少擴(kuò)展的靈活性。因此,有必要對(duì)在關(guān)系數(shù)據(jù)中組織分層數(shù)據(jù)的方法進(jìn)行改進(jìn)。
發(fā)明內(nèi)容
從以上至少可以看出,最好能夠提供一種在關(guān)系數(shù)據(jù)庫中組織分層數(shù)據(jù)的方 法,其中的數(shù)據(jù)項(xiàng)存儲(chǔ)在一個(gè)關(guān)系數(shù)據(jù)庫中,并與在數(shù)據(jù)項(xiàng)之間定義的層次式關(guān)系的信 息相關(guān)聯(lián)。更理想的是,這樣的信息允許在層結(jié)構(gòu)中靈活地?cái)U(kuò)展與改變,并能對(duì)數(shù)據(jù)項(xiàng) 和層次關(guān)系進(jìn)行有效的恢復(fù)和操作。在很大程度上,本發(fā)明的某些實(shí)施例能夠滿足以上需求。根據(jù)本發(fā)明的一個(gè)實(shí) 施例,一種在關(guān)系數(shù)據(jù)中組織分層數(shù)據(jù)的方法包括在一個(gè)存儲(chǔ)器上存儲(chǔ)該關(guān)系數(shù)據(jù)庫的 步驟,其中該數(shù)據(jù)庫含有多個(gè)相互之間具有層次關(guān)系的數(shù)據(jù)項(xiàng),并且該存儲(chǔ)器與一個(gè)控 制設(shè)備通信。還進(jìn)一步包括為每一個(gè)數(shù)據(jù)項(xiàng)產(chǎn)生唯一標(biāo)識(shí)符的步驟,該唯一標(biāo)識(shí)符定義 了該數(shù)據(jù)項(xiàng)與另一個(gè)數(shù)據(jù)項(xiàng)之間的層次關(guān)系。該方法還包括為每一個(gè)數(shù)據(jù)項(xiàng)分配一個(gè)指 示該數(shù)據(jù)項(xiàng)與另一個(gè)數(shù)據(jù)項(xiàng)之間的層次關(guān)系的族值,和為該數(shù)據(jù)項(xiàng)分配一個(gè)指示在一個(gè) 層結(jié)構(gòu)中的層次關(guān)系的層值。根據(jù)本發(fā)明的另一個(gè)實(shí)施例,進(jìn)一步提供了一種用于在關(guān)系數(shù)據(jù)庫中組織分層 數(shù)據(jù)的設(shè)備,該設(shè)備具有一個(gè)存儲(chǔ)器,其中存儲(chǔ)一個(gè)分層數(shù)據(jù)的數(shù)據(jù)庫和用來組織該分 層數(shù)據(jù)的指令,該數(shù)據(jù)庫至少包括一個(gè)存儲(chǔ)多個(gè)數(shù)據(jù)項(xiàng)和分層數(shù)據(jù)的表格。該表格包括 多個(gè)列一個(gè)存儲(chǔ)唯一標(biāo)識(shí)符的列,一個(gè)存儲(chǔ)族值的列,一個(gè)存儲(chǔ)層值的列,和一個(gè)存儲(chǔ)數(shù)據(jù)項(xiàng)的列。該表格還包括存儲(chǔ)該唯一標(biāo)識(shí)符、族值、層值和數(shù)據(jù)項(xiàng)的行。該設(shè)備進(jìn) 一步可包括一個(gè)與該存儲(chǔ)器通信的控制設(shè)備,并且與該數(shù)據(jù)庫相互作用以執(zhí)行該指令或 者請(qǐng)求執(zhí)行該指令。根據(jù)本發(fā)明的另一個(gè)實(shí)施例,提供了一種用于在一個(gè)關(guān)系數(shù)據(jù)庫中組織分層數(shù) 據(jù)的系統(tǒng),該系統(tǒng)包括一個(gè)以相互關(guān)聯(lián)的方式存儲(chǔ)多個(gè)數(shù)據(jù)項(xiàng)的設(shè)備,和一個(gè)以分層的 方式組織該數(shù)據(jù)項(xiàng)的設(shè)備。還包括一個(gè)為每個(gè)數(shù)據(jù)項(xiàng)產(chǎn)生一個(gè)唯一標(biāo)識(shí)符的設(shè)備,其中 該唯一標(biāo)識(shí)符定義了該數(shù)據(jù)項(xiàng)與至少一個(gè)其它數(shù)據(jù)項(xiàng)的之間的層次關(guān)系。該系統(tǒng)還可包 括一個(gè)為每個(gè)數(shù)據(jù)項(xiàng)分配一個(gè)族值和一個(gè)層值的設(shè)備,其中,該族值指示該數(shù)據(jù)項(xiàng)與至 少另一個(gè)數(shù)據(jù)項(xiàng)之間的層次關(guān)系,該層值指示該數(shù)據(jù)項(xiàng)在至少一個(gè)層級(jí)中的層次關(guān)系。 其它更多的設(shè)備可包括一個(gè)存儲(chǔ)用來組織分層數(shù)據(jù)的方法的設(shè)備,和一個(gè)請(qǐng)求執(zhí)行指令 的設(shè)備。以上已經(jīng)對(duì)本發(fā)明的一些實(shí)施方式進(jìn)行了比較粗略性的概述,以能夠更好地理 解關(guān)于本發(fā)明的詳細(xì)描述,同時(shí)將會(huì)更好地理解本發(fā)明對(duì)技術(shù)領(lǐng)域的貢獻(xiàn)。當(dāng)然,本發(fā) 明還有其它實(shí)施例將在下文描述,它們構(gòu)成了在此所附的權(quán)利要求的主題。在這方面,在詳細(xì)解釋至少一個(gè)實(shí)施例之前,應(yīng)該了解到本發(fā)明的應(yīng)用不局限 于在如下文的描述或者附圖中闡明的詳細(xì)構(gòu)造和部件的安排布局。本發(fā)明還具有除了那 些描述的實(shí)施例以外的實(shí)施例,而且能夠以多種方式來實(shí)施和執(zhí)行。同時(shí),應(yīng)該明白此 處采用的措辭和術(shù)語,連同概念,都是為了描述的需要,并不能被認(rèn)為是一種限制。同樣地,所屬技術(shù)領(lǐng)域的技術(shù)人員會(huì)明白,本發(fā)明所基于的概念可以很容易地 被用作設(shè)計(jì)為了達(dá)到本發(fā)明的一些目的的其它結(jié)構(gòu)、方法和系統(tǒng)的基礎(chǔ)。因此,非常重 要的是,這些權(quán)利要求應(yīng)當(dāng)視為覆蓋了包括等同構(gòu)造的范圍,因?yàn)樗鼈儾幻撾x本發(fā)明的 精神和范圍。
圖1是根據(jù)本發(fā)明的一個(gè)實(shí)施例的一個(gè)用于在一個(gè)關(guān)系數(shù)據(jù)庫中組織分層數(shù)據(jù) 的系統(tǒng)的原理圖。圖2A是在根據(jù)本發(fā)明的一個(gè)實(shí)施例的用于組織分層數(shù)據(jù)的系統(tǒng)的一個(gè)關(guān)系數(shù)據(jù) 庫的一個(gè)表格中組織數(shù)據(jù)項(xiàng)的原理圖。圖2B是圖2A的數(shù)據(jù)的樹結(jié)構(gòu)圖表。圖3是一個(gè)根據(jù)本發(fā)明的一個(gè)實(shí)施例的用來操作和組織用于產(chǎn)生唯一標(biāo)識(shí)符的 數(shù)據(jù)庫的指令的流程圖。圖4是根據(jù)本發(fā)明的一個(gè)實(shí)施例的用來操作和組織用于取得子層次的數(shù)據(jù)庫的 指令的流程圖。圖5是根據(jù)本發(fā)明的一個(gè)實(shí)施例的用來操作和組織用于刪除子層次的數(shù)據(jù)庫的 指令的流程圖。圖6是根據(jù)本發(fā)明的一個(gè)實(shí)施例的用來操作和組織為了實(shí)現(xiàn)幾何級(jí)數(shù)而為數(shù)據(jù) 項(xiàng)再分配新的唯一標(biāo)識(shí)符的數(shù)據(jù)庫的指令的流程圖。
具體實(shí)施例方式本發(fā)明的方法和系統(tǒng)通過收斂級(jí)數(shù)的運(yùn)用來實(shí)現(xiàn)在關(guān)系數(shù)據(jù)庫中組織分層數(shù) 據(jù),提供一個(gè)存儲(chǔ)器存儲(chǔ)數(shù)據(jù)庫,一組指令來操作和組織數(shù)據(jù)庫,以及一個(gè)控制設(shè)備與 數(shù)據(jù)庫相互作用。存儲(chǔ)器能夠?yàn)閿?shù)據(jù)庫提供存儲(chǔ)功能,包括數(shù)據(jù)庫的結(jié)構(gòu)元素和組織元素,以及 用來填充數(shù)據(jù)庫的數(shù)據(jù)項(xiàng)。其它的實(shí)施方式可能具有為操作和組織數(shù)據(jù)庫的指令提供存 儲(chǔ)功能的存儲(chǔ)器。例如,存儲(chǔ)器,可能以一個(gè)獨(dú)立的實(shí)體存在,或者作為數(shù)據(jù)庫服務(wù)器 的一部分,或者作為控制設(shè)備的一部分。除了存儲(chǔ)器,該方法和系統(tǒng)還提供用來操作和組織數(shù)據(jù)的一組指令。不論存儲(chǔ) 器是否與控制設(shè)備相分離,這些指令可都存儲(chǔ)在存儲(chǔ)器上。或者,這些指令也可以存儲(chǔ) 在一個(gè)作為控制設(shè)備的一部分的第二存儲(chǔ)器上。這些指令可提供一系列的操作和組織數(shù) 據(jù)庫的功能。這些功能包括,例如,為每個(gè)數(shù)據(jù)項(xiàng)產(chǎn)生一個(gè)唯一標(biāo)識(shí)符,為每個(gè)數(shù)據(jù)項(xiàng) 分配一個(gè)族值,為每個(gè)數(shù)據(jù)項(xiàng)分配一個(gè)層值,為移動(dòng)后的數(shù)據(jù)再分配唯一標(biāo)識(shí)符,為數(shù) 據(jù)再分配唯一標(biāo)識(shí)符以在一個(gè)層級(jí)上達(dá)到幾何級(jí)數(shù),取得任何數(shù)據(jù)輸入的一個(gè)子層級(jí), 刪除任何數(shù)據(jù)項(xiàng)的子層級(jí),創(chuàng)建一個(gè)組織表,向一個(gè)數(shù)據(jù)文件提取數(shù)據(jù)項(xiàng)。該方法和系統(tǒng)進(jìn)一步提供一個(gè)與數(shù)據(jù)庫相互作用的控制設(shè)備。這樣的設(shè)備可與 存儲(chǔ)器通訊。該控制設(shè)備可用來請(qǐng)求執(zhí)行用來操作和組織數(shù)據(jù)庫的指令,例如,當(dāng)這些 指令存儲(chǔ)在存儲(chǔ)器上,例如,作為數(shù)據(jù)庫服務(wù)器的一部分。在另一個(gè)實(shí)施方式中,控制 設(shè)備用來執(zhí)行指令,例如,當(dāng)這些指令存儲(chǔ)在控制設(shè)備的一個(gè)第二存儲(chǔ)器上,而且包含 數(shù)據(jù)庫的這個(gè)存儲(chǔ)器與控制設(shè)備是彼此分離的,或者當(dāng)這些指令和數(shù)據(jù)庫存儲(chǔ)在作為控 制設(shè)備的一部分的存儲(chǔ)器上時(shí)?,F(xiàn)在將參照附圖來描述本發(fā)明,其中的相同的參考數(shù)字指示相同的部件。圖1 是一個(gè)根據(jù)本發(fā)明的在一個(gè)關(guān)系數(shù)據(jù)庫(組織系統(tǒng))10中組織分層數(shù)據(jù)的系統(tǒng)的原理圖。 組織系統(tǒng)10包括一個(gè)存儲(chǔ)器20。存儲(chǔ)器20進(jìn)一步包括一個(gè)包含多個(gè)數(shù)據(jù)項(xiàng)24的關(guān)系數(shù) 據(jù)庫22。數(shù)據(jù)項(xiàng)24相互之間具有分層式關(guān)系。在一些實(shí)施例中,包含數(shù)據(jù)庫22的存儲(chǔ) 器20可作為一個(gè)數(shù)據(jù)庫服務(wù)器的一部分。在另一個(gè)實(shí)施方式中,存儲(chǔ)器20可還包含用于操作和組織數(shù)據(jù)庫28的指令。指 令28將在下文詳細(xì)討論。該組織系統(tǒng)可包括一個(gè)控制設(shè)備30??刂圃O(shè)備30包括一個(gè)輸入設(shè)備32,一個(gè) 第二存儲(chǔ)器34,一個(gè)通訊設(shè)備36,一個(gè)處理器38,以及一個(gè)顯示設(shè)備40,以上所有部 件都可通過一個(gè)數(shù)據(jù)傳輸器相互連接??刂圃O(shè)備30可以是一臺(tái)普通計(jì)算機(jī),例如一臺(tái) 個(gè)人電腦(PC),一個(gè)UNIX工作站,一個(gè)服務(wù)器,一臺(tái)大型計(jì)算機(jī),一個(gè)個(gè)人數(shù)字助理 (PDA), 一個(gè)便攜式電話,一個(gè)智能手機(jī)或者以上這些設(shè)備的組合?;蛘?,控制設(shè)備30 作為一個(gè)特殊計(jì)算裝置,例如一個(gè)車輛診斷工具。剩下的部件包括程序代碼,例如源程 序代碼,目標(biāo)程序代碼或者可執(zhí)行代碼,存儲(chǔ)于一個(gè)計(jì)算機(jī)可讀的介質(zhì)上,能夠下載至 存儲(chǔ)器34并且能夠被處理器38處理,以實(shí)現(xiàn)組織系統(tǒng)10的理想功能。在不同的實(shí)施例中,控制設(shè)備30和存儲(chǔ)器20可以連接至一個(gè)通信網(wǎng)絡(luò)50,其中 可包括能夠連接基于計(jì)算機(jī)系統(tǒng)的設(shè)備和系統(tǒng)的任何組合,例如因特網(wǎng),企業(yè)內(nèi)部互聯(lián) 網(wǎng)那個(gè)或者外部網(wǎng),一個(gè)個(gè)人網(wǎng)絡(luò),一個(gè)公共網(wǎng)絡(luò),一個(gè)基于以太網(wǎng)的系統(tǒng),一個(gè)令牌
7網(wǎng),一個(gè)增值網(wǎng)絡(luò),一個(gè)基于電話的網(wǎng)絡(luò),包括,例如,Tl或者El設(shè)備,一個(gè)異步傳輸模 式網(wǎng)絡(luò),一個(gè)有線系統(tǒng),一個(gè)無線系統(tǒng),一個(gè)光纖系統(tǒng),一個(gè)任意數(shù)量的分布式處理網(wǎng)絡(luò)或 系統(tǒng)的組合或者類似的系統(tǒng),通信網(wǎng)絡(luò)50允許控制設(shè)備30和存儲(chǔ)器20之間進(jìn)行通信??刂圃O(shè)備30可通過通信設(shè)備36連接至通信網(wǎng)絡(luò)50,在不同的實(shí)施例中可以合 并任何設(shè)備和相關(guān)的軟件或固件的結(jié)合-以配置連接基于處理器的系統(tǒng)。這樣的通信設(shè) 備36可以包括調(diào)制解調(diào)器、網(wǎng)卡、串行總線、并行總線、LAN或者WAN接口、有線、 無線或光纖接口等等。這樣的設(shè)計(jì)連最好需要或者必須有相關(guān)的傳輸協(xié)議。另外,組織系統(tǒng)10的一個(gè)實(shí)施例能夠通過顯示裝置40與用戶交流信息,同時(shí) 需要用戶通過輸入設(shè)備32經(jīng)由一個(gè)交互的、帶有菜單的、可視的基于顯示的用戶界面或 者一個(gè)圖形用戶界面輸入(GUI)輸入信息。該用戶界面可在例如一個(gè)帶有鼠標(biāo)和鍵盤的 個(gè)人電腦(PC)上執(zhí)行,通過直接操作GUI用戶可交互輸入信息。直接操作可包括利用 一個(gè)定點(diǎn)設(shè)備,例如一個(gè)鼠標(biāo)或者尖筆,以從多個(gè)選項(xiàng)中選擇,包括可選菜單、下拉式 菜單、標(biāo)簽、插塞、復(fù)選框、文本框等等。不過,本發(fā)明的不同的實(shí)施方式可加入任何 數(shù)量的額外的用戶界面方案來替代該界面方案,用或者不用鼠標(biāo)、按鈕或者鍵,包括例 如,一個(gè)軌跡球、一個(gè)觸摸屏或者一個(gè)聲控系統(tǒng)。另外的實(shí)施例中包括用于操作和組織位于控制設(shè)備30的第二存儲(chǔ)器34中的數(shù)據(jù) 庫28,而關(guān)系數(shù)據(jù)庫22位于存儲(chǔ)器20中。指令28也可保存在存儲(chǔ)器20中而關(guān)系數(shù)據(jù) 庫22可保存在第二存儲(chǔ)器34中。也可以認(rèn)為存儲(chǔ)器20作為控制設(shè)備30的一部分。更 進(jìn)一步地,數(shù)據(jù)庫服務(wù)器可作為控制設(shè)備30的一部分而存在。參考圖2A,關(guān)系數(shù)據(jù)庫22至少在一個(gè)表格60中組織數(shù)據(jù)項(xiàng)24。表格60包含 一個(gè)與每個(gè)數(shù)據(jù)項(xiàng)24對(duì)應(yīng)的行62。在本發(fā)明的一個(gè)實(shí)施例中,表格60進(jìn)一步包括一個(gè) 唯一標(biāo)識(shí)符列64,至少一個(gè)數(shù)據(jù)項(xiàng)列66,至少一個(gè)層列68和至少一個(gè)族列70。該至少一個(gè)唯一標(biāo)識(shí)符列64包括一個(gè)用于每個(gè)數(shù)據(jù)項(xiàng)24的唯一標(biāo)識(shí)符72。在 本發(fā)明的一個(gè)實(shí)施例中,唯一標(biāo)識(shí)符72是一個(gè)實(shí)數(shù)。進(jìn)一步地,唯一標(biāo)識(shí)符72可為一 個(gè)浮點(diǎn)型數(shù)據(jù)。該唯一標(biāo)識(shí)符72通過一種特定的標(biāo)識(shí)方法被分配給每一個(gè)數(shù)據(jù)項(xiàng),該方 法通過一個(gè)收斂級(jí)數(shù)計(jì)算出每一個(gè)唯一標(biāo)識(shí)符72,這將在下文中詳細(xì)描述。作為一個(gè)實(shí) 施例,在這個(gè)數(shù)據(jù)層次中,除了最頂端的數(shù)據(jù)項(xiàng)24,每個(gè)數(shù)據(jù)項(xiàng)24都有一個(gè)大于0的唯 一標(biāo)識(shí)符72。該唯一標(biāo)識(shí)符72在該數(shù)據(jù)層次結(jié)構(gòu)中為數(shù)據(jù)24相對(duì)于其它數(shù)據(jù)項(xiàng)24定義 了一個(gè)數(shù)據(jù)位置,這同樣將會(huì)在下文中詳細(xì)描述。數(shù)據(jù)項(xiàng)列66包括多個(gè)數(shù)據(jù)項(xiàng)24。所屬技術(shù)領(lǐng)域的技術(shù)人員應(yīng)該知道數(shù)據(jù)項(xiàng)24 可以包括只要一個(gè)單獨(dú)列就能夠存儲(chǔ)和組織的信息,或者數(shù)據(jù)項(xiàng)24的信息需要多個(gè)列來 適當(dāng)?shù)卮鎯?chǔ)和組織。在另一個(gè)例子中,不論用來包括數(shù)據(jù)項(xiàng)24的列的數(shù)量的多少,分配 給數(shù)據(jù)項(xiàng)的唯一標(biāo)識(shí)符72可用于在行62中的與數(shù)據(jù)項(xiàng)24相關(guān)的所有列,意識(shí)到這一點(diǎn) 十分重要。數(shù)據(jù)項(xiàng)列66不限制于它們能夠存儲(chǔ)的類型的信息。該至少一個(gè)層列68被配置來存儲(chǔ)一個(gè)用來指示一個(gè)數(shù)據(jù)項(xiàng)24在一個(gè)數(shù)據(jù)層次中 的位于哪個(gè)位置的層值74。作為一個(gè)例子,一個(gè)數(shù)據(jù)層次可能呈現(xiàn)一個(gè)樹的形式,其中 每個(gè)數(shù)據(jù)項(xiàng)24與另一個(gè)數(shù)據(jù)項(xiàng)24之間的關(guān)系通過該樹的一個(gè)分支表現(xiàn)出來。該樹具有 一定數(shù)量的層,數(shù)據(jù)項(xiàng)24位于每一層上。該樹的每個(gè)分支都終止于位于某一層的數(shù)據(jù)項(xiàng) 24。在本發(fā)明的一個(gè)實(shí)施方式中,層值74可為整數(shù)型數(shù)據(jù)。在這樣的一個(gè)實(shí)施方式中,該頂層值74代表性地為0。該至少一個(gè)族列70被配置來存儲(chǔ)一個(gè)用來指示一個(gè)數(shù)據(jù)項(xiàng)24與另一個(gè)位于上一 層或下一層的數(shù)據(jù)項(xiàng)24之間的關(guān)系的族值76。在本發(fā)明的一個(gè)實(shí)施例中,數(shù)據(jù)項(xiàng)24的 族值76作為它的父節(jié)點(diǎn)數(shù)據(jù)項(xiàng)24的唯一標(biāo)識(shí)符72,或者作為一個(gè)位于更高層的與它有直 接關(guān)系的數(shù)據(jù)項(xiàng)24的唯一標(biāo)識(shí)符72。在該情形中,族值76可為浮點(diǎn)型的實(shí)數(shù)。進(jìn)一步 地,在數(shù)據(jù)層次中的頂層數(shù)據(jù)24由于沒有父節(jié)點(diǎn)數(shù)據(jù)項(xiàng)24,因此,族值76應(yīng)當(dāng)賦予一個(gè) 不作為另一個(gè)數(shù)據(jù)項(xiàng)24的唯一標(biāo)識(shí)符72的值。例如,頂層數(shù)據(jù)項(xiàng)24的族值為-1。再次參考圖2A。行62被標(biāo)識(shí)為R1-R5,以接下來解釋在該圖中描述的實(shí)施例。 正如所看到的,Rl的層值74為0,Rl的族值為-1,以上表明Rl處的數(shù)據(jù)項(xiàng)24是數(shù)據(jù) 層次的根節(jié)點(diǎn)。接下來,會(huì)發(fā)現(xiàn)R2和R3具有相同的層值74和族值76,R4和R5具有 相同的層值74和族值76。這表明在該數(shù)據(jù)的數(shù)據(jù)層次中,R2和R3處的數(shù)據(jù)項(xiàng)24在該 數(shù)據(jù)層次中處于相同的層。它還表明R2和R3處的數(shù)據(jù)項(xiàng)都是Rl處數(shù)據(jù)項(xiàng)24的子節(jié) 點(diǎn),因?yàn)镽2和R3的族值76等于Rl的唯一標(biāo)識(shí)符72。類似地,R4和R5的數(shù)據(jù)項(xiàng)24 由于具有相同的層值74而在數(shù)據(jù)層次中處于相同的層,而R1-R3則處于不同的層。進(jìn) 一步地,R4和R5的數(shù)據(jù)項(xiàng)24作為R3的數(shù)據(jù)項(xiàng)24的子節(jié)點(diǎn),因?yàn)镽4和R5的族值76 與R3的唯一標(biāo)識(shí)符72相等。這樣,表格60表示了如圖2B所示的一個(gè)樹的數(shù)據(jù)層次, 其中標(biāo)識(shí)R1-R5與圖2A中的標(biāo)識(shí)R1-R5相對(duì)應(yīng)。所屬技術(shù)領(lǐng)域的技術(shù)人員應(yīng)該理解,表格60的實(shí)現(xiàn)并不局限于一個(gè)數(shù)據(jù)層次, 而數(shù)據(jù)項(xiàng)24可以存在于多個(gè)數(shù)據(jù)層次中。正因?yàn)槿绱耍斜匾菰S多種版本形式的表 格,其中的每一列能夠確定一個(gè)數(shù)據(jù)項(xiàng)在數(shù)據(jù)層次中的位置和關(guān)系。通過訪問一組不同 的列,簡(jiǎn)單的數(shù)據(jù)庫查詢就能夠構(gòu)造不同的數(shù)據(jù)層次。在本發(fā)明的一個(gè)實(shí)施方式中,存儲(chǔ)器20包括用于操作和組織數(shù)據(jù)庫28的多個(gè)指 令,然而,指令28可以存儲(chǔ)于第二存儲(chǔ)器34上。圖3中描述的指令28是產(chǎn)生唯一標(biāo)識(shí)符80的方法。當(dāng)作為一個(gè)新的數(shù)據(jù)項(xiàng)24 而被插入數(shù)據(jù)庫22時(shí),可為該數(shù)據(jù)項(xiàng)24產(chǎn)生唯一標(biāo)識(shí)符72。產(chǎn)生唯一標(biāo)識(shí)符72是通 過比較兩個(gè)相鄰的數(shù)據(jù)項(xiàng)24的唯一標(biāo)識(shí)符72來完成的,在向它們之間插入一個(gè)新的數(shù)據(jù) 項(xiàng)時(shí),選擇一個(gè)值為位于另外兩個(gè)唯一標(biāo)識(shí)符72的值之間的新的唯一標(biāo)識(shí)符72。在本 發(fā)明的一個(gè)實(shí)施例中,是通過利用唯一標(biāo)識(shí)符72來完成的,利用它作為一個(gè)參照,從表 格60中選擇下一個(gè)的具有相同的層值74且具有更高的標(biāo)識(shí)符72值的唯一標(biāo)識(shí)符72 (步 驟90)。然后,計(jì)算較大值唯一標(biāo)識(shí)符和較小值唯一標(biāo)識(shí)符72之間的差值(步驟92)并 將該差值乘以一個(gè)位于0到1之間的系數(shù)(步驟94),例如0.5。將所得結(jié)果加至較小值 唯一標(biāo)識(shí)符72 (步驟96)(或者從較大值唯一標(biāo)識(shí)符72中減去所得結(jié)果),其結(jié)果就作為 一個(gè)新的唯一標(biāo)識(shí)符72分配給插入到數(shù)據(jù)層次的新的數(shù)據(jù)項(xiàng)24(步驟98)。產(chǎn)生唯一標(biāo)識(shí)符80的方法可以統(tǒng)一到為一個(gè)在數(shù)據(jù)層次中移動(dòng)的數(shù)據(jù)項(xiàng)24再分 配一個(gè)唯一標(biāo)識(shí)符72的方法中去。然而,不同之處在于,不是一個(gè)新的數(shù)據(jù)項(xiàng)24要被 插入到數(shù)據(jù)層次中,在這里數(shù)據(jù)項(xiàng)24先前存在于數(shù)據(jù)庫22中,唯一標(biāo)識(shí)符72通過上述 相同的方法計(jì)算得到(圖4中的步驟100)作為在該數(shù)據(jù)層次中的與其它數(shù)據(jù)項(xiàng)之間的新 的位置。一旦該新的唯一標(biāo)識(shí)符72計(jì)算出來,就會(huì)被分配給將要移動(dòng)的數(shù)據(jù)項(xiàng)24。因 此,當(dāng)重新定位一個(gè)數(shù)據(jù)項(xiàng)時(shí),相應(yīng)地需要重新指定層值74和族值76。
產(chǎn)生唯一標(biāo)識(shí)符80的方法也可以歸整到為一個(gè)重新部署的數(shù)據(jù)項(xiàng)的次級(jí)數(shù)據(jù)層 次再分配唯一標(biāo)識(shí)符的方法的一部分。在本發(fā)明的一個(gè)實(shí)施方式中,次級(jí)數(shù)據(jù)層次的頂 層數(shù)據(jù)項(xiàng)24在數(shù)據(jù)層次中被指定一個(gè)新的位置,例如,通過再分配它的族值76,和利用 與產(chǎn)生唯一標(biāo)識(shí)符80相同的方法,為在數(shù)據(jù)層次中被移動(dòng)的數(shù)據(jù)項(xiàng)24再分配一個(gè)唯一標(biāo) 識(shí)符72。然后,為次級(jí)數(shù)據(jù)層次中的每一個(gè)數(shù)據(jù)項(xiàng)24重復(fù)上述過程。產(chǎn)生唯一標(biāo)識(shí)符80的方法的一個(gè)優(yōu)勢(shì)在于由于是在已經(jīng)存在的唯一標(biāo)識(shí)符72 之間布置一個(gè)新的唯一標(biāo)識(shí)符72,因此,除了新的和被移動(dòng)的數(shù)據(jù)項(xiàng),沒有必要為其它 的數(shù)據(jù)項(xiàng)24重新編號(hào)。當(dāng)前發(fā)明的一個(gè)實(shí)施例中,達(dá)到上述優(yōu)勢(shì)的特性在于利用了唯一 標(biāo)識(shí)符72的浮點(diǎn)數(shù)類型。浮點(diǎn)數(shù)具有一個(gè)非常寬泛的數(shù)值值范圍(例如,-1.79E+308 到-2.23E-308,0以及2.23E-308到1.79E+308),同時(shí)提供非常小的小數(shù)值,這對(duì)于計(jì) 算位于其它兩個(gè)數(shù)值之間的數(shù)值是有幫助的。這種方法和浮點(diǎn)數(shù)據(jù)類型進(jìn)一步允許一個(gè) 能夠擴(kuò)展的靈活的數(shù)據(jù)層次結(jié)構(gòu),而不需再向表格60添加列,從而會(huì)增加復(fù)雜程度和查 詢聲明的計(jì)算成本。利用浮點(diǎn)數(shù)據(jù)類型另一優(yōu)勢(shì)在于它的計(jì)算成本比利用字符串型數(shù)據(jù) 低,字符串型數(shù)據(jù)需要利用昂貴的字符串分解運(yùn)算的。參照?qǐng)D4,一種取得一個(gè)次級(jí)數(shù)據(jù)層次82的方法也可被執(zhí)行。在本發(fā)明的一個(gè) 實(shí)施例中,次級(jí)數(shù)據(jù)層次由位于該次級(jí)數(shù)據(jù)層次的一個(gè)給定的頂層數(shù)據(jù)項(xiàng)24和與其具有 相同層值74的下一個(gè)數(shù)據(jù)項(xiàng)24之間的所有數(shù)據(jù)項(xiàng)24組成。這種方法包括比較相鄰的數(shù) 據(jù)項(xiàng)24 (也就是一個(gè)數(shù)據(jù)項(xiàng)24和下一個(gè)的與其具有相同層值74的數(shù)據(jù)項(xiàng)24)(步驟100)。 該方法能夠從數(shù)據(jù)庫22中返回其唯一標(biāo)識(shí)符72的值位于頂層數(shù)據(jù)項(xiàng)24和下一個(gè)數(shù)據(jù)項(xiàng) 24之間的(步驟102)所有的數(shù)據(jù)項(xiàng)24。圖5描述了一個(gè)類似的可執(zhí)行的刪除子數(shù)據(jù)層 次84的方法。這種方法與取得子數(shù)據(jù)層次82的方法相同,除了它能夠從數(shù)據(jù)庫22中刪 除子數(shù)據(jù)層次82,而不是返回這些數(shù)據(jù)這一點(diǎn),其中的所有這些數(shù)據(jù)項(xiàng)的唯一標(biāo)識(shí)符72 的值位于頂層數(shù)據(jù)項(xiàng)24和下一個(gè)數(shù)據(jù)項(xiàng)24之間。取得子數(shù)據(jù)層次82和刪除子數(shù)據(jù)層次 84的方法表明了本發(fā)明的另一個(gè)優(yōu)勢(shì)。由于再分配唯一標(biāo)識(shí)符72的方式,數(shù)據(jù)層次能夠 不需要運(yùn)行昂貴的遞歸方法而實(shí)現(xiàn)遍歷。數(shù)據(jù)層次僅僅通過比較唯一標(biāo)識(shí)符72的值就可 進(jìn)行遍歷。產(chǎn)生唯一標(biāo)識(shí)符80的方法的運(yùn)用和利用該方法向數(shù)據(jù)層次增加一個(gè)新的數(shù)據(jù)項(xiàng) 代表了一個(gè)收斂級(jí)數(shù)。以下是具體說明(其中NodeID用來標(biāo)注唯一標(biāo)識(shí)符72,node用 來標(biāo)注數(shù)據(jù)項(xiàng)24)假設(shè)X1, x2, X3, K,X4是節(jié)點(diǎn)χ的子節(jié)點(diǎn)的NodeIDs,節(jié)點(diǎn)χ的NodeID為x, 且X1 < X2 < X3 < K < Xn.注意節(jié)點(diǎn)X可為數(shù)據(jù)層次中的任意節(jié)點(diǎn)。ParentJd(X1) = parent_id (x2) =K = parent_id (xn) = χ <1>以下是4個(gè)定義next_node (Xlri) = xn = Xn+stepjDr (Xlri) <2>
step_br(xn):=xn+1 -xn =鄉(xiāng)_,,▲)) = ^^g^fe)
ZL< 3 >
Γ n, /、step br(x) next node(x)-xstep_ch(x) := X-X1 = ~v~ v '--=-——
10
step ch(0)一l<5>
定義函數(shù)parent_id(X)
CREA了E Function dbo.parent_id(x float)
RE了URN int
BEGIN
DECLARE@parent X int
SELECT@parent二.X ParentID FROM了ree
WHERE NodeID一/aX
RE了URN(@next_x)
END
定義函數(shù)the function next_node(X)
CREA了E Function dbO.next node((aX float)
RETURN int
AS
BEGIN
DECLARE@next.X int
SELECT@next二.X 了OP NodeID FROM了ree
WHERE NodeID>X AND Level一(SELEC了Level FROM了ree
WHERE NodeID一(aX)
ORDER BY NodeID ASC
RE了URN(@next_x)
END;
首先驗(yàn)證該方法的運(yùn)算法則取得子數(shù)據(jù)層次的有效性。
從前述公式<4>,可以得到
X、一x+step—ch(X)
權(quán)利要求
1.一種在一個(gè)關(guān)系數(shù)據(jù)庫中組織分層數(shù)據(jù)的方法,包括步驟在一個(gè)存儲(chǔ)器上存儲(chǔ)包含有多個(gè)相互之間具有層次關(guān)系的數(shù)據(jù)項(xiàng)的所述關(guān)系數(shù)據(jù) 庫,同時(shí)該存儲(chǔ)器與一個(gè)控制設(shè)備通信;為每個(gè)數(shù)據(jù)項(xiàng)產(chǎn)生一個(gè)唯一標(biāo)識(shí)符,該唯一標(biāo)識(shí)符定義了該數(shù)據(jù)項(xiàng)與至少一個(gè)其它 數(shù)據(jù)項(xiàng)之間的層次關(guān)系;為該數(shù)據(jù)項(xiàng)分配一個(gè)指示該數(shù)據(jù)項(xiàng)與至少一個(gè)其它數(shù)據(jù)之間的所述層次關(guān)系的族值;以及為該數(shù)據(jù)項(xiàng)分配一個(gè)指示在一個(gè)層結(jié)構(gòu)中的所述層次關(guān)系的層值。
2.根據(jù)權(quán)利要求1所述的方法,其中產(chǎn)生所述唯一標(biāo)識(shí)符進(jìn)一步包括在該層結(jié)構(gòu)中將 相鄰的數(shù)據(jù)項(xiàng)的唯一標(biāo)識(shí)符進(jìn)行比較,并且計(jì)算出一個(gè)位于所述相鄰數(shù)據(jù)項(xiàng)的唯一標(biāo)識(shí) 符的值之間的值。
3.根據(jù)權(quán)利要求2所述的方法,其中所述值是一個(gè)實(shí)數(shù)。
4.根據(jù)權(quán)利要求2所述的方法,進(jìn)一步包括為一個(gè)在所述層結(jié)構(gòu)中被移動(dòng)后的數(shù)據(jù)項(xiàng) 再分配新的唯一標(biāo)識(shí)符。
5.根據(jù)權(quán)利要求2所述的方法,進(jìn)一步包括在任何一個(gè)層結(jié)構(gòu)中為了實(shí)現(xiàn)幾何級(jí)數(shù)而 為數(shù)據(jù)項(xiàng)再分配新的唯一標(biāo)識(shí)符。
6.根據(jù)權(quán)利要求1所述的方法,進(jìn)一步包括取得任何數(shù)據(jù)項(xiàng)的子層結(jié)構(gòu)。
7.根據(jù)權(quán)利要求1所述的方法,進(jìn)一步包括在所述層結(jié)構(gòu)中確定相鄰數(shù)據(jù)項(xiàng)的唯一標(biāo)識(shí)符;以及返回具有值位于所比較的相鄰標(biāo)識(shí)符之間的唯一標(biāo)識(shí)符的數(shù)據(jù)項(xiàng)。
8.根據(jù)權(quán)利要求1所述的方法進(jìn)一步包括刪除任何數(shù)據(jù)項(xiàng)的一個(gè)子層結(jié)構(gòu)。
9.根據(jù)權(quán)利要求1所述的方法進(jìn)一步包括在所述層結(jié)構(gòu)中確定相鄰數(shù)據(jù)項(xiàng)的唯一標(biāo)識(shí)符;以及刪除具有值位于所比較的相鄰標(biāo)識(shí)符之間的唯一標(biāo)識(shí)符的數(shù)據(jù)項(xiàng)。
10.根據(jù)權(quán)利要求1所述的方法,其中提供一個(gè)關(guān)系數(shù)據(jù)庫進(jìn)一步包括創(chuàng)建一個(gè)組織 表,其具有一個(gè)存儲(chǔ)所述唯一標(biāo)識(shí)符的列,一個(gè)存儲(chǔ)所述族值的列,一個(gè)存儲(chǔ)所述層值 的列,一個(gè)存儲(chǔ)所述數(shù)據(jù)項(xiàng)的列,以及一個(gè)存儲(chǔ)所述唯一標(biāo)識(shí)符、族值、層值和數(shù)據(jù)項(xiàng) 的行。
11.根據(jù)權(quán)利要求10所述的方法,其中所述唯一標(biāo)識(shí)符為浮點(diǎn)類型數(shù)。
12.根據(jù)權(quán)利要求1的方法進(jìn)一步包括向一個(gè)其它設(shè)備可讀取的數(shù)據(jù)文件提取所述數(shù) 據(jù)項(xiàng)。
13.根據(jù)權(quán)利要求12的方法,其中提取數(shù)據(jù)項(xiàng)包括根據(jù)層值對(duì)數(shù)據(jù)項(xiàng)進(jìn)行排序,然后 根據(jù)族值,再根據(jù)唯一標(biāo)識(shí)符。
14.根據(jù)權(quán)利要求13的方法,其中提取數(shù)據(jù)進(jìn)一步包括將所述數(shù)據(jù)項(xiàng)轉(zhuǎn)換為一個(gè)二進(jìn) 制文件。
15.一種用于在一個(gè)關(guān)系數(shù)據(jù)庫中組織分層數(shù)據(jù)的設(shè)備,包括一個(gè)存儲(chǔ)器,其中存儲(chǔ)一個(gè)分層數(shù)據(jù)的數(shù)據(jù)庫和用來組織該分層數(shù)據(jù)的指令,該數(shù) 據(jù)庫包括至少一個(gè)存儲(chǔ)多個(gè)數(shù)據(jù)項(xiàng)和分層數(shù)據(jù)的表格,該至少一個(gè)表格包括一個(gè)存儲(chǔ)唯 一標(biāo)識(shí)符的列,一個(gè)存儲(chǔ)族值的列,一個(gè)存儲(chǔ)層值的列,和一個(gè)存儲(chǔ)數(shù)據(jù)項(xiàng)的列,以及一個(gè)存儲(chǔ)所述唯一標(biāo)識(shí)符、族值、層值和數(shù)據(jù)項(xiàng)的行;以及與該存儲(chǔ)器通信并與所述數(shù)據(jù)庫相互作用的控制設(shè)備,并且能夠執(zhí)行該指令或 者請(qǐng)求執(zhí)行該指令。
16.根據(jù)權(quán)利要求15的設(shè)備,進(jìn)一步包括在所述列中存儲(chǔ)的所述唯一標(biāo)識(shí)符為一個(gè)浮 點(diǎn)類型數(shù)據(jù)。
17.根據(jù)權(quán)利要求15的設(shè)備,其中所述存儲(chǔ)器進(jìn)一步包括一個(gè)為所述數(shù)據(jù)項(xiàng)計(jì)算所述 唯一標(biāo)識(shí)符的指令。
18.根據(jù)權(quán)利要求15的設(shè)備,其中所述存儲(chǔ)器進(jìn)一步包括一個(gè)為被移動(dòng)的數(shù)據(jù)項(xiàng)再分 配唯一標(biāo)識(shí)符的指令。
19.根據(jù)權(quán)利要求15的設(shè)備,其中所述存儲(chǔ)器進(jìn)一步包括一個(gè)用來為所有數(shù)據(jù)項(xiàng)分配 唯一標(biāo)識(shí)符的指令。
20.根據(jù)權(quán)利要求15的設(shè)備,其中所述存儲(chǔ)器進(jìn)一步包括一個(gè)用來取得一個(gè)子層結(jié)構(gòu) 的指令,該子層結(jié)構(gòu)包含所述層結(jié)構(gòu)中的唯一標(biāo)識(shí)符位于相鄰的數(shù)據(jù)項(xiàng)之間的數(shù)據(jù)項(xiàng)。
21.根據(jù)權(quán)利要求15的設(shè)備,其中所述存儲(chǔ)器進(jìn)一步包括一個(gè)用來刪除一個(gè)子層結(jié)構(gòu) 的指令,該子層結(jié)構(gòu)包含所述層結(jié)構(gòu)中的唯一標(biāo)識(shí)符位于相鄰的數(shù)據(jù)項(xiàng)之間的數(shù)據(jù)項(xiàng)。
22.根據(jù)權(quán)利要求15的設(shè)備,其中所述存儲(chǔ)器進(jìn)一步包括一個(gè)用來提取所述數(shù)據(jù)項(xiàng)至 一個(gè)能被其它軟件裝置讀取的數(shù)據(jù)文件的指令。
23.根據(jù)權(quán)利要求15的設(shè)備,其中所述存儲(chǔ)器進(jìn)一步包括一個(gè)指令,其用來根據(jù)層值 對(duì)所述數(shù)據(jù)項(xiàng)進(jìn)行排序,然后根據(jù)族值進(jìn)行排序,再根據(jù)唯一標(biāo)識(shí)符進(jìn)行排序。
24.根據(jù)權(quán)利要求15的設(shè)備,其中所述存儲(chǔ)器進(jìn)一步包括一個(gè)用來將所述數(shù)據(jù)項(xiàng)轉(zhuǎn)換 為一個(gè)二進(jìn)制文件的指令。
25.根據(jù)權(quán)利要求15的設(shè)備,其中所述存儲(chǔ)器為一個(gè)數(shù)據(jù)庫服務(wù)器的一部分。
26.一種用來在一個(gè)關(guān)系數(shù)據(jù)庫中組織分層數(shù)據(jù)的系統(tǒng),包括 用來以相互關(guān)聯(lián)的方式存儲(chǔ)多個(gè)數(shù)據(jù)項(xiàng)的設(shè)備;用來以分層次的方式組織所述數(shù)據(jù)項(xiàng)的設(shè)備;為每個(gè)給定的數(shù)據(jù)項(xiàng)產(chǎn)生一個(gè)唯一標(biāo)識(shí)符的設(shè)備,其中所述唯一標(biāo)識(shí)符用來定義該 數(shù)據(jù)項(xiàng)與至少一個(gè)其它數(shù)據(jù)項(xiàng)的之間的層次關(guān)系;為每個(gè)數(shù)據(jù)項(xiàng)分配一個(gè)指示該數(shù)據(jù)項(xiàng)與至少一個(gè)其它數(shù)據(jù)項(xiàng)之間的層次關(guān)系的值和 指示該數(shù)據(jù)項(xiàng)在至少一個(gè)層結(jié)構(gòu)中的所述層次關(guān)系的值的設(shè)備; 用來存儲(chǔ)組織所述分層數(shù)據(jù)的方法的設(shè)備; 用來請(qǐng)求執(zhí)行指令的設(shè)備。
27.根據(jù)權(quán)利要求26的系統(tǒng),進(jìn)一步包括為被移動(dòng)的數(shù)據(jù)項(xiàng)再分配唯一標(biāo)識(shí)符的設(shè)備。
28.根據(jù)權(quán)利要求26的系統(tǒng),進(jìn)一步包括用來為所有數(shù)據(jù)項(xiàng)再分配唯一標(biāo)識(shí)符的設(shè)備。
29.根據(jù)權(quán)利要求26的系統(tǒng),進(jìn)一步包括用來取得一個(gè)子層結(jié)構(gòu)的設(shè)備,該子層結(jié)構(gòu) 包含所述層結(jié)構(gòu)中的唯一標(biāo)識(shí)符位于相鄰的數(shù)據(jù)項(xiàng)之間的數(shù)據(jù)項(xiàng)。
30.根據(jù)權(quán)利要求26的系統(tǒng),進(jìn)一步包括一個(gè)用來刪除一個(gè)子層結(jié)構(gòu)的設(shè)備,該子層 結(jié)構(gòu)包含所述層結(jié)構(gòu)中的唯一標(biāo)識(shí)符位于相鄰的數(shù)據(jù)項(xiàng)之間的數(shù)據(jù)項(xiàng)。
31.根據(jù)權(quán)利要求26的系統(tǒng),進(jìn)一步包括用來提取所述數(shù)據(jù)項(xiàng)至一個(gè)能被其它軟件裝 置讀取的數(shù)據(jù)文件的設(shè)備。
32.根據(jù)權(quán)利要求31的系統(tǒng),進(jìn)一步包括用來根據(jù)層值對(duì)所述數(shù)據(jù)項(xiàng)進(jìn)行排序,然后 根據(jù)族值進(jìn)行排序,再根據(jù)唯一標(biāo)識(shí)符進(jìn)行排序的設(shè)備。
33.根據(jù)權(quán)利要求32的系統(tǒng),進(jìn)一步包括用來將所述數(shù)據(jù)項(xiàng)轉(zhuǎn)換為一個(gè)二進(jìn)制文件的 設(shè)備。
全文摘要
提供了一個(gè)其中存儲(chǔ)有多個(gè)數(shù)據(jù)項(xiàng)的關(guān)系數(shù)據(jù)庫。這些數(shù)據(jù)項(xiàng)之間具有一種層次式關(guān)系。這些數(shù)據(jù)項(xiàng)被分配給一個(gè)能夠利用一個(gè)收斂級(jí)數(shù)計(jì)算得出的實(shí)數(shù),唯一標(biāo)識(shí)符,能夠?yàn)槊總€(gè)數(shù)據(jù)項(xiàng)在該層結(jié)構(gòu)中定位。每個(gè)數(shù)據(jù)項(xiàng)被分配一個(gè)浮點(diǎn)類型的層值,用來識(shí)別該數(shù)據(jù)項(xiàng)在所述結(jié)構(gòu)中的層。這些數(shù)據(jù)項(xiàng)還被分配一個(gè)族值,用來定義該數(shù)據(jù)項(xiàng)與另一個(gè)數(shù)據(jù)項(xiàng)之間的層次關(guān)系。本發(fā)明的方法通過比較兩個(gè)實(shí)數(shù)能夠取得任何數(shù)據(jù)項(xiàng)的一個(gè)子層結(jié)構(gòu),同時(shí)可添加新的數(shù)據(jù)項(xiàng)或者子樹,無需對(duì)其它數(shù)據(jù)項(xiàng)作出改變。
文檔編號(hào)G06F17/30GK102012903SQ20091017381
公開日2011年4月13日 申請(qǐng)日期2009年9月4日 優(yōu)先權(quán)日2009年9月4日
發(fā)明者游松, 田勇, 聶偉 申請(qǐng)人:斯必克有限公司