關(guān)系數(shù)據(jù)模型與語言教學課件_第1頁
關(guān)系數(shù)據(jù)模型與語言教學課件_第2頁
關(guān)系數(shù)據(jù)模型與語言教學課件_第3頁
關(guān)系數(shù)據(jù)模型與語言教學課件_第4頁
關(guān)系數(shù)據(jù)模型與語言教學課件_第5頁
已閱讀5頁,還剩117頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第3章關(guān)系數(shù)據(jù)模型及語言

關(guān)系數(shù)據(jù)庫是以關(guān)系模型為基礎(chǔ)的數(shù)據(jù)庫。特點:建立在嚴格的數(shù)學理論基礎(chǔ)上;關(guān)系模型簡單、清晰;有較高的數(shù)據(jù)獨立性;數(shù)據(jù)庫語言非過程化;可用于知識庫、數(shù)據(jù)庫機、分布式數(shù)據(jù)庫、并行數(shù)據(jù)庫等領(lǐng)域。第3章關(guān)系數(shù)據(jù)模型及語言關(guān)系數(shù)據(jù)庫是以13.1關(guān)系模型

一、關(guān)系的有關(guān)概念1.關(guān)系與文件(比較)

在關(guān)系模型中,數(shù)據(jù)是以二維表的形式存在,這個二維表稱為“關(guān)系”。如學生關(guān)系、課程關(guān)系、學習關(guān)系:3.1關(guān)系模型2在文件組織中,這些表格稱為文件。在文件組織中,這些表格稱為文件。3

術(shù)語對照:

4關(guān)系具有的特性:(1)每一列有不同的名字,但每一列屬同一類型的域值;不同列也可以出自相同的域;(2)任意兩行不能全同;(3)每一數(shù)據(jù)項應(yīng)為不可再分的數(shù)據(jù)單位;(4)行、列次序無關(guān);(5)具有主關(guān)鍵字唯一標識各個元組;關(guān)系具有的特性:52、關(guān)系的集合論定義

定義1(關(guān)系框架):關(guān)系框架R是表示關(guān)系的所有屬性A1,A2,…,Ak的有限集合。每個屬性Aj對應(yīng)一個值域Di=d(Aj)(j=1,2,…,k),值域(簡稱為域)可以是任意的非空有限集合或可數(shù)無限集合。

定義2(關(guān)系):關(guān)系框架R上的一個關(guān)系r[R]是它的屬性Aj(j=1,2,…,k)所對應(yīng)的域d(Aj)構(gòu)成的笛卡兒乘積空間d(R)=d(A1)×d(A2)×…×d(Ak)中的一個子集D’。k稱為關(guān)系r[R]的元數(shù),D中的任一點稱為關(guān)系r[R]的一個元組。關(guān)系r[R]簡記為r。2、關(guān)系的集合論定義6

屬性Aj(j=1,2,…,k)又稱為分量或坐標,R又稱為乘積空間d(R)的坐標系。

k元關(guān)系r的一個元組t有k個分量,t=<t1,t2,…,tk>。當用t泛指關(guān)系r的任一元組時,稱t為r的元組變量。

用集合符號表示:

r={<t1,t2,…,tk>∣<t1,t2,…,tk>Dd(R)}r={t∣tD’}

