- 相關(guān)推薦
面向?qū)ο髷?shù)據(jù)庫(kù)理論設(shè)想
[論文關(guān)鍵詞】數(shù)據(jù)庫(kù) 面向?qū)ο蟆 ?shù)據(jù)庫(kù)系統(tǒng)
[論文摘要]面向?qū)ο髷?shù)據(jù)庫(kù)系統(tǒng)是為了滿足新的數(shù)據(jù)庫(kù)應(yīng)用需要而產(chǎn)生的新一代數(shù)據(jù)庫(kù)系統(tǒng)。討論和設(shè)計(jì)了面向?qū)ο髷?shù)據(jù)庫(kù)的理論概念和含義,設(shè)計(jì)和構(gòu)建了一個(gè)面向?qū)ο蟮臄?shù)據(jù)庫(kù)系統(tǒng)的理論體系。
隨著應(yīng)用的擴(kuò)展,特別是諸如人工智能等復(fù)雜應(yīng)用的需要,關(guān)系型數(shù)據(jù)庫(kù)已經(jīng)顯得力不從心了,人們迫切希望產(chǎn)生一種新的數(shù)據(jù)庫(kù)解決方案來(lái)適應(yīng)這些復(fù)雜需求。今后,面向?qū)ο蟮臄?shù)據(jù)庫(kù)極有可能是數(shù)據(jù)庫(kù)發(fā)展的方向。
1面向?qū)ο髷?shù)據(jù)庫(kù)模型
1.1核心概念
1.i .1對(duì)象與對(duì)象標(biāo)識(shí)
對(duì)象,是現(xiàn)實(shí)世界中實(shí)體的抽象,是數(shù)據(jù)和操作的集合,是持久化到數(shù)據(jù)庫(kù)中的最小的存儲(chǔ)單位。
這里的對(duì)象其實(shí)與一般的面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言中的對(duì)象并沒(méi)有很大不同。但是,這里的對(duì)象是持久性的。數(shù)據(jù)庫(kù)中的對(duì)象是數(shù)據(jù)記錄的最小單位,也就是說(shuō),數(shù)據(jù)庫(kù)中至少存在一個(gè)對(duì)象才有意義。當(dāng)然,對(duì)象中還可以有對(duì)象的屬性,方法等,但一個(gè)對(duì)象必須是完整的。
對(duì)象標(biāo)識(shí),指的是唯一標(biāo)定一個(gè)對(duì)象的標(biāo)志,一個(gè)對(duì)象對(duì)應(yīng)一個(gè)標(biāo)識(shí)符。在現(xiàn)實(shí)世界中,對(duì)象可能會(huì)隨著時(shí)間的推移而發(fā)生改變,但對(duì)象標(biāo)識(shí)不應(yīng)該改變,因此,對(duì)象標(biāo)識(shí)自對(duì)象生成后就不應(yīng)該再改變,否則無(wú)法使用對(duì)象標(biāo)識(shí)唯一確定一個(gè)對(duì)象了。即使兩個(gè)對(duì)象的屬性和方法以及狀態(tài)完全一致,只要其對(duì)象標(biāo)識(shí)不同,則兩者是不同的對(duì)象。
對(duì)象標(biāo)識(shí)一般有以下三種實(shí)現(xiàn)方式川(e}‘一r}sz}:
(1)值標(biāo)識(shí),使用對(duì)象的某一屬性作為其對(duì)象標(biāo)識(shí),不推薦此方式。
(2)名標(biāo)識(shí),使用一個(gè)名字來(lái)表示標(biāo)識(shí)。推薦此種方式。
(3)內(nèi)標(biāo)識(shí),以上兩種方式是由用戶建立的,而這種方式是由系統(tǒng)內(nèi)部建立的,不具有任何實(shí)際含義,且只有系統(tǒng)才可以“觀察”此類對(duì)象標(biāo)識(shí)。
另外,在對(duì)象數(shù)據(jù)庫(kù)中,標(biāo)識(shí)是永久不變的,即具有永久持久性,這和面向?qū)ο蟪绦蛑械膶?duì)象標(biāo)識(shí)不一樣,面向?qū)ο蟪绦蛑械膶?duì)象標(biāo)識(shí)只具有對(duì)象內(nèi)持久性。
1. 1.2封裝
抽象是對(duì)象的外部界面與內(nèi)部實(shí)現(xiàn)之間實(shí)行清晰隔離的一種抽象,外部與對(duì)象的通信只能通過(guò)消息來(lái)實(shí)現(xiàn)[2)(e3o6-r}s6>。在對(duì)象數(shù)據(jù)庫(kù)中,表現(xiàn)為對(duì)象的私有和保護(hù)成員只能通過(guò)其方法來(lái)查詢得到,而公有成員可以直接查詢。這種方式的優(yōu)點(diǎn)是對(duì)象被封裝成了自含的單元,對(duì)象只接受已定義好的操作,其他對(duì)象不能直接訪問(wèn)對(duì)象的非公有成員。缺點(diǎn)是喪失了傳統(tǒng)關(guān)系數(shù)據(jù)庫(kù)中進(jìn)行即席的、按內(nèi)容的查詢,這就不夠方便靈活了,因此,需要做一些改進(jìn)和妥協(xié)。
1 .1 .3類
共享同一屬性和方法集的所有對(duì)象構(gòu)成的對(duì)象類,一個(gè)對(duì)象是一個(gè)類的實(shí)例。在數(shù)據(jù)庫(kù)是一種抽象的數(shù)據(jù)類型,相當(dāng)于關(guān)系數(shù)據(jù)庫(kù)中的一張表。
1. 1.4類層次
這里涉及到繼承的概念,即類可以繼承類,從而具有與父類(或稱超類)的所有符合條件(只保護(hù)類型或公有類型)的屬性和方法。這是關(guān)系數(shù)據(jù)庫(kù)中所沒(méi)有的。
1. 1.5消息
指的是對(duì)象的方法調(diào)用。通過(guò)對(duì)象的方法調(diào)用可以訪問(wèn)對(duì)象的屬性數(shù)據(jù)和執(zhí)行業(yè)務(wù)邏輯。這也是關(guān)系數(shù)據(jù)庫(kù)中沒(méi)有的。
1 .2對(duì)象與對(duì)象標(biāo)識(shí)
1 .2. 1對(duì)象結(jié)構(gòu)
包括兩部分,一個(gè)是屬性集合,一個(gè)是方法集合。屬性集合將用于存儲(chǔ)數(shù)據(jù),方法集合將用于操作數(shù)據(jù)。屬性集合即是對(duì)象的成員變量,其中又可以分為公有類型的成員、私有類型的成員和保護(hù)類型的成員。公有類型的成員可以直接使用查詢語(yǔ)句進(jìn)行查詢,保護(hù)型成員可以在該類的子類的對(duì)象中直接訪問(wèn),私有類型的成員只能在本類的對(duì)象中訪問(wèn),外部對(duì)象只能通過(guò)實(shí)現(xiàn)定義好的方法(即操作)進(jìn)行訪問(wèn)。如果沒(méi)有事先定義好的方法,則外部將無(wú)法訪問(wèn)這些變量的值,這就實(shí)現(xiàn)了對(duì)象的封裝性了。在00數(shù)據(jù)庫(kù)中,對(duì)象結(jié)構(gòu)同樣分成這兩種集合。
1.2.2對(duì)象標(biāo)識(shí)
表示在一個(gè)數(shù)據(jù)庫(kù)中一個(gè)對(duì)象僅有一個(gè)唯一不變的標(biāo)識(shí)就是對(duì)象標(biāo)識(shí)。這個(gè)標(biāo)識(shí)用來(lái)精確定位一個(gè)對(duì)象。在00數(shù)據(jù)庫(kù)中,對(duì)象標(biāo)識(shí)是唯一標(biāo)定這一持久性存儲(chǔ)單元的唯一依據(jù)。其它對(duì)象或方法訪問(wèn)本對(duì)象的屬性和方法必須先找到該對(duì)象的對(duì)象標(biāo)識(shí),否則無(wú)法訪問(wèn)。
1.2.3封裝
即將一個(gè)對(duì)象的屬性和方法封裝在對(duì)象內(nèi)部,外部只能通過(guò)對(duì)象提供的外部接口進(jìn)行訪問(wèn)。這樣就提高了數(shù)據(jù)的安全性和代碼的重用性。
I.3類與類層次
相似對(duì)象的集合稱為類,在數(shù)據(jù)庫(kù)中表現(xiàn)為面向?qū)ο髷?shù)據(jù)庫(kù)模式的集合,它規(guī)定了該類的對(duì)象的數(shù)據(jù)結(jié)構(gòu)規(guī)則和操作規(guī)則。在面向?qū)ο髷?shù)據(jù)庫(kù)中,一個(gè)類相當(dāng)于關(guān)系數(shù)據(jù)庫(kù)中的一張表。它同樣有字段和屬性,甚至還有關(guān)系數(shù)據(jù)庫(kù)表所沒(méi)有的方法。這種思路將使得可以在面向?qū)ο髷?shù)據(jù)庫(kù)中實(shí)現(xiàn)復(fù)雜的邏輯。
類層次表現(xiàn)在繼承上,即父類和子類的層級(jí)關(guān)系。這是為了多態(tài)和數(shù)據(jù)共享的目的。這種思路可以象Java中那樣使用接口和基類來(lái)完成設(shè)計(jì)。
1.4繼承
就像類層次中所說(shuō)的,繼承是為了多態(tài)和數(shù)據(jù)共享的目的,也是面向?qū)ο蟠a重用的重要機(jī)制之一。
I.5滯后聯(lián)編
即實(shí)現(xiàn)了重載的效果,OODBMS不能在編譯時(shí)把操作名聯(lián)編到程序上,必須在運(yùn)行時(shí)根據(jù)需要進(jìn)行抉擇。
1.6對(duì)象的嵌套
是一種設(shè)計(jì)模式—組合。將多個(gè)類的對(duì)象加人到一個(gè)類的屬性中,使之實(shí)現(xiàn)復(fù)雜的功能。
2面向?qū)ο髷?shù)據(jù)庫(kù)語(yǔ)言
ool}B語(yǔ)言用于描述面向?qū)ο髷?shù)據(jù)庫(kù)模式,說(shuō)明并操作類定義和對(duì)象實(shí)例。ooDB語(yǔ)言主要包括對(duì)象定義語(yǔ)言(ODL)和對(duì)象操作語(yǔ)言( OML ),其中對(duì)象操作語(yǔ)言又包括一個(gè)重要子集—對(duì)象查詢語(yǔ)言(OQL) t3)。OODB語(yǔ)言一般應(yīng)該具備下列功能。
2. 1類的定義與操作
包括定義、生成、存取、修改和撤銷類。其中類的定義包括定義類的屬性,操作特征、繼承性與約束等。
2. 2操作/方法的定義
面向?qū)ο髷?shù)據(jù)庫(kù)語(yǔ)言可以用來(lái)定義操作/方法,在操作實(shí)現(xiàn)中,語(yǔ)言的命令可用于操作對(duì)象局部數(shù)據(jù)結(jié)構(gòu)。
2. 3對(duì)象的查詢
OODB語(yǔ)言可以用于操作(包括生成、存取、修改與刪除)實(shí)例對(duì)象。對(duì)于對(duì)象的存取—查詢部分,OODB語(yǔ)言可以直接查詢對(duì)象個(gè)公有成員而不必向每一個(gè)對(duì)象“—單”發(fā)送消息。而對(duì)于非公有成員,則只能通過(guò)發(fā)送消息來(lái)實(shí)現(xiàn)存取、修改與刪除了。通過(guò)發(fā)送消息的查詢效率可能會(huì)很低,因此對(duì)于一些經(jīng)常要查詢的數(shù)據(jù)應(yīng)該盡量定義為公有類型。
3面向?qū)ο髷?shù)據(jù)庫(kù)模式
3. 1模式的一致性
(1)唯一性約束:即同一模式中所有類的名字必須唯一、類中屬性名和方法名必須唯一。
(2)存在性約束:每個(gè)被引用的類必須在模式中定義、某操作代碼中調(diào)用的操作不需給出說(shuō)明、每一個(gè)說(shuō)明的操作必須存在一個(gè)現(xiàn)實(shí)程序。
(3)子類型約束:子類和父類(或超類)不能有環(huán)、不能有多繼承(向Java學(xué)習(xí))、單一超類必須加以說(shuō)明。
3. 2模式演進(jìn)操作
主要包括以下幾個(gè)部分:
(功類集的改變
(2)已有類的成分的改變
(3)子類/超類聯(lián)系的改變
面向?qū)ο髷?shù)據(jù)庫(kù)將有可能成為以后數(shù)據(jù)庫(kù)發(fā)展的方向。我國(guó)目前在操作系統(tǒng)和數(shù)據(jù)庫(kù)系統(tǒng)方面是嚴(yán)重的依賴于他國(guó)的,沒(méi)有自己成功的作品(包括商業(yè)上的成功),特別是在面向?qū)ο髷?shù)據(jù)庫(kù)領(lǐng)域幾乎是一個(gè)空白。因此,我們有機(jī)會(huì)填補(bǔ)這個(gè)空白。
【面向?qū)ο髷?shù)據(jù)庫(kù)理論設(shè)想】相關(guān)文章:
面向?qū)ο蟮那度胧较到y(tǒng)設(shè)計(jì)方法03-18
面向?qū)ο笤O(shè)計(jì)在樓宇控制系統(tǒng)中的應(yīng)用03-18
地方文獻(xiàn)數(shù)據(jù)庫(kù)檢索系統(tǒng)建立之設(shè)想03-18
采用VC 面向?qū)ο蠹夹g(shù)構(gòu)建巖土工程勘察軟件03-19
面向?qū)ο蟪绦蛟O(shè)計(jì)技術(shù)在金融信息系統(tǒng)的應(yīng)用03-07
淺論面向?qū)ο蟪绦蛟O(shè)計(jì)技術(shù)在金融信息系統(tǒng)的應(yīng)用03-01
面向?qū)ο髉etri網(wǎng)防空C3I系統(tǒng)建模12-26