《高級(jí)數(shù)據(jù)庫(kù)技術(shù)與應(yīng)用》教學(xué)課件-ADB(2)-數(shù)據(jù)庫(kù)系統(tǒng)基礎(chǔ)_第1頁(yè)
《高級(jí)數(shù)據(jù)庫(kù)技術(shù)與應(yīng)用》教學(xué)課件-ADB(2)-數(shù)據(jù)庫(kù)系統(tǒng)基礎(chǔ)_第2頁(yè)
《高級(jí)數(shù)據(jù)庫(kù)技術(shù)與應(yīng)用》教學(xué)課件-ADB(2)-數(shù)據(jù)庫(kù)系統(tǒng)基礎(chǔ)_第3頁(yè)
《高級(jí)數(shù)據(jù)庫(kù)技術(shù)與應(yīng)用》教學(xué)課件-ADB(2)-數(shù)據(jù)庫(kù)系統(tǒng)基礎(chǔ)_第4頁(yè)
《高級(jí)數(shù)據(jù)庫(kù)技術(shù)與應(yīng)用》教學(xué)課件-ADB(2)-數(shù)據(jù)庫(kù)系統(tǒng)基礎(chǔ)_第5頁(yè)
已閱讀5頁(yè),還剩115頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

高級(jí)數(shù)據(jù)庫(kù)技術(shù)與應(yīng)用(2)

--第2章數(shù)據(jù)庫(kù)系統(tǒng)基礎(chǔ)湯庸葉小平

計(jì)算機(jī)科學(xué)系協(xié)同軟件研究開發(fā)中心1數(shù)據(jù)庫(kù)系統(tǒng)基礎(chǔ)目錄2.1關(guān)系數(shù)據(jù)庫(kù)基礎(chǔ)2.2面向?qū)ο髷?shù)據(jù)庫(kù)技術(shù)2.3對(duì)象關(guān)系數(shù)據(jù)庫(kù)技術(shù)

2關(guān)系數(shù)據(jù)庫(kù)基礎(chǔ)關(guān)系數(shù)據(jù)模型2.1.2關(guān)系模式設(shè)計(jì)2.1.3事務(wù)處理技術(shù)

3關(guān)系數(shù)據(jù)模型(01)1.關(guān)系數(shù)據(jù)模型基本概念(1)關(guān)系描述(從技術(shù)直觀層面)關(guān)系基本描述:一個(gè)關(guān)系就是一張二維平面表格,每個(gè)關(guān)系都有一個(gè)關(guān)系名。對(duì)關(guān)系的描述稱為關(guān)系模式,不同關(guān)系模式對(duì)應(yīng)不同關(guān)系結(jié)構(gòu)。關(guān)系表示形式為:關(guān)系名(屬性名1,屬性名2,...,屬性名n)4關(guān)系數(shù)據(jù)模型(02)1.關(guān)系數(shù)據(jù)模型基本概念(1)關(guān)系描述(從技術(shù)直觀層面)關(guān)系相關(guān)概念:元組:在一個(gè)二維表中,水平方向的行稱為元組,每一行是一個(gè)元組。元組對(duì)應(yīng)存儲(chǔ)文件中的一個(gè)具體的記錄。屬性列:二維表中垂直方向的列稱為屬性列,每一列有一個(gè)屬性名。域: 屬性的取值范圍,即對(duì)同一屬性的取值所限定的范圍。5關(guān)系數(shù)據(jù)模型(03)1.關(guān)系數(shù)據(jù)模型基本概念(2)關(guān)系概念(從數(shù)學(xué)形式層面)笛卡爾乘積:給定一組域D1,D2,…,Dn(其中允許有相同的),則笛卡兒積定義為:

D1×D2×…×Dn={(d1,d2,…,dn)|di∈Di,i=1,2,…,n}}其中每個(gè)(d1,d2,…,dn)叫作元組;元組中的每個(gè)di叫作分量,di必是Di中的一個(gè)值;當(dāng)n=1時(shí)稱單元組,n=2時(shí),稱二元組,…。

6關(guān)系數(shù)據(jù)模型(04)1.關(guān)系數(shù)據(jù)模型基本概念(2)關(guān)系概念(從數(shù)學(xué)形式層面)關(guān)系的數(shù)學(xué)定義:當(dāng)且僅當(dāng)R是D1×D2×…×Dn的一個(gè)子集,則稱R是D1×D2×…×Dn上的一個(gè)關(guān)系,

記為:R(D1,D2,…,Dn),其中R為關(guān)系名,n為關(guān)系的度,Di為第i個(gè)域名。在關(guān)系對(duì)應(yīng)的二維表中,行對(duì)應(yīng)元組,列對(duì)應(yīng)域。

7關(guān)系數(shù)據(jù)模型(05)元組標(biāo)識(shí)由主鍵描述●超鍵:在給定關(guān)系R中,能夠唯一標(biāo)識(shí)各個(gè)元組的屬性集合稱為關(guān)系R的超鍵(SuperKey)?!窈蜻x鍵:不含多余屬性的超鍵稱為候選鍵(CandidateKey),或者說(shuō)候選鍵是其中任何真子集均不是超鍵的超鍵。候選鍵有時(shí)也稱作鍵(Key)。●主鍵:選定了用于標(biāo)識(shí)的候選鍵稱為主鍵(PrimeKey)。1.關(guān)系數(shù)據(jù)模型基本概念(3)元組標(biāo)識(shí)與關(guān)系間關(guān)聯(lián)8關(guān)系數(shù)據(jù)模型(06)關(guān)系間相互關(guān)聯(lián)由外鍵描述。●外鍵:如果一個(gè)關(guān)系R1的一個(gè)屬性子集S是另一個(gè)關(guān)系R2的主鍵,但不是R1本身的主鍵,則稱S是關(guān)系R1的外鍵(Foreign

Key)。其中,R1稱為依賴關(guān)系,R2稱為參照關(guān)系。1.關(guān)系數(shù)據(jù)模型基本概念(3)元組標(biāo)識(shí)與關(guān)系間關(guān)聯(lián)9關(guān)系數(shù)據(jù)模型(07)●列的同質(zhì)性關(guān)系表中每一列的屬性值都必須為同一類型數(shù)據(jù),來(lái)自同一個(gè)屬性域?!癞惲型蛐躁P(guān)系中不同的屬性列可以出自同一個(gè)域,但不同屬性列應(yīng)當(dāng)有不同屬性名稱?!窳械臒o(wú)序性關(guān)系中屬性是無(wú)序的,即列的次序可以任意交換。由于列的順序無(wú)關(guān)緊要,列順序不同的關(guān)系在邏輯上是同一集合。2.關(guān)系結(jié)構(gòu)基本性質(zhì)10關(guān)系數(shù)據(jù)模型(08)●元組相異性關(guān)系的主體中不允許出現(xiàn)相同的元組。●行的無(wú)序性關(guān)系中不考慮元組之間的順序,元組在關(guān)系中應(yīng)是無(wú)序的,即沒(méi)有行序,這是因?yàn)殛P(guān)系是元組的集合,按集合的定義,集合中的元素?zé)o序。●屬性值原子性關(guān)系中的每一個(gè)屬性值都是不可分解的,不允許出現(xiàn)組合數(shù)據(jù),更不允許“表中有表”。2.關(guān)系結(jié)構(gòu)基本性質(zhì)11關(guān)系數(shù)據(jù)模型(09)基于更新的代數(shù)運(yùn)算建立在傳統(tǒng)集合運(yùn)算之上●插入——集合的并運(yùn)算

設(shè)有同類關(guān)系R、S(即R、S具有相同的關(guān)系模式),則二者的并運(yùn)算定義為:式中“∪”為并運(yùn)算符,t為元組變量,結(jié)果R∪S為一個(gè)新的與R、S同類的關(guān)系,該關(guān)系是由屬于R或?qū)儆赟的元組構(gòu)成的集合。3.關(guān)系運(yùn)算——關(guān)系代數(shù)

①基于更新的代數(shù)運(yùn)算12關(guān)系數(shù)據(jù)模型(10)●刪除——集合的差運(yùn)算設(shè)有同類關(guān)系R、S,則二者的差(Difference)運(yùn)算定義為:式中“-”為差運(yùn)算符,t為元組變量,結(jié)果R-S為一個(gè)新的與R、S同類的關(guān)系,該關(guān)系是由屬于R而且不屬于S的元組構(gòu)成的集合,即在R中減去與S中相同的那些元組。3.關(guān)系運(yùn)算——關(guān)系代數(shù)