7舉例:有一關(guān)系框架FAMILY(MAN,WOMAN,CHILD),其中d(A1)={MAN}={王平,李兵},d(A2)={WOMAN}={丁燕,趙芳},d(A3)={CHILD}={王一,李二}。構(gòu)成的笛卡兒乘積空間為:d(FMAILY)=d(A1)×d(A2)×d(A3),共有8個元組,從其中取一個子集,得關(guān)系:舉例:有一關(guān)系框架FAMILY(MAN,WOMAN,CHIL8所以,當值域為無限集合時,笛卡爾乘積空間d(R)也是無限集合,則其中的子集可以是有限集合,也可以是無限集合,對應(yīng)的是有限關(guān)系和無限關(guān)系。在計算機中,只能存儲有限關(guān)系。所以,當值域為無限集合時,笛卡爾乘積空間d(R)也是無限集合93、幾個關(guān)鍵字術(shù)語超關(guān)鍵字(Superkey)

在關(guān)系r[R]中,如果屬性集合XR具有性質(zhì):“對r的任何兩個元組t、u,都有t[X]u[X]”,則稱X為r的超關(guān)鍵字。超關(guān)鍵字能唯一標識每個元組。例如:{學號,年齡}、{學號,性別}候選關(guān)鍵字(Candidatekey)如果某一屬性集合是超關(guān)鍵字,但去掉其中任一屬性后就不再是超關(guān)鍵字了,這樣的屬性集合稱為候選關(guān)鍵字。例如:{學號}、{學號,課程號}3、幾個關(guān)鍵字術(shù)語10推論:

①候選關(guān)鍵字的屬性集合中,不含有多余的屬性值;但屬性集合中的每個屬性并非都能唯一標識元組。②候選關(guān)鍵字必為超關(guān)鍵字,反之不一定成立。合成關(guān)鍵字(Compositekey)當某個候選關(guān)鍵字包含多個屬性時,稱該候選關(guān)鍵字為合成關(guān)鍵字。推論:11主關(guān)鍵字(Primarykey)為關(guān)系組織物理文件時,常選用一個候選關(guān)鍵字作為插入、刪除、檢索元組的操作變量。被選用的那個候選關(guān)鍵字稱為主關(guān)鍵字。不在主關(guān)鍵字中的屬性稱為輔關(guān)鍵字或關(guān)鍵字。外部關(guān)鍵字(Foreignkey)如果關(guān)系r1的某一(些)屬性A1不是r1的候選關(guān)鍵字,而是另一關(guān)系r2的候選關(guān)鍵字,則稱A1為r1的外部關(guān)鍵字。合成關(guān)鍵字和外部關(guān)鍵字提供了一種表示兩個關(guān)系相互聯(lián)系的方法。主關(guān)鍵字(Primarykey)124、關(guān)系模式是對關(guān)系的描述。它描述了一個對象的靜態(tài)結(jié)構(gòu),用二維表框架(叫關(guān)系框架)表示。那么一個關(guān)系需要描述具體哪些方面呢?(1)有哪些屬性構(gòu)成的?這些屬性來自于哪些域?以及屬性與域之間的映象關(guān)系。(2)同一關(guān)系模式可對應(yīng)出若干不同的關(guān)系,即關(guān)系的值是可動態(tài)變化的,但這種變化必須滿足一定的條件,即完整性約束條件(通過對屬性取值范圍的限定,或通過屬性間的相互關(guān)聯(lián)反映出來)。4、關(guān)系模式13所以,一個關(guān)系模式是個五元組r(R,D,d,F(xiàn))。顯然,關(guān)系模式是型,關(guān)系是它的值;關(guān)系模式是靜態(tài)的、穩(wěn)定的,而關(guān)系是動態(tài)的,隨時間不斷變化的。5、關(guān)系模型關(guān)系模型是所有的關(guān)系模式、屬性名和關(guān)鍵字的集合;即:若干關(guān)系框架的集合。一個關(guān)系模型描述了若干實體及其相互的聯(lián)系。所以,一個關(guān)系模式是個五元組r(R,D,d,F(xiàn))。146、關(guān)系數(shù)據(jù)庫

對應(yīng)于一個關(guān)系模型的所有關(guān)系的集合,稱為關(guān)系數(shù)據(jù)庫。實際上,關(guān)系數(shù)據(jù)庫也有型與值之分:關(guān)系數(shù)據(jù)庫的型稱為關(guān)系數(shù)據(jù)庫模式,是對關(guān)系數(shù)據(jù)庫的描述,包括域的定義以及在這些域上定義的若干關(guān)系模式;關(guān)系數(shù)據(jù)庫的值稱為關(guān)系數(shù)據(jù)庫,是這些關(guān)系模式在某一時刻對應(yīng)的關(guān)系的集合。6、關(guān)系數(shù)據(jù)庫15二、關(guān)系模型的完整性規(guī)則(約束)為了維護數(shù)據(jù)庫中數(shù)據(jù)與現(xiàn)實世界的一致性,關(guān)系數(shù)據(jù)庫在定義和操作時要遵循四類完整性規(guī)則。1、域完整性約束規(guī)定屬性值必須取自于值域;一個屬性是否為空值由其語義決定。2、實體完整性約束規(guī)定:組成主關(guān)鍵字的屬性不能有空值,否則無法識別元組。它主要考慮一個關(guān)系內(nèi)部的制約。

二、關(guān)系模型的完整性規(guī)則(約束)16

3、引用完整性約束考慮不同關(guān)系之間的制約。規(guī)定:在本關(guān)系中不允許引用不存在的元組。4、用戶自定義完整性約束該規(guī)則是用戶針對某一具體關(guān)系數(shù)據(jù)庫的約束條件,所以是特殊的約束條件,由應(yīng)用環(huán)境決定。它反映某一具體應(yīng)用所涉及的數(shù)據(jù)必須滿足的語義要求。3、引用完整性約束173.2關(guān)系運算3.2關(guān)系運算18

一、

關(guān)系代數(shù)

三種運算符(、,、、≤、≥,?、∧、∨)1.傳統(tǒng)集合運算并:r1∪r2={ttr1∨t∈r2},結(jié)果是r1[R]、r2[R]的同類關(guān)系差:r1-r2={t∣t∈r1∧tr2},交:r1∩r2={ttr1∧t∈r2}=r1-(r1-r2),積:rs={tt=u,v∧ur∧vs}是(k1+k2)元關(guān)系一、關(guān)系代數(shù)192.專門的關(guān)系運算選擇:F(r)={ttrF(t)=“真”}(F為選擇條件,用邏輯表達式AjC或AjAi表示)投影:A(r)={uu=t[A]tr[R]AR}連接(-連接):rs={tt=u,v∧ur∧vsu[Ai]v[Bj]}=AiBj(rs)Ai=Bj時為等接;自然連接:r

s={tt=u,?∧ur∧vsu[Aik]=v[Bjk]?=v[S]}2.專門的關(guān)系運算r20除rs={u對每一元組vs都存在同一元組tr,使得t[Q]=u且t[S]=v}半連rs=R(rs)囿補?={t|t(A1(r)×A2(r)××Ak(r))tr},是有限關(guān)系關(guān)系數(shù)據(jù)模型與語言教學課件21

對任何有限關(guān)系,經(jīng)上述定義的關(guān)系代數(shù)運算,結(jié)果仍是有限關(guān)系----稱這些關(guān)系代數(shù)運算為囿代數(shù)運算;只包含囿代數(shù)運算的關(guān)系代數(shù)稱為囿關(guān)系代數(shù).補?={t|td(R)tr},關(guān)系框架為R,?可能是無限關(guān)系.對有限關(guān)系求補可能成為無限關(guān)系,故將包含補運算的關(guān)系代數(shù),稱為非囿關(guān)系代數(shù)。對任何有限關(guān)系,經(jīng)上述定義的關(guān)系代數(shù)運算,結(jié)果22注意:屬性的值域一般是任意“非空的有限集合”,但也允許是“可數(shù)的無限集合”。當值域為無限集合時,d(R)笛卡爾乘積空間也是無限集合,則其中的子集可以是有限集合,也可以是無限集合,對應(yīng)的是有限關(guān)系和無限關(guān)系。在計算機中,只能存儲有限關(guān)系。注意:233.關(guān)系代數(shù)運算舉例關(guān)系代數(shù)運算

關(guān)系的5種基本運算:并U、差?、積×、投影Π、選擇σ關(guān)系的4種非基本運算:交∩、連接θ、除÷、囿補?3.關(guān)系代數(shù)運算舉例關(guān)系代數(shù)運算關(guān)系的4種非基本運算:24[例]給出三個關(guān)系的模式:選課(學號,課號,成績)必修課、選修課(課號,課名)有三個具體關(guān)系:選課:學號課號成績必修課:課號課名

S1C1AC1C語言程序設(shè)計S1C2BC3數(shù)據(jù)結(jié)構(gòu)S1C3BS2C1AS2C3BS3C1BS3C3B選修課:課號課名

S4C1AC2軟件工程S4C2AS5C2BS5C3BS5C1A

[例]給出三個關(guān)系的模式:有三個具體關(guān)系:25要求:選課÷必修課選課÷選修課2)關(guān)系代數(shù)查詢表示

