可視化程序設(shè)計-_第1頁
可視化程序設(shè)計-_第2頁
可視化程序設(shè)計-_第3頁
可視化程序設(shè)計-_第4頁
可視化程序設(shè)計-_第5頁
已閱讀5頁,還剩92頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、關(guān)系數(shù)據(jù)庫數(shù)學(xué)模型關(guān)系模型的基本概念EER模型到關(guān)系模型的轉(zhuǎn)換關(guān)系代數(shù)關(guān)系演算關(guān)系模型的基本概念在關(guān)系模型中,無論是實體還是實體之間的聯(lián)系都是由單一的結(jié)構(gòu)類型即關(guān)系(或稱為表)來表示的關(guān)系是關(guān)系模型的基礎(chǔ),關(guān)系模型是建立在集合代數(shù)基礎(chǔ)之上在關(guān)系的概念中,涉及到域、笛卡爾積、碼(又稱為鍵)等有關(guān)的概念。關(guān)系模型的基本概念關(guān)系的數(shù)據(jù)定義域(Domain)定義:一組具有相同數(shù)據(jù)類型的值的集合。例如,假設(shè)規(guī)定人的年齡在1至200之間,那么年齡對應(yīng)的域就是1至200所有整數(shù)的集合;如果用1表示性別為男,0為女,則性別對應(yīng)的域就是0,1。關(guān)系模型的基本概念笛卡兒積(Cartesian Product)定義

2、給定一組域D1,D2,Dn,這些域中可以有相同的D1,D2,Dn的笛卡兒積為: D1D2Dn=(d1,d2,dn)|diDi,i=1,2,.,n 其中每一個元素(d1,d2,dn)稱為一個n元組(n-tuple)或元組(Tuple) 元素中的每一個值di稱為一個分量(Component)。若Di為有限集,其基數(shù)(Cardinal number)為mi,則D1D2Dn的基數(shù)為:關(guān)系模型的基本概念笛卡兒積(Cartesian Product)笛卡兒積可表示為一個二維表表中每行對應(yīng)一個元組,每列對應(yīng)一個域例如,給出兩個域D1=Student=王南,李婷,表示學(xué)生集合D2=Major=理學(xué)院,信息學(xué)院

3、,表示學(xué)院集合D1D2=(王南,理學(xué)院),(王南,信息學(xué)院),(李婷,理學(xué)院),(李婷,信息學(xué)院)對應(yīng)二維表:D1D2基數(shù)為4( D1D2共4個元組)StudentMajor王南理學(xué)院王南信息學(xué)院李婷理學(xué)院李婷信息學(xué)院關(guān)系模型的基本概念關(guān)系(Relation)定義D1D2Dn的子集稱為域D1,D2,Dn上的關(guān)系,表示為:R(D1,D2,Dn)其中R可以任意命名,是關(guān)系的名稱n是關(guān)系的目或度(Degree)關(guān)系模型的基本概念關(guān)系(Relation)關(guān)系是笛卡兒積的有限子集也是一個二維表表的每行對應(yīng)一個元組每列對應(yīng)一個域,每列的名字稱為屬性(Attribute)若關(guān)系中某一屬性組能唯一標(biāo)識一個元組

4、,則稱該屬性組為候選鍵(Candidate key);候選鍵中可以選定一個作為主鍵(Primary key)。主鍵的諸屬性稱為主屬性(Prime attribute)例如,學(xué)生關(guān)系中的學(xué)號可設(shè)為主鍵。關(guān)系模型的基本概念例如,前頁的表中,可以取出一個子集作為關(guān)系,名稱為SUBR,屬性命名為StuName和Maj_Desp表示為:SUBR(StuName,Maj_Desp)關(guān)系的每個分量必須是不可分的例如,下面的表不能表示為關(guān)系(不能有表中表)StuNameMaj_Desp王南理學(xué)院李婷理學(xué)院姓名工資獎金提成張三500800李四700300關(guān)系模型的基本概念關(guān)系模型關(guān)系模型包括三個部分?jǐn)?shù)據(jù)結(jié)構(gòu)關(guān)系