①基于更新的代數(shù)運(yùn)算13關(guān)系數(shù)據(jù)運(yùn)算(11)基于查詢需要建立不同于傳統(tǒng)情形的新的集合運(yùn)算●關(guān)系屬性的指定——投影運(yùn)算設(shè)有k元關(guān)系R,其元組變量為tk=<t1,t2,…,tk>,那么關(guān)系R在其分量Ai1,Ai2,…,Ain(n≤k,i1,i2,…,in為1到k之間互不相同的整數(shù))上的投影定義為:

3.關(guān)系運(yùn)算——關(guān)系代數(shù)

基于查詢的代數(shù)運(yùn)算14關(guān)系數(shù)據(jù)模型(12)●關(guān)系元組的選定——選擇運(yùn)算

設(shè)有k元關(guān)系R,條件用一命題公式F表示,則從關(guān)系R中選擇出滿足條件F的行定義為:

3.關(guān)系運(yùn)算——關(guān)系代數(shù)

基于查詢的代數(shù)運(yùn)算15關(guān)系數(shù)據(jù)模型(13)●關(guān)系的集成——廣義笛卡爾乘積運(yùn)算

設(shè)有關(guān)系R、S,其中關(guān)系R有r個(gè)屬性分量、m個(gè)元組,關(guān)系S有s個(gè)屬性分量、n個(gè)元組,則二者的廣義笛卡爾乘積(CartesianProduct)運(yùn)算定義為:3.關(guān)系運(yùn)算——關(guān)系代數(shù)

基于查詢的代數(shù)運(yùn)算16關(guān)系數(shù)據(jù)模型(14)●交運(yùn)算設(shè)有同類關(guān)系R、S,則二者的交(Intersection)運(yùn)算定義為●除法運(yùn)算設(shè)有兩個(gè)關(guān)系T和R,其元數(shù)分別為n和m(n>m>0),則T和R進(jìn)行“除法”運(yùn)算的結(jié)果記P=TR,其中P是一個(gè)元數(shù)為n-m的滿足下述性質(zhì)的最大關(guān)系:P中的每個(gè)元組u與R中每個(gè)元組v所組成的元組(u,v)必在關(guān)系T中。在這里,為了敘述方便,假設(shè)R的屬性為T中的后m個(gè)屬性。3.關(guān)系運(yùn)算——關(guān)系代數(shù)

組合代數(shù)運(yùn)算17關(guān)系數(shù)據(jù)模型(15)●連接運(yùn)算

設(shè)有關(guān)系R、S,θ為算術(shù)比較符,i為R中某一屬性列的編號(hào),j為S中某一屬性列的編號(hào),iθj為一個(gè)算術(shù)比較式。關(guān)系R,S在域i,j上的θ-連接(θ-Join)就是從R和S的笛卡爾乘積中選取滿足條件“iθj”的元組,其定義為:3.關(guān)系運(yùn)算——關(guān)系代數(shù)

組合代數(shù)運(yùn)算18關(guān)系數(shù)據(jù)模型(16)如果在一階謂詞演算表達(dá)式中,變量是以元組為演算單位,就稱其為元組關(guān)系演算(TupleRelationCalculus),其中元組變量表示關(guān)系中的元組,變量取值范圍是整個(gè)關(guān)系?!耜P(guān)系的元組演算表示為了得到關(guān)系操作的元組關(guān)系演算表達(dá)式,需要考慮關(guān)系與謂詞的聯(lián)系。3.關(guān)系運(yùn)算——關(guān)系演算①元組演算19關(guān)系數(shù)據(jù)模型(17)A.由關(guān)系R確定的謂詞P在數(shù)理邏輯中我們知道,關(guān)系可用謂詞表示,n元關(guān)系可以由n元謂詞表示。設(shè)有關(guān)系R,它有元組(r1,r2,…,rm),定義關(guān)系R對(duì)應(yīng)如下一個(gè)謂詞P(x1,x2,…,xn)。當(dāng)t=(r1,r2,…,rm)屬于R時(shí),t為P的成真指派,而其他不在R中的任意元組t則是P的成假指派。即是說(shuō),由關(guān)系R定義一個(gè)謂詞P具有如下性質(zhì):P(t)=T(當(dāng)t在R中);P(t)=F(當(dāng)t不在R中)。3.關(guān)系運(yùn)算——關(guān)系演算①元組演算20關(guān)系數(shù)據(jù)模型(18)B.由謂詞P表示關(guān)系R由于關(guān)系代數(shù)中R是元組集合,一般而言,集合是可以用滿足它的某種特殊性質(zhì)來(lái)刻畫與表示。如果謂詞P表述了關(guān)系R中元組的本質(zhì)特性,就可以將關(guān)系R寫為:R={t|P(t)}這個(gè)公式就建立了關(guān)系(元組集合)的謂詞表示,稱之為關(guān)系演算表達(dá)式。3.關(guān)系運(yùn)算——關(guān)系演算①元組演算21關(guān)系數(shù)據(jù)模型(19)●元組關(guān)系演算的語(yǔ)法元組關(guān)系演算表達(dá)式的嚴(yán)格數(shù)學(xué)描述是由“歸納定義”方式完成的。按照通常的思路,元組演算表達(dá)式是由“關(guān)系演算公式”組成;“關(guān)系演算公式”是由“原子公式”組成。3.關(guān)系運(yùn)算——關(guān)系演算①元組演算22關(guān)系數(shù)據(jù)模型(20)下述三類稱為元組演算原子公式,簡(jiǎn)稱原子公式:A.R(t)是原子公式這里,R是關(guān)系名,t=(r1,r2,…,rm)是元組變量,并且是P的成真指派,此時(shí)R(t)表示命題“t是關(guān)系R中元組”。B.u(i)θv(j)是原子公式這里,u(i)表示元組u的第i個(gè)分量,v(j)表示元組v的第j個(gè)分量,u(i)θv(j)表示命題:“表示u的第i個(gè)分量與u的第j個(gè)分量有關(guān)系θ”。C.u(i)θa是原子公式這里,a是常量,u(i)θa表示命題“u的第i個(gè)分量與常量a有關(guān)系θ”。3.關(guān)系運(yùn)算——關(guān)系演算①元組演算23關(guān)系數(shù)據(jù)模型(21)利用原子公式可以遞歸定義關(guān)系演算公式:A.原子公式是公式。B.如果φ1,φ2是公式,則φ1φ2,φ1φ2,φ1→φ2和?φ1均是公式。C.如果φ是公式,r是φ中自由變?cè)?,則r(φ),r(φ)是公式。D.所有公式由且僅由上述三種方式經(jīng)過(guò)有限次操作生成。3.關(guān)系運(yùn)算——關(guān)系演算①元組演算24關(guān)系數(shù)據(jù)模型(22)有了公式φ的概念,以公式φ作為特性就構(gòu)成一個(gè)有若干元組組成的集合,即關(guān)系R,這種形式的元組集合就稱其為關(guān)系演算表達(dá)式。關(guān)系演算表達(dá)式的一般形式為:{t|φ(t)}其中,φ(t)為公式,t為φ中出現(xiàn)的自由變?cè)jP(guān)系演算表達(dá)式也簡(jiǎn)稱為關(guān)系表達(dá)式或者表達(dá)式。3.關(guān)系運(yùn)算——關(guān)系演算①元組演算25關(guān)系數(shù)據(jù)模型(23)●關(guān)系操作的元組演算表示關(guān)系操作有五種基本操作,它們?cè)陉P(guān)系代數(shù)中分別對(duì)應(yīng)五種基本運(yùn)算,這五種基本運(yùn)算可以用一階謂詞演算中的公式表示。3.關(guān)系運(yùn)算——關(guān)系演算①元組演算26關(guān)系數(shù)據(jù)模型(24)設(shè)有關(guān)系R、S,其謂詞表示為R(t)和S(t),此時(shí)有R∪S={t|R(t)∨S(t)};R–S=(t|R(t)∧?S(t));σF(R)={t|R(t)∧F},其中F是一個(gè)謂詞公式;3.關(guān)系運(yùn)算——關(guān)系演算①元組演算27關(guān)系數(shù)據(jù)模型(25)3.關(guān)系運(yùn)算——關(guān)系演算①元組演算其中t(k)所表示的元組有k個(gè)分量,而t(i)表示t的第i個(gè)分量,u(j)表示u第j個(gè)分量。28關(guān)系數(shù)據(jù)模型(26)3.關(guān)系運(yùn)算——關(guān)系演算②域演算

