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