5、操作關(guān)系模型的完整性數(shù)據(jù)結(jié)構(gòu)實體和實體間的聯(lián)系均用關(guān)系表示數(shù)據(jù)結(jié)構(gòu)單一關(guān)系模型的基本概念關(guān)系模型關(guān)系操作關(guān)系模型是基于關(guān)系代數(shù)數(shù)學(xué)基礎(chǔ)的模型,關(guān)系操作的方式是集合操作關(guān)系運算的語言分為兩類關(guān)系代數(shù)語言:把關(guān)系當(dāng)作集合,常用的關(guān)系操作有交、并、差、除法、選擇、投影和連接等關(guān)系演算語言:使用謂詞來表達(dá)查詢的要求。若謂詞的對象是元組變量,稱為元組關(guān)系演算;若為域變量,稱為域關(guān)系演算。關(guān)系模型的基本概念關(guān)系模型完整性實體完整性參照完整性用戶定義的完整性關(guān)系模型的基本概念關(guān)系模型完整性實體完整性規(guī)則若屬性A為基本關(guān)系R的主屬性,則屬性A不能取空值例如,學(xué)生關(guān)系中,如果學(xué)號是主屬性,則所有的元組(即學(xué)生的

6、記錄)中學(xué)號屬性不能為空。1982年12月4日女王珊010210 1982年3月19日1982年6月9日出生日期李婷王南姓名備注女010208男010205性別學(xué)號學(xué)生關(guān)系(表)主鍵為:學(xué)號王珊的記錄信息是關(guān)系的一個元組。關(guān)系模型的基本概念關(guān)系模型完整性參照完整性外碼(Foreign Key)的定義設(shè)F是關(guān)系R1的一組屬性,但不是R1的鍵;如果F與關(guān)系R2的主鍵P對應(yīng),則稱F是關(guān)系R1的外鍵。并稱關(guān)系R1為參照關(guān)系(Referencing Relation),關(guān)系R2為被參照關(guān)系(Referenced Relation)或目標(biāo)關(guān)系(Target Relation)。R1和R2也可能是同一個關(guān)系

7、例如,現(xiàn)在有兩個關(guān)系,分別表示學(xué)生信息和學(xué)院信息:R1(學(xué)號,姓名,性別,所在學(xué)院編號)R2(學(xué)院編號,學(xué)院名稱,學(xué)院位置)學(xué)號姓名性別所在學(xué)院編號010205王南男001010208李婷女001 R1:學(xué)生信息關(guān)系(表)學(xué)院編號學(xué)院名稱學(xué)院位置001材冶學(xué)院采礦館002信息學(xué)院主樓 R2:學(xué)院信息關(guān)系(表)“學(xué)號”是R1的主鍵。“學(xué)院編號”是R2的主鍵。R1中的“所在學(xué)院編號”要參照R2的“學(xué)院編號”取值;二者定義在同一個域上。“所在學(xué)院編號”是R1的外鍵。R1為參照關(guān)系;R2為被參照關(guān)系。關(guān)系模型的基本概念關(guān)系模型完整性用戶定義的完整性用戶定義的完整性針對數(shù)據(jù)庫中具體數(shù)據(jù)的約束條件,由應(yīng)用

8、環(huán)境決定的用戶定義的完整性反映了某一具體的應(yīng)用所涉及的數(shù)據(jù)必須要滿足的語義要求EER模型到關(guān)系模型的轉(zhuǎn)換實體類型的轉(zhuǎn)換一個實體型轉(zhuǎn)換為一個關(guān)系模式實體的屬性就是關(guān)系的屬性實體的鍵就是關(guān)系的鍵例如,圖書是實體,則將其轉(zhuǎn)換為關(guān)系,關(guān)系的屬性為(編號、書名、作者、定價和位置);其中鍵為編號。EER模型到關(guān)系模型的轉(zhuǎn)換二元關(guān)系的轉(zhuǎn)換如果一種聯(lián)系表示實體類型的各種實例必須具有這種聯(lián)系,則說明該實體類型的成員類在這種聯(lián)系下是強制性的,否則該成員類是非強制性的。EER模型到關(guān)系模型的轉(zhuǎn)換例如,如圖所示的“經(jīng)理”實體型和“員工”實體型,每個員工都有一個管理者,“員工”中的成員類( “員工”實體型中的實體 )在

9、聯(lián)系“管理”中就是強制的。而對于“學(xué)生”和“書”, “書”可能被借出,也可能沒有,“書”成員類在聯(lián)系“借閱”中就是非強制的。經(jīng)理員工管理1N學(xué)生書借閱1NEER模型到關(guān)系模型的轉(zhuǎn)換強制性成員類如果實體類型E2在與實體類型E1的N:1聯(lián)系中是強制性的成員,則E2的關(guān)系模式中要包含E1的主屬性。例如,每個員工都有一個管理者,則實體類型“員工”是強制性成員,因而在“員工”關(guān)系模式中包含“經(jīng)理”的主屬性:經(jīng)理(經(jīng)理編號,姓名,職務(wù),)員工(員工編號,經(jīng)理編號,姓名,性別,)經(jīng)理員工管理1NEER模型到關(guān)系模型的轉(zhuǎn)換非強制性成員類如果實體類型E2在與實體類型E1的N:1聯(lián)系中是非強制性的成員,則通常由一