域關(guān)系演算(DomainRelationCalculus)簡(jiǎn)稱為域演算,它是關(guān)系演算的另外一種形式。域關(guān)系和元組關(guān)系演算都建立在謂詞演算之上,同屬于關(guān)系演算范疇。域關(guān)系和元組關(guān)系演算的不同之處首先在于,謂詞表達(dá)式中謂詞變?cè)煌M演算以元組為變?cè)?,域演算以元組的分量為變?cè)?,由于元組分量是在相應(yīng)屬性域內(nèi)變化,所以也將元組變?cè)暈橛蜃冊(cè)?,相?yīng)的謂詞公式就表示了屬性域間關(guān)系,也就是域關(guān)系的由來(lái);其次在于元組變?cè)淖兓秶鸀檎麄€(gè)關(guān)系,域變?cè)淖兓秶悄硞€(gè)屬性域。29關(guān)系數(shù)據(jù)模型(27)3.關(guān)系運(yùn)算——關(guān)系演算②域演算

域關(guān)系演算(DomainRelationCalculus)簡(jiǎn)稱為域演算,它是關(guān)系演算的另外一種形式。域關(guān)系和元組關(guān)系演算都建立在謂詞演算之上,同屬于關(guān)系演算范疇。域關(guān)系和元組關(guān)系演算的不同之處首先在于,謂詞表達(dá)式中謂詞變?cè)煌M演算以元組為變?cè)?,域演算以元組的分量為變?cè)?,由于元組分量是在相應(yīng)屬性域內(nèi)變化,所以也將元組變?cè)暈橛蜃冊(cè)?,相?yīng)的謂詞公式就表示了屬性域間關(guān)系,也就是域關(guān)系的由來(lái);其次在于元組變?cè)淖兓秶鸀檎麄€(gè)關(guān)系,域變?cè)淖兓秶悄硞€(gè)屬性域。30關(guān)系數(shù)據(jù)模型(28)3.關(guān)系運(yùn)算——關(guān)系演算②域演算

域演算表達(dá)式的一般形式為:R={t1,t2,…,tk|P(t1,t2,…,tk)}其中,t1,t2,…,tk是域變量,P(t1,t2,…,tk)是域演算表達(dá)式。31關(guān)系數(shù)據(jù)模型(29)4.完整性約束(1)實(shí)體完整性約束

當(dāng)實(shí)體模型轉(zhuǎn)化為關(guān)系模型時(shí),一個(gè)實(shí)體類型對(duì)應(yīng)一個(gè)關(guān)系模式,此模式下任意一個(gè)具體關(guān)系中的一個(gè)元組對(duì)應(yīng)此實(shí)體類型的一個(gè)實(shí)體,從而為組織該關(guān)系所選擇的主鍵就唯一標(biāo)識(shí)一個(gè)實(shí)體。實(shí)體完整性約束(EntityIntegrity)要求組成主鍵的屬性不能為空值,否則就無(wú)從區(qū)分和識(shí)別元組(實(shí)體)。32關(guān)系數(shù)據(jù)模型(30)4.完整性約束(2)參照完整性約束

實(shí)體完整性約束主要考慮一個(gè)關(guān)系內(nèi)部的制約,而參照完整性約束(ReferentialIntegrity)則考慮不同關(guān)系之間或同一關(guān)系的不同元組之間的制約。具體而言,參照關(guān)系的外鍵或者取空值,或者取被參照關(guān)系中相應(yīng)的主鍵值。33關(guān)系數(shù)據(jù)模型(31)4.完整性約束(3)用戶完整性約束

數(shù)據(jù)庫(kù)設(shè)計(jì)者根據(jù)數(shù)據(jù)的具體內(nèi)容定義自己的語(yǔ)義約束并提供檢驗(yàn)機(jī)制,即是用戶定義完整性約束(User-definedIntegrity)。34關(guān)系模式設(shè)計(jì)(01)1.數(shù)據(jù)冗余及其分析

數(shù)據(jù)冗余(DataRedundancy)是指同一數(shù)據(jù)在一個(gè)或者多個(gè)數(shù)據(jù)文件中重復(fù)存儲(chǔ)。系統(tǒng)中如果出現(xiàn)數(shù)據(jù)冗余,不僅會(huì)大量占用消耗系統(tǒng)資源,造成不必要開銷,更嚴(yán)重的是會(huì)帶來(lái)各種數(shù)據(jù)操作異常,對(duì)數(shù)據(jù)庫(kù)性能正常發(fā)揮造成極大影響。。35關(guān)系模式設(shè)計(jì)(02)1.數(shù)據(jù)冗余及其分析

數(shù)據(jù)操作異常(DataOperationAnomalies)是指由于存在數(shù)據(jù)冗余,就可能導(dǎo)致數(shù)據(jù)更新異常(UpdateAnomalies)。常見的幾種異常有:修改異常(ModificationAnomalies),插入異常(InsertAnomalies):刪除異常(DeletionAnomalies)。。36關(guān)系模式設(shè)計(jì)(03)1.數(shù)據(jù)冗余及其分析

為什么會(huì)產(chǎn)生數(shù)據(jù)冗余呢?其產(chǎn)生有著較為復(fù)雜的原因。從數(shù)據(jù)結(jié)構(gòu)的角度考察,如果對(duì)多個(gè)文件之間和同一個(gè)文件中數(shù)據(jù)之間的聯(lián)系考慮不周或者處理不當(dāng),就有可能導(dǎo)致數(shù)據(jù)冗余。這里有兩個(gè)層面上的問(wèn)題:●多個(gè)文件之間的聯(lián)系?!裢粋€(gè)文件中數(shù)據(jù)之間的聯(lián)系。。。37關(guān)系模式設(shè)計(jì)(04)1.數(shù)據(jù)冗余及其分析

對(duì)于第一個(gè)層面問(wèn)題,主要出現(xiàn)在數(shù)據(jù)管理的文件系統(tǒng)階段。由于文件系統(tǒng)沒(méi)有考慮和體現(xiàn)相關(guān)多個(gè)文件之間的聯(lián)系,同一數(shù)據(jù)經(jīng)常在不同的文件中反復(fù)出現(xiàn),數(shù)據(jù)冗余現(xiàn)象突出。數(shù)據(jù)庫(kù)系統(tǒng),特別是關(guān)系數(shù)據(jù)庫(kù)系統(tǒng),相比于文件系統(tǒng)的重要區(qū)別就是充分考慮到了文件間的相互關(guān)聯(lián)并且采取相應(yīng)的處理措施,有效地處理了第一層面問(wèn)題,從而在很大程度上減少了冗余的產(chǎn)生。關(guān)系數(shù)據(jù)庫(kù)較好地處理了文件層面的聯(lián)系,但并不意味著數(shù)據(jù)層面上的聯(lián)系可以自動(dòng)解決。恰恰相反,此時(shí),第二個(gè)層面上問(wèn)題反而會(huì)凸現(xiàn)出來(lái)。38關(guān)系模式設(shè)計(jì)(05)1.數(shù)據(jù)冗余及其分析

在關(guān)系數(shù)據(jù)庫(kù)中,同一關(guān)系模式中各個(gè)屬性子集之間的依賴關(guān)系,通常稱為數(shù)據(jù)依賴(DataIndependence)。關(guān)系系統(tǒng)當(dāng)中數(shù)據(jù)冗余產(chǎn)生的重要原因就在于對(duì)數(shù)據(jù)依賴處理不當(dāng),也就是在于關(guān)系模式本身的結(jié)構(gòu)設(shè)計(jì)可能存在缺陷。39關(guān)系模式設(shè)計(jì)(06)1.數(shù)據(jù)冗余及其分析

