專利名稱::多層次數(shù)據(jù)庫系統(tǒng)結(jié)構(gòu)的制作方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及一種數(shù)據(jù)庫系統(tǒng)結(jié)構(gòu),特別是涉及一種適用于數(shù)據(jù)庫升級的多層次數(shù)據(jù)庫系統(tǒng)結(jié)構(gòu)。
背景技術(shù):
:近年來,隨著多媒體技術(shù)、空間數(shù)據(jù)庫技術(shù)和計算機網(wǎng)絡(luò)的快速發(fā)展,數(shù)據(jù)庫系統(tǒng)的發(fā)展十分迅速,應(yīng)用領(lǐng)域愈來愈廣,企業(yè)單位、政府部門的行政管理、辦公自動化、企業(yè)生產(chǎn)計劃管理、銀行財務(wù)管理、醫(yī)院病房病歷管理、圖書館管理、氣象預(yù)報、地理信息系統(tǒng)(GIS)、電子商務(wù)等等都離不開數(shù)據(jù)庫系統(tǒng)。一方面,一些較成熟的技術(shù),如各種大、中、小和微型計算機數(shù)據(jù)庫管理系統(tǒng)和一些傳統(tǒng)的數(shù)據(jù)庫設(shè)計方法已付諸應(yīng)用層面;另一方面,尚有許多理論及實際問題極待開發(fā)和探索,如空間數(shù)據(jù)庫、多媒體數(shù)據(jù)庫、網(wǎng)絡(luò)數(shù)據(jù)庫、智能數(shù)據(jù)庫等。特別是網(wǎng)絡(luò)數(shù)據(jù)庫的理論和技術(shù)問題正成為數(shù)據(jù)庫研究的一個熱門研究領(lǐng)域,相較之下,傳統(tǒng)的數(shù)據(jù)庫技術(shù)和系統(tǒng)便顯得力不從心,這也對傳統(tǒng)的技術(shù)和研究開發(fā)工作提出了挑戰(zhàn)。從1970年代末期以來,幾乎所有的數(shù)據(jù)庫系統(tǒng)的發(fā)展都以關(guān)系型數(shù)據(jù)庫系統(tǒng)(relationaldatabasesystem)為主軸。事實上,關(guān)系型的作法是今日的主流,而關(guān)系型模型成為數(shù)據(jù)庫領(lǐng)域中最重要的發(fā)展也是無庸置疑的。簡單的說,關(guān)系型數(shù)據(jù)庫系統(tǒng)就是1.使用者所看到的數(shù)據(jù)都是表格。2.使用者可使用的運算(例如數(shù)據(jù)的擷取)都是從舊的表格中產(chǎn)生新的表格。例如,有些運算子(operator)用來擷取表格中的某些橫列成為一個子集合,另有些運算子則用來選取表格中的直行成為子集合,當(dāng)然,表格中橫列的子集合及直行的子集合可以合起來構(gòu)成一個新的表格。關(guān)系型數(shù)據(jù)庫的所以如此受歡迎,主要原因是其建立在嚴格的數(shù)學(xué)概念基礎(chǔ)上(以「關(guān)系運算」為基礎(chǔ)),無論數(shù)據(jù)庫內(nèi)的實體(entity)或?qū)嶓w之間都用關(guān)系來表示,對數(shù)據(jù)的檢索結(jié)果也是一種關(guān)系(即表格),因此關(guān)系型數(shù)據(jù)庫的概念單一,其數(shù)據(jù)結(jié)構(gòu)也顯得相當(dāng)簡單、清晰。此外關(guān)系型數(shù)據(jù)庫中關(guān)系表格的存取路徑對使用者而言是公開的,其具備了更高的數(shù)據(jù)獨立性、更加的安全保密性,亦簡化了數(shù)據(jù)庫開發(fā)建立的工作??偨Y(jié)來說,關(guān)系型數(shù)據(jù)表的優(yōu)點在于對結(jié)構(gòu)化數(shù)據(jù)關(guān)連的定義和控制十分詳細。然而關(guān)系型數(shù)據(jù)庫的缺點則是缺乏彈性,一旦數(shù)據(jù)的關(guān)聯(lián)發(fā)生異動,則牽一發(fā)而動全身,對應(yīng)程序的修改是相當(dāng)費時費力。通常關(guān)系型數(shù)據(jù)庫在兩個獨立的數(shù)據(jù)表格(datatable)之外還需要建立一個關(guān)系表格(relationaltable),以在數(shù)據(jù)庫表格中間設(shè)定主鍵(primarykey)與其它附屬鍵(foreignkey)的關(guān)聯(lián)性。請參閱圖1。圖1為一現(xiàn)有的關(guān)系型數(shù)據(jù)庫B1示意圖。關(guān)系型數(shù)據(jù)庫B1包含二數(shù)據(jù)表格10及表格20,其中表格10中含有數(shù)據(jù)K1,表格20中含有數(shù)據(jù)K2。此外,根據(jù)數(shù)據(jù)K1及數(shù)據(jù)K2的關(guān)系另建立一表格30來表示。建立關(guān)系表格的好處在于搜尋上如果有關(guān)系式的建立,所有相關(guān)的附屬數(shù)據(jù)可以非常快地找出來;但是相對而言,使用關(guān)系表格的一個非常大的缺點就是當(dāng)需要新增、刪除、修改數(shù)據(jù),甚至需要新增、刪除、修改數(shù)據(jù)庫時,數(shù)據(jù)之間的關(guān)聯(lián)性會使得執(zhí)行這些任務(wù)變得非常復(fù)雜、耗時且容易出錯。舉例而言,當(dāng)需要刪除數(shù)據(jù)時,必須先將相關(guān)聯(lián)的附屬關(guān)系數(shù)據(jù)一一刪除后才可以刪除原本要刪除的數(shù)據(jù)。如圖1所示,如果我們要刪除表格20中的數(shù)據(jù)K2,必須先將表格30中所有有關(guān)數(shù)據(jù)K2的數(shù)據(jù)刪除才可以將表格20中的數(shù)據(jù)K2刪除。從程序設(shè)計師的觀點來看,前后數(shù)據(jù)的變動關(guān)系會使得程序設(shè)計變得異常困難;也往往在數(shù)據(jù)更新的過程中,因為修正程序的錯誤,而使系統(tǒng)產(chǎn)生錯誤的訊息,甚至造成整個系統(tǒng)的癱瘓。此外,因為各數(shù)據(jù)彼此之間的關(guān)聯(lián)性很重要,即使是數(shù)據(jù)庫的硬件有些微的差錯,也可能遺失各數(shù)據(jù)之間的關(guān)聯(lián)或破壞了該關(guān)聯(lián)性數(shù)據(jù)庫,造成整個系統(tǒng)停擺。如此一來,雖然關(guān)聯(lián)性數(shù)據(jù)庫增加了數(shù)據(jù)搜尋上的便利性,卻因此犧牲了數(shù)據(jù)新增、刪除、修改的效率,并且增加了程序本身不必要的復(fù)雜度;更嚴重的是,復(fù)雜的關(guān)系型數(shù)據(jù)庫結(jié)構(gòu)的修改成了一近乎不可能的工程。請繼續(xù)參考圖1。一個具有三個數(shù)據(jù)表格的關(guān)系型數(shù)據(jù)庫在針對數(shù)據(jù)本身作處理的過程中,若處理的數(shù)據(jù)涉及鍵值數(shù)據(jù)(key)時,不管是新增、刪除或修改數(shù)據(jù),皆需要三個步驟。例如(一)新增數(shù)據(jù)的步驟步驟一于表格10新增數(shù)據(jù)K1步驟二于表格20新增數(shù)據(jù)K2步驟三于表格30新增數(shù)據(jù)K1與數(shù)據(jù)K2的關(guān)聯(lián)數(shù)據(jù)(二)刪除數(shù)據(jù)的步驟步驟一刪除表格30中數(shù)據(jù)K1與數(shù)據(jù)K2的關(guān)聯(lián)數(shù)據(jù)步驟二刪除表格10中數(shù)據(jù)K1步驟三刪除表格20中數(shù)據(jù)K2(三)修改數(shù)據(jù)(鍵值數(shù)據(jù))的步驟步驟一修改表格30中數(shù)據(jù)K1與數(shù)據(jù)K2的關(guān)聯(lián)數(shù)據(jù)步驟二修改表格10中的數(shù)據(jù)K1步驟三修改表格20中的數(shù)據(jù)K2上述關(guān)于新增、刪除與修改數(shù)據(jù)的步驟只有涉及表格30與表格10、表格20之間的關(guān)系,尚未包含表格30與其它表格的關(guān)系。如果關(guān)系型數(shù)據(jù)庫的具有n個數(shù)據(jù)表格,則我們可以預(yù)期如表格30的關(guān)系表格最多將有C2n種情形。在表格數(shù)量持續(xù)增加時,單單進行簡單的數(shù)據(jù)或表格的新增、刪除或修改的運算量就十分驚人。另一方面,由于C++等面向?qū)ο?objectoriented)的程序相繼問世,幾乎所有程序設(shè)計都以面向?qū)ο鬄樵O(shè)計標準。面向?qū)ο笤O(shè)計的概念在于將所有最基本程序分析的組件轉(zhuǎn)換成對象與對象的相互行為。也因為程序設(shè)計的基本組件變成可分析的概念,UML(unifiedmodelinglanguage)語言一類的語言便相繼被發(fā)明與強化來支持面向?qū)ο蟪绦虻暮喕?。然而很不幸的,目前在程序語言被強化成面向?qū)ο笥^念同時,數(shù)據(jù)庫的運用雖有所謂面向?qū)ο蟮臄?shù)據(jù)庫來配合,但是仍為了在搜尋上與穩(wěn)定度的考慮而采用關(guān)系型數(shù)據(jù)庫。正因為如此,無論是面向?qū)ο蟮臄?shù)據(jù)庫或關(guān)系型數(shù)據(jù)庫,當(dāng)遭遇系統(tǒng)升級的需求時,數(shù)據(jù)庫的升級都會遭到無比的風(fēng)險??偫ǘ裕@些風(fēng)險來自(1)數(shù)據(jù)庫表格的字段往往會因為升級的需求而增加,而在關(guān)系型數(shù)據(jù)庫的結(jié)構(gòu)下,「增加字段」會更動到數(shù)據(jù)庫基本結(jié)構(gòu)。(2)關(guān)系型數(shù)據(jù)庫的數(shù)據(jù)表格會因為主表格的變更而跟著被更動,同樣也會更動到數(shù)據(jù)庫的基本結(jié)構(gòu)。(3)當(dāng)數(shù)據(jù)庫版本變更時,數(shù)據(jù)庫的數(shù)據(jù)格式可能無法兼容。由于這些數(shù)據(jù)庫設(shè)計的風(fēng)險,大部分信息人員往往視移動關(guān)系型數(shù)據(jù)庫的數(shù)據(jù)為畏途,即使數(shù)據(jù)庫效能已經(jīng)不敷使用,也只利用調(diào)教效能(performancetuning)的方式試圖解決。
發(fā)明內(nèi)容因此,本發(fā)明的主要目的是提供一種可解決數(shù)據(jù)庫升級風(fēng)險的多層次數(shù)據(jù)庫系統(tǒng)。本發(fā)明提供一種多層次的數(shù)據(jù)庫系統(tǒng),其包含有一實體數(shù)據(jù)層以及一索引數(shù)據(jù)層。該實體數(shù)據(jù)層包含一數(shù)據(jù)表,該數(shù)據(jù)表記錄有該數(shù)據(jù)庫系統(tǒng)的多筆對象數(shù)據(jù),該數(shù)據(jù)庫系統(tǒng)的數(shù)據(jù)表的每一筆對象數(shù)據(jù)包含多個數(shù)據(jù)項,該對象數(shù)據(jù)的該多個數(shù)據(jù)項的每一數(shù)據(jù)項具有一屬性名稱,一對象識別碼,一項目內(nèi)容及一索引代碼。該索引數(shù)據(jù)層記錄有索引數(shù)據(jù),用來據(jù)以搜尋該多個數(shù)據(jù)項的索引代碼以取得該數(shù)據(jù)庫系統(tǒng)中符合應(yīng)用程序所要求的對象數(shù)據(jù)。本發(fā)明還提供一種建立多層次數(shù)據(jù)庫系統(tǒng)的方法,其包含下列步驟產(chǎn)生一實體數(shù)據(jù)層,其包含一數(shù)據(jù)表,該數(shù)據(jù)表記錄有該數(shù)據(jù)庫系統(tǒng)的多筆對象數(shù)據(jù),該數(shù)據(jù)庫系統(tǒng)的數(shù)據(jù)表的每一筆對象數(shù)據(jù)包含多個數(shù)據(jù)項,該對象數(shù)據(jù)的該多個數(shù)據(jù)項的每一數(shù)據(jù)項具有一屬性名稱,一對象識別碼,一項目內(nèi)容及一索引代碼;以及依據(jù)一索引數(shù)據(jù)層的索引數(shù)據(jù),搜尋該多個數(shù)據(jù)項的索引代碼以取得該數(shù)據(jù)庫系統(tǒng)中符合應(yīng)用程序所要求的對象數(shù)據(jù)。圖1為現(xiàn)有關(guān)系型數(shù)據(jù)庫中關(guān)系表格的示意圖。圖2為本發(fā)明多層次數(shù)據(jù)庫系統(tǒng)一實施例的示意圖。圖3為本發(fā)明多層次數(shù)據(jù)庫系統(tǒng)的數(shù)據(jù)表結(jié)構(gòu)示意圖。圖4為本發(fā)明多層次數(shù)據(jù)庫系統(tǒng)中建立一數(shù)據(jù)表的示意圖。圖5為本發(fā)明多層次數(shù)據(jù)庫系統(tǒng)中一索引數(shù)據(jù)表的示意圖。圖6為本發(fā)明多層次數(shù)據(jù)庫系統(tǒng)中于數(shù)據(jù)表中建立索引的示意圖。圖7為本發(fā)明多層次數(shù)據(jù)庫系統(tǒng)中刪除一對象數(shù)據(jù)的示意圖。圖8為本發(fā)明多層次數(shù)據(jù)庫系統(tǒng)另一實施例中實體數(shù)據(jù)層叢集實際操作方法的示意圖。附圖符號說明K1、K2表格數(shù)據(jù)B1關(guān)系型數(shù)據(jù)庫10、20、30表格40關(guān)聯(lián)數(shù)據(jù)表42數(shù)據(jù)記錄44字段名稱50應(yīng)用程序100多層次數(shù)據(jù)庫系統(tǒng)200索引數(shù)據(jù)層210索引數(shù)據(jù)表220對照表300動態(tài)數(shù)據(jù)層400實體數(shù)據(jù)層410叢集422對象數(shù)據(jù)424數(shù)據(jù)項430數(shù)據(jù)表432屬性名稱434對象識別碼436項目內(nèi)容440,440A,440B索引代碼具體實施方式請參考圖2。圖2為本發(fā)明的多層次數(shù)據(jù)庫系統(tǒng)100的示意圖。多層次數(shù)據(jù)庫系統(tǒng)100包含有一索引數(shù)據(jù)層200、多個動態(tài)數(shù)據(jù)層300及一實體數(shù)據(jù)層400。其中,多層次數(shù)據(jù)庫系統(tǒng)100通過索引數(shù)據(jù)層200與應(yīng)用程序連結(jié),而索引數(shù)據(jù)層200與多個動態(tài)數(shù)據(jù)層300還與實體數(shù)據(jù)層400相連結(jié)。實體數(shù)據(jù)層400中包含多個叢集410,而記錄實體數(shù)據(jù)的數(shù)據(jù)表430則包含于叢集410中。索引數(shù)據(jù)層200及多個動態(tài)數(shù)據(jù)層300中包含多個索引數(shù)據(jù)表210,用來記錄索引數(shù)據(jù)。索引數(shù)據(jù)表210及其所記錄的索引數(shù)據(jù)依據(jù)應(yīng)用程序的搜尋條件由應(yīng)用程序產(chǎn)生。索引數(shù)據(jù)層200及多個動態(tài)數(shù)據(jù)層300亦依據(jù)應(yīng)用程序的設(shè)計需求而產(chǎn)生,若應(yīng)用程序需求較為簡單,多層次數(shù)據(jù)庫系統(tǒng)100甚至可以不具備動態(tài)數(shù)據(jù)層300,只由索引數(shù)據(jù)層200及實體數(shù)據(jù)層400構(gòu)成。當(dāng)計算機系統(tǒng)的應(yīng)用程序依據(jù)搜尋條件及所需求的數(shù)據(jù)庫類型產(chǎn)生索引數(shù)據(jù)層200的索引數(shù)據(jù)表210(及多個動態(tài)數(shù)據(jù)層300的索引數(shù)據(jù)表210)后,應(yīng)用程序即依據(jù)索引數(shù)據(jù)層200及動態(tài)數(shù)據(jù)層300中的索引數(shù)據(jù)表210的索引數(shù)據(jù)來搜尋數(shù)據(jù)表430。請參考圖3。圖3為本發(fā)明的多層次數(shù)據(jù)庫系統(tǒng)100中,實體數(shù)據(jù)層400的一叢集410的示意圖。數(shù)據(jù)表430由面向?qū)ο蟪绦驑?gòu)成,數(shù)據(jù)表430數(shù)據(jù)表430記錄有數(shù)據(jù)庫系統(tǒng)100的多筆對象數(shù)據(jù)422,其中每一筆對象數(shù)據(jù)422包含多個數(shù)據(jù)項424,對象數(shù)據(jù)422的多個數(shù)據(jù)項424的每一數(shù)據(jù)項424具有一屬性名稱432、一對象識別碼434、一項目內(nèi)容436及一索引代碼440A。此一實施例的數(shù)據(jù)表430中,屬性名稱432、對象識別碼434及項目內(nèi)容436為多層次數(shù)據(jù)庫系統(tǒng)100中的靜態(tài)數(shù)據(jù),該靜態(tài)數(shù)據(jù)的模式(Schema)于實體數(shù)據(jù)層400建立的初即規(guī)劃好,當(dāng)數(shù)據(jù)庫系統(tǒng)100運作或進行任何數(shù)據(jù)處理的操作時,該模式皆不受影響,亦即多層次數(shù)據(jù)庫系統(tǒng)100中實體數(shù)據(jù)層400的實體數(shù)據(jù)具有一不需更動的基本結(jié)構(gòu),可確保實體數(shù)據(jù)的穩(wěn)定性及安全性。如先前所述,實體數(shù)據(jù)層400中設(shè)置了多個叢集410,而為了適應(yīng)數(shù)據(jù)庫各種實體數(shù)據(jù)性質(zhì)不同,每一叢集410可允許擁有一種部署綱要,屬于該叢集410的所有數(shù)據(jù)表430則以同一種部署綱要來設(shè)計。另外,此一實施例的數(shù)據(jù)表430中,索引代碼440A為多層次數(shù)據(jù)庫系統(tǒng)100中的動態(tài)數(shù)據(jù),其依據(jù)索引數(shù)據(jù)層200及多個動態(tài)數(shù)據(jù)層300中索引數(shù)據(jù)表210的索引數(shù)據(jù)而建立,而當(dāng)索引數(shù)據(jù)表210有所更動時,索引代碼440A亦會同步隨著更動(通常是重新建立),當(dāng)索引數(shù)據(jù)表210被刪除時,其所建立的索引代碼440A亦隨之刪除。也適應(yīng)應(yīng)用程序的設(shè)計及數(shù)據(jù)搜尋的復(fù)雜度,數(shù)據(jù)表430中可包含一個以上的索引代碼440A。而應(yīng)用程序便是依據(jù)索引索引數(shù)據(jù)表210的索引數(shù)據(jù),以搜尋數(shù)據(jù)表430中數(shù)據(jù)項424的索引代碼440A,以取得多層次數(shù)據(jù)庫系統(tǒng)100中符合應(yīng)用程序所要求的對象數(shù)據(jù)422或?qū)ο髷?shù)據(jù)422中的數(shù)據(jù)項424。請繼續(xù)參考圖4。圖4為現(xiàn)有關(guān)系型數(shù)據(jù)庫的一關(guān)聯(lián)數(shù)據(jù)表轉(zhuǎn)換為本發(fā)明的多層次數(shù)據(jù)庫系統(tǒng)100一實施例的數(shù)據(jù)表的示意圖,其中關(guān)聯(lián)數(shù)據(jù)表40的首列顯示字段名稱44,于關(guān)聯(lián)數(shù)據(jù)表40中共有「記錄識別碼」、「姓名」、「性別」、「年齡」及「血型」五個字段。而關(guān)聯(lián)數(shù)據(jù)表40的其余各列則依據(jù)字段名稱44顯示各筆數(shù)據(jù)記錄42。當(dāng)欲建立本發(fā)明的一實施例的數(shù)據(jù)表430時,則將關(guān)聯(lián)數(shù)據(jù)表40的數(shù)據(jù)表名稱(此處命名為「人員」數(shù)據(jù)表)及數(shù)據(jù)域位44合并為數(shù)據(jù)表430的屬性名稱432一欄的內(nèi)容;由于關(guān)聯(lián)數(shù)據(jù)表40中每筆數(shù)據(jù)記錄42皆具有一唯一的記錄識別碼,以與其它數(shù)據(jù)記錄作區(qū)別(主要以該記錄識別碼作為關(guān)聯(lián)數(shù)據(jù)表的索引),于實際操作本發(fā)明的一實施例時,則將該記錄識別碼記錄于數(shù)據(jù)表430的第二欄,做為對象識別碼434一欄的內(nèi)容;數(shù)據(jù)表430的項目內(nèi)容436則記錄數(shù)據(jù)記錄42中相對應(yīng)于數(shù)據(jù)域位44的數(shù)據(jù)內(nèi)容,以作為項目內(nèi)容436一欄的內(nèi)容。以關(guān)聯(lián)數(shù)據(jù)表40(「人員」數(shù)據(jù)表)中第一筆數(shù)據(jù)記錄42舉例來說,第一筆數(shù)據(jù)記錄42記錄有「姓名」字段內(nèi)容「陳建宏」、「性別」字段內(nèi)容「男」、「年齡」字段內(nèi)容「30」、「血型」字段內(nèi)容「A」,另外第一筆數(shù)據(jù)記錄42的記錄識別碼為「1」,則本發(fā)明的一實施例的實際操作方式會據(jù)此建立一筆對象數(shù)據(jù)422,其包含四筆數(shù)據(jù)項424,其中第一筆數(shù)據(jù)項424的屬性名稱432一欄的數(shù)據(jù)內(nèi)容為「人員□姓名」(如前所述,該欄內(nèi)容為關(guān)聯(lián)數(shù)據(jù)表40中數(shù)據(jù)表名稱與數(shù)據(jù)域位名稱的合并),對象識別碼434一欄的內(nèi)容為「1」,項目內(nèi)容436一欄的內(nèi)容為「陳建宏」;同理,第二筆數(shù)據(jù)項424的屬性名稱432一欄的數(shù)據(jù)內(nèi)容為「人員□性別」,對象識別碼434一欄的內(nèi)容為「1」(皆屬同一對象數(shù)據(jù),因此對象識別碼相同),項目內(nèi)容436一欄的內(nèi)容則為「男」…余此類推。如此一來,關(guān)聯(lián)數(shù)據(jù)表40中的一筆數(shù)據(jù)記錄42會建立成本發(fā)明的一實施例的數(shù)據(jù)表430的四筆項目數(shù)據(jù)424,此四筆項目數(shù)據(jù)424構(gòu)成一筆對象數(shù)據(jù)422,因此四筆項目數(shù)據(jù)424的對象識別碼434一欄的內(nèi)容皆相同。請參考圖5、圖6。如前所述,應(yīng)用程序依據(jù)搜尋條件及應(yīng)用程序所需求的數(shù)據(jù)庫類型而產(chǎn)生索引數(shù)據(jù)層200的索引數(shù)據(jù)表210(及多個動態(tài)數(shù)據(jù)層300的索引數(shù)據(jù)表210后),并據(jù)以進行數(shù)據(jù)表430的數(shù)據(jù)搜尋。圖5、圖6說明于索引數(shù)據(jù)層200建立有一索引數(shù)據(jù)表210,其中包含索引數(shù)據(jù)用來將項目數(shù)據(jù)424的項目內(nèi)容436中具有數(shù)據(jù)內(nèi)容為「男」的項目數(shù)據(jù)424,于該項目數(shù)據(jù)424的索引代碼440A字段中標示為″0″,并用來將項目數(shù)據(jù)424的項目內(nèi)容436中具有數(shù)據(jù)內(nèi)容為「女」的項目數(shù)據(jù)424,于該項目數(shù)據(jù)424的索引代碼440A字段中標示為″1″。當(dāng)索引數(shù)據(jù)表210建立完成后,會于實體數(shù)據(jù)層400中已建立好的數(shù)據(jù)表430動態(tài)增加一索引代碼440A字段,并依據(jù)前述條件將″0″與″1″填入適當(dāng)項目數(shù)據(jù)424的字段中,其余不符合條件的項目數(shù)據(jù)424的索引代碼440A一欄則不作用。當(dāng)欲依據(jù)索引數(shù)據(jù)表210所標示的索引數(shù)據(jù)來搜尋數(shù)據(jù)表430中符合的對象數(shù)據(jù)422時,例如欲搜尋數(shù)據(jù)庫中所有男性員工的數(shù)據(jù),則只需要于索引代碼440A中提取出代碼內(nèi)容為″0″的數(shù)據(jù)項424,并依據(jù)數(shù)據(jù)項424中對象識別碼434取得所需的對象數(shù)據(jù)422。如此完成了數(shù)據(jù)的搜尋操作。同理,如欲找出數(shù)據(jù)表430中,年齡小于30歲的男性員工,則根據(jù)事先于索引數(shù)據(jù)層200建立的索引數(shù)據(jù)表210(或于動態(tài)數(shù)據(jù)層300中建立的索引數(shù)據(jù)表210)另于數(shù)據(jù)表430建立的一索引代碼440B,再與原先已建立的索引代碼440A交叉搜尋,即可提取出兩個條件皆符合的數(shù)據(jù)。此外,配合應(yīng)用程序需求而欲實現(xiàn)「于現(xiàn)有的關(guān)聯(lián)數(shù)據(jù)表40中新增一字段」的目的時,于本發(fā)明的一實施例的數(shù)據(jù)表430的作法則是直接于數(shù)據(jù)表430中新增一筆數(shù)據(jù)項424,其各字段內(nèi)容則依前述建立方式建立。例如要新增一「婚姻狀態(tài)」的字段,而第一筆數(shù)據(jù)記錄42的相對于「婚姻狀態(tài)」字段的字段內(nèi)容為「已婚」時,則于數(shù)據(jù)表430中新增一筆數(shù)據(jù)項424,其屬性名稱432一欄的數(shù)據(jù)內(nèi)容為「人員□婚姻狀態(tài)」,對象識別碼434一欄的內(nèi)容為「1」(屬同一對象數(shù)據(jù),因此對象識別碼相同),項目內(nèi)容436一欄的內(nèi)容則為「已婚」。請參考圖7。圖7為本發(fā)明的多層次數(shù)據(jù)庫系統(tǒng)100欲刪除一對象數(shù)據(jù)的作法示意圖。若配合應(yīng)用程序需求而欲實現(xiàn)「于現(xiàn)有的關(guān)聯(lián)數(shù)據(jù)表40中刪除一筆數(shù)據(jù)記錄42」甚或「于現(xiàn)有的關(guān)聯(lián)數(shù)據(jù)表40中刪除一字段」的目的時,于本發(fā)明的一實施例的數(shù)據(jù)表430的作法則是直接于索引數(shù)據(jù)層200的索引數(shù)據(jù)表210中,將記錄有實體數(shù)據(jù)層400中可用數(shù)據(jù)表430、對象數(shù)據(jù)422或數(shù)據(jù)項424的索引數(shù)據(jù)表210標示出有效或常用的索引數(shù)據(jù)。應(yīng)用程序可動態(tài)于索引數(shù)據(jù)層200中建立一全域索引數(shù)據(jù)表210,其中可依需求將處理數(shù)據(jù)的單位規(guī)劃為以數(shù)據(jù)項424為單位,或以對象數(shù)據(jù)422、甚至以數(shù)據(jù)表430為單位。當(dāng)然亦可以建立二層至多層以上的索引數(shù)據(jù)表210,以實現(xiàn)同時針對叢集410、數(shù)據(jù)表430、對象數(shù)據(jù)422及數(shù)據(jù)項424等實體數(shù)據(jù)范圍作全域索引的目標。當(dāng)應(yīng)用程序欲刪除數(shù)據(jù)表430中第三筆對象數(shù)據(jù)422時,于全域索引數(shù)據(jù)表210中將「可用性」字段標示為「否」,則「全域索引」字段對應(yīng)數(shù)據(jù)表430的「有效索引」的索引內(nèi)容亦將被解讀為無效的數(shù)據(jù)。換句話說,多層次數(shù)據(jù)庫系統(tǒng)100即可藉由于索引數(shù)據(jù)層200中建立索引數(shù)據(jù)表以標示出實體數(shù)據(jù)層400中有效或常用的數(shù)據(jù)表430、叢集410、對象數(shù)據(jù)422或數(shù)據(jù)項424。特別注意的是,其中數(shù)據(jù)表430的「有效索引」亦為索引數(shù)據(jù)層200根據(jù)應(yīng)用程序設(shè)計而建立的動態(tài)索引欄,其與對象識別碼434不相同,無論是對象識別碼434或有效索引(甚至是其它動態(tài)建立的索引代碼)皆可依程序設(shè)計需求設(shè)計成全域索引或局部索引。圖8為本發(fā)明多層次數(shù)據(jù)庫系統(tǒng)100另一實施例中實體數(shù)據(jù)層叢集實際操作方法的示意圖。當(dāng)數(shù)據(jù)類型因為成年累月的發(fā)展與改變而不斷增加時,實體數(shù)據(jù)層400的數(shù)據(jù)表430并不需要無限制的擴張。本發(fā)明的多層次數(shù)據(jù)庫系統(tǒng)100于實體數(shù)據(jù)層400另建立叢集410以放置多個數(shù)據(jù)表430。叢集410本身被系統(tǒng)設(shè)定有固定的容量限制,以避免任一叢集410的大小無限制擴大。當(dāng)一類的對象數(shù)據(jù)數(shù)量增長至某一程度時,整個數(shù)據(jù)庫會重新開啟一個叢集410,以放置新增的數(shù)據(jù)表430及其中的對象數(shù)據(jù)。在一個大型的數(shù)據(jù)庫系統(tǒng)中,若是能對搜尋的數(shù)據(jù)再作進一步的分類與篩選,則有助于搜尋效率的提升,因此,于建立叢集410時,本發(fā)明即對叢集410進行建立索引的操作,并于索引數(shù)據(jù)層200中建立一搜尋叢集索引的對照表220以將搜尋對象作進一步的范圍限制。而實體數(shù)據(jù)層400中多個叢集410亦不需被限定儲存在單一計算機主機中。多個叢集410分別儲存于多個經(jīng)由網(wǎng)絡(luò)系統(tǒng)相連的計算機主機中,以分散主機系統(tǒng)的處理負載。為配合使用者仍較習(xí)慣以表格方式建立數(shù)據(jù)庫的數(shù)據(jù)內(nèi)容,應(yīng)用程序的接口仍舊可以設(shè)計成以表格(或類似表格)的形式供使用者輸入數(shù)據(jù),無論是數(shù)據(jù)的新增、刪除、修改,或是數(shù)據(jù)域位的新增、刪除、修改,以致于一個以上表格之間的數(shù)據(jù)關(guān)系的建立、移除,皆可通過上述索引數(shù)據(jù)層200或動態(tài)數(shù)據(jù)層300于實體數(shù)據(jù)層400的數(shù)據(jù)表430中建立相關(guān)的索引代碼440字段(一個或一個以上)以完成對象數(shù)據(jù)422的建立。以前述實施例而言,當(dāng)使用者欲建立一筆具有廿個字段的數(shù)據(jù)時,現(xiàn)有作法就是于數(shù)據(jù)庫中寫入一筆具有廿個字段的數(shù)據(jù),而本發(fā)明的多層次數(shù)據(jù)庫系統(tǒng)100的一實施例則是于數(shù)據(jù)表430中建立廿筆具有三個字段(于尚未建立索引代碼440的情況下)的數(shù)據(jù)項424。為避免于數(shù)據(jù)項424建立時占用系統(tǒng)資源以致于影響多層次數(shù)據(jù)庫系統(tǒng)100的效能,于應(yīng)用程序端與多層次數(shù)據(jù)庫系統(tǒng)100的索引數(shù)據(jù)層200之間可另外建立一隊列緩沖區(qū),使多層次數(shù)據(jù)庫系統(tǒng)100可利用所有系統(tǒng)閑置的時間來進行數(shù)據(jù)的建立工作。另一方面,經(jīng)過搜尋之后的數(shù)據(jù)也可以通過程序設(shè)計以轉(zhuǎn)換成使用者較習(xí)慣的表格方式呈現(xiàn),對于應(yīng)用程序而言,多層次數(shù)據(jù)庫系統(tǒng)100提供一安全的數(shù)據(jù)儲存結(jié)構(gòu),而使用者端可以沿用原有的數(shù)據(jù)處理方式以避免使用習(xí)慣的改變。也由于多層次數(shù)據(jù)庫系統(tǒng)100種儲存對象數(shù)據(jù)的方式幾乎是不變的,針對數(shù)據(jù)庫的結(jié)構(gòu)改變、系統(tǒng)升級等需求,多層次數(shù)據(jù)庫系統(tǒng)100可以完成這些對關(guān)系型數(shù)據(jù)庫系統(tǒng)而言相當(dāng)具風(fēng)險的變更。以上所述僅為本發(fā)明的較佳實施例,凡依本發(fā)明的權(quán)利要求所做的均等變化與修飾,皆應(yīng)屬本發(fā)明的涵蓋范圍。權(quán)利要求1.一種多層次的數(shù)據(jù)庫系統(tǒng),其包含有一實體數(shù)據(jù)層,其包含一數(shù)據(jù)表,該數(shù)據(jù)表記錄有該數(shù)據(jù)庫系統(tǒng)的多筆對象數(shù)據(jù),該數(shù)據(jù)庫系統(tǒng)的數(shù)據(jù)表的每一筆對象數(shù)據(jù)包含多個數(shù)據(jù)項,該對象數(shù)據(jù)的該多個數(shù)據(jù)項的每一數(shù)據(jù)項具有一屬性名稱,一對象識別碼,一項目內(nèi)容及一索引代碼;以及一索引數(shù)據(jù)層,其記錄有索引數(shù)據(jù),用來據(jù)以搜尋該多個數(shù)據(jù)項的索引代碼以取得該數(shù)據(jù)庫系統(tǒng)中符合應(yīng)用程序所要求的對象數(shù)據(jù)。2.如權(quán)利要求1所述的數(shù)據(jù)庫系統(tǒng),其還包含多個動態(tài)數(shù)據(jù)層,位于該索引數(shù)據(jù)層與該實體數(shù)據(jù)層之間。3.如權(quán)利要求1所述的數(shù)據(jù)庫系統(tǒng),其中該實體數(shù)據(jù)層包含多個叢集,每一叢集包含多個數(shù)據(jù)表。4.如權(quán)利要求3所述的數(shù)據(jù)庫系統(tǒng),其中該多個叢集儲存于多個經(jīng)由一網(wǎng)絡(luò)系統(tǒng)相連的計算機主機中。5.如權(quán)利要求3所述的數(shù)據(jù)庫系統(tǒng),其中該多個叢集的每一叢集還具有索引數(shù)據(jù)。6.如權(quán)利要求1所述的數(shù)據(jù)庫系統(tǒng),其中該索引數(shù)據(jù)層包含多個索引數(shù)據(jù)表,每一索引數(shù)據(jù)表包含多筆索引數(shù)據(jù)。7.一種建立多層次數(shù)據(jù)庫系統(tǒng)的方法,其包含下列步驟(a)產(chǎn)生一實體數(shù)據(jù)層,其包含一數(shù)據(jù)表,該數(shù)據(jù)表記錄有該數(shù)據(jù)庫系統(tǒng)的多筆對象數(shù)據(jù),該數(shù)據(jù)庫系統(tǒng)的數(shù)據(jù)表的每一筆對象數(shù)據(jù)包含多個數(shù)據(jù)項,該對象數(shù)據(jù)的該多個數(shù)據(jù)項的每一數(shù)據(jù)項具有一屬性名稱,一對象識別碼,一項目內(nèi)容及一索引代碼;以及(b)依據(jù)一索引數(shù)據(jù)層的索引數(shù)據(jù),搜尋該多個數(shù)據(jù)項的索引代碼以取得該數(shù)據(jù)庫系統(tǒng)中符合應(yīng)用程序所要求的對象數(shù)據(jù)。8.如權(quán)利要求7所述的方法,其還包含依據(jù)該應(yīng)用程序的搜尋條件產(chǎn)生該索引數(shù)據(jù)層的索引數(shù)據(jù)。9.如權(quán)利要求7所述的方法,其還包含依據(jù)該應(yīng)用程序的搜尋條件,于該索引數(shù)據(jù)層與該實體數(shù)據(jù)層之間建立多個動態(tài)數(shù)據(jù)層。10.如權(quán)利要求9所述的方法,其中步驟(b)依據(jù)該索引數(shù)據(jù)層的索引數(shù)據(jù)及該多個動態(tài)數(shù)據(jù)層的索引數(shù)據(jù),搜尋該多個數(shù)據(jù)項的索引代碼以取得該數(shù)據(jù)庫系統(tǒng)中符合該應(yīng)用程序所要求的對象數(shù)據(jù)。11.如權(quán)利要求7所述的方法,其還包含根據(jù)該應(yīng)用程序的搜尋條件于該索引數(shù)據(jù)層中標記常用或有效的索引數(shù)據(jù)。12.如權(quán)利要求7所述的方法,其還包含由一面向?qū)ο蟪绦驑?gòu)成該數(shù)據(jù)表。13.如權(quán)利要求7所述的方法,其還包含將一關(guān)系型數(shù)據(jù)庫的一筆記錄轉(zhuǎn)換成一筆對象數(shù)據(jù),每一筆對象數(shù)據(jù)包含多個數(shù)據(jù)項。14.如權(quán)利要求7所述的方法,其還包含于該實體數(shù)據(jù)層建立多個叢集,每一叢集包含多個數(shù)據(jù)表。15.如權(quán)利要求14所述的方法,其中當(dāng)對象數(shù)據(jù)的數(shù)目超過該數(shù)據(jù)庫設(shè)定的叢集大小時,該數(shù)據(jù)庫系統(tǒng)于該實體數(shù)據(jù)層還建立一新叢集以放置新增的對象數(shù)據(jù)。16.如權(quán)利要求14所述的方法,其還包含以一數(shù)據(jù)庫模式規(guī)劃一叢集。17.如權(quán)利要求14所述的方法,其還包含對每一叢集建立索引數(shù)據(jù)。全文摘要本發(fā)明提供一種可解決數(shù)據(jù)庫升級風(fēng)險的數(shù)據(jù)庫系統(tǒng)及其建立方法,利用混合多種不同層次的數(shù)據(jù)庫結(jié)構(gòu)設(shè)計,以在升級數(shù)據(jù)庫時能維持原始程序的數(shù)據(jù)及保持系統(tǒng)的完整性。在不需更動實體數(shù)據(jù)結(jié)構(gòu)的條件下,通過應(yīng)用程序于索引數(shù)據(jù)層針對實體數(shù)據(jù)建立索引數(shù)據(jù)表以進行數(shù)據(jù)及字段的搜尋、建立、刪除及修改。文檔編號G06F17/30GK1877573SQ20051007635公開日2006年12月13日申請日期2005年6月10日優(yōu)先權(quán)日2005年6月10日發(fā)明者高裕翔,蘇漢良,葉志強,葉金寬申請人:華夏科技股份有限公司