10、個分離的關(guān)系模式來表示這種聯(lián)系及其屬性,分離的關(guān)系模式包含E1和E2的主屬性。如圖,一個學(xué)生可借多本書。轉(zhuǎn)換為三個關(guān)系模式,關(guān)系模式“借閱”中包含了 “學(xué)生”和“書”的主屬性:書(書編號,書名,價格,)學(xué)生(學(xué)號,姓名,性別,)借閱(書編號,學(xué)號,借書日期 )學(xué)生書借閱1NEER模型到關(guān)系模型的轉(zhuǎn)換多對多的二元關(guān)系N:M的二元關(guān)系通常引入一個分離的關(guān)系模式來表示這種聯(lián)系及其屬性,該關(guān)系模式包含兩個實體類型的主屬性及其聯(lián)系的屬性。如圖,一個學(xué)生可修多門課,一門課可被多個學(xué)生修。轉(zhuǎn)換為三個關(guān)系模式,關(guān)系模式“修課”中包含了 “學(xué)生”和“課程”的主屬性:學(xué)生(學(xué)號,姓名,性別,)課程(課程號,課程名

11、,學(xué)分,)修課(學(xué)號,課程號,分?jǐn)?shù) )學(xué)生課程修課MNEER模型到關(guān)系模型的轉(zhuǎn)換實體內(nèi)部之間聯(lián)系的轉(zhuǎn)換與前面介紹的二元關(guān)系的轉(zhuǎn)換技術(shù)類似。實體內(nèi)部之間1:1的聯(lián)系如圖是一個非強制性聯(lián)系,因此用一個分離的關(guān)系表示該聯(lián)系:人(ID號,姓名,地址,)婚姻狀況(丈夫ID,妻子ID,結(jié)婚日期,)人結(jié)婚11EER模型到關(guān)系模型的轉(zhuǎn)換實體內(nèi)部之間聯(lián)系的轉(zhuǎn)換實體內(nèi)部之間1:N的聯(lián)系如圖,每個職工都由一個管理者(也是職工中的一個實例)管理,是一個強制性聯(lián)系,因此將管理人員編號加到“職工”關(guān)系中:職工(編號,管理者編號,姓名,地址,)職工管理1NEER模型到關(guān)系模型的轉(zhuǎn)換實體內(nèi)部之間聯(lián)系的轉(zhuǎn)換實體內(nèi)部之間N:M的

12、聯(lián)系如圖,每個職工都由一個管理者管理,是一個強制性聯(lián)系,因此將管理人員編號加到“職工”關(guān)系中:零件(編號,名稱,材料,)零件組成(父零件編號,子零件編號,子零件數(shù)量,)零件組成NMEER模型到關(guān)系模型的轉(zhuǎn)換三元關(guān)系的轉(zhuǎn)換如圖的三元關(guān)系可以轉(zhuǎn)化為:公司(公司編號,公司名稱,地址,)國家(國家名稱,首都,)產(chǎn)品(產(chǎn)品編號,產(chǎn)品名稱,)銷售情況(公司編號,國家名稱,產(chǎn)品編號,銷售數(shù)量)公司銷售MP國家產(chǎn)品NEER模型到關(guān)系模型的轉(zhuǎn)換子類型的轉(zhuǎn)換根實體類型和各個子類型之間產(chǎn)生一個分離的關(guān)系,每個分離的關(guān)系的鍵是根實體類型的鍵:工程師(工程師編號,姓名,性別,)汽車工程師(工程師編號,汽車類型,)電子工

13、程師(工程師編號,弱電/強電,)一個汽車工程師的信息保存時分為兩部分,一部分在“工程師”關(guān)系中,一部分在“汽車工程師”關(guān)系。汽車工程師工程師電子工程師關(guān)系代數(shù)傳統(tǒng)集合運算并(Union)關(guān)系R和S的并記作:RS,即屬于R或S的所有元組。R和S應(yīng)該有相同的目,即屬性個數(shù)相同,類型相同。ABCa1b1c1a1b2c2a2b2c1R關(guān)系A(chǔ)BCa1b2c2a2b2c2a2b2c1S關(guān)系RSABCa1b1c1a1b2c2a2b2C1a2b2c2RS關(guān)系代數(shù)傳統(tǒng)集合運算差(Difference)關(guān)系R和S的差記作:R-S,即屬于R且不屬于S的所有元組。R和S應(yīng)該有相同的目,即屬性個數(shù)相同,類型相同。ABC

14、a1b1c1a1b2c2a2b2c1R關(guān)系A(chǔ)BCa1b2c2a2b2c2a2b2c1S關(guān)系R-SABCa1b1c1RS關(guān)系代數(shù)傳統(tǒng)集合運算交(Intersection)關(guān)系R和S的交記作:RS,即屬于R且屬于S的所有元組。R和S應(yīng)該有相同的目,即屬性個數(shù)相同,類型相同。ABCa1b1c1a1b2c2a2b2c1R關(guān)系A(chǔ)BCa1b2c2a2b2c2a2b2c1S關(guān)系RSABCa1b2C2a2b2c1RS關(guān)系代數(shù)笛卡兒積(Cartesian Product)n目關(guān)系R和m目關(guān)系S的廣義笛卡兒積為n+m目關(guān)系,記作RS其中前n個屬性為R的屬性集,后m個屬性為S的屬性集RS中的每個元組為每一個R元組與

15、所有S元組的組合若R有K1個元組,S有K2個元組,則RS共有K1K2個元組ABCa1b1c1a1b2c2R關(guān)系A(chǔ)BCa1b2c2a2b2c2a2b2c1S關(guān)系RSABCABCa1b1c1a1b2c2a1b1c1a2b2c2a1b1c1a2b2c1a1b2c2a1b2c2a1b2c2a2b2c2a1b2c2a2b2c1關(guān)系代數(shù)專門的關(guān)系運算選擇(Selection)在關(guān)系R中選擇滿足條件的元組,記作: F(R)F可以是邏輯運算符(如AND,OR等)和關(guān)系運算符(,=等)等的組合選擇運算就是從關(guān)系R中選取使邏輯表達(dá)式F為TRUE的元組。SNO(學(xué)號)SNAME(姓名)SDEP(學(xué)院)010203王

