考核要求:達到“識記”
層次知識點:基本概念
8.3.1 面向?qū)ο髷?shù)據(jù)模型的基本概念
(1)對象:客觀世界中的實體經(jīng)過抽象稱為問題空間中的對象,它是對一組信息及其操作的描述。
對象由三部分組成:一組變量;一組消息;一組方法
(2)類:是具有相同的變量名和類型、相同的消息和使用相同的方法的對象的集合。
類中的每個對象稱為類的實例
(3)繼承性:允許不同類的對象共享他們公共部分的結(jié)構(gòu)和特性。
單重繼承性:一個子類繼承某一個超類的結(jié)構(gòu)和特性,稱為單重繼承性。
多重繼承性:一個子類繼承多個超類的結(jié)構(gòu)和特性,稱為多重繼承性。
(4)對象標識:與對象的物理存儲位置無關(guān),也與數(shù)據(jù)的描述方式和值無關(guān)的一個標識。
在對象創(chuàng)建的瞬間,由系統(tǒng)賦給每個對象一個“標識”,即系統(tǒng)內(nèi)的一個的指針,在對象生存期內(nèi),這個標識不可改變。
在面向?qū)ο笳Z言中,對象標識是一個指針一級的概念
(5)對象包含:不同類的對象之間存在的包含關(guān)系稱為對象包含,包含其他對象的對象稱為復(fù)合對象。
Notice:繼承是" is a "聯(lián)系,包含是"is part of"聯(lián)系。比如卡車是車的子類(繼承),車包含輪胎(包含)
8.3.2 持久化程序設(shè)計語言
OOPL:面向?qū)ο笳Z言對現(xiàn)有的OOPL進行擴充,使之能處理數(shù)據(jù)庫,這樣的OOPL稱為持久性程序設(shè)計語言。
持久化語言與嵌入式SQL語言的不同:
(1)格式轉(zhuǎn)換對程序員透明;
(2)程序員可直接操縱持久數(shù)據(jù)。
(具體內(nèi)容可參見教材P211)
一些基本概念:
持久數(shù)據(jù):是指創(chuàng)建這些數(shù)據(jù)的程序運行終止后數(shù)據(jù)依然存在于系統(tǒng)之中。
持久指針:持久化指針不像內(nèi)存中的指針,它在程序執(zhí)行后及數(shù)據(jù)重組后仍保持有效。 在概念上,持久指針可以看作是數(shù)據(jù)庫中指向?qū)ο蟮闹羔槨?BR> 查找數(shù)據(jù)庫對象的三種方法:
(1)根據(jù)對象名找對象;
(2)根據(jù)對象標識找對象;
(3)將對象按聚集形式存放,然后利用程序循環(huán)找所需對象。
8.3.3 持久化C++系統(tǒng)
C++中可以說明一個稱為Persistent_Object(持久對象)的類及其屬性和方法來支持持久性, 而其他的類作為該類的子類繼承其持久性。
ODMG(Object DataBase Management Group)對C++的擴充有兩個方面:
C++對象定義語言(ODL)
C++對象操縱語言(OML)
總結(jié):
在OO技術(shù)與DB技術(shù)相結(jié)合過程中,采取了兩條不同的途徑:
一條途徑是在傳統(tǒng)的關(guān)系模型基礎(chǔ)上,提供復(fù)合數(shù)據(jù)類型,擴充SQL語言使之能處理新的數(shù)據(jù)結(jié)構(gòu)。這種模型稱為對象關(guān)系模型,還不能說是嚴格意義上的面向?qū)ο髷?shù)據(jù)模型。但是用戶容易接受,易于推廣。
另一條途徑是在OOPL C++基礎(chǔ)上進行擴充,能操作持久數(shù)據(jù),處理數(shù)據(jù)庫,形成持久化C++系統(tǒng),即OODBS.但較難提供對說明性查詢的支持,因此推廣使用難度較大。
層次知識點:基本概念
8.3.1 面向?qū)ο髷?shù)據(jù)模型的基本概念
(1)對象:客觀世界中的實體經(jīng)過抽象稱為問題空間中的對象,它是對一組信息及其操作的描述。
對象由三部分組成:一組變量;一組消息;一組方法
(2)類:是具有相同的變量名和類型、相同的消息和使用相同的方法的對象的集合。
類中的每個對象稱為類的實例
(3)繼承性:允許不同類的對象共享他們公共部分的結(jié)構(gòu)和特性。
單重繼承性:一個子類繼承某一個超類的結(jié)構(gòu)和特性,稱為單重繼承性。
多重繼承性:一個子類繼承多個超類的結(jié)構(gòu)和特性,稱為多重繼承性。
(4)對象標識:與對象的物理存儲位置無關(guān),也與數(shù)據(jù)的描述方式和值無關(guān)的一個標識。
在對象創(chuàng)建的瞬間,由系統(tǒng)賦給每個對象一個“標識”,即系統(tǒng)內(nèi)的一個的指針,在對象生存期內(nèi),這個標識不可改變。
在面向?qū)ο笳Z言中,對象標識是一個指針一級的概念
(5)對象包含:不同類的對象之間存在的包含關(guān)系稱為對象包含,包含其他對象的對象稱為復(fù)合對象。
Notice:繼承是" is a "聯(lián)系,包含是"is part of"聯(lián)系。比如卡車是車的子類(繼承),車包含輪胎(包含)
8.3.2 持久化程序設(shè)計語言
OOPL:面向?qū)ο笳Z言對現(xiàn)有的OOPL進行擴充,使之能處理數(shù)據(jù)庫,這樣的OOPL稱為持久性程序設(shè)計語言。
持久化語言與嵌入式SQL語言的不同:
(1)格式轉(zhuǎn)換對程序員透明;
(2)程序員可直接操縱持久數(shù)據(jù)。
(具體內(nèi)容可參見教材P211)
一些基本概念:
持久數(shù)據(jù):是指創(chuàng)建這些數(shù)據(jù)的程序運行終止后數(shù)據(jù)依然存在于系統(tǒng)之中。
持久指針:持久化指針不像內(nèi)存中的指針,它在程序執(zhí)行后及數(shù)據(jù)重組后仍保持有效。 在概念上,持久指針可以看作是數(shù)據(jù)庫中指向?qū)ο蟮闹羔槨?BR> 查找數(shù)據(jù)庫對象的三種方法:
(1)根據(jù)對象名找對象;
(2)根據(jù)對象標識找對象;
(3)將對象按聚集形式存放,然后利用程序循環(huán)找所需對象。
8.3.3 持久化C++系統(tǒng)
C++中可以說明一個稱為Persistent_Object(持久對象)的類及其屬性和方法來支持持久性, 而其他的類作為該類的子類繼承其持久性。
ODMG(Object DataBase Management Group)對C++的擴充有兩個方面:
C++對象定義語言(ODL)
C++對象操縱語言(OML)
總結(jié):
在OO技術(shù)與DB技術(shù)相結(jié)合過程中,采取了兩條不同的途徑:
一條途徑是在傳統(tǒng)的關(guān)系模型基礎(chǔ)上,提供復(fù)合數(shù)據(jù)類型,擴充SQL語言使之能處理新的數(shù)據(jù)結(jié)構(gòu)。這種模型稱為對象關(guān)系模型,還不能說是嚴格意義上的面向?qū)ο髷?shù)據(jù)模型。但是用戶容易接受,易于推廣。
另一條途徑是在OOPL C++基礎(chǔ)上進行擴充,能操作持久數(shù)據(jù),處理數(shù)據(jù)庫,形成持久化C++系統(tǒng),即OODBS.但較難提供對說明性查詢的支持,因此推廣使用難度較大。