Π(學號,課號)(選課)÷必修課要求:2)關(guān)系代數(shù)查詢表示26[例]假設(shè)學生選課庫的關(guān)系模式為:

學生(學號,姓名,性別,年齡,所在系)課程(課程號,課程名,先行課)選課(學號,課程號,成績)求:

選修了課程號為“C1”的課程的學生學號;選修了課程號為“C3”的課程的學生學號和姓名;沒有選修課程號為“C2”的課程的學生學號;選修課程號為“C1”或“C2”的課程的學生學號。[例]假設(shè)學生選課庫的關(guān)系模式為:求:選修了課程號為“C27二、關(guān)系演算

用謂詞作為變元表達查詢的要求和條件1.元組演算

以元組變量作為謂詞變元對象的關(guān)系運算。

元組演算中,用演算表達式:{t|φ(t)}表示關(guān)系。其中,φ(t)為公式(原子公式和運算符組成的),t為φ中唯一的自由元組變量。二、關(guān)系演算1.元組演算28②t[i]C或Ct[i]

t[i]u[j]

其中,t、u是元組變量,是算術(shù)比較運算符,C是常量。t[i]、u[j]分別表示元組t的第i個分量、元組u的第j個分量。

1)

三種原子公式

①r(t):r是關(guān)系名,t是元組變量。r(t)表示:“t是關(guān)系r的元組”。所以,關(guān)系可用元組演算表達式{t|r(t)}表示。②t[i]C或Ct[i]292)全稱量詞()和存在量詞()設(shè)是公式,t是中的元組變量,則(t)()、(t)()都是公式。

(t):“對任意一個t”,或“對所有的t”。

(t)():“對所有的t,為真時,(t)()才為真,否則為假”。(t)()

(t1)(t2)···(tk)2)全稱量詞()和存在量詞()30

(t):“存在這樣的t”,或“至少有這樣一個t”。

(t)():“若有一個t使(t)()為真,則(t)()為真,否則為假”。(t)()

(t1)(t2)···(tk)(t):“存在這樣的t”,或“至少有這樣一個t”313)公式中的運算符運算優(yōu)先次序先括號;算術(shù)比較運算符;量詞(、);邏輯運算符(、、)

元組關(guān)系演算公式:是由它的原子公式經(jīng)有限次的算術(shù)比較運算、邏輯運算、量詞運算而形成的復合公式。4)舉例

3)公式中的運算符運算優(yōu)先次序元組關(guān)系演算公321a17f8

9e9

0c53a5

4c4

2b01a17f33求:

r1={tr(t)

s(t)};r2={tr(t)t[2]=a};r3={t(u)(r(t)s(u)t[1]u[3]t[2]b

;r4={t(u)(r(u)t[1]=u[3]t[2]=u[1]

。求:342.域演算

以域變量(元組變量的分量)作為謂詞變元的關(guān)系運算。

域演算表達式為:{t1t2tk|φ(t1,t2,tk)}

其中,t1,t2,tk為元組變量t的各個分量,

φ是域演算公式。域演算表達式為:{t1t2tk|φ(35

1)

三種原子公式

r(t1t2tk):“以t1,t2,tk為分量的元組在關(guān)系r中”

②tiC或Cti

tiuj1)

三種原子公式362)全稱量詞()和存在量詞()設(shè)(t1,t2,…,tk)是公式,則(ti)()、(ti)()(i=1,2,…,k)都是公式。(ti)):“對元組t中的任意一分量ti”,或“對所有分量ti”。(ti)():“對所有分量ti,為真時,(ti)()才為真,否則為假”。(ti):“元組中存在這樣的分量ti”,或“元組中至少有這樣一個分量ti”。(ti)():“若有一個ti使為真,則(ti)()為真,否則為假”。2)全稱量詞()和存在量詞()(ti):“元組中存在這373)公式中的運算符運算優(yōu)先次序先括號;算術(shù)比較運算符;量詞(、);邏輯運算符(、、)域關(guān)系演算公式:是由它的原子公式經(jīng)有限次的算術(shù)比較運算、邏輯運算、量詞運算而形成的復合公式。3)公式中的運算符運算優(yōu)先次序域關(guān)系演算公式38