16、南機械學(xué)院010204李婷信息學(xué)院010205張力信息學(xué)院Student關(guān)系SDEP=信息學(xué)院(Student)SNO(學(xué)號)SNAME(姓名)SDEP(學(xué)院)010204李婷信息學(xué)院010205張力信息學(xué)院SNO(學(xué)號)SNAME(姓名)SGEN(性別)SAGE(年齡)SDEP(學(xué)院)010203王南男18機械學(xué)院010204李婷女19信息學(xué)院010205張力男22信息學(xué)院Student關(guān)系:SDEP=信息學(xué)院 AND SGEN=男 AND SAGE20(Student)SNO(學(xué)號)SNAME(姓名)SGEN(性別)SAGE(年齡)SDEP(學(xué)院)010205張力男22信息學(xué)院關(guān)系代數(shù)專門

17、的關(guān)系運算投影(Projection)從關(guān)系R中選擇若干屬性列,組成新的元組,記作: A(R),其中A為R中的屬性列。投影操作是從列的角度參加的運算;如果取消某些屬性列后,出現(xiàn)重復(fù)的行,則去掉這些完全相同的行。SNO(學(xué)號)SNAME(姓名)SDEP(學(xué)院)010203王南機械學(xué)院010204李婷信息學(xué)院010205張力信息學(xué)院Student關(guān)系 SNO,SNAME (Student)SNO(學(xué)號)SNAME(姓名)010203王南010204李婷010205張力關(guān)系代數(shù)專門的關(guān)系運算連接(Join)從關(guān)系R和關(guān)系S的笛卡兒積中選擇屬性間滿足一定條件的元組,記作:當(dāng)為=時,稱為等值連接。見下頁

18、的等值連接例子。R AB SABMa1b13a1b25a2b27R關(guān)系RSAR.BMS.BNa1b13b26a1b13b38a1b25b26a1b25b38a2b27b26a2b27b38例:求RR.B=S.BSBNb26b38S關(guān)系RR.B=S.BSAR.BMS.BNa1b25b26a2b27b26取R.B=S.B的所有元組關(guān)系代數(shù)專門的關(guān)系運算連接(Join)關(guān)系代數(shù)專門的關(guān)系運算自然連接(Natural Join)從兩個關(guān)系的笛卡兒積中選擇出公共屬性值相等的元組,并在結(jié)果中去掉重復(fù)的屬性列,記作: 自然連接是一種特殊的等值連接,只有兩個關(guān)系有相同屬性組時才可以參加。左連接:R左連接T,結(jié)

19、果包括所有來自R的元組和那些連接字段相等處的T的元組。右連接:R左連接T,結(jié)果包括所有來自T的元組和那些連接字段相等處的R的元組。R SABCa1ab1bb2bR關(guān)系RSAR.BR.CS.BS.CDa1a1aea1a2bfb1b1aeb1b2bfb2b1aeb2b2bf例:求 R SS關(guān)系BCD1ae2bfR S取R.B=S.B且R.C=R.C的所有元組AR.BR.CS.BS.CDa1a1aeb2b2bfABCa1ab1ba1db2fR關(guān)系A(chǔ)R.BR.CT.BT.CDa1a1a1b1ba1d1d4b2fBCD1a13b13c21d42a3T關(guān)系R左連接TAR.BR.CT.BT.CDa1a1a1

20、3b13c2a1d1d42a3R右連接T注:表格中為空表示該分量為空例:左連接與右連接關(guān)系代數(shù)專門的關(guān)系運算除法(Division)給定關(guān)系R(X,Y)和S(Y,Z),其中X,Y,Z均為屬性組,R和S的屬性組Y屬于同一個域RS得到一個新關(guān)系P(X),P是R中滿足下列條件的元組在X屬性列上的投影:元組在X上分量值x的象集包含S在Y上投影的集合。 RS 相當(dāng)于 X(R)( X(X(R)S)R)ABCa1b1c2a3b4c6a1b2c3a2b2c1a1b2c1R關(guān)系S關(guān)系BCb1c2b2c1b2c31.根據(jù)除法規(guī)則可知,RS的屬性列為 R的屬性列(A,B,C)中去掉S中相同的 (B,C),故RS的屬

21、性列為A。2.A可能的取值為a1,a2,a33.R中a1的象集為b1,c2, ,b2,c1 ,b2,c3; R中a2的象集為b2,c1; R中a3的象集為b4,c6;4.S在(B,C)的投影為b1,c2 ,b2,c1 ,b2,c3;5.只有a1的象集包含了S在(B,C)的投影, 所以RS=a1Aa1RS關(guān)系演算關(guān)系演算語言使用謂詞來表達(dá)查詢的要求若謂詞的對象是元組變量,稱為元組關(guān)系演算若為域變量,稱為域關(guān)系演算關(guān)系演算元組關(guān)系演算在元組演算中,一般用元組演算表達(dá)式t|(t)表示關(guān)系,t為元組變量, (t)是由原子公式和運算符組成的元組關(guān)系演算公式原子公式的三種類型R(t)R是關(guān)系,t是元組變量