在關(guān)系數(shù)據(jù)庫(kù)中,數(shù)據(jù)冗余之所以和數(shù)據(jù)依賴密切相關(guān),就在于一個(gè)關(guān)系中各個(gè)屬性子集可能相互關(guān)聯(lián),這種關(guān)聯(lián)有“強(qiáng)”有“弱”,有直接關(guān)聯(lián),也有間接關(guān)聯(lián)。如果在設(shè)計(jì)和構(gòu)造關(guān)系模式時(shí),不從語(yǔ)義上考慮和研究屬性子集間的這種關(guān)聯(lián),簡(jiǎn)單地將有關(guān)聯(lián)和無(wú)關(guān)聯(lián)的、關(guān)聯(lián)密切的和關(guān)聯(lián)松散的、具有這類關(guān)聯(lián)的和有另一類關(guān)聯(lián)的屬性隨意編排在一起,就可能產(chǎn)生較大的數(shù)據(jù)冗余,產(chǎn)生“排它”現(xiàn)象,引發(fā)各種沖突和異常。解決問(wèn)題的根本方法就是將關(guān)系模式進(jìn)一步分解,即將模式中屬性按照一定規(guī)范重新“分組”,將簡(jiǎn)單的“只要有關(guān)聯(lián)就放在一起”方式變?yōu)橐罁?jù)規(guī)范的“一對(duì)一關(guān)聯(lián)”方式,使得邏輯上獨(dú)立的信息放在關(guān)系上也獨(dú)立的模式當(dāng)中,即進(jìn)行所謂的關(guān)系規(guī)范化。40關(guān)系模式設(shè)計(jì)(07)1.函數(shù)依賴(1)基本概念

設(shè)R(U)是屬性集U上的關(guān)系模式,X和Y分別是U的屬性子集。r是R(U)中任意給定的一個(gè)關(guān)系實(shí)例。若對(duì)于r中任意兩個(gè)元組s和t,當(dāng)s[X]=t[X]時(shí),就有s[Y]=t[Y],則稱屬性子集X函數(shù)決定屬性子集Y或者稱Y函數(shù)依賴X(FunctionalDependence),否則就稱X不函數(shù)決定Y或者稱Y不函數(shù)依賴于X。當(dāng)Y函數(shù)依賴于X時(shí),則記為X→Y。如果X→Y,也稱X為決定因素(Determinantfactor),Y為依賴因素(Dependentfactor)。當(dāng)Y不函數(shù)依賴于X,則記為X/→Y41關(guān)系模式設(shè)計(jì)(08)1.函數(shù)依賴(1)基本類型

①平凡與非平凡函數(shù)依賴如果X→Y,但Y不是X的子集,則稱X→Y是非平凡函數(shù)依賴(NontrivialFunctionalDependence),否則稱為平凡函數(shù)依賴(TrivialFunctionalDependence)。當(dāng)Y函數(shù)依賴于X時(shí),則記為X→Y。如果X→Y,也稱X為決定因素(Determinantfactor),Y為依賴因素(Dependentfactor)。當(dāng)Y不函數(shù)依賴于X,則記為X/→Y42關(guān)系模式設(shè)計(jì)(09)1.函數(shù)依賴(1)基本類型

①平凡與非平凡函數(shù)依賴如果X→Y,但Y不是X的子集,則稱X→Y是非平凡函數(shù)依賴(NontrivialFunctionalDependence),否則稱為平凡函數(shù)依賴(TrivialFunctionalDependence)。當(dāng)Y函數(shù)依賴于X時(shí),則記為X→Y。如果X→Y,也稱X為決定因素(Determinantfactor),Y為依賴因素(Dependentfactor)。當(dāng)Y不函數(shù)依賴于X,則記為X/→Y43關(guān)系模式設(shè)計(jì)(10)1.函數(shù)依賴(1)基本類型

①平凡與非平凡函數(shù)依賴如果X→Y,但Y不是X的子集,則稱X→Y是非平凡函數(shù)依賴(NontrivialFunctionalDependence),否則稱為平凡函數(shù)依賴(TrivialFunctionalDependence)。②部分與完全函數(shù)依賴如果X→Y,但對(duì)于X中的任意一個(gè)真子集X',都有Y不依賴于X',則稱Y完全依賴(FullFunctionalalDependency)于X,。當(dāng)Y完全依賴于X時(shí),記為XY。如果X→Y,但Y不完全函數(shù)依賴于X,則稱Y對(duì)X部分函數(shù)依賴(PartialFunctionalDependency),記為XY。44關(guān)系模式設(shè)計(jì)(11)1.函數(shù)依賴(1)基本類型

①平凡與非平凡函數(shù)依賴如果X→Y,但Y不是X的子集,則稱X→Y是非平凡函數(shù)依賴(NontrivialFunctionalDependence),否則稱為平凡函數(shù)依賴(TrivialFunctionalDependence)。②部分與完全函數(shù)依賴如果X→Y,但對(duì)于X中的任意一個(gè)真子集X',都有Y不依賴于X',則稱Y完全依賴(FullFunctionalalDependency)于X。45關(guān)系模式設(shè)計(jì)(12)1.函數(shù)依賴(1)基本類型

③傳遞與直接函數(shù)依賴設(shè)有兩個(gè)非平凡函數(shù)依賴X→Y和Y→Z,并且X不函數(shù)依賴于Y,則稱Z傳遞函數(shù)(TransitiveFunctionalDependency)依賴于X。46關(guān)系模式設(shè)計(jì)(13)3.函數(shù)依賴集合計(jì)算

考慮屬性子集間的相互依賴關(guān)系,需要計(jì)算給定關(guān)系模式的所有函數(shù)依賴構(gòu)成的集合。但函數(shù)依賴是基于語(yǔ)義的,需要有基于語(yǔ)法的形式系統(tǒng)來(lái)完成相應(yīng)計(jì)算,這就是Armstrong公理系統(tǒng)。人們證明了公理系統(tǒng)的的完備性,從而建立了最小依賴集的算法,完成了所需要的計(jì)算。47關(guān)系模式設(shè)計(jì)(14)4.數(shù)據(jù)依賴與關(guān)系模式范式(1)第一范式

如果一個(gè)關(guān)系模式R中每個(gè)屬性值都是一個(gè)不可分解的數(shù)據(jù)量,則稱該關(guān)系模式滿足第一范式(FirstNormalForm),記為R∈1NF。48關(guān)系模式設(shè)計(jì)(15)4.數(shù)據(jù)依賴與關(guān)系模式范式(2)第二范式

如果關(guān)系模式R(U)∈1NF,并且R(U)中的每一個(gè)非主屬性完全函數(shù)依賴于R(U)的候選鍵,則稱該關(guān)系模式R(U)滿足第二范式,記為R(U)∈2NF。49關(guān)系模式設(shè)計(jì)(16)4.數(shù)據(jù)依賴與關(guān)系模式范式(3)第三范式

如果關(guān)系模式R(U)∈1NF,且R(U)中的每一個(gè)非主屬性都不傳遞依賴于R的候選鍵,則稱關(guān)系模式R(U)屬于第三范式,記為R(U)∈3NF。50關(guān)系模式設(shè)計(jì)(17)4.數(shù)據(jù)依賴與關(guān)系模式范式(4)BC范式

設(shè)關(guān)系模式R(U)∈1NF,如果R(U)中每一個(gè)屬性都不傳遞依賴于R(U)的候選鍵,則稱關(guān)系模式R(U)滿足Boyce-Codd范式,簡(jiǎn)稱BC范式,記為R(U)∈BCNF。51關(guān)系模式設(shè)計(jì)(18)4.數(shù)據(jù)依賴與關(guān)系模式范式(5)多值依賴和第四范式

設(shè)有關(guān)系模式R(U),X、Y是屬性集U中的兩個(gè)子集,而r是R(U)中任意給定的一個(gè)關(guān)系實(shí)例r。如果有下述條件成立,則稱Y多值依賴(MultivaluedDependency)于X,記為X→→Y:①對(duì)于r在X上的一個(gè)確定的值(元組),都有r在Y中一組值與之對(duì)應(yīng)。②Y的這組對(duì)應(yīng)值與r在Z=U-X-Y中的屬性值無(wú)關(guān)。此時(shí),如果X→→Y,但Z=U-X-Y≠Φ,則稱其為非平凡多值依賴,否則稱為平凡多值依賴。

52關(guān)系模式設(shè)計(jì)(19)4.數(shù)據(jù)依賴與關(guān)系模式范式(5)多值依賴和第四范式

對(duì)于R(U)中的任意兩個(gè)屬性子集X和Y,如果對(duì)于任意非平凡多值依賴X→→Y,X都為超鍵,則稱R(U)滿足第四范式,記為R(U)∈4NF。53關(guān)系模式設(shè)計(jì)(20)4.數(shù)據(jù)依賴與關(guān)系模式范式(6)連接依賴和第五范式

