楊玉芬, 李明明, 高曉旸
(吉林大學(xué) a. 網(wǎng)絡(luò)中心; b. 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院, 長(zhǎng)春 130012)
近年來(lái), 數(shù)據(jù)庫(kù)技術(shù)的應(yīng)用領(lǐng)域不斷拓展, 傳統(tǒng)關(guān)系數(shù)據(jù)庫(kù)技術(shù)面對(duì)許多新的應(yīng)用需求[1], 如計(jì)算機(jī)輔助設(shè)計(jì)與制造、 軟件工程、 超大規(guī)模集成電路設(shè)計(jì)、 計(jì)算機(jī)體系結(jié)構(gòu)、 多媒體設(shè)計(jì)、 工程設(shè)計(jì)和地理信息系統(tǒng)等領(lǐng)域顯得無(wú)能為力。這些語(yǔ)義豐富的應(yīng)用表現(xiàn)為: 數(shù)據(jù)密集、 復(fù)雜的數(shù)據(jù)結(jié)構(gòu)和類(lèi)型、 多媒體數(shù)據(jù)、 長(zhǎng)事務(wù)、 版本約束和模式演進(jìn)等, 所以被稱(chēng)為非常規(guī)應(yīng)用[2]。因?yàn)樽陨淼闹T多缺陷, 傳統(tǒng)的關(guān)系數(shù)據(jù)庫(kù)無(wú)法滿足這些應(yīng)用的需求。隨著各種非常規(guī)應(yīng)用對(duì)數(shù)據(jù)庫(kù)要求的不斷提高以及數(shù)據(jù)庫(kù)技術(shù)的發(fā)展, 產(chǎn)生了一種用來(lái)支持非常規(guī)應(yīng)用的領(lǐng)域, 融合了面向?qū)ο蟮姆椒ê蛿?shù)據(jù)庫(kù)技術(shù)的新一代數(shù)據(jù)庫(kù)系統(tǒng)----面向?qū)ο髷?shù)據(jù)庫(kù)。
對(duì)象標(biāo)識(shí)符是標(biāo)識(shí)對(duì)象在全系統(tǒng)唯一的符號(hào)。對(duì)客觀世界的任何一個(gè)實(shí)體一致地處理成一個(gè)對(duì)象就簡(jiǎn)化了用戶對(duì)客觀世界的看法。一個(gè)對(duì)象通過(guò)某些語(yǔ)義關(guān)系遞歸地與任何其他對(duì)象相聯(lián)系[3-6]。在面向?qū)ο蟮南到y(tǒng)中, 一個(gè)對(duì)象與其他對(duì)象之間的關(guān)系是通過(guò)某些對(duì)象的引用 (Reference)表示的: “引用是對(duì)象的一些屬性值”。一個(gè)對(duì)象的引用是作為對(duì)象的對(duì)象標(biāo)識(shí)符實(shí)現(xiàn)的。對(duì)象標(biāo)識(shí)符是通過(guò)對(duì)象的一個(gè)復(fù)雜網(wǎng)絡(luò)進(jìn)行導(dǎo)航的一種簡(jiǎn)便方法。
在面向?qū)ο蟮恼Z(yǔ)言和系統(tǒng), 以及面向?qū)ο蟮母拍畹陌l(fā)展過(guò)程中沒(méi)有考慮規(guī)模很大的數(shù)據(jù)庫(kù), 即, 它們假定所有的對(duì)象都駐留在一個(gè)大的虛擬存儲(chǔ)中。這指的是對(duì)象標(biāo)識(shí)符已經(jīng)是用作確定對(duì)象的唯一方法; 選擇任意一組滿足任意搜索謂詞組合的對(duì)象查詢概念, 對(duì)于面向?qū)ο笳Z(yǔ)言和系統(tǒng)設(shè)計(jì)者來(lái)說(shuō)已是一種格格不入的屬性和方法構(gòu)成的對(duì)象狀態(tài)[7-9], 而非與對(duì)象相聯(lián)系的一組方法操縱對(duì)象的狀態(tài)。對(duì)象的屬性類(lèi)似于關(guān)系數(shù)據(jù)庫(kù)中一個(gè)關(guān)系元組的屬性, 方法類(lèi)似于某些層次數(shù)據(jù)庫(kù)系統(tǒng)中的過(guò)程(procedures)屬性說(shuō)明, 除了屬性名以外可以包括語(yǔ)義完整性約束。完整性約束包括唯一性、 允許空值(NULL)存在以及屬性域等。
圖1 復(fù)合對(duì)象
一個(gè)屬性域是屬性值所屬的類(lèi): 它是類(lèi)型檢查的基礎(chǔ)。屬性域可以是任何類(lèi), 包括基本類(lèi)(如整數(shù)、 字符串等)。進(jìn)一步, 一個(gè)屬性可具有一個(gè)單值或在其域內(nèi)的一組單值。在核心模型中, 一個(gè)屬性可以有一組值, 這組值屬于同一個(gè)根的用戶類(lèi)等級(jí)上。圖1中的運(yùn)載工具(Vehicle)類(lèi)具有4個(gè)屬性: 標(biāo)示符(id)、 重量(weight)、 驅(qū)動(dòng)(drivertrain)和制造商(manufacturer)。屬性id和weight的域是基本類(lèi), 包括: 整數(shù)和字符串。但屬性drivetrain和manufacturer的域卻分別是VehicleDrivetrain和Company類(lèi)。而Manufacturer的屬性值可以是用戶指定的域Company的一些實(shí)例或Company類(lèi)的任何子類(lèi)。類(lèi)似地, drivetrain屬性值可以是根在VehicleDrivetrain類(lèi)的類(lèi)等級(jí)中的任何類(lèi)的一些實(shí)例。
開(kāi)發(fā)途徑主要?dú)w納為4類(lèi): 數(shù)據(jù)庫(kù)系統(tǒng)生成器、 對(duì)象管理器、 擴(kuò)展的關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)和面向?qū)ο蟮臄?shù)據(jù)庫(kù)設(shè)計(jì)語(yǔ)言。下面闡明OODBMS(Object Oriented Data Base Management System)的開(kāi)發(fā)策略。
這種途徑開(kāi)發(fā)的系統(tǒng)通常只有一個(gè)有限的模型, 可以把這樣的系統(tǒng)看成是對(duì)現(xiàn)存文件系統(tǒng)的擴(kuò)充[10], 它支持對(duì)象的持久儲(chǔ)存, 也許還支持多用戶的并發(fā)控制, 但不提供查詢語(yǔ)言。實(shí)際上, 面向?qū)ο髷?shù)據(jù)庫(kù)系統(tǒng)通常被當(dāng)作一個(gè)完整的存儲(chǔ)管理層。開(kāi)發(fā)對(duì)象管理器的最主要優(yōu)點(diǎn)在于: 一個(gè)OODBMS的高級(jí)特征通常不必花費(fèi)時(shí)間和代價(jià)考慮, 這很適合于對(duì)簡(jiǎn)單對(duì)象進(jìn)行管理的場(chǎng)合。但在更多情況下, 對(duì)象管理器僅被當(dāng)作一個(gè)OODBMS完整的核心模塊。MNEME就是這樣的一個(gè)系統(tǒng), 由美國(guó)Massachuseus大學(xué)開(kāi)發(fā)的。
筆者的目標(biāo)是開(kāi)發(fā)一個(gè)比較完善的OODBMS, 不僅具有OODB的特征和功能, 同時(shí)還要適合工程管理的需要。畢竟一個(gè)對(duì)象管理器的功能不完善[11-13], 應(yīng)用非常有限。該系統(tǒng)實(shí)現(xiàn)的功能包含了對(duì)象管理器的功能, 系統(tǒng)的對(duì)象管理子系統(tǒng)是整個(gè)系統(tǒng)的核心模塊。筆者將與上層結(jié)構(gòu)緊密結(jié)合, 同時(shí)也便于修改某些結(jié)構(gòu)以便更加適合[14]。所以采用該方法縮短了開(kāi)發(fā)周期, 減輕了課題的工作量, 而且隨著HBase的不斷升級(jí), OODBMS也可以得到更多的支持。系統(tǒng)的上層特征, 即面向?qū)ο筇卣? 和C++密切相關(guān), 對(duì)OODBMS來(lái)說(shuō), C++不僅是一種宿主語(yǔ)言, 許多的對(duì)象特征都是借用C++的機(jī)制體現(xiàn)的, C++目前是本系統(tǒng)向用戶提供的唯一開(kāi)發(fā)環(huán)境。總之, 該系統(tǒng)將HBase和C++緊密結(jié)合, 借用二者的許多功能, 簡(jiǎn)化了系統(tǒng)的開(kāi)發(fā)工作。
圖2展示了系統(tǒng)的總體結(jié)構(gòu), 兩層結(jié)構(gòu)組成其主要框架, 上層基于OODBMS, 數(shù)據(jù)對(duì)象的語(yǔ)義特性是通過(guò)面向?qū)ο蟮乃枷牒透拍蠲枋龅?。下層基于關(guān)系表結(jié)構(gòu)的特征, 把關(guān)系的表結(jié)構(gòu)抽象成類(lèi)。同時(shí)把關(guān)系表中的元組抽象成實(shí)例對(duì)象。關(guān)系表中的屬性定義域可以是任意類(lèi), 其中作為上下層進(jìn)行數(shù)據(jù)交換的場(chǎng)所就是對(duì)象緩沖區(qū)。
圖2 系統(tǒng)總體結(jié)構(gòu)
3個(gè)子系統(tǒng)構(gòu)成了上層結(jié)構(gòu), 他們分別是事務(wù)處理子系統(tǒng)、 用戶管理子系統(tǒng)和對(duì)象管理子系統(tǒng), 現(xiàn)分別說(shuō)明如下。
1) 用戶接口子系統(tǒng)。系統(tǒng)提供兩種形式的用戶界面, 終端用戶可通過(guò)用戶界面直接操作數(shù)據(jù)庫(kù)數(shù)據(jù); 編程用戶可在C++語(yǔ)言中嵌套數(shù)據(jù)庫(kù)操作語(yǔ)言。
2) 對(duì)象管理子系統(tǒng)。對(duì)象管理子系統(tǒng)由4個(gè)模塊組成: 類(lèi)對(duì)象管理模塊、 實(shí)例對(duì)象管理模塊、 消息對(duì)象管理模塊和版本對(duì)象管理模塊。類(lèi)對(duì)象管理模塊是OODBMS的重要組成部分, 其主要功能有: 類(lèi)模式定義、 修改查詢和刪除, 類(lèi)模式提供用戶定義新類(lèi)的工具; 類(lèi)模式查詢功能為用戶查詢模式結(jié)構(gòu)提供了方便; 類(lèi)模式修改使用戶能動(dòng)態(tài)修改類(lèi)屬性和組成結(jié)構(gòu); 類(lèi)模式刪除模塊則幫助用戶動(dòng)態(tài)地刪除系統(tǒng)中已經(jīng)定義的類(lèi)模式。每個(gè)實(shí)例對(duì)象標(biāo)識(shí)的前16 bit為該對(duì)象所屬類(lèi)標(biāo)識(shí), 后16 bit代表該類(lèi)的實(shí)例化對(duì)象的個(gè)數(shù)(從0開(kāi)始)。該設(shè)計(jì)方法不但保證了對(duì)象標(biāo)識(shí)的唯一性, 同時(shí)還可從對(duì)象標(biāo)識(shí)中提取該類(lèi)標(biāo)識(shí)等信息。類(lèi)標(biāo)識(shí)創(chuàng)建的框圖如圖3所示。實(shí)例對(duì)象標(biāo)識(shí)創(chuàng)建的框圖如圖4所示, 它是由各類(lèi)的最新產(chǎn)生實(shí)例對(duì)象標(biāo)識(shí)oid添加而成, 從文件中可以得到系統(tǒng)各類(lèi)的標(biāo)識(shí)和其實(shí)例對(duì)象標(biāo)識(shí)的最新值, 從而可以創(chuàng)建新的類(lèi)對(duì)象標(biāo)識(shí)和實(shí)例對(duì)象標(biāo)識(shí)。DDL(Data Definition Language)對(duì)面向?qū)ο髷?shù)據(jù)庫(kù)的模式進(jìn)行說(shuō)明。DDL必須支持的語(yǔ)義是OCDB(Original Content Database)數(shù)據(jù)模型。
圖3 類(lèi)標(biāo)識(shí)創(chuàng)建框圖 圖4 實(shí)例對(duì)象標(biāo)識(shí)創(chuàng)建框圖
3) 事務(wù)處理子系統(tǒng)。事務(wù)處理子系統(tǒng)的主要功能是并發(fā)和恢復(fù), 在事務(wù)開(kāi)始和結(jié)束時(shí), 保證數(shù)據(jù)庫(kù)的一致性和完整性。筆者設(shè)計(jì)的OODBMS需要實(shí)現(xiàn)事務(wù)管理的并發(fā)性和長(zhǎng)事務(wù)。該子系統(tǒng)還未實(shí)現(xiàn), 故不在討論范圍。
4) 數(shù)據(jù)存儲(chǔ)管理子系統(tǒng)。數(shù)據(jù)存儲(chǔ)管理子系統(tǒng)主要由對(duì)象緩沖區(qū)管理模塊和數(shù)據(jù)存儲(chǔ)模塊組成。對(duì)象緩沖區(qū)是對(duì)象存在的空間, 而數(shù)據(jù)存儲(chǔ)模塊則把存在對(duì)象緩沖區(qū)的對(duì)象變?yōu)槎M(jìn)制數(shù)據(jù)存儲(chǔ)在物理空間, 從而實(shí)現(xiàn)對(duì)象的快速存取。
對(duì)象緩沖區(qū)管理是OODBMS的核心部分, 負(fù)責(zé)對(duì)象在對(duì)象工作區(qū)的表示和組織、 對(duì)象在主存和輔存之間的轉(zhuǎn)移以及對(duì)象工作區(qū)的管理。該系統(tǒng)是在HBASE內(nèi)核基礎(chǔ)上實(shí)現(xiàn)的, 其主要功能如下:
1) 實(shí)現(xiàn)對(duì)象工作區(qū)的自動(dòng)管理;
2) 實(shí)現(xiàn)對(duì)象在工作區(qū)和物理空間的調(diào)入調(diào)出。
在實(shí)現(xiàn)上述操作原語(yǔ)時(shí)將涉及到內(nèi)存對(duì)象表的存取和操作, 下面給出內(nèi)存對(duì)象表的實(shí)現(xiàn)過(guò)程[15]。內(nèi)存對(duì)象表存放的是所有調(diào)入對(duì)象的存取信息, 每個(gè)表結(jié)點(diǎn)信息包括對(duì)象名, 對(duì)象標(biāo)識(shí), 對(duì)象所在對(duì)象工作區(qū)的地址, 對(duì)象在內(nèi)存被引用的次數(shù)和回寫(xiě)標(biāo)志等。對(duì)象在內(nèi)存被引用的次數(shù)是指該對(duì)象被內(nèi)存中的其他對(duì)象引用的總次數(shù)。在訪問(wèn)內(nèi)存中的對(duì)象時(shí)系統(tǒng)將頻繁存取該內(nèi)存對(duì)象表, 所以必須為該表提供高效的存取手段, 筆者為該表建立了基于對(duì)象工作區(qū)號(hào)的散列表, 該散列表用單鏈表的方法解決沖突, 內(nèi)存對(duì)象表的結(jié)構(gòu)表示如圖5所示。
圖5 內(nèi)存對(duì)象表的結(jié)構(gòu)
以下列出子系統(tǒng)對(duì)內(nèi)存對(duì)象表提供的操作:
slbwlcr()實(shí)現(xiàn)散列表結(jié)點(diǎn)插入操作;
slbwlcz()實(shí)現(xiàn)散列表結(jié)點(diǎn)査找操作;
slbwlsc()實(shí)現(xiàn)散列表結(jié)點(diǎn)刪除操作。
以下說(shuō)明對(duì)象管理子系統(tǒng)的幾個(gè)功能模塊的實(shí)現(xiàn)過(guò)程。
1) Load-Object-In()調(diào)入對(duì)象到對(duì)象工作緩沖區(qū)(見(jiàn)圖6), 該模塊提示用戶輸入對(duì)象文件名, 由文件名得到對(duì)象名和對(duì)象標(biāo)識(shí), 將該對(duì)象登入對(duì)象內(nèi)存表后, 調(diào)用Load-CurrRec()緩沖區(qū)管理函數(shù), 將該對(duì)象的全部信息調(diào)入對(duì)象工作區(qū)。
2) Load-Object-Out()將對(duì)象調(diào)出對(duì)象工作緩沖區(qū)(見(jiàn)圖7), 該模塊在用戶輸入對(duì)象文件名后遍歷內(nèi)存散列表查找該對(duì)象所在對(duì)象工作區(qū)的位置, 然后, 刪除該對(duì)象所在內(nèi)存表上的結(jié)點(diǎn), 同時(shí)執(zhí)行緩沖區(qū)管理函數(shù)Close-WA(), 關(guān)閉對(duì)象所在工作區(qū), 從內(nèi)存中刪除該對(duì)象。
3) 0_Buf_List(), 內(nèi)存對(duì)象列表模塊如圖8所示。系統(tǒng)遍歷內(nèi)存散列表查找出內(nèi)存中的所有對(duì)象, 并將散列表各結(jié)點(diǎn)信息傳入顯示對(duì)話框, 由列表框列出各對(duì)象名及其所在工作區(qū)號(hào)供用戶選擇, 用戶可通過(guò)雙擊選擇顯示各對(duì)象的信息。
圖6 Load_Object_In()的實(shí)現(xiàn) 圖7 Load_Object_Out()的實(shí)現(xiàn) 圖8 0_Buf_List()的實(shí)現(xiàn)
筆者介紹了面向?qū)ο髷?shù)據(jù)庫(kù)的基本概念, 對(duì)OODBMS普遍具有的特性進(jìn)行分析, 將這些特性按重要性、 公認(rèn)性分為不同層次, 以盡早使OODBMS的開(kāi)發(fā)實(shí)現(xiàn)得到理論指導(dǎo)。在此基礎(chǔ)上, 通過(guò)對(duì)POSTGRES95源程序代碼的閱讀, 提出一個(gè)在微機(jī)環(huán)境下的面向?qū)ο蟮臄?shù)據(jù)庫(kù)管理系統(tǒng)OODBMS的設(shè)計(jì)過(guò)程和方法, 并完成了部分模塊功能。得到如下結(jié)果:
1) 在數(shù)據(jù)模型中對(duì)類(lèi)與對(duì)象、 對(duì)象標(biāo)識(shí), 繼承性等面向?qū)ο蟮幕咎卣鬟M(jìn)行了形式化描述, OODBMS的實(shí)現(xiàn)正是基于這種模型;
2) 存儲(chǔ)管理子系統(tǒng)實(shí)現(xiàn)了物理層、 數(shù)據(jù)層和對(duì)象層三層存儲(chǔ)空間結(jié)構(gòu), 在傳統(tǒng)的內(nèi)外兩層結(jié)構(gòu)上增加了對(duì)象層的管理, 實(shí)現(xiàn)了關(guān)系型底層和面向?qū)ο蟮臄?shù)據(jù)模型的良好結(jié)合;
3) 版本管理子系統(tǒng)主要實(shí)現(xiàn)了對(duì)象的各種版本功能, 在實(shí)現(xiàn)版本樹(shù)的基礎(chǔ)上提供了各種版本的操作功能;
4) 查詢管理子系統(tǒng)實(shí)現(xiàn)了面向?qū)ο筇卣骱蛯?dǎo)航式查詢方式, 用戶可以進(jìn)行從根類(lèi)到各實(shí)例對(duì)象信息的查找。
參考文獻(xiàn):
[1]金遠(yuǎn)平. 面向?qū)ο髷?shù)據(jù)庫(kù)系統(tǒng)中方法調(diào)用 [J]. 計(jì)算機(jī)研究與發(fā)展, 1997(2): 143-148.
JIN Yuan-ping. Method Invocation in Object-Oriented Database System [J]. Computer Research and Development, 1997(2): 143-148.
[2]許維平. 面向?qū)ο蠓椒ɡ^承性技術(shù)研究與實(shí)現(xiàn) [J]. 微機(jī)發(fā)展, 1997(6): 32-34.
XU Wei-ping. Object-Oriented Methods Inherited Technology Research and Implementation [J]. Computer Development, 1997(6): 32-34.
[3]陳睿. 面向?qū)ο髷?shù)據(jù)庫(kù)中的次序關(guān)系 [J]. 計(jì)算機(jī)研究與發(fā)展, 1997(1): 19-27.
CHEN Rui. Order Relation in Object-Oriented Database [J]. Computer Research and Development, 1997(1): 19-27.
[4]袁曉東. 面向?qū)ο蠓椒ㄖ械念?lèi)型概念 [J]. 計(jì)算機(jī)研究與發(fā)展, 1997(10): 726-730.
YUAN Xiao-dong. The Type Concept of the Object-Oriented Approach [J]. Computer Research and Development, 1997(10): 726-730.
[5]李天柱. O-O數(shù)據(jù)模型中實(shí)體聯(lián)系的表示方法[J]. 計(jì)算機(jī)研究與發(fā)展, 1997(4): 275-280.
LI Tian-zhu. O-O Data Model Representation of Physical Contact [J]. Computer Research and Development, 1997(4): 275-280.
[6]陳楠. 面向?qū)ο髷?shù)據(jù)庫(kù)技術(shù)的產(chǎn)生與發(fā)展 [J]. 計(jì)算機(jī)時(shí)代, 1997(12): 9-10.
CHEN Nan. Object-Oriented Database Technology Generation and Development [J].The Computer Age, 1997(12): 9-10.
[7]戚成功. 用C++語(yǔ)言實(shí)現(xiàn)OODB中對(duì)象多版本 [J]. 計(jì)算工程與應(yīng)用, 1996(5): 21-25.
QI Cheng-gong. Using C++ Language OODB Objects in Multiple Versions [J]. Computational Engineering and Applications, 1996(5): 21-25.
[8]梁文菲, 黃厚寬. 對(duì)象/關(guān)系映射技術(shù)與面向?qū)ο髷?shù)據(jù)庫(kù)技術(shù)比較分析 [J]. 中國(guó)科技信息, 2006(21): 154-160.
LIANG Wen-fei, HUANG Hou-kuan. Object/Relational Mapping Technology and Comparative Analysis of Object-Oriented Database Technology [J]. China Science and Technology Information, 2006(21): 154-160.
[9]肖剛. 面向?qū)ο髷?shù)據(jù)庫(kù)在教學(xué)信息管理系統(tǒng)中的應(yīng)用 [J]. 硅谷, 2009(6): 79.
XIAO Gang. Object-Oriented Database Application in the Student Information Management System [J]. Silicon Valley, 2009(6): 79.
[10]陸登, 李善平, 鄭春昭. 基于對(duì)象數(shù)據(jù)庫(kù)的擴(kuò)展Java集合框架 [J]. 計(jì)算機(jī)應(yīng)用與軟件, 2011(1): 133-136.
LU Deng, LI Shan-ping, ZHENG Chun-zhao. Object-Based Database to Extend the Java Collections Framework [J]. Computer Applications and Software, 2011(1): 133-136.
[11]左鳴. 對(duì)象數(shù)據(jù)庫(kù)的幾個(gè)主要概念 [J]. 渝州大學(xué)學(xué)報(bào): 自然科學(xué)版, 1998(6): 19-22.
ZUO Ming. A Few Key Concepts of Object Database [J]. Yuzhou University: Natural Science Edition, 1998(6): 19-22.
[12]蘇劍, 沐連順, 張長(zhǎng)巖. 基于面向?qū)ο髷?shù)據(jù)庫(kù)的SCADA測(cè)試系統(tǒng)研究 [J]. 中國(guó)電力, 2000(10): 52-54.
SU Jian, MU Lian-shun, ZHANG Chang-yan. Based on Object-Oriented Database SCADA Test System [J]. China Power, 2000(10): 52-54.
[13]胡金柱, 譚支鵬. 分布式對(duì)象數(shù)據(jù)庫(kù)系統(tǒng)中的對(duì)象管理策略 [J]. 小型微型計(jì)算機(jī)系統(tǒng), 2001(1): 96-99.
HU Jin-zhu, TAN Zhi-peng. Distributed Object Database System Object Management Policy [J]. Mini-Micro Systems, 2001(1): 96-99.
[14]王功明, 關(guān)永, 趙春江, 等. 面向?qū)ο髷?shù)據(jù)庫(kù)發(fā)展和研究 [J]. 計(jì)算機(jī)應(yīng)用研究, 2006(3): 1-4.
WANG Gong-ming, GUAN Yong, ZHAO Chun-jiang, et al. Object-Oriented Database Development and Research [J]. Computer Applications Research, 2006(3): 1-4.
[15]陽(yáng)國(guó)貴, 戰(zhàn)茅. 一個(gè)面向?qū)ο蟮臄?shù)據(jù)庫(kù)ONTOS [J]. 計(jì)算機(jī)工程與應(yīng)用, 1996(6): 1-5.
YANG Guo-gui, ZHAN Mao. An Object-Oriented Database ONTOS [J]. Computer Engineering and Applications, 1996(6): 1-5.