版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
江蘇大學(xué)計(jì)算機(jī)科學(xué)與通信工程學(xué)院
計(jì)算機(jī)科學(xué)系數(shù)據(jù)庫(kù)系統(tǒng)概論AnIntroductiontoDatabaseSystem第二章關(guān)系數(shù)據(jù)庫(kù)AnIntroductiontoDatabaseSystem江蘇大學(xué)計(jì)算機(jī)科學(xué)與通信工程學(xué)院
計(jì)算機(jī)科學(xué)系數(shù)據(jù)庫(kù)系統(tǒng)概論關(guān)系數(shù)據(jù)庫(kù)簡(jiǎn)介基本思想:將數(shù)學(xué)的方法引入來(lái)處理數(shù)據(jù)庫(kù)中的數(shù)據(jù)。信息代數(shù)、集合論數(shù)據(jù)結(jié)構(gòu)E.F.Codd的關(guān)系模型本章:基本概念數(shù)據(jù)結(jié)構(gòu)、關(guān)系操作關(guān)系完整性。AnIntroductiontoDatabaseSystem關(guān)系數(shù)據(jù)庫(kù)簡(jiǎn)介基本思想:將數(shù)學(xué)的方法引入來(lái)處理數(shù)據(jù)庫(kù)中的數(shù)據(jù)第二章關(guān)系數(shù)據(jù)庫(kù)2.1關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義2.2關(guān)系操作2.3關(guān)系的完整性2.4關(guān)系代數(shù)2.5關(guān)系演算2.6小結(jié)AnIntroductiontoDatabaseSystem第二章關(guān)系數(shù)據(jù)庫(kù)2.1關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義AnI2.1關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)是支持關(guān)系模型的數(shù)據(jù)庫(kù)系統(tǒng)關(guān)系模型的組成關(guān)系數(shù)據(jù)結(jié)構(gòu)關(guān)系操作集合關(guān)系完整性約束AnIntroductiontoDatabaseSystem2.1關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)AnIntr單一的數(shù)據(jù)結(jié)構(gòu)----關(guān)系現(xiàn)實(shí)世界的實(shí)體以及實(shí)體間的各種聯(lián)系均用關(guān)系來(lái)表示數(shù)據(jù)的邏輯結(jié)構(gòu)----二維表從用戶(hù)角度,關(guān)系模型中數(shù)據(jù)的邏輯結(jié)構(gòu)是一張二維表。2.1關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義(續(xù))AnIntroductiontoDatabaseSystem單一的數(shù)據(jù)結(jié)構(gòu)----關(guān)系2.1關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義(2.1.1關(guān)系2.1.2關(guān)系模式2.1.3關(guān)系數(shù)據(jù)庫(kù)2.1關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義(續(xù))AnIntroductiontoDatabaseSystem2.1.1關(guān)系2.1關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義(續(xù))An2.1.1關(guān)系⒈域(Domain)2.笛卡爾積(CartesianProduct)3.關(guān)系(Relation)AnIntroductiontoDatabaseSystem2.1.1關(guān)系⒈域(Domain)AnIntrodu⒈域(Domain)域是一組具有相同數(shù)據(jù)類(lèi)型的值的集合。例:整數(shù)實(shí)數(shù)介于某個(gè)取值范圍的整數(shù){‘男’,‘女’}介于某個(gè)取值范圍的日期AnIntroductiontoDatabaseSystem⒈域(Domain)域是一組具有相同數(shù)據(jù)類(lèi)型的值的集合。例2.笛卡爾積(CartesianProduct)1)笛卡爾積給定一組域D1,D2,…,Dn,這些域可以相同。D1,D2,…,Dn的笛卡爾積為:D1×D2×…×Dn={(d1,d2,…,dn)|diDi,i=1,2,…,n}所有域的所有取值的一個(gè)組合不能重復(fù)AnIntroductiontoDatabaseSystem2.笛卡爾積(CartesianProduct)1)笛笛卡爾積(續(xù))例給出三個(gè)域:
D1=SUPERVISOR={張清玫,劉逸}
D2=SPECIALITY={計(jì)算機(jī)專(zhuān)業(yè),信息專(zhuān)業(yè)}D3=POSTGRADUATE={李勇,劉晨,王敏}則D1,D2,D3的笛卡爾積為:D1×D2×D3={(張清玫,計(jì)算機(jī)專(zhuān)業(yè),李勇),(張清玫,計(jì)算機(jī)專(zhuān)業(yè),劉晨),(張清玫,計(jì)算機(jī)專(zhuān)業(yè),王敏),(張清玫,信息專(zhuān)業(yè),李勇),(張清玫,信息專(zhuān)業(yè),劉晨),(張清玫,信息專(zhuān)業(yè),王敏),(劉逸,計(jì)算機(jī)專(zhuān)業(yè),李勇),(劉逸,計(jì)算機(jī)專(zhuān)業(yè),劉晨),(劉逸,計(jì)算機(jī)專(zhuān)業(yè),王敏),(劉逸,信息專(zhuān)業(yè),李勇),(劉逸,信息專(zhuān)業(yè),劉晨),(劉逸,信息專(zhuān)業(yè),王敏)}AnIntroductiontoDatabaseSystem笛卡爾積(續(xù))例給出三個(gè)域:AnIntroductio笛卡爾積(續(xù))2)元組(Tuple)笛卡爾積中每一個(gè)元素(d1,d2,…,dn)叫作一個(gè)n元組(n-tuple)或簡(jiǎn)稱(chēng)元組。
3)分量(Component)笛卡爾積元素(d1,d2,…,dn)中的每一個(gè)值di叫作一個(gè)分量。
AnIntroductiontoDatabaseSystem笛卡爾積(續(xù))2)元組(Tuple)AnIntroduc笛卡爾積(續(xù))4)基數(shù)(Cardinalnumber)若Di(i=1,2,…,n)為有限集,其基數(shù)為mi(i=1,2,…,n),則D1×D2×…×Dn的基數(shù)M為:在上例中,基數(shù):2×2×3=12,即D1×D2×D3共有2×2×3=12個(gè)元組AnIntroductiontoDatabaseSystem笛卡爾積(續(xù))4)基數(shù)(Cardinalnumber)A笛卡爾積(續(xù))5)笛卡爾積的表示方法笛卡爾積可表示為一個(gè)二維表。表中的每行對(duì)應(yīng)一個(gè)元組,表中的每列對(duì)應(yīng)一個(gè)域。在上例中,12個(gè)元組可列成一張二維表AnIntroductiontoDatabaseSystem笛卡爾積(續(xù))5)笛卡爾積的表示方法AnIntroduct
表2.1D1,D2,D3的笛卡爾積SUPERVISORSPECIALITYPOSTGRADUATE張清玫計(jì)算機(jī)專(zhuān)業(yè)李勇張清玫計(jì)算機(jī)專(zhuān)業(yè)劉晨張清玫計(jì)算機(jī)專(zhuān)業(yè)王敏張清玫信息專(zhuān)業(yè)李勇張清玫信息專(zhuān)業(yè)劉晨張清玫信息專(zhuān)業(yè)王敏劉逸計(jì)算機(jī)專(zhuān)業(yè)李勇劉逸計(jì)算機(jī)專(zhuān)業(yè)劉晨劉逸計(jì)算機(jī)專(zhuān)業(yè)王敏劉逸信息專(zhuān)業(yè)李勇劉逸信息專(zhuān)業(yè)劉晨劉逸信息專(zhuān)業(yè)王敏AnIntroductiontoDatabaseSystem表2.1D1,D2,D3的笛卡爾積SUPERVISOR3.關(guān)系(Relation)1)關(guān)系D1×D2×…×Dn的子集叫作在域D1,D2,…,Dn上的關(guān)系,表示為
R(D1,D2,…,Dn)
R:關(guān)系名n:關(guān)系的目或度(Degree)AnIntroductiontoDatabaseSystem3.關(guān)系(Relation)1)關(guān)系A(chǔ)nIntrodu關(guān)系(續(xù))注意:*關(guān)系是笛卡爾積的有限子集。無(wú)限關(guān)系在數(shù)據(jù)庫(kù)系統(tǒng)中是無(wú)意義的。例表2.1的笛卡爾積中具有無(wú)實(shí)際意義的元組。
其中部分子集才具實(shí)際意義
如:{(張清玫,信息專(zhuān)業(yè),李勇),(張清玫,信息專(zhuān)業(yè),劉晨),(劉逸,信息專(zhuān)業(yè),王敏)}AnIntroductiontoDatabaseSystem關(guān)系(續(xù))注意:AnIntroductiontoDat關(guān)系(續(xù))*由于笛卡爾積不滿(mǎn)足交換律,即(d1,d2,…,dn)≠(d2,d1,…,dn)
但關(guān)系滿(mǎn)足交換律,即(d1,d2,…,di,dj
,…,dn)=(d1,d2,…,dj,di
,…,dn)(i,j=1,2,…,n)解決方法:為關(guān)系的每個(gè)列附加一個(gè)屬性名以取消關(guān)系元組的有序性
如上述子集構(gòu)造出的關(guān)系:SAP(SUPERVISOR,SPECIALITY,POSTGRADUATE)AnIntroductiontoDatabaseSystem關(guān)系(續(xù))*由于笛卡爾積不滿(mǎn)足交換律,即AnIntrodu關(guān)系(續(xù))2)元組關(guān)系中的每個(gè)元素是關(guān)系中的元組,通常用t表示。3)單元關(guān)系與二元關(guān)系當(dāng)n=1時(shí),稱(chēng)該關(guān)系為單元關(guān)系(Unaryrelation)。當(dāng)n=2時(shí),稱(chēng)該關(guān)系為二元關(guān)系(Binaryrelation)。AnIntroductiontoDatabaseSystem關(guān)系(續(xù))2)元組AnIntroductiontoD關(guān)系(續(xù))4)關(guān)系的表示關(guān)系也是一個(gè)二維表,表的每行對(duì)應(yīng)一個(gè)元組,表的每列對(duì)應(yīng)一個(gè)域。AnIntroductiontoDatabaseSystem關(guān)系(續(xù))4)關(guān)系的表示AnIntroductiont關(guān)系(續(xù))5)屬性關(guān)系中不同列可以對(duì)應(yīng)相同的域,為了加以區(qū)分,必須對(duì)每列起一個(gè)名字,稱(chēng)為屬性(Attribute)。n目關(guān)系必有n個(gè)屬性。AnIntroductiontoDatabaseSystem關(guān)系(續(xù))5)屬性AnIntroductiontoD關(guān)系(續(xù))6)碼候選碼(Candidatekey)若關(guān)系中的某一屬性組的值能唯一地標(biāo)識(shí)一個(gè)元組,則稱(chēng)該屬性組為候選碼在最簡(jiǎn)單的情況下,候選碼只包含一個(gè)屬性。全碼(All-key)在最極端的情況下,關(guān)系模式的所有屬性組是這個(gè)關(guān)系模式的候選碼,稱(chēng)為全碼(All-key)AnIntroductiontoDatabaseSystem關(guān)系(續(xù))6)碼AnIntroductiontoDa關(guān)系(續(xù))碼(續(xù))主碼若一個(gè)關(guān)系有多個(gè)候選碼,則選定其中一個(gè)為主碼(Primarykey)主碼的諸屬性稱(chēng)為主屬性(Primeattribute)。不包含在任何侯選碼中的屬性稱(chēng)為非碼屬性(Non-keyattribute)AnIntroductiontoDatabaseSystem關(guān)系(續(xù))碼(續(xù))AnIntroductiontoDa關(guān)系(續(xù))7)三類(lèi)關(guān)系基本關(guān)系(基本表或基表)實(shí)際存在的表,是實(shí)際存儲(chǔ)數(shù)據(jù)的邏輯表示視圖表由基本表或其他視圖表導(dǎo)出的表,是虛表,不對(duì)應(yīng)實(shí)際存儲(chǔ)的數(shù)據(jù)查詢(xún)表查詢(xún)結(jié)果對(duì)應(yīng)的表AnIntroductiontoDatabaseSystem關(guān)系(續(xù))7)三類(lèi)關(guān)系A(chǔ)nIntroductionto關(guān)系(續(xù))8)基本關(guān)系的性質(zhì)①列是同質(zhì)的(Homogeneous)每一列中的分量是同一類(lèi)型的數(shù)據(jù),來(lái)自同一個(gè)域②不同的列可出自同一個(gè)域其中的每一列稱(chēng)為一個(gè)屬性不同的屬性要給予不同的屬性名AnIntroductiontoDatabaseSystem關(guān)系(續(xù))8)基本關(guān)系的性質(zhì)AnIntroduction關(guān)系(續(xù))上例中也可以只給出兩個(gè)域:人(PERSON)=張清玫,劉逸,李勇,劉晨,王敏專(zhuān)業(yè)(SPECIALITY)=計(jì)算機(jī)專(zhuān)業(yè),信息專(zhuān)業(yè)SAP關(guān)系的導(dǎo)師屬性和研究生屬性都從PERSON域中取值為了避免混淆,必須給這兩個(gè)屬性取不同的屬性名,而不能直接使用域名。例如定義:導(dǎo)師屬性名為SUPERVISOR-PERSON(或SUPERVISOR)研究生屬性名為POSTGRADUATE-PERSON(或POSTGRADUATE)AnIntroductiontoDatabaseSystem關(guān)系(續(xù))上例中也可以只給出兩個(gè)域:AnIntroduc關(guān)系(續(xù))③列的順序無(wú)所謂列的次序可以任意交換④任意兩個(gè)元組不能完全相同⑤行的順序無(wú)所謂行的次序可以任意交換AnIntroductiontoDatabaseSystem關(guān)系(續(xù))③列的順序無(wú)所謂AnIntroduction關(guān)系(續(xù))⑥分量必須取原子值每一個(gè)分量都必須是不可分的數(shù)據(jù)項(xiàng)。這是規(guī)范條件中最基本的一條AnIntroductiontoDatabaseSystem關(guān)系(續(xù))⑥分量必須取原子值A(chǔ)nIntroductio關(guān)系(續(xù))注:許多實(shí)際關(guān)系數(shù)據(jù)庫(kù)產(chǎn)品中,基本表并不完全具有這六條性質(zhì),例如,有的數(shù)據(jù)庫(kù)產(chǎn)品(如FoxPro)仍然區(qū)分了屬性的順序和元組的順序,許多關(guān)系數(shù)據(jù)庫(kù)產(chǎn)品中(如Oracle,F(xiàn)oxPro),它們都允許有兩個(gè)完全相同的元組。AnIntroductiontoDatabaseSystem關(guān)系(續(xù))注:許多實(shí)際關(guān)系數(shù)據(jù)庫(kù)產(chǎn)品中,基本表并不完全具有2.1.1關(guān)系2.1.2關(guān)系模式2.1.3關(guān)系數(shù)據(jù)庫(kù)2.1關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義(續(xù))AnIntroductiontoDatabaseSystem2.1.1關(guān)系2.1關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義(續(xù))An2.1.2關(guān)系模式1.什么是關(guān)系模式2.定義關(guān)系模式3.關(guān)系模式與關(guān)系A(chǔ)nIntroductiontoDatabaseSystem2.1.2關(guān)系模式1.什么是關(guān)系模式AnIntrodu1.什么是關(guān)系模式關(guān)系模式(RelationSchema)是型關(guān)系是值關(guān)系模式是對(duì)關(guān)系的描述元組集合的結(jié)構(gòu)屬性構(gòu)成屬性來(lái)自的域?qū)傩耘c域之間的映象關(guān)系元組語(yǔ)義以及完整性約束條件屬性間的數(shù)據(jù)依賴(lài)關(guān)系集合AnIntroductiontoDatabaseSystem1.什么是關(guān)系模式關(guān)系模式(RelationSchema)2.定義關(guān)系模式關(guān)系模式可以形式化地表示為:
R(U,D,dom,F(xiàn)) R關(guān)系名 U組成該關(guān)系的屬性名集合 D屬性組U中屬性所來(lái)自的域 dom屬性向域的映象集合 F屬性間的數(shù)據(jù)依賴(lài)關(guān)系集合AnIntroductiontoDatabaseSystem2.定義關(guān)系模式關(guān)系模式可以形式化地表示為:AnIntro定義關(guān)系模式(續(xù))例:導(dǎo)師和研究生出自同一個(gè)域——人,取不同的屬性名,并在模式中定義屬性向域的映象,即說(shuō)明它們分別出自哪個(gè)域:dom(SUPERVISOR-PERSON)=dom(POSTGRADUATE-PERSON)=PERSONAnIntroductiontoDatabaseSystem定義關(guān)系模式(續(xù))例:AnIntroductionto定義關(guān)系模式(續(xù))關(guān)系模式通??梢院?jiǎn)記為
R(U)或
R(A1,A2,…,An)
R關(guān)系名A1,A2,…,An屬性名注:域名及屬性向域的映象常常直接說(shuō)明為屬性的類(lèi)型、長(zhǎng)度AnIntroductiontoDatabaseSystem定義關(guān)系模式(續(xù))關(guān)系模式通??梢院?jiǎn)記為AnIntrod3.關(guān)系模式與關(guān)系關(guān)系模式對(duì)關(guān)系的描述靜態(tài)的、穩(wěn)定的關(guān)系關(guān)系模式在某一時(shí)刻的狀態(tài)或內(nèi)容動(dòng)態(tài)的、隨時(shí)間不斷變化的關(guān)系模式和關(guān)系往往統(tǒng)稱(chēng)為關(guān)系通過(guò)上下文加以區(qū)別AnIntroductiontoDatabaseSystem3.關(guān)系模式與關(guān)系關(guān)系模式AnIntroduction2.1.1關(guān)系2.1.2關(guān)系模式2.1.3關(guān)系數(shù)據(jù)庫(kù)2.1關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義AnIntroductiontoDatabaseSystem2.1.1關(guān)系2.1關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義AnIn2.1.3關(guān)系數(shù)據(jù)庫(kù)1.關(guān)系數(shù)據(jù)庫(kù)2.關(guān)系數(shù)據(jù)庫(kù)的型與值A(chǔ)nIntroductiontoDatabaseSystem2.1.3關(guān)系數(shù)據(jù)庫(kù)1.關(guān)系數(shù)據(jù)庫(kù)AnIntrodu1.關(guān)系數(shù)據(jù)庫(kù)在一個(gè)給定的應(yīng)用領(lǐng)域中,所有實(shí)體及實(shí)體之間聯(lián)系的關(guān)系的集合構(gòu)成一個(gè)關(guān)系數(shù)據(jù)庫(kù)。AnIntroductiontoDatabaseSystem1.關(guān)系數(shù)據(jù)庫(kù)在一個(gè)給定的應(yīng)用領(lǐng)域中,所有實(shí)體及實(shí)AnI2.關(guān)系數(shù)據(jù)庫(kù)的型與值關(guān)系數(shù)據(jù)庫(kù)也有型和值之分關(guān)系數(shù)據(jù)庫(kù)的型稱(chēng)為關(guān)系數(shù)據(jù)庫(kù)模式,是對(duì)關(guān)系數(shù)據(jù)庫(kù)的描述若干域的定義在這些域上定義的若干關(guān)系模式關(guān)系數(shù)據(jù)庫(kù)的值是這些關(guān)系模式在某一時(shí)刻對(duì)應(yīng)的關(guān)系的集合,通常簡(jiǎn)稱(chēng)為關(guān)系數(shù)據(jù)庫(kù)AnIntroductiontoDatabaseSystem2.關(guān)系數(shù)據(jù)庫(kù)的型與值關(guān)系數(shù)據(jù)庫(kù)也有型和值之分AnInt第二章關(guān)系數(shù)據(jù)庫(kù)2.1關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義2.2關(guān)系操作2.3關(guān)系的完整性2.4關(guān)系代數(shù)2.5關(guān)系演算2.6小結(jié)AnIntroductiontoDatabaseSystem第二章關(guān)系數(shù)據(jù)庫(kù)2.1關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義AnI2.2關(guān)系操作2.2.1基本的關(guān)系操作2.2.2關(guān)系數(shù)據(jù)語(yǔ)言的分類(lèi)AnIntroductiontoDatabaseSystem2.2關(guān)系操作2.2.1基本的關(guān)系操作AnIntro2.2.1基本的關(guān)系操作1)常用的關(guān)系操作查詢(xún)選擇、投影、連接、除、并、交、差數(shù)據(jù)更新插入、刪除、修改查詢(xún)的表達(dá)能力是其中最主要的部分AnIntroductiontoDatabaseSystem2.2.1基本的關(guān)系操作1)常用的關(guān)系操作AnIntr基本的關(guān)系操作(續(xù))2)關(guān)系操作的特點(diǎn)集合操作方式,即操作的對(duì)象和結(jié)果都是集合。非關(guān)系數(shù)據(jù)模型的數(shù)據(jù)操作方式:一次一記錄關(guān)系數(shù)據(jù)模型的數(shù)據(jù)操作方式:一次一集合AnIntroductiontoDatabaseSystem基本的關(guān)系操作(續(xù))2)關(guān)系操作的特點(diǎn)AnIntrodu2.2.2關(guān)系數(shù)據(jù)語(yǔ)言的分類(lèi)關(guān)系代數(shù)語(yǔ)言用對(duì)關(guān)系的運(yùn)算來(lái)表達(dá)查詢(xún)要求典型代表:ISBL關(guān)系演算語(yǔ)言:用謂詞來(lái)表達(dá)查詢(xún)要求元組關(guān)系演算語(yǔ)言謂詞變?cè)幕緦?duì)象是元組變量典型代表:APLHA,QUELAnIntroductiontoDatabaseSystem2.2.2關(guān)系數(shù)據(jù)語(yǔ)言的分類(lèi)關(guān)系代數(shù)語(yǔ)言AnIntr關(guān)系數(shù)據(jù)語(yǔ)言的分類(lèi)(續(xù))域關(guān)系演算語(yǔ)言謂詞變?cè)幕緦?duì)象是域變量典型代表:QBE具有關(guān)系代數(shù)和關(guān)系演算雙重特點(diǎn)的語(yǔ)言典型代表:SQLAnIntroductiontoDatabaseSystem關(guān)系數(shù)據(jù)語(yǔ)言的分類(lèi)(續(xù))域關(guān)系演算語(yǔ)言AnIntr關(guān)系數(shù)據(jù)語(yǔ)言的分類(lèi)(續(xù))關(guān)系數(shù)據(jù)語(yǔ)言的特點(diǎn)關(guān)系語(yǔ)言是一種高度非過(guò)程化的語(yǔ)言存取路徑的選擇由DBMS的優(yōu)化機(jī)制來(lái)完成能夠嵌入高級(jí)語(yǔ)言中使用關(guān)系代數(shù)、元組關(guān)系演算和域關(guān)系演算三種語(yǔ)言在表達(dá)能力上完全等價(jià)AnIntroductiontoDatabaseSystem關(guān)系數(shù)據(jù)語(yǔ)言的分類(lèi)(續(xù))關(guān)系數(shù)據(jù)語(yǔ)言的特點(diǎn)AnIntrod第二章關(guān)系數(shù)據(jù)庫(kù)2.1關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義2.2關(guān)系操作2.3關(guān)系的完整性2.4關(guān)系代數(shù)2.5關(guān)系演算2.6小結(jié)AnIntroductiontoDatabaseSystem第二章關(guān)系數(shù)據(jù)庫(kù)2.1關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義AnI2.3關(guān)系的完整性關(guān)系模型的完整性規(guī)則是對(duì)關(guān)系的某種約束條件。關(guān)系模型中三類(lèi)完整性約束:實(shí)體完整性參照完整性用戶(hù)定義的完整性實(shí)體完整性和參照完整性是關(guān)系模型必須滿(mǎn)足的完整性約束條件,被稱(chēng)作是關(guān)系的兩個(gè)不變性,應(yīng)該由關(guān)系系統(tǒng)自動(dòng)支持。AnIntroductiontoDatabaseSystem2.3關(guān)系的完整性關(guān)系模型的完整性規(guī)則是對(duì)關(guān)系的某種約束關(guān)系的完整性(續(xù))2.3.1實(shí)體完整性2.3.2.參照完整性2.3.3.用戶(hù)定義的完整性AnIntroductiontoDatabaseSystem關(guān)系的完整性(續(xù))2.3.1實(shí)體完整性AnIntrodu2.3.1實(shí)體完整性實(shí)體完整性規(guī)則(EntityIntegrity)若屬性A(指一個(gè)或一組)是基本關(guān)系R的主屬性,則A不能取空值例SAP(SUPERVISOR,SPECIALITY,POSTGRADUATE)POSTGRADUATE屬性為主碼(假設(shè)研究生不會(huì)重名),則其不能取空值A(chǔ)nIntroductiontoDatabaseSystem2.3.1實(shí)體完整性實(shí)體完整性規(guī)則(EntityInte實(shí)體完整性(續(xù))關(guān)系模型必須遵守實(shí)體完整性規(guī)則的原因(1)實(shí)體完整性規(guī)則是針對(duì)基本關(guān)系而言的。一個(gè)基本表通常對(duì)應(yīng)現(xiàn)實(shí)世界的一個(gè)實(shí)體集或多對(duì)多聯(lián)系。(2)現(xiàn)實(shí)世界中的實(shí)體和實(shí)體間的聯(lián)系都是可區(qū)分的,即它們具有某種唯一性標(biāo)識(shí)。(3)相應(yīng)地,關(guān)系模型中以主碼作為唯一性標(biāo)識(shí)。AnIntroductiontoDatabaseSystem實(shí)體完整性(續(xù))關(guān)系模型必須遵守實(shí)體完整性規(guī)則的原因AnI實(shí)體完整性(續(xù))(4)主碼中的屬性即主屬性不能取空值。
空值就是“不知道”或“無(wú)意義”的值。主屬性取空值,就說(shuō)明存在某個(gè)不可標(biāo)識(shí)的實(shí)體,即存在不可區(qū)分的實(shí)體,這與第(2)點(diǎn)相矛盾,因此這個(gè)規(guī)則稱(chēng)為實(shí)體完整性。AnIntroductiontoDatabaseSystem實(shí)體完整性(續(xù))(4)主碼中的屬性即主屬性不能取空值。An實(shí)體完整性(續(xù))注意實(shí)體完整性規(guī)則規(guī)定基本關(guān)系的所有主屬性都不能取空值例選修(學(xué)號(hào),課程號(hào),成績(jī))“學(xué)號(hào)、課程號(hào)”為主碼,則兩個(gè)屬性都不能取空值。AnIntroductiontoDatabaseSystem實(shí)體完整性(續(xù))注意AnIntroductiontoD關(guān)系的完整性2.3.1實(shí)體完整性2.3.2.參照完整性2.3.3.用戶(hù)定義的完整性AnIntroductiontoDatabaseSystem關(guān)系的完整性2.3.1實(shí)體完整性AnIntroducti2.3.2參照完整性1.關(guān)系間的引用2.外碼3.參照完整性規(guī)則AnIntroductiontoDatabaseSystem2.3.2參照完整性1.關(guān)系間的引用AnIntrodu1.關(guān)系間的引用在關(guān)系模型中實(shí)體及實(shí)體間的聯(lián)系都是用關(guān)系來(lái)描述的,因此可能存在著關(guān)系與關(guān)系間的引用。例1學(xué)生實(shí)體、專(zhuān)業(yè)實(shí)體以及專(zhuān)業(yè)與學(xué)生間的一對(duì)多聯(lián)系學(xué)生(學(xué)號(hào),姓名,性別,專(zhuān)業(yè)號(hào),年齡)專(zhuān)業(yè)(專(zhuān)業(yè)號(hào),專(zhuān)業(yè)名)AnIntroductiontoDatabaseSystem1.關(guān)系間的引用在關(guān)系模型中實(shí)體及實(shí)體間
學(xué)生(學(xué)號(hào),姓名,性別,專(zhuān)業(yè)號(hào),年齡)
專(zhuān)業(yè)(專(zhuān)業(yè)號(hào),專(zhuān)業(yè)名)
AnIntroductiontoDatabaseSystem
學(xué)生(學(xué)號(hào),姓名,性別,專(zhuān)業(yè)號(hào),年齡)
關(guān)系間的引用(續(xù))例2學(xué)生、課程、學(xué)生與課程之間的多對(duì)多聯(lián)系學(xué)生(學(xué)號(hào),姓名,性別,專(zhuān)業(yè)號(hào),年齡)課程(課程號(hào),課程名,學(xué)分)選修(學(xué)號(hào),課程號(hào),成績(jī))AnIntroductiontoDatabaseSystem關(guān)系間的引用(續(xù))例2學(xué)生、課程、學(xué)生與課程之間的多對(duì)A
學(xué)生學(xué)生選課課程AnIntroductiontoDatabaseSystem學(xué)生學(xué)生選課課程AnIntroductiontoDa關(guān)系間的引用(續(xù))例3學(xué)生實(shí)體及其內(nèi)部的領(lǐng)導(dǎo)聯(lián)系(一對(duì)多)
學(xué)生(學(xué)號(hào),姓名,性別,專(zhuān)業(yè)號(hào),年齡,班長(zhǎng))AnIntroductiontoDatabaseSystem關(guān)系間的引用(續(xù))例3學(xué)生實(shí)體及其內(nèi)部的領(lǐng)導(dǎo)聯(lián)系(一對(duì)多2.外碼(ForeignKey)
設(shè)F是基本關(guān)系R的一個(gè)或一組屬性,但不是關(guān)系R的碼。如果F與基本關(guān)系S的主碼Ks相對(duì)應(yīng),則稱(chēng)F是基本關(guān)系R的外碼,基本關(guān)系R稱(chēng)為參照關(guān)系(ReferencingRelation),基本關(guān)系S稱(chēng)為被參照關(guān)系(ReferencedRelation)或目標(biāo)關(guān)系(TargetRelation)。AnIntroductiontoDatabaseSystem2.外碼(ForeignKey)設(shè)F是基外碼(續(xù))說(shuō)明關(guān)系R和S不一定是不同的關(guān)系目標(biāo)關(guān)系S的主碼Ks和參照關(guān)系的外碼F必須定義在同一個(gè)(或一組)域上外碼并不一定要與相應(yīng)的主碼同名當(dāng)外碼與相應(yīng)的主碼屬于不同關(guān)系時(shí),往往取相同的名字,以便于識(shí)別AnIntroductiontoDatabaseSystem外碼(續(xù))說(shuō)明AnIntroductiontoData3.參照完整性規(guī)則若屬性(或?qū)傩越M)F是基本關(guān)系R的外碼它與基本關(guān)系S的主碼Ks相對(duì)應(yīng)(基本關(guān)系R和S不一定是不同的關(guān)系),則對(duì)于R中每個(gè)元組在F上的值必須為:或者取空值(F的每個(gè)屬性值均為空值)或者等于S中某個(gè)元組的主碼值。AnIntroductiontoDatabaseSystem3.參照完整性規(guī)則若屬性(或?qū)傩越M)F是基本關(guān)系R的外碼A參照完整性規(guī)則(續(xù))學(xué)生關(guān)系中每個(gè)元組的“專(zhuān)業(yè)號(hào)”屬性只取下面兩類(lèi)值:(1)空值,表示尚未給該學(xué)生分配專(zhuān)業(yè)(2)非空值,這時(shí)該值必須是專(zhuān)業(yè)關(guān)系中某個(gè)元組的“專(zhuān)業(yè)號(hào)”值,表示該學(xué)生不可能分配到一個(gè)不存在的專(zhuān)業(yè)中AnIntroductiontoDatabaseSystem參照完整性規(guī)則(續(xù))AnIntroductiontoD參照完整性規(guī)則(續(xù))選修(學(xué)號(hào),課程號(hào),成績(jī))“學(xué)號(hào)”和“課程號(hào)”是選修關(guān)系中的主屬性按照實(shí)體完整性和參照完整性規(guī)則,它們只能取相應(yīng)被參照關(guān)系中已經(jīng)存在的主碼值A(chǔ)nIntroductiontoDatabaseSystem參照完整性規(guī)則(續(xù))選修(學(xué)號(hào),課程號(hào),成績(jī))AnInt參照完整性規(guī)則(續(xù))學(xué)生(學(xué)號(hào),姓名,性別,專(zhuān)業(yè)號(hào),年齡,班長(zhǎng))“班長(zhǎng)”屬性值可以取兩類(lèi)值:(1)空值,表示該學(xué)生所在班級(jí)尚未選出班長(zhǎng),或該學(xué)生本人即是班長(zhǎng);(2)非空值,這時(shí)該值必須是本關(guān)系中某個(gè)元組的學(xué)號(hào)值A(chǔ)nIntroductiontoDatabaseSystem參照完整性規(guī)則(續(xù))學(xué)生(學(xué)號(hào),姓名,性別,專(zhuān)業(yè)號(hào),年齡,班關(guān)系的完整性(續(xù))2.3.1實(shí)體完整性2.3.2.參照完整性2.3.3.用戶(hù)定義的完整性AnIntroductiontoDatabaseSystem關(guān)系的完整性(續(xù))2.3.1實(shí)體完整性AnIntrodu2.3.3用戶(hù)定義的完整性用戶(hù)定義的完整性是針對(duì)某一具體關(guān)系數(shù)據(jù)庫(kù)的約束條件,反映某一具體應(yīng)用所涉及的數(shù)據(jù)必須滿(mǎn)足的語(yǔ)義要求。關(guān)系模型應(yīng)提供定義和檢驗(yàn)這類(lèi)完整性的機(jī)制,以便用統(tǒng)一的系統(tǒng)的方法處理它們,而不要由應(yīng)用程序承擔(dān)這一功能。AnIntroductiontoDatabaseSystem2.3.3用戶(hù)定義的完整性用戶(hù)定義的完整性是針對(duì)某一具體關(guān)用戶(hù)定義的完整性(續(xù))例: 課程(課程號(hào),課程名,學(xué)分)“課程名”屬性必須取唯一值非主屬性“課程名”也不能取空值“學(xué)分”屬性只能取值{1,2,3,4}AnIntroductiontoDatabaseSystem用戶(hù)定義的完整性(續(xù))例:AnIntroductiont2.4關(guān)系代數(shù)
概述
傳統(tǒng)的集合運(yùn)算專(zhuān)門(mén)的關(guān)系運(yùn)算AnIntroductiontoDatabaseSystem2.4關(guān)系代數(shù)概述AnIntroductionto概述1.關(guān)系代數(shù) 一種抽象的查詢(xún)語(yǔ)言 用對(duì)關(guān)系的運(yùn)算來(lái)表達(dá)查詢(xún)AnIntroductiontoDatabaseSystem概述1.關(guān)系代數(shù)AnIntroductiontoDat概述(續(xù))2.關(guān)系代數(shù)運(yùn)算的三個(gè)要素運(yùn)算對(duì)象:關(guān)系運(yùn)算結(jié)果:關(guān)系運(yùn)算符:四類(lèi)AnIntroductiontoDatabaseSystem概述(續(xù))2.關(guān)系代數(shù)運(yùn)算的三個(gè)要素AnIntroduct概述(續(xù))3.運(yùn)算符傳統(tǒng)的集合運(yùn)算符將關(guān)系看成元組的集合運(yùn)算是從關(guān)系的“水平”方向即行的角度來(lái)進(jìn)行專(zhuān)門(mén)的關(guān)系運(yùn)算符不僅涉及行而且涉及列算術(shù)比較符輔助專(zhuān)門(mén)的關(guān)系運(yùn)算符進(jìn)行操作邏輯運(yùn)算符輔助專(zhuān)門(mén)的關(guān)系運(yùn)算符進(jìn)行操作AnIntroductiontoDatabaseSystem概述(續(xù))3.運(yùn)算符AnIntroductiontoD表2.4關(guān)系代數(shù)運(yùn)算符
概述(續(xù))運(yùn)算符含義運(yùn)算符含義集合運(yùn)算符∪—∩并差交比較運(yùn)算符>≥<≤=≠大于大于等于小于小于等于等于不等于專(zhuān)門(mén)的關(guān)系運(yùn)算符×σπ∞÷廣義笛卡爾積選擇投影連接除邏輯運(yùn)算符﹃∧∨非與或AnIntroductiontoDatabaseSystem表2.4關(guān)系代數(shù)運(yùn)算符概述(續(xù))運(yùn)算符含義運(yùn)算符含義集概述(續(xù))4.表示記號(hào)
(1)R,tR,t[Ai]設(shè)關(guān)系模式為R(A1,A2,…,An)它的一個(gè)關(guān)系設(shè)為R。tR表示t是R的一個(gè)元組t[Ai]則表示元組t中相應(yīng)于屬性Ai的一個(gè)分量
AnIntroductiontoDatabaseSystem概述(續(xù))4.表示記號(hào)AnIntroductionto概述(續(xù))(2)A,t[A],A若A={Ai1,Ai2,…,Aik},其中Ai1,Ai2,…,Aik是A1,A2,…,An中的一部分,則A稱(chēng)為屬性列或域列。t[A]=(t[Ai1],t[Ai2],…,t[Aik])表示元組t在屬性列A上諸分量的集合。A則表示{A1,A2,…,An}中去掉{Ai1,Ai2,…,Aik}后剩余的屬性組。AnIntroductiontoDatabaseSystem概述(續(xù))(2)A,t[A],AAnIntroduc概述(續(xù))(3)trtsR為n目關(guān)系,S為m目關(guān)系。trR,tsS,trts稱(chēng)為元組的連接。它是一個(gè)n+m列的元組,前n個(gè)分量為R中的一個(gè)n元組,后m個(gè)分量為S中的一個(gè)m元組。AnIntroductiontoDatabaseSystem概述(續(xù))(3)trtsAnIntroduction概述(續(xù))4)象集Zx給定一個(gè)關(guān)系R(X,Z),X和Z為屬性組。當(dāng)t[X]=x時(shí),x在R中的象集(ImagesSet)為:
Zx={t[Z]|tR,t[X]=x} 它表示R中屬性組X上值為x的諸元組在Z上分量的集合。AnIntroductiontoDatabaseSystem概述(續(xù))4)象集ZxAnIntroductionto2.4關(guān)系代數(shù)
概述
傳統(tǒng)的集合運(yùn)算
專(zhuān)門(mén)的關(guān)系運(yùn)算AnIntroductiontoDatabaseSystem2.4關(guān)系代數(shù)
概述AnIntroductionto2.4.1傳統(tǒng)的集合運(yùn)算并差交廣義笛卡爾積前提:
R和S有相同的目n,相應(yīng)的屬性取自同一個(gè)域AnIntroductiontoDatabaseSystem2.4.1傳統(tǒng)的集合運(yùn)算并前提:R和S有相同的目n,相2.4.1傳統(tǒng)的集合運(yùn)算(續(xù))1.R∪S
仍為n目關(guān)系,由屬于R或?qū)儆赟的元組組成R∪S={t|t
R∨tS}2.R-S
仍為n目關(guān)系,由屬于R而不屬于S的所有元組組成
R-S={t|tR∧tS}AnIntroductiontoDatabaseSystem2.4.1傳統(tǒng)的集合運(yùn)算(續(xù))1.R∪SAnIntr2.4.1傳統(tǒng)的集合運(yùn)算(續(xù))3.R∩S仍為n目關(guān)系,由既屬于R又屬于S的元組組成 R∩S={t|t
R∧tS} R∩S=R
–(R-S)AnIntroductiontoDatabaseSystem2.4.1傳統(tǒng)的集合運(yùn)算(續(xù))3.R∩SAnIntro2.4.1傳統(tǒng)的集合運(yùn)算(續(xù))4.廣義笛卡爾積(ExtendedCartesianProduct)R和SR:n目關(guān)系,k1個(gè)元組S:m目關(guān)系,k2個(gè)元組R×S
列:(n+m)列的元組的集合元組的前n列是關(guān)系R的一個(gè)元組后m列是關(guān)系S的一個(gè)元組行:k1×k2個(gè)元組R×S={tr
ts|tr
R∧tsS}AnIntroductiontoDatabaseSystem2.4.1傳統(tǒng)的集合運(yùn)算(續(xù))4.廣義笛卡爾積(Ext廣義笛卡爾積(續(xù))ABCa1b1c1a1b2c2a2b2c1ABCa1b2c2a1b3c2a2b2c1RSABCABCa1b1c1a1b2c2a1b1c1a1b3c2a1b1c1a2b2c1a1b2c2a1b2c2a1b2c2a1b3c2a1b2c2a2b2c1a2b2c1a1b2c2a2b2c1a1b3c2a2b2c1a2b2c1R×SAnIntroductiontoDatabaseSystem廣義笛卡爾積(續(xù))ABCa1b1c1a1b2c2a2b2c2.4關(guān)系代數(shù)概述傳統(tǒng)的集合運(yùn)算專(zhuān)門(mén)的關(guān)系運(yùn)算AnIntroductiontoDatabaseSystem2.4關(guān)系代數(shù)概述AnIntroductiontoD2.4.2專(zhuān)門(mén)的關(guān)系運(yùn)算選擇投影連接除AnIntroductiontoDatabaseSystem2.4.2專(zhuān)門(mén)的關(guān)系運(yùn)算選擇AnIntroduction1.選擇(Selection)1)選擇又稱(chēng)為限制(Restriction)2)選擇運(yùn)算符的含義在關(guān)系R中選擇滿(mǎn)足給定條件的諸元組σF(R)={t|tR∧F(t)='真'}F:選擇條件,是一個(gè)邏輯表達(dá)式,基本形式為:X1θY1
θ:比較運(yùn)算符(>,≥,<,≤,=或<>)X1,Y1等:屬性名、常量、簡(jiǎn)單函數(shù);屬性名也可以用它的序號(hào)來(lái)代替;AnIntroductiontoDatabaseSystem1.選擇(Selection)1)選擇又稱(chēng)為限制(Re選擇(續(xù))3)選擇運(yùn)算是從行的角度進(jìn)行的運(yùn)算4)舉例 設(shè)有一個(gè)學(xué)生-課程數(shù)據(jù)庫(kù),包括學(xué)生關(guān)系Student、課程關(guān)系Course和選修關(guān)系SC。σAnIntroductiontoDatabaseSystem選擇(續(xù))3)選擇運(yùn)算是從行的角度進(jìn)行的運(yùn)算σAnIn選擇(續(xù))學(xué)號(hào)Sno姓名Sname性別Ssex年齡Sage所在系Sdept95001李勇男20CS95002劉晨女19IS95003王敏女18MA95004張立男19IS(a)
Student例1例2例4例3例9AnIntroductiontoDatabaseSystem選擇(續(xù))學(xué)號(hào)姓名性別年齡所在系9500選擇(續(xù))(b)Course課程號(hào)課程名先行課學(xué)分CnoCnameCpnoCcredit1數(shù)據(jù)庫(kù)542數(shù)學(xué)
23信息系統(tǒng)144操作系統(tǒng)635數(shù)據(jù)結(jié)構(gòu)746數(shù)據(jù)處理
27PASCAL語(yǔ)言64例9AnIntroductiontoDatabaseSystem選擇(續(xù))Course課程號(hào)課程名先行課學(xué)分CnoCname選擇(續(xù))
(c)SC學(xué)號(hào)課程號(hào)成績(jī)SnoCnoGrade9500119295001285950013889500229095002380例7例9AnIntroductiontoDatabaseSystem選擇(續(xù))
(c)SC學(xué)號(hào)課程號(hào)成績(jī)SnoCno選擇(續(xù))[例1]查詢(xún)信息系(IS系)全體學(xué)生 σSdept
='IS'(Student) 或σ5='IS'(Student)結(jié)果:SnoSnameSsexSageSdept95002劉晨女19IS95004張立男19ISAnIntroductiontoDatabaseSystem選擇(續(xù))[例1]查詢(xún)信息系(IS系)全體學(xué)生SnoSn選擇(續(xù))[例2]查詢(xún)年齡小于20歲的學(xué)生
σSage<20(Student) 或σ4<20(Student) 結(jié)果:
SnoSnameSsexSageSdept95002劉晨女19IS95003王敏女18MA95004張立男19IS
AnIntroductiontoDatabaseSystem選擇(續(xù))[例2]查詢(xún)年齡小于20歲的學(xué)生SnoSnam2.投影(Projection)1)投影運(yùn)算符的含義從R中選擇出若干屬性列組成新的關(guān)系πA(R)={t[A]|tR} A:R中的屬性列
可多個(gè),中間用“,”分開(kāi)。也可用屬性序號(hào)代替AnIntroductiontoDatabaseSystem2.投影(Projection)1)投影運(yùn)算符的含義可多2.投影(Projection)2)投影操作主要是從列的角度進(jìn)行運(yùn)算但投影之后不僅取消了原關(guān)系中的某些列,而且還可能取消某些元組(避免重復(fù)行)πAnIntroductiontoDatabaseSystem2.投影(Projection)2)投影操作主要是從列的投影(續(xù))3)舉例[例3]查詢(xún)學(xué)生的姓名和所在系 即求Student關(guān)系上學(xué)生姓名和所在系兩個(gè)屬性上的投影πSname,Sdept(Student) 或π2,5(Student)結(jié)果:AnIntroductiontoDatabaseSystem投影(續(xù))3)舉例AnIntroductiontoD投影(續(xù))SnameSdept李勇CS劉晨IS王敏MA張立ISAnIntroductiontoDatabaseSystem投影(續(xù))SnameSdept李勇CS劉晨IS王敏MA張立I投影(續(xù))[例4]查詢(xún)學(xué)生關(guān)系Student中都有哪些系πSdept(Student) 結(jié)果:SdeptCSISMAAnIntroductiontoDatabaseSystem投影(續(xù))[例4]查詢(xún)學(xué)生關(guān)系Student中都有哪些系3.連接(Join)1)連接也稱(chēng)為θ連接2)連接運(yùn)算的含義從兩個(gè)關(guān)系的笛卡爾積中選取屬性間滿(mǎn)足一定條件的元組
RS={|tr
R∧ts
S∧tr[A]θts[B]}A和B:分別為R和S上度數(shù)相等且可比的屬性組θ:比較運(yùn)算符
連接運(yùn)算從R和S的廣義笛卡爾積R×S中選?。≧關(guān)系)在A屬性組上的值與(S關(guān)系)在B屬性組上值滿(mǎn)足比較關(guān)系的元組。
AθBtrtsAnIntroductiontoDatabaseSystem3.連接(Join)1)連接也稱(chēng)為θ連接AθBtr連接(續(xù))3)兩類(lèi)常用連接運(yùn)算等值連接(equijoin)什么是等值連接θ為“=”的連接運(yùn)算稱(chēng)為等值連接
等值連接的含義從關(guān)系R與S的廣義笛卡爾積中選取A、B屬性值相等的那些元組,即等值連接為:
RS={|tr
R∧tsS∧tr[A]=ts[B]}A=BtrtsAnIntroductiontoDatabaseSystem連接(續(xù))3)兩類(lèi)常用連接運(yùn)算A=BtrtsAnIn連接(續(xù))自然連接(Naturaljoin)
什么是自然連接自然連接是一種特殊的等值連接兩個(gè)關(guān)系中進(jìn)行比較的分量必須是相同的屬性組在結(jié)果中把重復(fù)的屬性列去掉自然連接的含義 R和S具有相同的屬性組B
R
S={|trR∧tsS∧tr[B]=ts[B]}trtsAnIntroductiontoDatabaseSystem連接(續(xù))自然連接(Naturaljoin)trt連接(續(xù))4)一般的連接操作是從行的角度進(jìn)行運(yùn)算。 自然連接還需要取消重復(fù)列,所以是同時(shí)從行和列的角度進(jìn)行運(yùn)算。
AθBRSAnIntroductiontoDatabaseSystem連接(續(xù))4)一般的連接操作是從行的角度進(jìn)行運(yùn)算。AθBR連接(續(xù))5)舉例 [例5]ABCa1b15a1b26a2b38a2b412BEb13b27b310b32b52RSAnIntroductiontoDatabaseSystem連接(續(xù))5)舉例ABCa1b15a1b26a2b38a2b連接(續(xù))R
S
AR.BCS.BEa1b15b27a1b15b310a1b26b27a1b26b310a2b38b310
C<EAnIntroductiontoDatabaseSystem連接(續(xù))RSAR.BCS.BEa1b15b連接(續(xù))等值連接R
SR.B=S.B
AR.BCS.BEa1b15b13a1b26b27a2b38b310a2b38b32AnIntroductiontoDatabaseSystem連接(續(xù))等值連接RSR.B=S.連接(續(xù))自然連接R
S
ABCEa1b153a1b267a2b3810a2b382AnIntroductiontoDatabaseSystem連接(續(xù))自然連接RSABCEa連接(續(xù))外連接(outerjoin)把舍棄的元組保存在結(jié)果關(guān)系中左外連接(LEFTouterjoin)只把左邊關(guān)系R中要舍棄的元組保留右外連接(Rightouterjoin)只把右邊關(guān)系S中要舍棄的元組保留P59舉例AnIntroductiontoDatabaseSystem連接(續(xù))外連接(outerjoin)AnIntrodu4.除(Division)給定關(guān)系R(X,Y)
和S(Y,Z),其中X,Y,Z為屬性組。R中的Y與S中的Y可以有不同的屬性名,但必須出自相同的域集。R與S的除運(yùn)算得到一個(gè)新的關(guān)系P(X),P是R中滿(mǎn)足下列條件的元組在X屬性列上的投影:元組在X上分量值x的象集Yx包含S在Y上投影的集合。
R÷S={tr[X]|tr
R∧πY(S)
Yx}
Yx:x在R中的象集,x=tr[X]AnIntroductiontoDatabaseSystem4.除(Division)給定關(guān)系R(X,Y)和S除(續(xù))2)除操作是同時(shí)從行和列角度進(jìn)行運(yùn)算
3)舉例
[例6](p59)÷RSAnIntroductiontoDatabaseSystem除(續(xù))2)除操作是同時(shí)從行和列角度進(jìn)行運(yùn)算÷RSAnIn除(續(xù))ABCa1b1c2a2b3c7a3b4c6a1b2c3a4b6c6a2b2c3a1b2c1BCDb1c2d1b2c1d1b2c3d2R÷SAa1RSAnIntroductiontoDatabaseSystem除(續(xù))ABCa1b1c2a2b3c7a3b4c6a1b2c分析:在關(guān)系R中,A可以取四個(gè)值{a1,a2,a3,a4}a1的象集為{(b1,c2),(b2,c3),(b2,c1)}
a2的象集為{(b3,c7),(b2,c3)}
a3的象集為{(b4,c6)}
a4的象集為{(b6,c6)}S在(B,C)上的投影為{(b1,c2),(b2,c1),(b2,c3)}只有a1的象集包含了S在(B,C)屬性組上的投影所以R÷S={a1}AnIntroductiontoDatabaseSystem分析:在關(guān)系R中,A可以取四個(gè)值{a1,a2,a3,a4}A5.綜合舉例以學(xué)生-課程數(shù)據(jù)庫(kù)為例(P.59)[例7]查詢(xún)至少選修1號(hào)課程和3號(hào)課程的學(xué)生號(hào)碼
首先建立一個(gè)臨時(shí)關(guān)系K:
然后求:πSno.Cno(SC)÷K
Cno
1
3AnIntroductiontoDatabaseSystem5.綜合舉例以學(xué)生-課程數(shù)據(jù)庫(kù)為例(P.59)Cno綜合舉例(續(xù))例7續(xù)πSno.Cno(SC)
95001象集{1,2,3} 95002象集{2,3}
πCno(K)={1,3}于是:πSno.Cno(SC)÷K={95001}SnoCno950011950012950013950022950023AnIntroductiontoDatabaseSystem綜合舉例(續(xù))例7續(xù)πSno.Cno(SC)Sno方法一:思路:先找到選修了1的學(xué)生,然后找到選修了3的學(xué)生,求其交集就是至少選修了1和3的學(xué)生。記做:方法二:思路:至少選修了1和3可以理解為學(xué)生選修了1并且選修了3。那么可以構(gòu)造cno=’1’∧cno=’3’。但SC表只有一列cno,學(xué)生選課記錄在不同的行里,所以考慮擴(kuò)充cno列。那么可以建立SC表自身到自身的連接(寫(xiě)為SC1和SC2),以學(xué)號(hào)做連接條件,這樣得到的結(jié)果是學(xué)生所選課程中人選兩個(gè)的排列。所以如果SC1.cno=’1’∧SC2.cno=’3’則表示至少選修了1和3。記做:πSno(σcno=‘1’(SC)∩σcno=‘3’(SC)))π1(σ1=4∧2=‘1’∧5=‘3’(SC×SC))πSno(σcno=‘1’(SC))∩
πSno(σcno=‘3’(SC))AnIntroductiontoDatabaseSystem方法一:方法二:πSno(σcno=‘1’(SC)∩綜合舉例(續(xù))[例8]查詢(xún)選修了2號(hào)課程的學(xué)生的學(xué)號(hào)。
πSno(σCno='2'(SC))={95001,95002}
AnIntroductiontoDatabaseSystem綜合舉例(續(xù))[例8]查詢(xún)選修了2號(hào)課程的學(xué)生的學(xué)號(hào)。綜合舉例(續(xù))[例9]查詢(xún)至少選修了一門(mén)其直接先行課為5號(hào)課程的學(xué)生姓名。πSname(σCpno='5'(CourseSCStudent))或πSname(σCpno='5'(Course)SCπSno,Sname(Student))或πSname(πSno(σCpno='5'(Course)SC)πSno,Sname(Student))
AnIntroductiontoDatabaseSystem綜合舉例(續(xù))AnIntroductiont綜合舉例(續(xù))[例10]查詢(xún)選修了全部課程的學(xué)生號(hào)碼和姓名。涉及表course,sc,student當(dāng)涉及到求“全部”之類(lèi)的查詢(xún),常用“除法”找出全部課程號(hào):π
Cno
(Course)找出選修了全部課程的學(xué)生的學(xué)號(hào):π
Sno,Cno
(SC)÷
π
cno
(Course)與student表自然連接(連接條件Sno)獲得學(xué)號(hào)、姓名(π
Sno,Cno
(SC)÷
πcno
(Course))∞
πSno,Sname(student)AnIntroductiontoDatabaseSystem綜合舉例(續(xù))涉及表course,sc,student小結(jié)關(guān)系數(shù)據(jù)結(jié)構(gòu)
關(guān)系域笛卡爾積關(guān)系關(guān)系,屬性,元組候選碼,主碼,主屬性基本關(guān)系的性質(zhì)關(guān)系模式關(guān)系數(shù)據(jù)庫(kù)AnIntroductiontoDatabaseSystem小結(jié)關(guān)系數(shù)據(jù)結(jié)構(gòu)AnIntroductiontoDat小結(jié)(續(xù))關(guān)系的數(shù)據(jù)操作查詢(xún)選擇、投影、連接、除、并、交、差數(shù)據(jù)更新插入、刪除、修改AnIntroductiontoDatabaseSystem小結(jié)(續(xù))關(guān)系的數(shù)據(jù)操作AnIntroductionto小結(jié)(續(xù))關(guān)系的完整性約束實(shí)體完整性參照完整性外碼用戶(hù)定義的完整性AnIntroductiontoDatabaseSystem小結(jié)(續(xù))關(guān)系的完整性約束AnIntroductiont小結(jié)(續(xù))關(guān)系代數(shù)運(yùn)算 關(guān)系代數(shù)運(yùn)算 并、差、交、笛卡爾積、投影、選擇、連接、除 基本運(yùn)算 并、差、笛卡爾積、投影、選擇 交、連接、除 可以用5種基本運(yùn)算來(lái)表達(dá)引進(jìn)它們并不增加語(yǔ)言的能力,但可以簡(jiǎn)化表達(dá)AnIntroductiontoDatabaseSystem小結(jié)(續(xù))關(guān)系代數(shù)運(yùn)算AnIntroductionto江蘇大學(xué)計(jì)算機(jī)科學(xué)與通信工程學(xué)院
計(jì)算機(jī)科學(xué)系數(shù)據(jù)庫(kù)系統(tǒng)概論AnIntroductiontoDatabaseSystem第二章關(guān)系數(shù)據(jù)庫(kù)AnIntroductiontoDatabaseSystem江蘇大學(xué)計(jì)算機(jī)科學(xué)與通信工程學(xué)院
計(jì)算機(jī)科學(xué)系數(shù)據(jù)庫(kù)系統(tǒng)概論關(guān)系數(shù)據(jù)庫(kù)簡(jiǎn)介基本思想:將數(shù)學(xué)的方法引入來(lái)處理數(shù)據(jù)庫(kù)中的數(shù)據(jù)。信息代數(shù)、集合論數(shù)據(jù)結(jié)構(gòu)E.F.Codd的關(guān)系模型本章:基本概念數(shù)據(jù)結(jié)構(gòu)、關(guān)系操作關(guān)系完整性。AnIntroductiontoDatabaseSystem關(guān)系數(shù)據(jù)庫(kù)簡(jiǎn)介基本思想:將數(shù)學(xué)的方法引入來(lái)處理數(shù)據(jù)庫(kù)中的數(shù)據(jù)第二章關(guān)系數(shù)據(jù)庫(kù)2.1關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義2.2關(guān)系操作2.3關(guān)系的完整性2.4關(guān)系代數(shù)2.5關(guān)系演算2.6小結(jié)AnIntroductiontoDatabaseSystem第二章關(guān)系數(shù)據(jù)庫(kù)2.1關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義AnI2.1關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)是支持關(guān)系模型的數(shù)據(jù)庫(kù)系統(tǒng)關(guān)系模型的組成關(guān)系數(shù)據(jù)結(jié)構(gòu)關(guān)系操作集合關(guān)系完整性約束AnIntroductiontoDatabaseSystem2.1關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)AnIntr單一的數(shù)據(jù)結(jié)構(gòu)----關(guān)系現(xiàn)實(shí)世界的實(shí)體以及實(shí)體間的各種聯(lián)系均用關(guān)系來(lái)表示數(shù)據(jù)的邏輯結(jié)構(gòu)----二維表從用戶(hù)角度,關(guān)系模型中數(shù)據(jù)的邏輯結(jié)構(gòu)是一張二維表。2.1關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義(續(xù))AnIntroductiontoDatabaseSystem單一的數(shù)據(jù)結(jié)構(gòu)----關(guān)系2.1關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義(2.1.1關(guān)系2.1.2關(guān)系模式2.1.3關(guān)系數(shù)據(jù)庫(kù)2.1關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義(續(xù))AnIntroductiontoDatabaseSystem2.1.1關(guān)系2.1關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義(續(xù))An2.1.1關(guān)系⒈域(Domain)2.笛卡爾積(CartesianProduct)3.關(guān)系(Relation)AnIntroductiontoDatabaseSystem2.1.1關(guān)系⒈域(Domain)AnIntrodu⒈域(Domain)域是一組具有相同數(shù)據(jù)類(lèi)型的值的集合。例:整數(shù)實(shí)數(shù)介于某個(gè)取值范圍的整數(shù){‘男’,‘女’}介于某個(gè)取值范圍的日期AnIntroductiontoDatabaseSystem⒈域(Domain)域是一組具有相同數(shù)據(jù)類(lèi)型的值的集合。例2.笛卡爾積(CartesianProduct)1)笛卡爾積給定一組域D1,D2,…,Dn,這些域可以相同。D1,D2,…,Dn的笛卡爾積為:D1×D2×…×Dn={(d1,d2,…,dn)|diDi,i=1,2,…,n}所有域的所有取值的一個(gè)組合不能重復(fù)AnIntroductiontoDatabaseSystem2.笛卡爾積(CartesianProduct)1)笛笛卡爾積(續(xù))例給出三個(gè)域:
D1=SUPERVISOR={張清玫,劉逸}
D2=SPECIALITY={計(jì)算機(jī)專(zhuān)業(yè),信息專(zhuān)業(yè)}D3=POSTGRADUATE={李勇,劉晨,王敏}則D1,D2,D3的笛卡爾積為:D1×D2×D3={(張清玫,計(jì)算機(jī)專(zhuān)業(yè),李勇),(張清玫,計(jì)算機(jī)專(zhuān)業(yè),劉晨),(張清玫,計(jì)算機(jī)專(zhuān)業(yè),王敏),(張清玫,信息專(zhuān)業(yè),李勇),(張清玫,信息專(zhuān)業(yè),劉晨),(張清玫,信息專(zhuān)業(yè),王敏),(劉逸,計(jì)算機(jī)專(zhuān)業(yè),李勇),(劉逸,計(jì)算機(jī)專(zhuān)業(yè),劉晨),(劉逸,計(jì)算機(jī)專(zhuān)業(yè),王敏),(劉逸,信息專(zhuān)業(yè),李勇),(劉逸,信息專(zhuān)業(yè),劉晨),(劉逸,信息專(zhuān)業(yè),王敏)}AnIntroductiontoDatabaseSystem笛卡爾積(續(xù))例給出三個(gè)域:AnIntroductio笛卡爾積(續(xù))2)元組(Tuple)笛卡爾積中每一個(gè)元素(d1,d2,…,dn)叫作一個(gè)n元組(n-tuple)或簡(jiǎn)稱(chēng)元組。
3)分量(Component)笛卡爾積元素(d1,d2,…,dn)中的每一個(gè)值di叫作一個(gè)分量。
AnIntroductiontoDatabaseSystem笛卡爾積(續(xù))2)元組(Tuple)AnIntroduc笛卡爾積(續(xù))4)基數(shù)(Cardinalnumber)若Di(i=1,2,…,n)為有限集,其基數(shù)為mi(i=1,2,…,n),則D1×D2×…×Dn的基數(shù)M為:在上例中,基數(shù):2×2×3=12,即D1×D2×D3共有2×2×3=12個(gè)元組AnIntroductiontoDatabaseSystem笛卡爾積(續(xù))4)基數(shù)(Cardinalnumber)A笛卡爾積(續(xù))5)笛卡爾積的表示方法笛卡爾積可表示為一個(gè)二維表。表中的每行對(duì)應(yīng)一個(gè)元組,表中的每列對(duì)應(yīng)一個(gè)域。在上例中,12個(gè)元組可列成一張二維表AnIntroductiontoDatabaseSystem笛卡爾積(續(xù))5)笛卡爾積的表示方法AnIntroduct
表2.1D1,D2,D3的笛卡爾積SUPERVISORSPECIALITYPOSTGRADUATE張清玫計(jì)算機(jī)專(zhuān)業(yè)李勇張清玫計(jì)算機(jī)專(zhuān)業(yè)劉晨張清玫計(jì)算機(jī)專(zhuān)業(yè)王敏張清玫信息專(zhuān)業(yè)李勇張清玫信息專(zhuān)業(yè)劉晨張清玫信息專(zhuān)業(yè)王敏劉逸計(jì)算機(jī)專(zhuān)業(yè)李勇劉逸計(jì)算機(jī)專(zhuān)業(yè)劉晨劉逸計(jì)算機(jī)專(zhuān)業(yè)王敏劉逸信息專(zhuān)業(yè)李勇劉逸信息專(zhuān)業(yè)劉晨劉逸信息專(zhuān)業(yè)王敏AnIntroductiontoDatabaseSystem表2.1D1,D2,D3的笛卡爾積SUPERVISOR3.關(guān)系(Relation)1)關(guān)系D1×D2×…×Dn的子集叫作在域D1,D2,…,Dn上的關(guān)系,表示為
R(D1,D2,…,Dn)
R:關(guān)系名n:關(guān)系的目或度(Degree)AnIntroductiontoDatabaseSystem3.關(guān)系(Relation)1)關(guān)系A(chǔ)nIntrodu關(guān)系(續(xù))注意:*關(guān)系是笛卡爾積的有限子集。無(wú)限關(guān)系在數(shù)據(jù)庫(kù)系統(tǒng)中是無(wú)意義的。例表2.1的笛卡爾積中具有無(wú)實(shí)際意義的元組。
其中部分子集才具實(shí)際意義
如:{(張清玫,信息專(zhuān)業(yè),李勇),(張清玫,信息專(zhuān)業(yè),劉晨),(劉逸,信息專(zhuān)業(yè),王敏)}AnIntroductiontoDatabaseSystem關(guān)系(續(xù))注意:AnIntroductiontoDat關(guān)系(續(xù))*由于笛卡爾積不滿(mǎn)足交換律,即(d1,d2,…,dn)≠(d2,d1,…,dn)
但關(guān)系滿(mǎn)足交換律,即(d1,d2,…,di,dj
,…,dn)=(d1,d2,…,dj,di
,…,dn)(i,j=1,2,…,n)解決方法:為關(guān)系的每個(gè)列附加一個(gè)屬性名以取消關(guān)系元組的有序性
如上述子集構(gòu)造出的關(guān)系:SAP(SUPERVISOR,SPECIALITY,POSTGRADUATE)AnIntroductiontoDatabaseSystem關(guān)系(續(xù))*由于笛卡爾積不滿(mǎn)足交換律,即AnIntrodu關(guān)系(續(xù))2)元組關(guān)系中的每個(gè)元素是關(guān)系中的元組,通常用t表示。3)單元關(guān)系與二元關(guān)系當(dāng)n=1時(shí),稱(chēng)該關(guān)系為單元關(guān)系(Unaryrelation)。當(dāng)n=2時(shí),稱(chēng)該關(guān)系為二元關(guān)系(Binaryrelation)。AnIntroductiontoDatabaseSystem關(guān)系(續(xù))2)元組AnIntroductiontoD關(guān)系(續(xù))4)關(guān)系的表示關(guān)系也是一個(gè)二維表,表的每行對(duì)應(yīng)一個(gè)元組,表的每列對(duì)應(yīng)一個(gè)域。AnIntroductiontoDatabaseSystem關(guān)系(續(xù))4)關(guān)系的表示AnIntroductiont關(guān)系(續(xù))5)屬性關(guān)系中不同列可以對(duì)應(yīng)相同的域,為了加以區(qū)分,必須對(duì)每列起一個(gè)名字,稱(chēng)為屬性(Attribute)。n目關(guān)系必有n個(gè)屬性。AnIntroductiontoDatabaseSystem關(guān)系(續(xù))5)屬性AnIntroductiontoD關(guān)系(續(xù))6)碼候選碼(Candidatekey)若關(guān)系中的某一屬性組的值能唯一地標(biāo)識(shí)一個(gè)元組,則稱(chēng)該屬性組為候選碼在最簡(jiǎn)單的情況下,候選碼只包含一個(gè)屬性。全碼(All-key)在最極端的情況下,關(guān)系模式的所有屬性組是這個(gè)關(guān)系模式的候選碼,稱(chēng)為全碼(All-key)AnIntroductiontoDatabaseSystem關(guān)系(續(xù))6)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 現(xiàn)代科技輔助下的空間認(rèn)知教學(xué)
- 科技與健康的結(jié)合孕婦瑜伽的應(yīng)用
- 2024年臨床醫(yī)療管理信息系統(tǒng)項(xiàng)目資金需求報(bào)告代可行性研究報(bào)告
- 讓孩子在探索中學(xué)習(xí)
- 數(shù)學(xué)思維訓(xùn)練提升低年級(jí)學(xué)生問(wèn)題解決能力的方法
- 科技企業(yè)創(chuàng)新型發(fā)展戰(zhàn)略研究
- 二零二五年度健康美食廚師聘用及合作開(kāi)發(fā)合同3篇
- 2025年北師大版九年級(jí)歷史下冊(cè)階段測(cè)試試卷含答案
- 2025年新科版八年級(jí)地理上冊(cè)月考試卷
- 2025年華師大新版一年級(jí)語(yǔ)文下冊(cè)階段測(cè)試試卷含答案
- 定額〔2025〕1號(hào)文-關(guān)于發(fā)布2018版電力建設(shè)工程概預(yù)算定額2024年度價(jià)格水平調(diào)整的通知
- 2024年城市軌道交通設(shè)備維保及安全檢查合同3篇
- 【教案】+同一直線上二力的合成(教學(xué)設(shè)計(jì))(人教版2024)八年級(jí)物理下冊(cè)
- 湖北省武漢市青山區(qū)2023-2024學(xué)年七年級(jí)上學(xué)期期末質(zhì)量檢測(cè)數(shù)學(xué)試卷(含解析)
- 單位往個(gè)人轉(zhuǎn)賬的合同(2篇)
- 電梯操作證及電梯維修人員資格(特種作業(yè))考試題及答案
- 科研倫理審查與違規(guī)處理考核試卷
- GB/T 44101-2024中國(guó)式摔跤課程學(xué)生運(yùn)動(dòng)能力測(cè)評(píng)規(guī)范
- 鍋爐本體安裝單位工程驗(yàn)收表格
- 高危妊娠的評(píng)估和護(hù)理
- 2024年山東鐵投集團(tuán)招聘筆試參考題庫(kù)含答案解析
評(píng)論
0/150
提交評(píng)論