22、,R(t)表示關(guān)系R的元組;因此關(guān)系R可以用t|R(t)來表示。關(guān)系演算元組關(guān)系演算原子公式的三種類型tic或c ti tic表示元組變量t的第i個變量,c為常量,是算術(shù)運算比較符。 tic或c ti 表示“元組t的第i個分量與常數(shù)c之間滿足運算”。例如,t25表示“t的第二個分量大于5”;s6=“張力”表示“s的第六個分量等于張力” 關(guān)系演算元組關(guān)系演算原子公式的三種類型 tiuj t和u是兩個元組變量,是算術(shù)運算比較符。 titj 表示“元組t的第i個分量與元組u的第j個分量之間滿足運算”。例如,s12s24表示“s1關(guān)系的第2個分量大于s2的第4個分量”;關(guān)系演算常用量詞和邏輯運算符存在

23、量詞和全程量詞存在量詞全程量詞如果元組變量前沒有存在量詞和全程量詞,則稱這個元組變量為自由的元組變量,否則稱為約束的元組變量。 關(guān)系演算元組關(guān)系演算表示關(guān)系代數(shù)的五種基本運算并RS=t|R(t)S(t),表示RS的結(jié)果是元組t的集合,t在R中或在S中。差 表示R-S結(jié)果是元組t的集合,t在R中而不在S中。關(guān)系演算元組關(guān)系演算表示關(guān)系代數(shù)的五種基本運算笛卡兒積設(shè)R和S分別是m和n目關(guān)系:RS是m+n目關(guān)系,結(jié)果是這樣一些元組集合存在一個元組變量u和元組變量v,并且t的前m個分量構(gòu)成u,后n個分量構(gòu)成v。關(guān)系演算元組關(guān)系演算表示關(guān)系代數(shù)的五種基本運算投影公式中,關(guān)系R在屬性i1,i2ik上的投影是

24、k目元組t(k)的集合,對于t(k)的任何一個屬性,都滿足t(k)的屬性k與元組u的屬性ik相同。選擇F(R)=t|R(t)F,其中F表示F的等價公式。選擇的結(jié)果是元組t的集合,t是關(guān)系R的一個子集,且它的每個元組均同時滿足等價公式F的要求。關(guān)系演算元組關(guān)系演算表示關(guān)系代數(shù)的五種基本運算例1ABCae8cf6db4df3R關(guān)系S關(guān)系A(chǔ)BCac8bc5db4df6ABCae8cf6df3屬于R的元組且不屬于S的元組,即從R中去除二者公共的元組(d,b,4)。關(guān)系演算元組關(guān)系演算表示關(guān)系代數(shù)的五種基本運算例1ABCae8cf6db4df3R關(guān)系A(chǔ)BCcf6df3R的元組中,第二個分量B中等于f的元

25、組集合。關(guān)系演算元組關(guān)系演算表示關(guān)系代數(shù)的五種基本運算例3ABCae8cf6db4df3R關(guān)系R的元組中,第三個分量C中大于等于4的元組集合。ABCae8cf6db4關(guān)系演算元組關(guān)系演算表示關(guān)系代數(shù)的五種基本運算例4ABCae8cf6db4df3R關(guān)系S關(guān)系A(chǔ)BCac8bc5db4df6屬于R的元組且屬于S的元組,即 (d,b,4)。ABCdB4關(guān)系演算域關(guān)系演算域關(guān)系演算與元組關(guān)系演算類似,不同的是公式中的變量不是元組變量而是表示元組變量中各分量的域變量域關(guān)系演算表達(dá)式的一般形式是: t1,t2,tk|(t1,t2,tk)其中t1,t2,tk是元組變量t的各個分量,都稱為域變量是一個公式,由

26、原子公式和各種運算符構(gòu)成關(guān)系演算域關(guān)系演算原子公式的三種形式R(t1,t2,tk)R是k目關(guān)系,ti是域變量或常量,R(t1,t2,tk)表示有分量組成的元組在R中。tic或c ti ti表示元組t的第i個域變量,c為常量,是算術(shù)運算比較符。 tic或c ti 表示t與常數(shù)c之間滿足運算。tiujti表示元組t的第i個域變量, tj表示元組u的第j個域變量。 是算術(shù)運算比較符。tiuj表示ti和uj之間滿足運算。關(guān)系演算域關(guān)系演算舉例1ABCdce5dbd2gef7dcd9R關(guān)系R的元組中,域變量z(C的屬性集合)中8,并且,域變量x(A的屬性集合)等于d。ABCdce5dbd2關(guān)系演算域關(guān)系