設(shè)有關(guān)系模式R(U),{U1,U2,…,Un}是屬性集合U的一個(gè)覆蓋,關(guān)系模式集合ρ={R1,R2,…,Rn}是R的一個(gè)模式分解,其中Ri是對(duì)應(yīng)于Ui的關(guān)系模式(i=1,2,…,n)。如果對(duì)于R的每一個(gè)關(guān)系實(shí)例r,都成立:r=ΠR1(r)ΠR2(r)…ΠRn(r)則稱連接依賴(joindependence)在關(guān)系模式R上成立,記為(R1,R2,…,Rn)。如果連接依賴中每一個(gè)Ri(i=1,2,…,n)都不等于R,則稱此時(shí)連接依賴是非平凡的,否則稱為是平凡的。。54關(guān)系模式設(shè)計(jì)(01)4.數(shù)據(jù)依賴與關(guān)系模式范式(6)連接依賴和第五范式

假設(shè)關(guān)系模式R(U)上任意一個(gè)非平凡連接依賴(R1,R2,…,Rn)都由R的某個(gè)候選鍵所蘊(yùn)含,則稱關(guān)系模式R滿足第五范式,記為R(U)∈5NF。第五范式在有些文獻(xiàn)中也稱為投影連接范式(Project-JoinNormalForm),簡(jiǎn)記為PJNF。55事務(wù)處理(01)1.事務(wù)及其基本性質(zhì)

事務(wù)(Transaction)是數(shù)據(jù)庫(kù)所提供的一種手段,通過(guò)這種手段可以將一系列的數(shù)據(jù)庫(kù)操作組合在一起形成一個(gè)整體序列,由數(shù)據(jù)庫(kù)系統(tǒng)提供一組保證。一條或一組SQL語(yǔ)句構(gòu)成一個(gè)事務(wù),運(yùn)行過(guò)程中整個(gè)程序也是一個(gè)事務(wù)。序列中的操作可以全部執(zhí)行或者全部不執(zhí)行,但不能只執(zhí)行一部分,因?yàn)檎麄€(gè)序列是一個(gè)不可分割的操作單位。56事務(wù)處理(02)1.事務(wù)及其基本性質(zhì)

●原子性(Atomicity)一個(gè)事務(wù)對(duì)于數(shù)據(jù)庫(kù)的所有操作是一個(gè)不可分割的操作整體,這些操作要么全部執(zhí)行,要么全部不執(zhí)行,而不能部分地完成?!褚恢滦裕–onsistency)數(shù)據(jù)庫(kù)中數(shù)據(jù)不因事務(wù)的執(zhí)行而受到破壞,事務(wù)執(zhí)行的結(jié)果應(yīng)當(dāng)使得數(shù)據(jù)庫(kù)由一種一致性達(dá)到另一種新的一致性。數(shù)據(jù)一致性保證數(shù)據(jù)庫(kù)的完整性。57事務(wù)處理(03)1.事務(wù)及其基本性質(zhì)

●隔離性(Isolation)事務(wù)的并發(fā)執(zhí)行與這些事務(wù)單獨(dú)執(zhí)行的結(jié)果一樣。也就是說(shuō),在多個(gè)事務(wù)并發(fā)執(zhí)行時(shí),各個(gè)事務(wù)不必關(guān)心其它事務(wù)的執(zhí)行,如同在單個(gè)用戶環(huán)境下執(zhí)行一樣。事務(wù)的隔離性是事務(wù)并發(fā)控制技術(shù)的基礎(chǔ)。對(duì)隔離性的另一種稱法是可串行性。58事務(wù)處理(04)1.事務(wù)及其基本性質(zhì)

●持久性(Durability)事務(wù)對(duì)數(shù)據(jù)庫(kù)的更新應(yīng)永久地反映在數(shù)據(jù)庫(kù)中。也就是說(shuō),一個(gè)事務(wù)一旦完成其全部操作之后,它對(duì)數(shù)據(jù)庫(kù)所有更新操作的結(jié)果將在數(shù)據(jù)庫(kù)中永久存在,即使以后發(fā)生故障也應(yīng)保留這個(gè)事務(wù)的執(zhí)行結(jié)果。持久性意義在于保證數(shù)據(jù)庫(kù)可恢復(fù)。59事務(wù)處理(05)2.事務(wù)基本基本操作

事務(wù)操作可以看作由若干個(gè)部分組成?!袷聞?wù)開始(BeginTransaction):事務(wù)開始執(zhí)行。●事務(wù)讀寫(Read/WriteTransaction):事務(wù)進(jìn)行數(shù)據(jù)操作。●事務(wù)提交(CommitTransaction):事務(wù)完成所有數(shù)據(jù)操作,同時(shí)保存操作結(jié)果,它標(biāo)志著事務(wù)的成功完成?!袷聞?wù)回滾(RollbackTransaction):事務(wù)未完成所有數(shù)據(jù)操作,重新返回到事務(wù)開始,它標(biāo)志著事務(wù)的撤銷。60事務(wù)處理(06)3.并發(fā)控制(1)封鎖概念

封鎖是系統(tǒng)對(duì)事務(wù)并發(fā)執(zhí)行的一種調(diào)度和控制技術(shù),是保證系統(tǒng)對(duì)數(shù)據(jù)項(xiàng)的訪問(wèn)以互斥方式進(jìn)行的一種手段?!癞?dāng)一個(gè)事務(wù)T需要對(duì)某些數(shù)據(jù)對(duì)象進(jìn)行操作(讀/寫)時(shí),必須向系統(tǒng)提出申請(qǐng),對(duì)其加以封鎖;在獲得加鎖成功之后,即具有對(duì)此類數(shù)據(jù)的一定操作權(quán)限與控制權(quán)限,此時(shí),其他事務(wù)不能對(duì)加鎖的數(shù)據(jù)隨意操作?!癞?dāng)事務(wù)T操作完成之后即釋放鎖,此后數(shù)據(jù)即可為其他事務(wù)操作服務(wù)。61事務(wù)處理(07)3.并發(fā)控制(2)封鎖類型

排它鎖排它鎖(exclusiveLock)又稱為寫鎖或X鎖,其含義是:事務(wù)T對(duì)數(shù)據(jù)A加X(jué)鎖后,T可以對(duì)加X(jué)鎖的A進(jìn)行讀寫,而其它事務(wù)只有等到T解除X鎖之后,才能對(duì)A進(jìn)行封鎖和操作(包括讀寫)。62事務(wù)處理(08)3.并發(fā)控制(2)封鎖類型

共享鎖(SharingLock)又稱為讀鎖或S鎖。其含義是:事務(wù)T對(duì)數(shù)據(jù)A加S鎖之后,T可以讀A但不能寫A;同時(shí)其它事務(wù)可以對(duì)A加S鎖但不能加X(jué)鎖。。63事務(wù)處理(09)3.并發(fā)控制(3)封鎖粒度