4)舉例

5b6

5d32c4

4a6

1c8

2ad5be4cf5b65d39求:

r1={xyzr(xyz)(z5y=a)};r2={xyzr(xyz)s(xyz)x=5z6};

r3={vyxzurxyzw(uvt)zu求:40三、

關(guān)系運算的安全約束1.問題由來

關(guān)系代數(shù)中:若只用囿關(guān)系代數(shù),則不會產(chǎn)生無限關(guān)系;若使用非囿關(guān)系代數(shù),則可能產(chǎn)生無限關(guān)系。三、

關(guān)系運算的安全約束41關(guān)系演算中:①演算表達式的值可能是無限關(guān)系。如:{t

rt

表示所有不在關(guān)系r中的元組集合。

②演算可能出現(xiàn)無窮次的代入運算。如:判定u

u

為假?須對u變量的所有可能值進行驗證,當沒有一個u使為真時,才能有結(jié)論。若u的取值有無窮多個時,驗證過程是無窮的。判定u

u

為真?須驗證所有可能的u,只有全部的u使為真,才成立。關(guān)系演算中:②演算可能出現(xiàn)無窮次的代入運算。判422.安全囿的確定計算機不允許出現(xiàn)上述兩種情況。因為:①存儲空間有限,不可能存無限關(guān)系;②運算時間不能無限延長,不能及時得到正確結(jié)果。

為此,對關(guān)系運算要選擇一個安全囿,使其表達式求值運算只在安全囿范圍內(nèi)進行。2.安全囿的確定43[例]安全囿d()的確定:[例]安全囿d()的確定:442)E2=tst

t2=dd=DsEsFs,共有48個元組。3)E3=x1x2

x3

sx1x2x3x3gd共48個元組。2)E2=tstt2=d45四、

三類關(guān)系運算的等價表示學號姓名年齡性別籍貫0860108602086030860408605王曉燕李波陳志堅張兵張兵2023212022女男男男女北京上海長沙上海武漢學生關(guān)系XS:四、

三類關(guān)系運算的等價表示學號姓名年齡性別籍貫08601王46課程關(guān)系KC:課程號課程名教師辦公室C601C602C603C604高等數(shù)學數(shù)據(jù)結(jié)構(gòu)操作系統(tǒng)編譯原理周振興劉建平劉建平王志偉416227227227學習關(guān)系XX:學號課程號成績086010860108601086010860208603086030860308604086040860508605C601C602C603C604C601C601C602C604C601C604C601C603909085879075705690859580課程關(guān)系KC:課程號課程名教師辦公室C601高等數(shù)學周振興447Π2,6,7(籍貫=上海(XSXX)Π2,9,7(XSXX課程名=操作系統(tǒng)(KC))Π2,3(XS(Π1,2(XX)÷

Π1(KC))

1)將關(guān)系代數(shù)表達式用漢語表示含義,并求結(jié)果;2)把關(guān)系代數(shù)表達式轉(zhuǎn)換成等價的元組(域)演算表達式。Π2,6,7(籍貫=上海(XSXX)Π481、用關(guān)系代數(shù)表達式寫出下列句子的含義:1)找出所有男生的學號和年齡;2)找出年齡<22、籍貫在上海的所有男生的姓名、課程號、成績;3)找出學習“陳志堅所學全部課程”的所有學生的學號、姓名。2、把上述得到的關(guān)系代數(shù)表達式轉(zhuǎn)換成等價的元組(域)演算表達式。1、用關(guān)系代數(shù)表達式寫出下列句子的含義:2、把上述得到的關(guān)系493.3關(guān)系數(shù)據(jù)庫語言

是基于三類關(guān)系運算的關(guān)系操作語言。三種典型的關(guān)系查詢語言:

1.

基于關(guān)系代數(shù)的語言ISBL2.

基于元組演算的語言QUEL3.

基于域演算的語言QBE關(guān)系數(shù)據(jù)模型與語言教學課件503.4SQL語言關(guān)系代數(shù)和關(guān)系演算是形式化查詢語言,商業(yè)DBMS使用SQL(StructuredQueryLanguage)。一、SQL概述SQL特點(1)綜合統(tǒng)一(數(shù)據(jù)定義、查詢、更新、控制功能一體化)(2)高度非過程化(3)面向集合的操作方式(4)一種語法結(jié)構(gòu)兩種使用方式

(自含式語言、嵌入式語言)(5)語言簡潔,易學易用3.4SQL語言一、SQL概述512、SQL語言的基本概念

SQL語言支持關(guān)系DB三級模式結(jié)構(gòu):2、SQL語言的基本概念52基本表

是獨立存在的表,一個關(guān)系對應(yīng)一個表。一些基本表對應(yīng)一個存儲文件,一個表可以帶若干索引,索引存放在存儲文件中。存儲文件

其邏輯結(jié)構(gòu)組成了關(guān)系DB的內(nèi)模式。其物理文件結(jié)構(gòu)是任意的。視圖

是從基本表或其它視圖中導出的表,它本身不獨立存儲在數(shù)據(jù)庫中,即,在DB中只存放視圖的定義,而不存放視圖對應(yīng)的數(shù)據(jù),這些數(shù)據(jù)仍存于基本表中。視圖是一個虛表?;颈泶鎯ξ募晥D53用戶用SQL語言對視圖和基本表進行查詢。在用戶看來,視圖和基本表都是關(guān)系。

二、數(shù)據(jù)定義