27、演算舉例2ABCdce5dbd2gef7dcd9R關(guān)系R的元組中,先對R和S元組作并操作,然后去除A分量等于c的元組和B分量等于f的元組。S關(guān)系A(chǔ)BCcb7ce3bf6dcd9ABCdce5dbd2gef7dcd9關(guān)系演算域關(guān)系演算舉例3ABCdce5dbd2gef7dcd9R關(guān)系1. 先對R和S作笛卡兒積:S關(guān)系A(chǔ)1A2321915ABCA1A2Xyzuvdce5321dbd2321gef7321dcd9321dce5915dbd2915gef7915dcd9915關(guān)系演算域關(guān)系演算舉例32. 滿足zu的所有元組為:ABCA1A2Xyzuvdbd2321dce5915dbd2915gef79

28、153. 取yvx分量,重新組成關(guān)系:BA2AyvXbd21dce15dbd15def15g函數(shù)依賴問題的提出?一個有問題的關(guān)系假設(shè)有如下關(guān)系:S(Sno,Sname,Sgen,Scour,Sdegr),即對應(yīng)學(xué)號、姓名、性別、課程、成績;其中(Sno,Scour)是主鍵。學(xué)號姓名性別課程編號成績030021張力男00197030021張力男00295030022李婷女00190030022李婷女00299 函數(shù)依賴問題的提出?一個有問題的關(guān)系這個關(guān)系有如下問題數(shù)據(jù)冗余:一個學(xué)生選修多門課程,導(dǎo)致表中“姓名”和“性別”被多次重復(fù)存貯;不一致性由于數(shù)據(jù)存貯冗余,當(dāng)更新某些數(shù)據(jù)項時,有可能一部分記

29、錄修改了,而另一部分未修改,造成存貯數(shù)據(jù)的不一致性。函數(shù)依賴問題的提出?一個有問題的關(guān)系這個關(guān)系有如下問題插入異常如果某個學(xué)生尚未選修課程,那么他的(學(xué)號,姓名,性別)信息無法插入。這是因為“課程”為空,關(guān)系數(shù)據(jù)模式規(guī)定主關(guān)鍵字不能為空,這就導(dǎo)致了插入異常。刪除異常當(dāng)刪除所有學(xué)生的成績時,將所有(學(xué)號,姓名,性別)信息也刪除了,這就是刪除異常。函數(shù)依賴問題的提出?一個有問題的關(guān)系為了克服這些異常,可以將S關(guān)系分解成下面的兩個關(guān)系S1(Sno,Sname,Sgen), S2(Sno,Scour,Sdegr)上例說明,S關(guān)系的某些屬性之間存在數(shù)據(jù)依賴關(guān)系。學(xué)號姓名性別030021張力男030022

30、李婷女 學(xué)號課程編號成績03002100197030021002950300220019003002200299 函數(shù)依賴函數(shù)依賴概念平凡函數(shù)依賴與非平凡函數(shù)依賴完全函數(shù)依賴與部分函數(shù)依賴傳遞函數(shù)依賴函數(shù)依賴定義設(shè)R(U)是一個屬性集U上的關(guān)系模式,X和Y是U的子集。若對于R(U)的任意一個可能的關(guān)系r,r中不可能存在兩個元組在X上的屬性值相等, 而在Y上的屬性值不等, 則稱 “X函數(shù)確定Y” 或 “Y函數(shù)依賴于X”,記作XY例如:姓名性別(假設(shè)沒有同名的學(xué)生)X稱為這個函數(shù)依賴的決定屬性集(Determinant)。 Y=f(x)函數(shù)依賴說明函數(shù)依賴不是指關(guān)系模式R的某個或某些關(guān)系實例滿足的

31、約束條件,而是指R的所有關(guān)系實例均要滿足的約束條件函數(shù)依賴是語義范疇的概念只能根據(jù)數(shù)據(jù)的語義來確定函數(shù)依賴?yán)纭靶彰挲g”這個函數(shù)依賴只有在不允許有同名人的條件下成立數(shù)據(jù)庫設(shè)計者可以對現(xiàn)實世界作強制的規(guī)定例如規(guī)定不允許同名人出現(xiàn),函數(shù)依賴“姓名年齡”成立。所插入的元組必須滿足規(guī)定的函數(shù)依賴,若發(fā)現(xiàn)有同名人存在, 則拒絕裝入該元組。函數(shù)依賴?yán)?Student(Sno, Sname, Ssex, Sage, Sdept)假設(shè)不允許重名,則有: Sno Ssex, Sno Sage , Sno Sdept, Sno Sname, Sname Ssex, Sname Sage Sname Sdept

32、但Ssex Sage 若XY,并且YX, 則記為XY。 若Y不函數(shù)依賴于X, 則記為XY。函數(shù)依賴平凡函數(shù)依賴與非平凡函數(shù)依賴在關(guān)系模式R(U)中,對于U的子集X和Y如果XY,但Y X,則稱XY是非平凡的函數(shù)依賴;若XY,但Y X, 則稱XY是平凡的函數(shù)依賴?yán)涸陉P(guān)系SC(Sno, Cno, Grade)中,非平凡函數(shù)依賴: (Sno, Cno) Grade 平凡函數(shù)依賴: (Sno, Cno) Sno (Sno, Cno) Cno函數(shù)依賴平凡函數(shù)依賴與非平凡函數(shù)依賴對于任一關(guān)系模式,平凡函數(shù)依賴都是必然成立的,它不反映新的語義,因此若不特別聲明, 我們總是討論非平凡函數(shù)依賴。函數(shù)依賴完全函數(shù)