實(shí)行事務(wù)封鎖的數(shù)據(jù)目標(biāo)的大小稱為該封鎖的封鎖粒度(Granularity)。在關(guān)系數(shù)據(jù)庫(kù)中封鎖粒度一般有如下幾種?!駥傩裕ㄖ担??!駥傩裕ㄖ担┘?。●元組?!耜P(guān)系表?!裎锢眄?yè)面?!袼饕?。●關(guān)系數(shù)據(jù)庫(kù)642.2面向?qū)ο髷?shù)據(jù)庫(kù)技術(shù)面向?qū)ο蠡靖拍?.2.2面向?qū)ο髷?shù)據(jù)模型2.2.3基于ODMG數(shù)據(jù)操作2.2.4面向?qū)ο髷?shù)據(jù)庫(kù)系統(tǒng)652.2面向?qū)ο髷?shù)據(jù)庫(kù)技術(shù)(01)面向?qū)ο蠡靖拍?.對(duì)象對(duì)象(Object)是由一組數(shù)據(jù)結(jié)構(gòu)以及其上的一組方法即程序代碼封裝起來(lái)的基本單位。由屬性集合、方法集合和消息集合三部分加上對(duì)象標(biāo)識(shí)組成的對(duì)象封裝體稱為對(duì)象結(jié)構(gòu)。對(duì)象重要特性:封裝性、隱蔽性與穩(wěn)定性等662.2面向?qū)ο髷?shù)據(jù)庫(kù)技術(shù)(02)面向?qū)ο蠡靖拍?.對(duì)象(1)封裝性封裝(encapsulation)是使對(duì)象的外部界面與內(nèi)部實(shí)現(xiàn)之間實(shí)行清晰隔離的一種技術(shù),是OO模型的主要特征之一。封裝使得用戶只能看到對(duì)象外在的界面信息(正如規(guī)格說(shuō)明等),而看不到對(duì)象內(nèi)部的信息(如方法實(shí)現(xiàn)細(xì)節(jié)),對(duì)象內(nèi)部信息對(duì)于用戶是屏蔽的。672.2面向?qū)ο髷?shù)據(jù)庫(kù)技術(shù)(03)面向?qū)ο蠡靖拍?.對(duì)象(2)隱蔽性與界面對(duì)象表示分為內(nèi)部和外部?jī)煞N,一種是內(nèi)部的屬性與行為的捆綁,封裝之后,對(duì)外部用戶透明,這就需要一種適當(dāng)?shù)膶?duì)象外部表示即對(duì)象界面,外部用戶通過(guò)界面認(rèn)識(shí)對(duì)象并且與對(duì)象實(shí)施通信聯(lián)系。對(duì)象界面實(shí)際上就是若干個(gè)外部接口,它對(duì)外部開放并為外部所見,而對(duì)象封裝屏蔽了外界對(duì)內(nèi)部細(xì)節(jié)的了解,這種屏蔽就稱為隱蔽。682.2面向?qū)ο髷?shù)據(jù)庫(kù)技術(shù)(04)面向?qū)ο蠡靖拍?.對(duì)象(3)穩(wěn)定性對(duì)象內(nèi)部的對(duì)象行為建立在對(duì)象屬性之上,即行為服務(wù)于屬性或行為依賴于屬性,這就在對(duì)象內(nèi)部建立起以屬性為核心并以行為為附屬的穩(wěn)定實(shí)體特性稱為對(duì)象的穩(wěn)定性(stationary)。692.2面向?qū)ο髷?shù)據(jù)庫(kù)技術(shù)(05)面向?qū)ο蠡靖拍?.消息消息(message)是對(duì)象與對(duì)象之間的聯(lián)系信息。由于對(duì)象的封裝性和隱蔽性,對(duì)象的消息僅僅作用于對(duì)象界面,然后再通過(guò)界面進(jìn)一步作用于對(duì)象內(nèi)部。①消息的作用請(qǐng)求對(duì)象為其服務(wù);向?qū)ο髠鬟f消息并對(duì)對(duì)象操作;反饋服務(wù)結(jié)果。702.2面向?qū)ο髷?shù)據(jù)庫(kù)技術(shù)(06)面向?qū)ο蠡靖拍?.消息②消息的組成接收者:表示消息所施加作用的對(duì)象;操作要求:消息對(duì)對(duì)象的造作要求;操作參數(shù):消息行使操作時(shí)作需的外部數(shù)據(jù)。③消息發(fā)送與接收每個(gè)對(duì)象都可以發(fā)送和接收若干消息。面向?qū)ο髷?shù)據(jù)模型中的“消息”與計(jì)算機(jī)網(wǎng)絡(luò)中傳輸?shù)南⒑x不同。它是指對(duì)象間操作請(qǐng)求的傳遞,而不考慮操作實(shí)現(xiàn)細(xì)節(jié)。712.2面向?qū)ο髷?shù)據(jù)庫(kù)技術(shù)(07)面向?qū)ο蠡靖拍?.類類(Class)是對(duì)具有共同屬性和方法的對(duì)象全體的概括描述,它相當(dāng)于關(guān)系模型中的關(guān)系模式。類給出了屬于其全部對(duì)象屬性與行為的抽象定義,類中對(duì)象僅是類定義中的一個(gè)實(shí)體,即對(duì)象實(shí)例。學(xué)生是一個(gè)類,一個(gè)具體學(xué)生,例如John就是學(xué)生類中一個(gè)對(duì)象實(shí)例。面向?qū)ο髷?shù)據(jù)模式與關(guān)系模式類似,首先抽象描述具有共同屬性的對(duì)象的類,按照類來(lái)定義屬性和方法,從而避免了給每個(gè)對(duì)象一一重復(fù)定義。查詢操作等方法也定義在類上。。722.2面向?qū)ο髷?shù)據(jù)庫(kù)技術(shù)(08)面向?qū)ο蠡靖拍?.類類繼承:類與類之間的層次結(jié)構(gòu)重要特點(diǎn)之一就是繼承(inheritance)。繼承反映一個(gè)類能夠自動(dòng)繼承其它某些類所具有的屬性和方法。這是面向?qū)ο髷?shù)據(jù)模型中避免重復(fù)定義的一個(gè)重要機(jī)制。繼承性比較自然地體現(xiàn)了類之間的“is-a”聯(lián)系。類Ais-a類B表示A中對(duì)象也是B中對(duì)象,但A中對(duì)象也具有B中對(duì)象所不具有的某些屬性或方法。此時(shí),稱類A是類B的子類(subclass),稱類B是類A的超類(superclass).732.2面向?qū)ο髷?shù)據(jù)庫(kù)技術(shù)(09)面向?qū)ο蠡靖拍?.類類繼承通常具有下面的四個(gè)基本性質(zhì)?!駛鬟f性設(shè)有A,B,C三個(gè)類,其種類C繼承類B,而類B繼承類A,此時(shí)必有類C繼承類A,繼承的此種性質(zhì)就稱為類繼承的傳遞性。例如動(dòng)物、哺乳動(dòng)物與靈長(zhǎng)類動(dòng)物均為類,而其中靈長(zhǎng)類動(dòng)物繼承哺乳動(dòng)物,哺乳動(dòng)物繼承動(dòng)物,此時(shí)必有靈長(zhǎng)類動(dòng)物繼承動(dòng)物。742.2面向?qū)ο髷?shù)據(jù)庫(kù)技術(shù)(10)面向?qū)ο蠡靖拍?.類●單向性設(shè)有類B繼承類A,則此時(shí)一定不能有類A繼承類B,如研究生類繼承學(xué)生類,但學(xué)生類必不繼承研究生類。傳遞性和單向性說(shuō)明了類繼承具有單向?qū)哟涡浴?752.2面向?qū)ο髷?shù)據(jù)庫(kù)技術(shù)(11)面向?qū)ο蠡靖拍?.類●可重用性可重用性(reuse)指得是子類可以重用超類的全部資源,同時(shí)根據(jù)繼承的傳遞性,它還可以重用繼承鏈上所有超類資源。762.2面向?qū)ο髷?shù)據(jù)庫(kù)技術(shù)(12)面向?qū)ο蠡靖拍?.類●包含性繼承除了具有類之間一般與特殊關(guān)系之外,還可以有包含關(guān)系,即靈長(zhǎng)類繼承哺乳動(dòng)物類,此時(shí)靈長(zhǎng)類必包含在哺乳動(dòng)物中,即是說(shuō),任一個(gè)對(duì)象如它屬于靈長(zhǎng)類動(dòng)物則它必屬于哺乳動(dòng)物,而且類中繼承的包含關(guān)系一般而言是真包含關(guān)系。.772.2面向?qū)ο髷?shù)據(jù)庫(kù)技術(shù)(13)面向?qū)ο蠡靖拍?.類●包含性繼承除了具有類之間一般與特殊關(guān)系之外,還可以有包含關(guān)系,即靈長(zhǎng)類繼承哺乳動(dòng)物類,此時(shí)靈長(zhǎng)類必包含在哺乳動(dòng)物中,即是說(shuō),任一個(gè)對(duì)象如它屬于靈長(zhǎng)類動(dòng)物則它必屬于哺乳動(dòng)物,而且類中繼承的包含關(guān)系一般而言是真包含關(guān)系。.782.2面向?qū)ο髷?shù)據(jù)庫(kù)技術(shù)(14)面向?qū)ο蠡靖拍?.類繼承的多態(tài)性①多態(tài)性在類的繼承過(guò)程中,超類屬性與方法在子類中可以允許有不同的實(shí)現(xiàn)形式、方法與語(yǔ)義,這種情形就稱為多態(tài)性(polymophic)。792.2面向?qū)ο髷?shù)據(jù)庫(kù)技術(shù)(15)面向?qū)ο蠡靖拍?.類②聯(lián)編多態(tài)性為對(duì)象與屬性、方法之間的復(fù)雜關(guān)系提供了處理上的方便與靈活性,在計(jì)算機(jī)軟件中為實(shí)現(xiàn)多態(tài)性需要有聯(lián)編(binding)等功能的支撐。聯(lián)編也稱為綁定。將一個(gè)程序經(jīng)過(guò)編譯到成為可以運(yùn)行的目標(biāo)代碼過(guò)程,就是將執(zhí)行代碼聚束在一起的聯(lián)編過(guò)程。

