面向?qū)ο髷?shù)據(jù)庫系統(tǒng)支持面向?qū)ο髷?shù)據(jù)模型,簡稱OO模型。也就是說,一個面向?qū)ο髷?shù)據(jù)庫系統(tǒng)是一個持久的、可共享的對象庫的存儲和管理者;而一個對象庫是由一個OO模型所定義的對象的集合體。
面向?qū)ο髷?shù)據(jù)庫系統(tǒng)目前尚缺少關(guān)于OO模型的統(tǒng)一的規(guī)范說明,OO模型缺少一個統(tǒng)一的嚴(yán)格的定義,但是有關(guān)OO模型的許多和新概念已取得了共識。
1 OO模型
一個OO模型是用面向?qū)ο笥^點(diǎn)來描述現(xiàn)實(shí)世界實(shí)體的邏輯組織、對象間限制、聯(lián)系等的模型。一系列面向?qū)ο蠛诵母拍顦?gòu)成了OO模型的基礎(chǔ)。
OO模型的核心概念主要有:
(1) 對象和對象標(biāo)識:現(xiàn)實(shí)世界的任一實(shí)體都被統(tǒng)一地模型化為一個對象,每個對象有一個惟一的標(biāo)識,稱為對象標(biāo)識(OID)。OID與關(guān)系數(shù)據(jù)庫中碼的概念,以及部分系統(tǒng)中支持的記錄標(biāo)識、元組標(biāo)識有本質(zhì)的區(qū)別。OID識獨(dú)立于值、系統(tǒng)全局惟一的。對象通常與實(shí)際的表識始終保持不變。如一個對象的部分屬性、方法可能會發(fā)生變化,但對象標(biāo)是不會改變。OID是區(qū)分兩個不同的對象的標(biāo)準(zhǔn)。常用OID有以下幾種:
值標(biāo)識:用值來表示標(biāo)識。如關(guān)系數(shù)據(jù)庫忠實(shí)永遠(yuǎn)組的碼值區(qū)分元組。
名標(biāo)識:用一個名字來標(biāo)識。如在一個作用域內(nèi)程序變量一般使用的就是名標(biāo)識。
內(nèi)標(biāo)識:是建立在數(shù)據(jù)模型或程序設(shè)計與嚴(yán)重的不要求用戶給出的標(biāo)示。例如,面向?qū)ο髷?shù)據(jù)庫系統(tǒng)使用的就是內(nèi)標(biāo)識。
(2)封裝:每一個對象是其狀態(tài)與行為的封裝,其中狀態(tài)是該對象一系列屬性值的集合,行為是在對象狀態(tài)上操作的集合,操作也稱為方法。封裝是OO模型的一個關(guān)鍵概念,封裝是對象的外部界面與內(nèi)部實(shí)現(xiàn)之間實(shí)行隔離的抽象,外部與對象的通信是通過“消息”實(shí)現(xiàn)的。
封裝將對象的實(shí)現(xiàn)與對象應(yīng)用相互隔離,允許對操作的實(shí)現(xiàn)算法和數(shù)據(jù)結(jié)構(gòu)進(jìn)行修改而不應(yīng)相應(yīng)用接口;不必修改使用它們的應(yīng)用,這有利于提高數(shù)據(jù)獨(dú)立性。封裝還隱藏了數(shù)據(jù)結(jié)構(gòu)與程序代碼等細(xì)節(jié),增強(qiáng)了應(yīng)用程序的可讀性。
查詢或使用對象屬性值必須通過調(diào)用方法,如在VB中,要將一個文本框的文本內(nèi)容存儲到一個字符串變量中,可以使用下面的語句:
myStr=txtTextBox1.text
其中,“.”被稱為訪問符,通過它可以訪問文本框?qū)ο髏xtTextBox1的 text屬性。
面向?qū)ο髷?shù)據(jù)庫系統(tǒng)目前尚缺少關(guān)于OO模型的統(tǒng)一的規(guī)范說明,OO模型缺少一個統(tǒng)一的嚴(yán)格的定義,但是有關(guān)OO模型的許多和新概念已取得了共識。
1 OO模型
一個OO模型是用面向?qū)ο笥^點(diǎn)來描述現(xiàn)實(shí)世界實(shí)體的邏輯組織、對象間限制、聯(lián)系等的模型。一系列面向?qū)ο蠛诵母拍顦?gòu)成了OO模型的基礎(chǔ)。
OO模型的核心概念主要有:
(1) 對象和對象標(biāo)識:現(xiàn)實(shí)世界的任一實(shí)體都被統(tǒng)一地模型化為一個對象,每個對象有一個惟一的標(biāo)識,稱為對象標(biāo)識(OID)。OID與關(guān)系數(shù)據(jù)庫中碼的概念,以及部分系統(tǒng)中支持的記錄標(biāo)識、元組標(biāo)識有本質(zhì)的區(qū)別。OID識獨(dú)立于值、系統(tǒng)全局惟一的。對象通常與實(shí)際的表識始終保持不變。如一個對象的部分屬性、方法可能會發(fā)生變化,但對象標(biāo)是不會改變。OID是區(qū)分兩個不同的對象的標(biāo)準(zhǔn)。常用OID有以下幾種:
值標(biāo)識:用值來表示標(biāo)識。如關(guān)系數(shù)據(jù)庫忠實(shí)永遠(yuǎn)組的碼值區(qū)分元組。
名標(biāo)識:用一個名字來標(biāo)識。如在一個作用域內(nèi)程序變量一般使用的就是名標(biāo)識。
內(nèi)標(biāo)識:是建立在數(shù)據(jù)模型或程序設(shè)計與嚴(yán)重的不要求用戶給出的標(biāo)示。例如,面向?qū)ο髷?shù)據(jù)庫系統(tǒng)使用的就是內(nèi)標(biāo)識。
(2)封裝:每一個對象是其狀態(tài)與行為的封裝,其中狀態(tài)是該對象一系列屬性值的集合,行為是在對象狀態(tài)上操作的集合,操作也稱為方法。封裝是OO模型的一個關(guān)鍵概念,封裝是對象的外部界面與內(nèi)部實(shí)現(xiàn)之間實(shí)行隔離的抽象,外部與對象的通信是通過“消息”實(shí)現(xiàn)的。
封裝將對象的實(shí)現(xiàn)與對象應(yīng)用相互隔離,允許對操作的實(shí)現(xiàn)算法和數(shù)據(jù)結(jié)構(gòu)進(jìn)行修改而不應(yīng)相應(yīng)用接口;不必修改使用它們的應(yīng)用,這有利于提高數(shù)據(jù)獨(dú)立性。封裝還隱藏了數(shù)據(jù)結(jié)構(gòu)與程序代碼等細(xì)節(jié),增強(qiáng)了應(yīng)用程序的可讀性。
查詢或使用對象屬性值必須通過調(diào)用方法,如在VB中,要將一個文本框的文本內(nèi)容存儲到一個字符串變量中,可以使用下面的語句:
myStr=txtTextBox1.text
其中,“.”被稱為訪問符,通過它可以訪問文本框?qū)ο髏xtTextBox1的 text屬性。