33、依賴與部分函數(shù)依賴定義: 在關(guān)系模式R(U)中,如果XY,并且對于X的任何一個真子集X,都有X Y, 則稱Y完全函數(shù)依賴于X,記作X Y。 若XY,但Y不完全函數(shù)依賴于X,則稱Y部分函數(shù)依賴于X,記作X P Y。例: 在關(guān)系SC(Sno, Cno, Grade)中, 由于:Sno Grade,Cno Grade, 因此:(Sno, Cno) Grade定義: 在關(guān)系模式R(U)中,如果XY,YZ,且Y X,YX,則稱Z傳遞函數(shù)依賴于X。注: 如果YX, 即XY,則Z直接依賴于X。例: 在關(guān)系Std(Sno, Sdept, Mname)中,有:Sno Sdept,Sdept Mname Mnam

34、e傳遞函數(shù)依賴于Sno函數(shù)依賴傳遞函數(shù)依賴函數(shù)依賴碼定義: 設(shè)K為關(guān)系模式R中的屬性或?qū)傩越M合。若K U,則K稱為R的一個侯選碼(Candidate Key)若關(guān)系模式R有多個候選碼,則選定其中的一個做為主碼(Primary key)主屬性與非主屬性ALL KEY(全碼):整個屬性組是碼函數(shù)依賴外部碼定義關(guān)系模式 R 中屬性或?qū)傩越MX 并非 R的碼,但 X 是另一個關(guān)系模式的碼,則稱 X 是R 的外部碼(Foreign key)也稱外碼主碼又和外部碼一起提供了表示關(guān)系間聯(lián)系的手段。函數(shù)依賴?yán)河^察函數(shù)依賴(工程號,材料號)函數(shù)決定其他屬性,工程P2使用材料M2的數(shù)量不可能有兩個,對應(yīng)的開工日期

35、也只有一個,即P2的開工日期;對于任一個“工程號”,其開工日期也是唯一的,因此,“工程號”函數(shù)決定“開工日期”。工程號材料號材料數(shù)量開工日期P1M120010315P2M28010925P2M120010925 (工程號,材料號) 材料數(shù)量; (工程號,材料號) 開工日期工程號 開工日期函數(shù)依賴?yán)河^察函數(shù)依賴假定每個學(xué)院的學(xué)生都統(tǒng)一在一個宿舍樓住宿:學(xué)號 系別學(xué)號 宿舍樓;系別 宿舍樓學(xué)號系別宿舍樓021機械學(xué)院2舍022機械學(xué)院2舍056信息學(xué)院3舍057信息學(xué)院3舍 關(guān)系模式的規(guī)范化范式定義范式就是符合某一級別的關(guān)系模式的集合。關(guān)系數(shù)據(jù)庫中的關(guān)系模式必須滿足一定的要求,滿足不同程度要求的

36、模式屬于不同的范式。范式的種類以及它們之間的關(guān)系1NF、2NF、3NF、BCNF、4NF 、5NF1NF 2NF 3NF BCNF 4NF 5NF顯然5NF級別最高,1NF級別最低規(guī)范化通過分解屬于低級范式的關(guān)系模式轉(zhuǎn)換為幾個屬于高級范式的關(guān)系模式的集合的過程稱為規(guī)范化關(guān)系模式的規(guī)范化第一范式(1NF)定義如果一個關(guān)系模式R中的每一個屬性的域都只包含原子項(即單一的,不可分隔的數(shù)據(jù)項),則稱R滿足第一范式。第一范式要求不能表達(dá)“表中表”。例如,下表所示的關(guān)系不滿足第一范式,“獎金”和“提成”和“工資”實際上是另一個關(guān)系。姓名工資獎金提成張三500800李四700300關(guān)系模式的規(guī)范化第一范式(

37、1NF)第一范式并不能排除數(shù)據(jù)冗余、更新異常和刪除異常等問題。參見“問題的提出”的例子。關(guān)系的約束需要滿足更高的范式。關(guān)系模式的規(guī)范化第二范式(2NF)定義如果關(guān)系R滿足第一范式,且R的所有非主屬性完全函數(shù)依賴于候選鍵,則稱R滿足第二范式。例如,下面的關(guān)系中,候選鍵為“課程名稱”。“教師名稱”和 “教師地址”屬性完全函數(shù)依賴于候選鍵“課程名稱”(即不存在一個候選鍵的真子集x,使“教師名稱”和 “教師地址” 依賴于x。這個例子中,真子集x為空),故該關(guān)系滿足第二范式。課程名稱教師名稱教師地址021張宏文萃路13-6022李英熱鬧路11-3 關(guān)系模式的規(guī)范化第二范式(2NF)例如:下面的關(guān)系顯然滿