802.2面向?qū)ο髷?shù)據(jù)庫(kù)技術(shù)(16)面向?qū)ο髷?shù)據(jù)模型1.數(shù)據(jù)模型①數(shù)據(jù)模式由對(duì)象結(jié)構(gòu)以及類間繼承和組合關(guān)系建立起來(lái)的數(shù)據(jù)間的組織結(jié)構(gòu)關(guān)系,這種模式結(jié)構(gòu)的語(yǔ)義表示能力遠(yuǎn)比ER方法與EER方法要強(qiáng)。812.2面向?qū)ο髷?shù)據(jù)庫(kù)技術(shù)(17)面向?qū)ο髷?shù)據(jù)模型1.基本概念②數(shù)據(jù)操作由對(duì)象與類中方法建構(gòu)對(duì)象數(shù)據(jù)模式上的數(shù)據(jù)操作,這種操作語(yǔ)義強(qiáng)于傳統(tǒng)數(shù)據(jù)模型,如可以構(gòu)做一個(gè)圓形類,它的操作可以除查詢、修改外,還可以有圖形的放大/縮小,圖形的移動(dòng)、圖形的拼接等。在面向?qū)ο髷?shù)據(jù)操作分為兩個(gè)部分,一個(gè)部分封裝在類之中稱之為方法,另一部分是類之間相互溝通的操作稱之為消息。822.2面向?qū)ο髷?shù)據(jù)庫(kù)技術(shù)(18)面向?qū)ο髷?shù)據(jù)模型1.基本概念③數(shù)據(jù)約束數(shù)據(jù)約束也是一種方法,即是一種邏輯表示式,可以用類中方法表示模式約束。面向?qū)ο髷?shù)據(jù)一般使用方法或消息表示完整性約束條件,稱為完整性約束方法與完整性約束消息,并在其之前標(biāo)有特殊標(biāo)識(shí)。832.2面向?qū)ο髷?shù)據(jù)庫(kù)技術(shù)(19)面向?qū)ο髷?shù)據(jù)模型2.數(shù)據(jù)類型(1)基本類型①基礎(chǔ)類型通常意義下的整型、字符串和布爾型等。②“類”類型一個(gè)類本身就是一種下述的構(gòu)造型,是一種復(fù)雜類型。但仍然可以將其作為一個(gè)整體看成一個(gè)基礎(chǔ)的型,從而可以像上述基礎(chǔ)型一樣對(duì)待和使用。842.2面向?qū)ο髷?shù)據(jù)庫(kù)技術(shù)(20)面向?qū)ο髷?shù)據(jù)模型1.數(shù)據(jù)類型(2)構(gòu)造類型基礎(chǔ)型和“類”型是基本型,通過(guò)它們,可以使用下述構(gòu)造器形成各種復(fù)雜型(構(gòu)造型)。①ARRAY如果T是一個(gè)型,i是一個(gè)正整數(shù),則ARRAY<T,i>j就是一個(gè)型,其對(duì)象為T的i個(gè)對(duì)象的一個(gè)數(shù)組,例如,ARRAY<char,10>就是長(zhǎng)度為10的字符串。852.2面向?qū)ο髷?shù)據(jù)庫(kù)技術(shù)(21)面向?qū)ο髷?shù)據(jù)模型2.數(shù)據(jù)類型(2)構(gòu)造類型②LIST如果T是任意型,則LIST<T>也是一種型,其對(duì)象是T的零個(gè)或多個(gè)對(duì)象的一個(gè)862.2面向?qū)ο髷?shù)據(jù)庫(kù)技術(shù)(22)面向?qū)ο髷?shù)據(jù)模型2.數(shù)據(jù)類型(2)構(gòu)造類型③BAG如果T是任意型,則BAG<T>也是一種型,其對(duì)象是型T的對(duì)象的一個(gè)“可重復(fù)”集合即一個(gè)元素可重用的集合,稱為一個(gè)“袋”或“包”。包與集合的區(qū)別就是其中的元素可以重復(fù)。例如{1,4,1,6}是一個(gè)包而不是一個(gè)集合。872.2面向?qū)ο髷?shù)據(jù)庫(kù)技術(shù)(23)面向?qū)ο髷?shù)據(jù)模型2.數(shù)據(jù)類型(2)構(gòu)造類型④SET如果T是任意型,則SET<T>也是一種型,其對(duì)象是T的對(duì)象的一個(gè)有限集合。⑤序列表,例如,字符串型char實(shí)際上是表LIST<char>型的一個(gè)速記特例。882.2面向?qū)ο髷?shù)據(jù)庫(kù)技術(shù)(24)面向?qū)ο髷?shù)據(jù)模型2.數(shù)據(jù)類型(2)構(gòu)造類型⑥RECORD設(shè)Ti和Fi(i=1,2,……,n)分別為任意的一個(gè)型和該型的一個(gè)域(field)的名字,則RECORD(F1:T1;F2:T·,…,F(xiàn)n:Tn)也為一種型,其對(duì)象為分別具有名字Fi和型Ti(i=1,2,……,n)的域所組成的記錄。892.2面向?qū)ο髷?shù)據(jù)庫(kù)技術(shù)(25)面向?qū)ο髷?shù)據(jù)模型2.數(shù)據(jù)類型(2)構(gòu)造類型⑥RECORD設(shè)Ti和Fi(i=1,2,……,n)分別為任意的一個(gè)型和該型的一個(gè)域(field)的名字,則RECORD(F1:T1;F2:T·,…,F(xiàn)n:Tn)也為一種型,其對(duì)象為分別具有名字Fi和型Ti(i=1,2,……,n)的域所組成的記錄。902.2面向?qū)ο髷?shù)據(jù)庫(kù)技術(shù)(26)面向?qū)ο髷?shù)據(jù)模型3.與關(guān)系模型比較912.2面向?qū)ο髷?shù)據(jù)庫(kù)技術(shù)(27)2.2.3基于ODMG數(shù)據(jù)操作1.ODMG標(biāo)準(zhǔn)ODMG工業(yè)標(biāo)準(zhǔn)對(duì)C++的擴(kuò)展主要包括C++對(duì)象定義語(yǔ)言(objectdefinitionlanguage,ODL)和C++對(duì)象操作語(yǔ)言(objectManipulatelanguage,OML),其中,OML又分為對(duì)象查詢語(yǔ)言(OQL)和對(duì)象控制語(yǔ)言(OCL)。ODMG工業(yè)標(biāo)準(zhǔn)中的對(duì)象數(shù)據(jù)模型主要包括有下述5個(gè)核心概念:922.2面向?qū)ο髷?shù)據(jù)庫(kù)技術(shù)(28)基于ODMG數(shù)據(jù)操作1.ODMG標(biāo)準(zhǔn)①對(duì)象和文字對(duì)象和文字是面向?qū)ο髷?shù)據(jù)建模的基本原語(yǔ)。每個(gè)對(duì)象有一個(gè)唯一標(biāo)識(shí)符,文字(literal)沒(méi)有標(biāo)識(shí)符。對(duì)象標(biāo)識(shí)符在對(duì)象整個(gè)生命周期中都有效,即無(wú)論對(duì)象是存儲(chǔ)在外存中還是在內(nèi)存中,標(biāo)識(shí)符都始終有效。對(duì)象作為基本數(shù)據(jù)結(jié)構(gòu),是存儲(chǔ)和操作的基礎(chǔ)單元。932.2面向?qū)ο髷?shù)據(jù)庫(kù)技術(shù)(29)2.2.3基于ODMG數(shù)據(jù)操作1.ODMG標(biāo)準(zhǔn)②類型對(duì)象和文字都可以被劃分為類型,同一類型(type)的對(duì)象或文字具有相同的狀態(tài),對(duì)象可以稱為類型的實(shí)例。③狀態(tài)對(duì)象的狀態(tài)可以通過(guò)一組性質(zhì)定義。性質(zhì)(property)可以分為兩種:對(duì)象屬性(attribute)和對(duì)象之間聯(lián)系(relationship)。942.2面向?qū)ο髷?shù)據(jù)庫(kù)技術(shù)(30)基于ODMG數(shù)據(jù)操作1.ODMG標(biāo)準(zhǔn)④操作對(duì)象行為可以通過(guò)一組操作來(lái)定義。操作(operation)具有輸入和輸出參數(shù),并且可以返回特定類型的結(jié)果。⑤ODL利用ODL定義對(duì)象數(shù)據(jù)管理系統(tǒng)的模式,它所存儲(chǔ)的對(duì)象都是模式中定義類型的實(shí)例,即對(duì)象,這些對(duì)象可以供多個(gè)應(yīng)用程序共享。952.2面向?qū)ο髷?shù)據(jù)庫(kù)技術(shù)(31)基于ODMG數(shù)據(jù)操作2.ODMG數(shù)據(jù)操作1.數(shù)據(jù)定義2.數(shù)據(jù)查詢有關(guān)實(shí)例見教材962.2面向?qū)ο髷?shù)據(jù)庫(kù)技術(shù)(32)2.2.4面向?qū)ο髷?shù)據(jù)庫(kù)系統(tǒng)1.面向?qū)ο髷?shù)據(jù)庫(kù)管理系統(tǒng)數(shù)據(jù)庫(kù)管理系統(tǒng)是任何一個(gè)數(shù)據(jù)庫(kù)的中樞系統(tǒng),面向?qū)ο髷?shù)據(jù)庫(kù)管理系通常需要:支持面向?qū)ο蟮臄?shù)據(jù)模型;提供面向?qū)ο蟮臄?shù)據(jù)庫(kù)語(yǔ)言;提供面向?qū)ο髷?shù)據(jù)庫(kù)管理機(jī)制;同時(shí)具有傳統(tǒng)數(shù)據(jù)庫(kù)的管理能力。面向?qū)ο髷?shù)據(jù)庫(kù)管理系統(tǒng)由類管理、對(duì)象管理和對(duì)象控制等三個(gè)部分組成。972.2面向?qū)ο髷?shù)據(jù)庫(kù)技術(shù)(33)2.2.4面向?qū)ο髷?shù)據(jù)庫(kù)系統(tǒng)1.面向?qū)ο髷?shù)據(jù)庫(kù)管理系統(tǒng)①類管理用于對(duì)類定義和類操作進(jìn)行管理,利用類來(lái)描述復(fù)雜的對(duì)象。②對(duì)象管理對(duì)象管理又稱為實(shí)例管理,主要完成對(duì)類中對(duì)象的操作管理,利用類中的封裝的方法來(lái)模擬對(duì)象的復(fù)雜行為。982.2面向?qū)ο髷?shù)據(jù)庫(kù)技術(shù)(34)2.2.4面向?qū)ο髷?shù)據(jù)庫(kù)系統(tǒng)1.面向?qū)ο髷?shù)據(jù)庫(kù)管理系統(tǒng)③對(duì)象控制對(duì)象控制具有傳統(tǒng)數(shù)據(jù)庫(kù)中數(shù)據(jù)控制功能,但也補(bǔ)充了一些新的內(nèi)容。整體上來(lái)說(shuō),對(duì)象控制包括如下一些基本點(diǎn):完整性約束條件及檢驗(yàn),安全性表示與檢查,并發(fā)控制與事務(wù)處理,故障恢復(fù),利用繼承性來(lái)實(shí)現(xiàn)對(duì)象的結(jié)構(gòu)和方法的重用等。992.2面向?qū)ο髷?shù)據(jù)庫(kù)技術(shù)(35)2.2.4面向?qū)ο髷?shù)據(jù)庫(kù)系統(tǒng)1.面向?qū)ο髷?shù)據(jù)庫(kù)管理系統(tǒng)正是由于OODBMS上述特性,使得其在一些特定應(yīng)用領(lǐng)域(如CAD、GIS等),能較好地滿足其應(yīng)用需求。當(dāng)然,這種純粹的面向?qū)ο髷?shù)據(jù)庫(kù)系統(tǒng)并不支持SQL語(yǔ)言,在通用性方面失去了優(yōu)勢(shì),因此其應(yīng)用領(lǐng)域受到了一定限制。1002.2面向?qū)ο髷?shù)據(jù)庫(kù)技術(shù)(36)2.2.4面向?qū)ο髷?shù)據(jù)庫(kù)系統(tǒng)2.面向?qū)ο髷?shù)據(jù)庫(kù)系統(tǒng)一個(gè)數(shù)據(jù)庫(kù)系統(tǒng)要成為OODBS,基本標(biāo)準(zhǔn)是:①首先是一個(gè)面向?qū)ο笙到y(tǒng)其出發(fā)點(diǎn)是針對(duì)面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言的持久性對(duì)象存儲(chǔ)管理,其核心是充分支持完整地面向?qū)ο蟾拍詈蜋C(jī)制,例如用戶自定義數(shù)據(jù)類型、自定義函數(shù)、對(duì)象封裝等必不可少的OO方法特征,與當(dāng)前流行的OO程序設(shè)計(jì)語(yǔ)言取得一致。1012.2面向?qū)ο髷?shù)據(jù)庫(kù)技術(shù)(37)2.2.4面向?qū)ο髷?shù)據(jù)庫(kù)系統(tǒng)2.面向?qū)ο髷?shù)據(jù)庫(kù)系統(tǒng)②其次是一個(gè)數(shù)據(jù)庫(kù)系統(tǒng),借助擴(kuò)充傳統(tǒng)數(shù)據(jù)庫(kù)語(yǔ)義,使之與核心OO數(shù)據(jù)模型協(xié)調(diào),以支持傳統(tǒng)數(shù)據(jù)庫(kù)系統(tǒng)中的所有數(shù)據(jù)庫(kù)特征和功能,例如持久性、輔存管理、數(shù)據(jù)共享、事務(wù)管理、一致性控制及恢復(fù)等。1022.2面向?qū)ο髷?shù)據(jù)庫(kù)技術(shù)(38)2.2.4面向?qū)ο髷?shù)據(jù)庫(kù)系統(tǒng)2.面向?qū)ο髷?shù)據(jù)庫(kù)系統(tǒng)按照上述標(biāo)準(zhǔn),可以將一個(gè)OODBS表達(dá)為“面向?qū)ο笙到y(tǒng)+數(shù)據(jù)庫(kù)能力”這樣,OODBS就是一個(gè)將面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言中所建立的對(duì)象自動(dòng)保存在磁盤上的文件系統(tǒng)。一旦程序終止,可以自動(dòng)按另一個(gè)程序要求取出已經(jīng)存入的對(duì)象。OODBS作為一種系統(tǒng)數(shù)據(jù)庫(kù),主要用戶是計(jì)算機(jī)應(yīng)用軟件和計(jì)算機(jī)系統(tǒng)軟件的開發(fā)人員,即專業(yè)程序員,而不是終端用戶。1032.3對(duì)象關(guān)系數(shù)據(jù)庫(kù)技術(shù)對(duì)象關(guān)系數(shù)據(jù)模型2.3.2對(duì)象關(guān)系數(shù)據(jù)操作2.3.3對(duì)象關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)1042.3對(duì)象關(guān)系數(shù)據(jù)庫(kù)技術(shù)(01)對(duì)象關(guān)系數(shù)據(jù)模型1.關(guān)系模型擴(kuò)充傳統(tǒng)關(guān)系模型中的基本數(shù)據(jù)結(jié)構(gòu)由三個(gè)層面組成:關(guān)系——元組——屬性。其聯(lián)系為:●屬性為一些基本的數(shù)據(jù)類型所規(guī)定,例如整型、實(shí)型、字符串型等。●元組是屬性值的有序集合?!耜P(guān)系是元組的無(wú)序集合。1052.3對(duì)象關(guān)系數(shù)據(jù)庫(kù)技術(shù)(02)對(duì)象關(guān)系數(shù)據(jù)模型1.關(guān)系模型擴(kuò)充所有關(guān)系模式都要滿足1NF基本要求,因此傳統(tǒng)關(guān)系模型是一種平面關(guān)系模型(PlatRelationalModel)。如果在關(guān)系模式中突破1NF即規(guī)定屬性值是不可分解的限制,則得到擴(kuò)充的關(guān)系模型,即復(fù)雜關(guān)系類型(Completerelationaltype)。復(fù)雜關(guān)系類型主要有結(jié)構(gòu)(行)、聚集和引用數(shù)據(jù)類型三種。1062.3

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論