關(guān)系數(shù)據(jù)庫的基本對象是表、視圖和索引。SQL的數(shù)據(jù)定義功能包括:定義表、定義視圖、定義索引;修改表定義(不提供修改視圖、修改索引定義的操作,因為,視圖是基本表的虛表,索引是依附于基本表的。)用戶用SQL語言對視圖和基本表進行查詢。二、數(shù)據(jù)定54關(guān)系數(shù)據(jù)模型與語言教學課件55如定義基本表:

CREATETABLES(SNOCHAR(7)NOTNULL,NAMECHAR(10),AGESMALLINT,SEXCHAR(1),PRIMARYKEY(SNO),CHECK(AGEBETWEEN15AND25));撤消已存在的基本表S:DROPTABLES;如定義基本表:撤消已存在的基本表S:DROPTABLE56定義基本表:

CREATETABLEC(CNOCHAR(6)NOTNULL,F(xiàn)ORMATSMALLINTNOTNULL,TEACHERCHAR(10),OFFICECHAR(4),PRIMARYKEY(CNO));撤消已存在的基本表C:DROPTABLEC;定義基本表:撤消已存在的基本表C:DROPTABLE57定義基本表:

CREATETABLESC(SNOCHAR(7)NOTNULL,CNOCHAR(6)NOTNULL,GRADEDEC(4,1)DEFAULTNULL,PRIMARYKEY(SNO,CNO)),F(xiàn)OREIGNKEY(SNO)REFERENCESSONDELETECASCADE,F(xiàn)OREIGNKEY(CNO)REFERENCESCONDELETERESTRICT);定義基本表:58建立視圖(打印成績表所用的視圖STUDENT-GRADE定義):

CREATEVIEWSTUDENT-GRADE

ASSELECTS.SNO,S.NAME,C.CNO,GRADEFROMS,SC,CWHERES.SNO=SC.SNOANDSC.CNO=C.CNO撤消視圖STUDENT-GRADE:

DROPVIEWSTUDENT-GRADE;建立視圖(打印成績表所用的視圖STUDENT-GRADE定義59三、

查詢

是數(shù)據(jù)庫的核心操作。格式:SELECT[ALLDISTINCT]〈目標列表達式〉[,〈〉]FROM〈表名或視圖名〉[,〈〉][WHERE〈條件表達式〉][GROUPBY〈列名1〉[HAVING〈條件表達式〉]][ORDERBY〈列名2〉[ASCDESC]];可單表查詢,也可連接查詢、嵌套查詢、集合查詢。三、

查詢60

四、數(shù)據(jù)更新

INSERT、UPDATE、DELETE等。

五、視圖

包括視圖的定義、查詢、更新、作用等。

六、數(shù)據(jù)控制四、數(shù)據(jù)更新61第3章關(guān)系數(shù)據(jù)模型及語言

關(guān)系數(shù)據(jù)庫是以關(guān)系模型為基礎(chǔ)的數(shù)據(jù)庫。特點:建立在嚴格的數(shù)學理論基礎(chǔ)上;關(guān)系模型簡單、清晰;有較高的數(shù)據(jù)獨立性;數(shù)據(jù)庫語言非過程化;可用于知識庫、數(shù)據(jù)庫機、分布式數(shù)據(jù)庫、并行數(shù)據(jù)庫等領(lǐng)域。第3章關(guān)系數(shù)據(jù)模型及語言關(guān)系數(shù)據(jù)庫是以623.1關(guān)系模型

一、關(guān)系的有關(guān)概念1.關(guān)系與文件(比較)

在關(guān)系模型中,數(shù)據(jù)是以二維表的形式存在,這個二維表稱為“關(guān)系”。如學生關(guān)系、課程關(guān)系、學習關(guān)系:3.1關(guān)系模型63在文件組織中,這些表格稱為文件。在文件組織中,這些表格稱為文件。64

術(shù)語對照:

65關(guān)系具有的特性:(1)每一列有不同的名字,但每一列屬同一類型的域值;不同列也可以出自相同的域;(2)任意兩行不能全同;(3)每一數(shù)據(jù)項應(yīng)為不可再分的數(shù)據(jù)單位;(4)行、列次序無關(guān);(5)具有主關(guān)鍵字唯一標識各個元組;關(guān)系具有的特性:662、關(guān)系的集合論定義

定義1(關(guān)系框架):關(guān)系框架R是表示關(guān)系的所有屬性A1,A2,…,Ak的有限集合。每個屬性Aj對應(yīng)一個值域Di=d(Aj)(j=1,2,…,k),值域(簡稱為域)可以是任意的非空有限集合或可數(shù)無限集合。

定義2(關(guān)系):關(guān)系框架R上的一個關(guān)系r[R]是它的屬性Aj(j=1,2,…,k)所對應(yīng)的域d(Aj)構(gòu)成的笛卡兒乘積空間d(R)=d(A1)×d(A2)×…×d(Ak)中的一個子集D’。k稱為關(guān)系r[R]的元數(shù),D中的任一點稱為關(guān)系r[R]的一個元組。關(guān)系r[R]簡記為r。2、關(guān)系的集合論定義67

屬性Aj(j=1,2,…,k)又稱為分量或坐標,R又稱為乘積空間d(R)的坐標系。

k元關(guān)系r的一個元組t有k個分量,t=<t1,t2,…,tk>。當用t泛指關(guān)系r的任一元組時,稱t為r的元組變量。

用集合符號表示:

r={<t1,t2,…,tk>∣<t1,t2,…,tk>Dd(R)}r={t∣tD’}

68舉例:有一關(guān)系框架FAMILY(MAN,WOMAN,CHILD),其中d(A1)={MAN}={王平,李兵},d(A2)={WOMAN}={丁燕,趙芳},d(A3)={CHILD}={王一,李二}。構(gòu)成的笛卡兒乘積空間為:d(FMAILY)=d(A1)×d(A2)×d(A3),共有8個元組,從其中取一個子集,得關(guān)系:舉例:有一關(guān)系框架FAMILY(MAN,WOMAN,CHIL69所以,當值域為無限集合時,笛卡爾乘積空間d(R)也是無限集合,則其中的子集可以是有限集合,也可以是無限集合,對應(yīng)的是有限關(guān)系和無限關(guān)系。在計算機中,只能存儲有限關(guān)系。所以,當值域為無限集合時,笛卡爾乘積空間d(R)也是無限集合703、幾個關(guān)鍵字術(shù)語超關(guān)鍵字(Superkey)

在關(guān)系r[R]中,如果屬性集合XR具有性質(zhì):“對r的任何兩個元組t、u,都有t[X]u[X]”,則稱X為r的超關(guān)鍵字。超關(guān)鍵字能唯一標識每個元組。例如:{學號,年齡}、{學號,性別}候選關(guān)鍵字(Candidatekey)如果某一屬性集合是超關(guān)鍵字,但去掉其中任一屬性后就不再是超關(guān)鍵字了,這樣的屬性集合稱為候選關(guān)鍵字。例如:{學號}、{學號,課程號}3、幾個關(guān)鍵字術(shù)語71推論:

①候選關(guān)鍵字的屬性集合中,不含有多余的屬性值;但屬性集合中的每個屬性并非都能唯一標識元組。②候選關(guān)鍵字必為超關(guān)鍵字,反之不一定成立。合成關(guān)鍵字(Compositekey)當某個候選關(guān)鍵字包含多個屬性時,稱該候選關(guān)鍵字為合成關(guān)鍵字。推論:72主關(guān)鍵字(Primarykey)為關(guān)系組織物理文件時,常選用一個候選關(guān)鍵字作為插入、刪除、檢索元組的操作變量。被選用的那個候選關(guān)鍵字稱為主關(guān)鍵字。不在主關(guān)鍵字中的屬性稱為輔關(guān)鍵字或關(guān)鍵字。外部關(guān)鍵字(Foreignkey)如果關(guān)系r1的某一(些)屬性A1不是r1的候選關(guān)鍵字,而是另一關(guān)系r2的候選關(guān)鍵字,則稱A1為r1的外部關(guān)鍵字。合成關(guān)鍵字和外部關(guān)鍵字提供了一種表示兩個關(guān)系相互聯(lián)系的方法。主關(guān)鍵字(Primarykey)734、關(guān)系模式是對關(guān)系的描述。它描述了一個對象的靜態(tài)結(jié)構(gòu),用二維表框架(叫關(guān)系框架)表示。那么一個關(guān)系需要描述具體哪些方面呢?(1)有哪些屬性構(gòu)成的?這些屬性來自于哪些域?以及屬性與域之間的映象關(guān)系。(2)同一關(guān)系模式可對應(yīng)出若干不同的關(guān)系,即關(guān)系的值是可動態(tài)變化的,但這種變化必須滿足一定的條件,即完整性約束條件(通過對屬性取值范圍的限定,或通過屬性間的相互關(guān)聯(lián)反映出來)。4、關(guān)系模式74所以,一個關(guān)系模式是個五元組r(R,D,d,F(xiàn))。顯然,關(guān)系模式是型,關(guān)系是它的值;關(guān)系模式是靜態(tài)的、穩(wěn)定的,而關(guān)系是動態(tài)的,隨時間不斷變化的。5、關(guān)系模型關(guān)系模型是所有的關(guān)系模式、屬性名和關(guān)鍵字的集合;即:若干關(guān)系框架的集合。一個關(guān)系模型描述了若干實體及其相互的聯(lián)系。所以,一個關(guān)系模式是個五元組r(R,D,d,F(xiàn))。756、關(guān)系數(shù)據(jù)庫

對應(yīng)于一個關(guān)系模型的所有關(guān)系的集合,稱為關(guān)系數(shù)據(jù)庫。實際上,關(guān)系數(shù)據(jù)庫也有型與值之分:關(guān)系數(shù)據(jù)庫的型稱為關(guān)系數(shù)據(jù)庫模式,是對關(guān)系數(shù)據(jù)庫的描述,包括域的定義以及在這些域上定義的若干關(guān)系模式;關(guān)系數(shù)據(jù)庫的值稱為關(guān)系數(shù)據(jù)庫,是這些關(guān)系模式在某一時刻對應(yīng)的關(guān)系的集合。6、關(guān)系數(shù)據(jù)庫76二、關(guān)系模型的完整性規(guī)則(約束)為了維護數(shù)據(jù)庫中數(shù)據(jù)與現(xiàn)實世界的一致性,關(guān)系數(shù)據(jù)庫在定義和操作時要遵循四類完整性規(guī)則。1、域完整性約束規(guī)定屬性值必須取自于值域;一個屬性是否為空值由其語義決定。2、實體完整性約束規(guī)定:組成主關(guān)鍵字的屬性不能有空值,否則無法識別元組。它主要考慮一個關(guān)系內(nèi)部的制約。

二、關(guān)系模型的完整性規(guī)則(約束)77

3、引用完整性約束考慮不同關(guān)系之間的制約。規(guī)定:在本關(guān)系中不允許引用不存在的元組。4、用戶自定義完整性約束該規(guī)則是用戶針對某一具體關(guān)系數(shù)據(jù)庫的約束條件,所以是特殊的約束條件,由應(yīng)用環(huán)境決定。它反映某一具體應(yīng)用所涉及的數(shù)據(jù)必須滿足的語義要求。3、引用完整性約束783.2關(guān)系運算3.2關(guān)系運算79

一、

關(guān)系代數(shù)

三種運算符(、,、、≤、≥,?、∧、∨)1.傳統(tǒng)集合運算并:r1∪r2={ttr1∨t∈r2},結(jié)果是r1[R]、r2[R]的同類關(guān)系差:r1-r2={t∣t∈r1∧tr2},交:r1∩r2={ttr1∧t∈r2}=r1-(r1-r2),積:rs={tt=u,v∧ur∧vs}是(k1+k2)元關(guān)系一、關(guān)系代數(shù)802.專門的關(guān)系運算選擇:F(r)={ttrF(t)=“真”}(F為選擇條件,用邏輯表達式AjC或AjAi表示)投影:A(r)={uu=t[A]tr[R]AR}連接(-連接):rs={tt=u,v∧ur∧vsu[Ai]v[Bj]}=AiBj(rs)Ai=Bj時為等接;自然連接:r

s={tt=u,?∧ur∧vsu[Aik]=v[Bjk]?=v[S]}2.專門的關(guān)系運算r81除rs={u對每一元組vs都存在同一元組tr,使得t[Q]=u且t[S]=v}半連rs=R(rs)囿補?={t|t(A1(r)×A2(r)××Ak(r))tr},是有限關(guān)系關(guān)系數(shù)據(jù)模型與語言教學課件82

對任何有限關(guān)系,經(jīng)上述定義的關(guān)系代數(shù)運算,結(jié)果仍是有限關(guān)系----稱這些關(guān)系代數(shù)運算為囿代數(shù)運算;只包含囿代數(shù)運算的關(guān)系代數(shù)稱為囿關(guān)系代數(shù).補?={t|td(R)tr},關(guān)系框架為R,?可能是無限關(guān)系.對有限關(guān)系求補可能成為無限關(guān)系,故將包含補運算的關(guān)系代數(shù),稱為非囿關(guān)系代數(shù)。對任何有限關(guān)系,經(jīng)上述定義的關(guān)系代數(shù)運算,結(jié)果83注意:屬性的值域一般是任意“非空的有限集合”,但也允許是“可數(shù)的無限集合”。當值域為無限集合時,d(R)笛卡爾乘積空間也是無限集合,則其中的子集可以是有限集合,也可以是無限集合,對應(yīng)的是有限關(guān)系和無限關(guān)系。在計算機中,只能存儲有限關(guān)系。注意:843.關(guān)系代數(shù)運算舉例關(guān)系代數(shù)運算

關(guān)系的5種基本運算:并U、差?、積×、投影Π、選擇σ關(guān)系的4種非基本運算:交∩、連接θ、除÷、囿補?3.關(guān)系代數(shù)運算舉例關(guān)系代數(shù)運算關(guān)系的4種非基本運算:85[例]給出三個關(guān)系的模式:選課(學號,課號,成績)必修課、選修課(課號,課名)有三個具體關(guān)系:選課:學號課號成績必修課:課號課名

S1C1AC1C語言程序設(shè)計S1C2BC3數(shù)據(jù)結(jié)構(gòu)S1C3BS2C1AS2C3BS3C1BS3C3B選修課:課號課名

S4C1AC2軟件工程S4C2AS5C2BS5C3BS5C1A

[例]給出三個關(guān)系的模式:有三個具體關(guān)系:86要求:選課÷必修課選課÷選修課2)關(guān)系代數(shù)查詢表示

Π(學號,課號)(選課)÷必修課要求:2)關(guān)系代數(shù)查詢表示87[例]假設(shè)學生選課庫的關(guān)系模式為:

