基于范疇纖維叢模型的面向?qū)ο髷?shù)據(jù)庫系統(tǒng)及其構(gòu)建方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明設(shè)及數(shù)據(jù)庫技術(shù)領(lǐng)域,具體設(shè)及一種基于范疇纖維叢模型的面向?qū)ο髷?shù)據(jù) 庫系統(tǒng)及其構(gòu)建方法。
【背景技術(shù)】
[0002] 數(shù)據(jù)庫是"按照數(shù)據(jù)結(jié)構(gòu)來組織、存儲和管理數(shù)據(jù)的倉庫"。在經(jīng)濟(jì)管理的日常工 作中,常常需要把某些相關(guān)的數(shù)據(jù)放進(jìn)運(yùn)樣的"倉庫",并根據(jù)管理的需要進(jìn)行相應(yīng)的處理。 例如,企業(yè)或事業(yè)單位的人事部口常常要把本單位職工的基本情況(職工號、姓名、年齡、性 另IJ、籍貫、工資、簡歷等)存放在表中,運(yùn)張表就可W看成是一個數(shù)據(jù)庫。有了運(yùn)個"數(shù)據(jù)倉 庫"我們就可W根據(jù)需要隨時查詢某職工的基本情況,也可W查詢工資在某個范圍內(nèi)的職 工人數(shù)等等。運(yùn)些工作如果都能在計算機(jī)上自動進(jìn)行,那我們的人事管理就可W達(dá)到極高 的水平。隨著人類社會信息化水平的飛速發(fā)展,數(shù)據(jù)庫系統(tǒng)已經(jīng)成為各行各業(yè)不可或缺的 工具與工作、生活的基礎(chǔ)。J. Madin給數(shù)據(jù)庫下了一個比較完整的定義:數(shù)據(jù)庫是存儲在 一起的相關(guān)數(shù)據(jù)的集合,運(yùn)些數(shù)據(jù)是結(jié)構(gòu)化的,無有害的或不必要的冗余,并為多種應(yīng)用服 務(wù);數(shù)據(jù)的存儲獨(dú)立于使用它的程序;對數(shù)據(jù)庫插入新數(shù)據(jù),修改和檢索原有數(shù)據(jù)均能按一 種公用的和可控制的方式進(jìn)行。
[0003] 數(shù)據(jù)庫系統(tǒng)的發(fā)展大致經(jīng)歷了 Ξ個主要的階段:1)層次和網(wǎng)狀數(shù)據(jù)庫,它們分別 W層次模型和網(wǎng)絡(luò)模型來表示實(shí)體構(gòu)造及其實(shí)體之間的關(guān)系;它們在屯、八十年代非常流 行,在當(dāng)時數(shù)據(jù)庫系統(tǒng)產(chǎn)品中占主導(dǎo)地位,被合稱為第一代數(shù)據(jù)庫,但是它們的數(shù)據(jù)定義語 言(m)L)和數(shù)據(jù)操作語言(DML)的過程化程度較高且由于記錄之間的聯(lián)系是通過存取路徑 實(shí)現(xiàn)的,應(yīng)用程序在訪問特定的數(shù)據(jù)時必須選擇適當(dāng)?shù)拇嫒÷窂?,運(yùn)就要求用戶必須了解 并操作數(shù)據(jù)庫系統(tǒng)的物理結(jié)構(gòu)的細(xì)節(jié),因此學(xué)習(xí)起來十分復(fù)雜,一般用戶難W使用;2)關(guān)系 數(shù)據(jù)庫(Relational Database-畑B),它W關(guān)系演算和關(guān)系代數(shù)為其數(shù)學(xué)基礎(chǔ)建立了關(guān)系 模型,W二維表為其數(shù)據(jù)結(jié)構(gòu)的組織形式,利用非過程化數(shù)據(jù)操縱語言(S化uctured如ery Language-S化)進(jìn)行數(shù)據(jù)庫管理,采用內(nèi)/外/概念模式的Ξ層模式結(jié)構(gòu),具有較高數(shù)據(jù)獨(dú)立 性,但是關(guān)系數(shù)據(jù)庫的外概念模型和內(nèi)數(shù)據(jù)模型完全不同,所W在數(shù)據(jù)存取時需要將現(xiàn)實(shí) 世界的對象實(shí)體轉(zhuǎn)化為二維關(guān)系表,運(yùn)個轉(zhuǎn)化過程完全憑借數(shù)據(jù)庫工程師的經(jīng)驗(yàn)且往往非 常復(fù)雜,容易出錯。3)面向?qū)ο蟮臄?shù)據(jù)庫,它通過面向?qū)ο蟮某绦蛟O(shè)計技術(shù)與數(shù)據(jù)庫技術(shù)相 結(jié)合的方法建立對象模型,其將現(xiàn)實(shí)世界中的實(shí)體封裝為對象及對象之間的關(guān)系,并利用 面向?qū)ο蟮某绦蛘Z言,特別是其中的抽象、封裝、繼承和多態(tài)性來在面向?qū)ο髷?shù)據(jù)庫系統(tǒng)中 實(shí)現(xiàn)、操作對象模型,運(yùn)樣大大提高了對現(xiàn)實(shí)世界中復(fù)雜科學(xué)與工程應(yīng)用領(lǐng)域中的各種數(shù) 據(jù)、信息和知識實(shí)體的表達(dá)、存取和管理能力及軟件的可重用性;其主要特點(diǎn)為數(shù)據(jù)庫中的 核屯、元素是對象,需要將具有共同特征的對象歸納成類,組織類之間的層次關(guān)系,構(gòu)造類 庫,所W數(shù)據(jù)庫的整個模式的建模目標(biāo)是對象類而操作目標(biāo)是實(shí)例對象。在應(yīng)用時,在類庫 中選擇相應(yīng)的類,但面向?qū)ο蟮臄?shù)據(jù)庫缺乏嚴(yán)謹(jǐn)?shù)臄?shù)學(xué)基礎(chǔ),操作能力較弱,難W實(shí)現(xiàn)查詢 結(jié)果的閉合。
[0004] 因此,現(xiàn)在亟需一種能解決上述問題的數(shù)據(jù)庫系統(tǒng)。
【發(fā)明內(nèi)容】
[0005] 本發(fā)明的目的在于針對現(xiàn)有技術(shù)的不足,提供一種基于范疇纖維叢模型的面向?qū)?象數(shù)據(jù)庫系統(tǒng)及其構(gòu)建方法,該基于范疇纖維叢模型的面向?qū)ο髷?shù)據(jù)庫系統(tǒng)及其構(gòu)建方法 可W很好地解決上述問題。
[0006] 為達(dá)到上述要求,本發(fā)明采取的技術(shù)方案是:提供一種基于范疇纖維叢模型的面 向?qū)ο髷?shù)據(jù)庫系統(tǒng)及其構(gòu)建方法,該基于范疇纖維叢模型的面向?qū)ο髷?shù)據(jù)庫系統(tǒng)包括: 范疇纖維叢模型處理機(jī),用于維護(hù)范疇纖維叢模型表示的實(shí)體及實(shí)體之間的各種復(fù)雜 關(guān)系,用于提取實(shí)體及支持實(shí)體和關(guān)系的操作,用于翻譯關(guān)系、約束和推理規(guī)則的語義; 范疇構(gòu)造定義語言模塊,利用XML語言來定義范疇纖維叢模型處理機(jī)輸出的實(shí)體和實(shí) 體之間的多維關(guān)系; 范疇構(gòu)造預(yù)處理機(jī),用于將XML語言定義的實(shí)體文件翻譯為化va的類聲明; 化va語言綁定模塊,將化va類定義源代碼與所述化va的類聲明進(jìn)行綁定; 化va編譯器,對所述類聲明、定義和實(shí)例范疇進(jìn)行編譯; 輸入處理機(jī),對數(shù)據(jù)庫管理文件進(jìn)行維護(hù),從而維護(hù)實(shí)例范疇在數(shù)據(jù)庫物理存儲模塊 中的存儲; 數(shù)據(jù)庫物理存儲模塊,用于對實(shí)例范疇進(jìn)行存儲; 范疇對象查詢語言,用于將形式化查詢語句翻譯為化va查詢語句; 輸出處理機(jī),利用化va的反射機(jī)制來指導(dǎo)實(shí)例范疇的查詢和輸出,W及約束與支持所 有實(shí)例范疇內(nèi)部允許的操作,進(jìn)而在數(shù)據(jù)庫層面上支持各種知識推理規(guī)則的運(yùn)行. XML解析器,對XML語言進(jìn)行解析。
[0007] 進(jìn)一步的,該基于范疇纖維叢模型的面向?qū)ο髷?shù)據(jù)庫系統(tǒng)還包括: 實(shí)例范疇的處理器,對實(shí)例范疇進(jìn)行存取時用于序列化和恢復(fù)實(shí)例范疇; 事務(wù)支持器,用于維護(hù)數(shù)據(jù)庫的原子性、一致性、隔離性及持久性; 物理存儲文件的輸入/輸出流,用于將序列化的實(shí)例范疇W二進(jìn)制的方式輸入到物理 文件中。
[000引進(jìn)一步的,范疇纖維叢模型處理機(jī)為范疇化的0DMG3.0標(biāo)準(zhǔn)處理機(jī)。
[0009]基于范疇纖維叢模型的面向?qū)ο髷?shù)據(jù)庫系統(tǒng)的構(gòu)建方法,其特征在于,包括W下 步驟: 51、 構(gòu)建基于范疇論的范疇纖維叢模型來可視化表達(dá)各種復(fù)雜對象結(jié)構(gòu)及它們之間的 復(fù)雜關(guān)系,同時用范疇數(shù)學(xué)的各種數(shù)學(xué)構(gòu)造的代數(shù)定義來實(shí)現(xiàn)對象的操作和確保各種操作 后數(shù)據(jù)庫的完整性和一致性; 52、 將可視化建模的所述圖式翻譯為與具體面向?qū)ο缶幊陶Z言相獨(dú)立的模式代碼; 53、 根據(jù)所述模式代碼生成化va的類聲明; 54、 將化va類定義源代碼與所述類聲明進(jìn)行綁定,并在所述類聲明之上創(chuàng)建一系列實(shí) 例范疇; 55、 對所述化va的類聲明和所述實(shí)例范疇進(jìn)行編譯,并將所述實(shí)例范疇存儲至所述數(shù) 據(jù)庫中。
[0010]進(jìn)一步的,數(shù)據(jù)庫系統(tǒng)利用化va的反射機(jī)制來指導(dǎo)實(shí)例范疇的存儲,w及約束與 支持實(shí)例范疇內(nèi)部允許的操作。
[0011] 進(jìn)一步的,范疇纖維叢模型利用拉回構(gòu)造表示不同類范疇之間的多層次、多維關(guān) 系。
[0012] 該基于范疇纖維叢模型的面向?qū)ο髷?shù)據(jù)庫系統(tǒng)及其構(gòu)建方法具有的優(yōu)點(diǎn)如下: (1) 設(shè)計與制定了一個統(tǒng)一的數(shù)學(xué)模型,它既能有效地解決了傳統(tǒng)關(guān)系數(shù)據(jù)庫難W直 接存取、管理多層次數(shù)據(jù)構(gòu)造和多維關(guān)系等面向?qū)ο蟮臄?shù)據(jù)結(jié)構(gòu)的弱點(diǎn),也能利用與模型 匹配的本發(fā)明中的基于范疇學(xué)代數(shù)推導(dǎo)的對象定義和查詢語言,很好地解決其它面向?qū)ο?數(shù)據(jù)庫產(chǎn)品缺乏正式的數(shù)據(jù)定義與操作語言,在對象更新和查詢后難W回存新對象或查詢 結(jié)果且容易破壞數(shù)據(jù)庫模式的參照完整性和產(chǎn)生前后不一致的對象或它們之間的關(guān)系等 問題; (2) 利用范疇論中各種構(gòu)造的數(shù)學(xué)特性,將圖式表達(dá)和形式化規(guī)約融合一體,支持各種 復(fù)雜物理數(shù)據(jù)結(jié)構(gòu)的直接存取,避免了傳統(tǒng)數(shù)據(jù)庫中對對象的人為拆分和重組問題,從而 大大減小了數(shù)據(jù)庫模式設(shè)計過程中的不確定度和產(chǎn)生錯誤的可能性,確保了在整個過程中 不會有語義和物理結(jié)構(gòu)丟失的問題。而且,且其配套的對象定義與查詢語言簡單易學(xué)(例 如,可W用一套語句存儲任意多維關(guān)系或多層級生物應(yīng)用中的基因鏈)。經(jīng)過測試它的存取 速度比傳統(tǒng)關(guān)系數(shù)據(jù)庫(MyS化和SQLServer)快Ξ倍,而存儲容量與主流商業(yè)數(shù)據(jù)庫產(chǎn)品大 體相當(dāng); (3) 范疇纖維叢模型的研制為專業(yè)科學(xué)與工程應(yīng)用領(lǐng)域的信息集成、知識融合和它們 的數(shù)據(jù)庫存取難題提供了新的高效解決思路,具有一定的創(chuàng)新價值; (4) 其主要的技術(shù)優(yōu)點(diǎn)還包括: 不需要任何數(shù)據(jù)結(jié)構(gòu)轉(zhuǎn)換和映射,本數(shù)據(jù)庫支持對所有范疇構(gòu)造的直接存儲與操作 (例如,實(shí)例對象范疇和拉回關(guān)系構(gòu)造等); 實(shí)例范疇的保存過程中不需要更改任何其對應(yīng)類范疇的定義; 只用一行代碼就可W存儲任何復(fù)雜的實(shí)例范疇,并且可W持久化任何層級的實(shí)例范 疇; 可W很容易的被內(nèi)嵌入任何科學(xué)或復(fù)雜專業(yè)領(lǐng)域的軟件系統(tǒng)應(yīng)用中(整個范疇纖維叢 數(shù)據(jù)庫只有30M大?。?; 支持化va泛型; 支持ACID事務(wù); 支持復(fù)雜鏈表和樹型結(jié)構(gòu),例如BTree; 支持 Client/Server 模式; 支持?jǐn)?shù)據(jù)庫模式(database schema)的獨(dú)立與自動內(nèi)嵌管理; 支持實(shí)例對象的緩存和集成化va原生回收機(jī)制; 與化va及C#語言進(jìn)行了無縫綁定; 基于范疇代數(shù)推導(dǎo)方法,研發(fā)了專口的實(shí)例范疇查詢語言; 支持移植和跨平臺部署。
【附圖說明】
[0013] 此處所說明的附圖用來提供對本申請的進(jìn)一步理解,構(gòu)成本申請的一部分,在運(yùn) 些附圖中使用相同的參考標(biāo)號來表示相同或相似的部分,本申請的示意性實(shí)施例及其說明 用于解釋本申請,并不構(gòu)成對本申請的不當(dāng)限定。在附圖中: 圖1為本發(fā)明一個實(shí)施例的系統(tǒng)構(gòu)架圖; 圖