38、足第一范式,候選鍵為(工程號,材料號), “開工日期”屬于非主屬性,但“開工日期”函數(shù)依賴于候選鍵的真子集“工程號”(工程號確定后,只能對應(yīng)一個開工日期),因此部分依賴于候選鍵,該關(guān)系不滿足第二范式。工程號材料號材料數(shù)量開工日期P1M120010315P2M28010925P2M115010925在Student(Sno,Sname,Sdept,Mname,Cname,Grade)中候選鍵是Sno,Cname存在依賴:Sno,CnameSname,Sdept,Mname SnoSname,Sdept,Mname所以Sname,Sdept,Mname對鍵碼是部分依賴因此Student不是2NF關(guān)

39、系模式的規(guī)范化第二范式(2NF)用投影的方法,Student可以分解為以下兩個關(guān)系模式 Student(Sno,Sname,Sdept,Mname) SC(Sno,Cname,Grade)在Student中 SnoSname,Sdept,Mname Sname,Sdept,Mname完全函數(shù)依賴鍵碼Sno在SC中, 鍵碼是Sno,Cname,只有一個非主屬Grade,它完全函數(shù)依賴于鍵碼所以分解后的關(guān)系模式是2NF關(guān)系模式的規(guī)范化第二范式(2NF)課程名稱教師名稱教師地址021張宏文萃路13-6022李英熱鬧路11-3 關(guān)系模式的規(guī)范化第二范式(2NF)滿足第二范式的關(guān)系仍然可能存在操作異常,

40、例如:教師地址在元組中可能出現(xiàn)多次,屬于數(shù)據(jù)冗余;如果修改一個教師地址,必須更新所有元組中的地址。刪除課程時,可能刪除教師的有關(guān)信息。說明滿足2NF的關(guān)系仍需要滿足更高的范式關(guān)系模式的規(guī)范化第三范式(3NF)傳遞依賴的定義在R(U)中,如果xy,yx,yz,則稱z對x傳遞函數(shù)依賴。例如,下面的關(guān)系中, “學(xué)號”函數(shù)決定“系別”, “系別” 不能函數(shù)決定 “學(xué)號” ;而“系別”還函數(shù)決定“宿舍樓” 。 因此,“宿舍樓”對“學(xué)號”傳遞函數(shù)依賴。學(xué)號系別宿舍樓021機械學(xué)院2舍022機械學(xué)院2舍056信息學(xué)院3舍057信息學(xué)院3舍關(guān)系模式的規(guī)范化第三范式(3NF)第三范式的定義關(guān)系模式R滿足第二范式

41、,且R的任何一個非主屬性都不傳遞依賴于任何候選鍵,則R滿足第三范式。例如,下面的關(guān)系中,候選鍵為“學(xué)號”,非主屬性“宿舍樓”對候選鍵傳遞函數(shù)依賴,因此該關(guān)系不滿足第三范式。學(xué)號系別宿舍樓021機械學(xué)院2舍022機械學(xué)院2舍056信息學(xué)院3舍057信息學(xué)院3舍對于: Student(Sno,Sname,Sdept,Mname) SC(Sno,Cname,Grade)是2NF不是3NF。因為: 在Student中Sno是鍵碼,存在依賴: SnoSname,SnoSdept,SnoMname, SdeptMname 其中非主屬性Mname依賴于非主屬性Sdept或者說Mname傳遞依賴于鍵碼Sno。

42、關(guān)系模式的規(guī)范化第三范式(3NF)對Student投影分解得到 Student(Sno,Sname,Sdept) Dept(Sdept,Mname)即得到3NF完整的符合3NF的模式是 Student(Sno,Sname,Sdept) Dept(Sdept,Mname) SC(Sno,Cname,Grade)關(guān)系模式的規(guī)范化第三范式(3NF)關(guān)系模式的規(guī)范化BC范式( BCNF,修正的第三范式)定義關(guān)系模式R(U,F)滿足第一范式,若y函數(shù)依賴于x,且y不屬于x時,x必含有鍵,則R滿足BC范式。或者說,R中的每一個決定因素都包含鍵,則R滿足BC范式。例如在下面的關(guān)系中, “系別”函數(shù)決定“宿舍樓” ,但“系別” 不是鍵,因此該關(guān)系不滿足BCNF。學(xué)號系別宿舍樓021機械學(xué)院2舍022機械學(xué)院2舍056信息學(xué)院3舍057信息學(xué)院3舍關(guān)系模式的規(guī)范化BC范式( BCNF,修正的第三范式)滿足第三范式不一定滿足BC范式例如下面的關(guān)系 R(NO,NAME,COURSE,GRADE),假設(shè)學(xué)生沒有重名情況(即學(xué)號和姓名一一對應(yīng)):根據(jù)學(xué)號和課程名稱可以唯一確定成績;同樣,根據(jù)姓名和課程名稱也可以唯一確定成績。關(guān)系的候選鍵為(NO,COURSE)和(NAME,COURSE)。非主屬性不傳遞依賴于任何一個候選鍵,所以R滿足

溫馨提示

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

評論

0/150

提交評論