學生(學號,姓名,性別,年齡,所在系)課程(課程號,課程名,先行課)選課(學號,課程號,成績)求:

選修了課程號為“C1”的課程的學生學號;選修了課程號為“C3”的課程的學生學號和姓名;沒有選修課程號為“C2”的課程的學生學號;選修課程號為“C1”或“C2”的課程的學生學號。[例]假設(shè)學生選課庫的關(guān)系模式為:求:選修了課程號為“C88二、關(guān)系演算

用謂詞作為變元表達查詢的要求和條件1.元組演算

以元組變量作為謂詞變元對象的關(guān)系運算。

元組演算中,用演算表達式:{t|φ(t)}表示關(guān)系。其中,φ(t)為公式(原子公式和運算符組成的),t為φ中唯一的自由元組變量。二、關(guān)系演算1.元組演算89②t[i]C或Ct[i]

t[i]u[j]

其中,t、u是元組變量,是算術(shù)比較運算符,C是常量。t[i]、u[j]分別表示元組t的第i個分量、元組u的第j個分量。

1)

三種原子公式

①r(t):r是關(guān)系名,t是元組變量。r(t)表示:“t是關(guān)系r的元組”。所以,關(guān)系可用元組演算表達式{t|r(t)}表示。②t[i]C或Ct[i]902)全稱量詞()和存在量詞()設(shè)是公式,t是中的元組變量,則(t)()、(t)()都是公式。

(t):“對任意一個t”,或“對所有的t”。

(t)():“對所有的t,為真時,(t)()才為真,否則為假”。(t)()

(t1)(t2)···(tk)2)全稱量詞()和存在量詞()91

(t):“存在這樣的t”,或“至少有這樣一個t”。

(t)():“若有一個t使(t)()為真,則(t)()為真,否則為假”。(t)()

(t1)(t2)···(tk)(t):“存在這樣的t”,或“至少有這樣一個t”923)公式中的運算符運算優(yōu)先次序先括號;算術(shù)比較運算符;量詞(、);邏輯運算符(、、)

元組關(guān)系演算公式:是由它的原子公式經(jīng)有限次的算術(shù)比較運算、邏輯運算、量詞運算而形成的復合公式。4)舉例

3)公式中的運算符運算優(yōu)先次序元組關(guān)系演算公931a17f8

9e9

0c53a5

4c4

2b01a17f94求:

r1={tr(t)

s(t)};r2={tr(t)t[2]=a};r3={t(u)(r(t)s(u)t[1]u[3]t[2]b

;r4={t(u)(r(u)t[1]=u[3]t[2]=u[1]

。求:952.域演算

以域變量(元組變量的分量)作為謂詞變元的關(guān)系運算。

域演算表達式為:{t1t2tk|φ(t1,t2,tk)}

其中,t1,t2,tk為元組變量t的各個分量,

φ是域演算公式。域演算表達式為:{t1t2tk|φ(96

1)

三種原子公式

r(t1t2tk):“以t1,t2,tk為分量的元組在關(guān)系r中”

②tiC或Cti

tiuj1)

三種原子公式972)全稱量詞()和存在量詞()設(shè)(t1,t2,…,tk)是公式,則(ti)()、(ti)()(i=1,2,…,k)都是公式。(ti)):“對元組t中的任意一分量ti”,或“對所有分量ti”。(ti)():“對所有分量ti,為真時,(ti)()才為真,否則為假”。(ti):“元組中存在這樣的分量ti”,或“元組中至少有這樣一個分量ti”。(ti)():“若有一個ti使為真,則(ti)()為真,否則為假”。2)全稱量詞()和存在量詞()(ti):“元組中存在這983)公式中的運算符運算優(yōu)先次序先括號;算術(shù)比較運算符;量詞(、);邏輯運算符(、、)域關(guān)系演算公式:是由它的原子公式經(jīng)有限次的算術(shù)比較運算、邏輯運算、量詞運算而形成的復合公式。3)公式中的運算符運算優(yōu)先次序域關(guān)系演算公式99

4)舉例

5b6

5d32c4

4a6

1c8

2ad5be4cf5b65d100求:

r1={xyzr(xyz)(z5y=a)};r2={xyzr(xyz)s(xyz)x=5z6};

r3={vyxzurxyzw(uvt)zu求:101三、

關(guān)系運算的安全約束1.問題由來

關(guān)系代數(shù)中:若只用囿關(guān)系代數(shù),則不會產(chǎn)生無限關(guān)系;若使用非囿關(guān)系代數(shù),則可能產(chǎn)生無限關(guān)系。三、

關(guān)系運算的安全約束102關(guān)系演算中:①演算表達式的值可能是無限關(guān)系。如:{t

rt

表示所有不在關(guān)系r中的元組集合。

②演算可能出現(xiàn)無窮次的代入運算。如:判定u

u

為假?須對u變量的所有可能值進行驗證,當沒有一個u使為真時,才能有結(jié)論。若u的取值有無窮多個時,驗證過程是無窮的。判定u

u

為真?須驗證所有可能的u,只有全部的u使為真,才成立。關(guān)系演算中:②演算可能出現(xiàn)無窮次的代入運算。判1032.安全囿的確定計算機不允許出現(xiàn)上述兩種情況。因為:①存儲空間有限,不可能存無限關(guān)系;②運算時間不能無限延長,不能及時得到正確結(jié)果。

為此,對關(guān)系運算要選擇一個安全囿,使其表達式求值運算只在安全囿范圍內(nèi)進行。2.安全囿的確定104[例]安全囿d()的確定:[例]安全囿d()的確定:1052)E2=tst

t2=dd=DsEsFs,共有48個元組。3)E3=x1x2

x3

sx1x2x3x3gd共48個元組。2)E2=tstt2=d106四、

三類關(guān)系運算的等價表示學號姓名年齡性別籍貫0860108602086030860408605王曉燕李波陳志堅張兵張兵2023212022女男男男女北京上海長沙上海武漢學生關(guān)系XS:四、

三類關(guān)系運算的等價表示學號姓名年齡性別籍貫08601王107課程關(guān)系KC:課程號課程名教師辦公室C601C602C603C604高等數(shù)學數(shù)據(jù)結(jié)構(gòu)操作系統(tǒng)編譯原理周振興劉建平劉建平王志偉416227227227學習關(guān)系XX:學號課程號成績086010860108601086010860208603086030860308604086040860508605C601C602C603C604C601C601C602C604C601C604C601C603909085879075705690859580課程關(guān)系KC:課程號課程名教師辦公室C601高等數(shù)學周振興4108Π2,6,7(籍貫=上海(XSXX)Π2,9,7(XSXX課程名=操作系統(tǒng)(KC))Π2,3(XS(Π1,2(XX)÷

Π1(KC))

1)將關(guān)系代數(shù)表達式用漢語表示含義,并求結(jié)果;2)把關(guān)系代數(shù)表達式轉(zhuǎn)換成等價的元組(域)演算表達式。Π2,6,7(籍貫=上海(XSXX)Π1091、用關(guān)系代數(shù)表達式寫出下列句子的含義:1)找出所有男生的學號和年齡;2)找出年齡<22、籍貫在上海的所有男生的姓名、課程號、成績

溫馨提示

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

評論

0/150

提交評論