版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
關(guān)系數(shù)據(jù)結(jié)構(gòu)關(guān)系的完整性
實(shí)體完整性參照完整性用戶定義完整性關(guān)系數(shù)據(jù)庫第2章2024/4/121數(shù)據(jù)庫原理●
關(guān)系數(shù)據(jù)庫系統(tǒng)研究進(jìn)展
1970年E.F.Codd“ARelationalModelofDataforSharedDataBanks”1978年IBM公司QUERYBYEXAMPLE1979年IBM公司SYSTEMR1981年IBM公司
SQL/DSORACLE公司ORACLERDBMS INFOMIX公司INFOMIX SYBASE公司SYBASE
MicroSoft公司SQL-SERVER奠定關(guān)系數(shù)據(jù)庫的理論基礎(chǔ)2024/4/122數(shù)據(jù)庫原理2.1關(guān)系模型概述關(guān)系模型關(guān)系數(shù)據(jù)結(jié)構(gòu)關(guān)系操作集合關(guān)系完整性約束數(shù)據(jù)結(jié)構(gòu)單一,實(shí)體間的聯(lián)系用關(guān)系表示,數(shù)據(jù)的邏輯結(jié)構(gòu)是一張二維表。集合操作方式,即操作對象和結(jié)構(gòu)都是集合。實(shí)體完整性、參照完整性和用戶完整性。2024/4/123數(shù)據(jù)庫原理關(guān)系操作(Select)選擇(Join)連接(Project)投影(Divide)除(Union)并(Intersection)交(Difference)差(Insert)增加(Delete)刪除(Update)修改2024/4/124數(shù)據(jù)庫原理關(guān)系數(shù)據(jù)語言關(guān)系代數(shù)語言關(guān)系演算語言具有關(guān)系代數(shù)和關(guān)系演算雙重特點(diǎn)的語言元組關(guān)系演算語言域關(guān)系演算語言例如:ISBL例如:APLHA,QUEL例如:QBE例如:SQL2024/4/125數(shù)據(jù)庫原理2.2關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義2.2.1關(guān)系⒈域(Domain)定義2.1域是一組具有相同數(shù)據(jù)類型的值的集合。例:D1={A,2,3,4,5,……,10,J,Q,K}在關(guān)系中用域來表示屬性的取值范圍域中所包含的值的個(gè)數(shù)稱域的基數(shù)(用m表示)D2={,,,}D3={數(shù)據(jù)庫原理,面向?qū)ο髷?shù)據(jù)庫技術(shù)}M2=4M3=2M1=132024/4/126數(shù)據(jù)庫原理其中每一個(gè)元素(d1,d2,…,dn)叫作一個(gè)n元組(n-Tuple),或簡稱為元組(Tuple)。元素中的每一個(gè)值di叫作一個(gè)分量(Component)。若Di(i=1,2,…,n)為有限集,其基數(shù)(Cardinalnumber)為mi(i=1,2,…,n),則D1×D2×…×Dn的基數(shù)為:M=∏mi
i=1
n
定義2.2給定一組域D1,D2,…,Dn,(允許部分或全部相同)。D1,D2
,…,Dn的笛卡爾積為:D1×D2×…×Dn={(d1,d2,…,dn)|di∈Dj,j=1,2,…,n}⒉笛卡爾積(CartesianProduct)笛卡爾積也是一個(gè)集合2024/4/127數(shù)據(jù)庫原理設(shè)有域D2={,,,}D1×D2={(A,),(A,),(A,),(A,)
............
(K,),(K,),(K,),(K,)}
D1={A,2,3,……,J,Q,K},PCK....AA花色牌值分量元組基數(shù):13×4=52
笛卡爾積可表示為一個(gè)二維表。表中的每行對應(yīng)一個(gè)元組,表中的每列對應(yīng)一個(gè)域。
,則笛卡爾積2024/4/128數(shù)據(jù)庫原理3.關(guān)系(relation)定義2.3D1×D2×…×Dn的子集稱為在域D1,D2,…,Dn上的關(guān)系,表示為R(D1,D2,…,Dn)。其中:R為關(guān)系的名;n為關(guān)系的度或目(Degree)。關(guān)系中每個(gè)元素是關(guān)系中的元組,通常用t表示;當(dāng)n=1時(shí),稱為單元關(guān)系(UnaryRelation);當(dāng)n=2時(shí),稱為二元關(guān)系(BinaryRelation);同樣可以把關(guān)系看作是一個(gè)二維表:每一行對應(yīng)一個(gè)元組;表的每一列對應(yīng)一個(gè)域,每個(gè)域起一個(gè)名字——稱為
屬性;2024/4/129數(shù)據(jù)庫原理關(guān)系類型基本關(guān)系查詢表視圖表實(shí)際存在的表,是實(shí)際存儲數(shù)據(jù)的邏輯表示。查詢結(jié)果對應(yīng)的表。由基本表或其他視圖表導(dǎo)出的表,是虛表,不對應(yīng)實(shí)際存儲的數(shù)據(jù)。2024/4/1210數(shù)據(jù)庫原理例:設(shè)D1=男人集合(MAN)={王強(qiáng)、李東、張兵
}
D2=女人集合(WOMAN)={趙紅、吳芳
}
D3=兒童集合(CHILD)={王輝、李明、李亮}(1)求上面三個(gè)集合的笛卡兒積MWC王強(qiáng)趙紅王輝王強(qiáng)趙紅李明王強(qiáng)趙紅李亮王強(qiáng)吳芳王輝王強(qiáng)吳芳李明王強(qiáng)吳芳李亮李東趙紅王輝李東趙紅李明李東趙紅李亮李東吳芳王輝李東吳芳李明李東吳芳李亮張兵趙紅王輝張兵趙紅李明張兵趙紅李亮張兵吳芳王輝張兵吳芳李明張兵吳芳李亮李亮吳芳李東李明吳芳李東王輝趙紅王強(qiáng)CHILDWOMANMANFamily(2)構(gòu)造一個(gè)家庭關(guān)系,可表示為:
FAMILY(MAN,WOMAN,CHILD)2024/4/1211數(shù)據(jù)庫原理主碼的諸屬性稱為主屬性。若一個(gè)關(guān)系有多個(gè)候選碼,則選定其中的一個(gè)為主碼。關(guān)系R的某一屬性組X不是R的碼,但是其他某一關(guān)系的碼,稱X為R的外部碼。5.主碼(Primarykey)6.主屬性(Primeattribute)若關(guān)系中的某一屬性組的值能唯一的標(biāo)識一個(gè)元組,稱該屬性組為候選碼。4.候選碼(Candidatekey)7.非碼屬性(Non-keyattribute)8.全碼(All-key)不包含在任何候選碼中的屬性稱為非碼屬性。9.外部碼(foreignkey)關(guān)系模式的所有屬性組是這個(gè)關(guān)系模式的候選碼,稱為全碼。2024/4/1212數(shù)據(jù)庫原理例:學(xué)生:S(S#,SNAME,SA,SD)課程:C(C#,CNAME)選課:SC(S#,C#,GR)S:候選碼:S#,SNAME; 主碼:S#假設(shè)沒有學(xué)生重名C:候選碼:C#; 主碼:C#SC:候選碼:(S#,C#);主碼:(S#,C#); 外部碼:S#,C#2024/4/1213數(shù)據(jù)庫原理
列是同質(zhì)的(Homogeneous),即每一列中的分量是同一類型的數(shù)據(jù),來自同一個(gè)域。
不同的列可對應(yīng)于同一個(gè)域,但給予不同的屬性名。列的順序無所謂,即列的次序可以任意交換。任意兩個(gè)元組不能完全相同,即無重復(fù)行。行的順序無所謂,即行的次序可以任意交換。
分量必須取原子值,即每一個(gè)分量都必須是不可分的數(shù)據(jù)項(xiàng)。基本關(guān)系性質(zhì):注:許多關(guān)系數(shù)據(jù)產(chǎn)品,不完全具備該性質(zhì)關(guān)系模型要求關(guān)系必須是規(guī)范化的,規(guī)范條件最基本的一條就是,性質(zhì)6。規(guī)范化的關(guān)系簡稱為范式(NormalForm)。2024/4/1214數(shù)據(jù)庫原理2.2.2關(guān)系模式定義2.4對關(guān)系的描述稱為關(guān)系模式,記為R(U,D,dom,F(xiàn));其中:R為關(guān)系名,U為組成該關(guān)系的屬性名集合,D為U中屬性所來自的域,dom為屬性向域的映象集合,F(xiàn)為屬性間數(shù)據(jù)的依賴關(guān)系集合。S(S#,SNAME,SA,SD)關(guān)系模式通常簡記為:R(U)關(guān)系模式就是關(guān)系的框架(表框架)它是對關(guān)系結(jié)構(gòu)的描述域名及屬性向域的映象常直接說明為屬性的類型、長度●關(guān)系模式是型,是靜態(tài)的、穩(wěn)定的;●
關(guān)系是關(guān)系模式的值,是動(dòng)態(tài)的、隨時(shí)間而變化的。
2024/4/1215數(shù)據(jù)庫原理學(xué)生關(guān)系模式S(S#,SNAME,AGE,SEX)學(xué)生課程關(guān)系模式SC(S#,C#,GRADE)
課程關(guān)系模式C(C#,CNAME,TEACHER)S#SNAMEAGESEXS#C#GRADEC#CNAMETEACHERSCCS2024/4/1216數(shù)據(jù)庫原理2.2.3關(guān)系數(shù)據(jù)庫
在關(guān)系模型中,實(shí)體以及實(shí)體間的聯(lián)系都是用關(guān)系來表示。在一個(gè)給定的應(yīng)用領(lǐng)域中,所有實(shí)體及實(shí)體之間的聯(lián)系的關(guān)系的集合構(gòu)成一個(gè)關(guān)系數(shù)據(jù)庫。
關(guān)系數(shù)據(jù)庫也有型和值之分:型(關(guān)系數(shù)據(jù)庫模式):對關(guān)系數(shù)據(jù)庫的描述,包括若干域的定義以及在這些域上定義的若干關(guān)系模式。值:關(guān)系模式在某一時(shí)刻對應(yīng)的關(guān)系的集合,通常稱為關(guān)系數(shù)據(jù)庫。2024/4/1217數(shù)據(jù)庫原理2.3關(guān)系的完整性完整性約束實(shí)體完整性參照完整性用戶定義的完整性關(guān)系的兩個(gè)不變性2024/4/1218數(shù)據(jù)庫原理(EntityIntegrity)規(guī)則2.1若屬性A是基本關(guān)系R(u)(A∈u)上的主屬性,則屬性A不能取空值。例:選課SC中的S#,C#均不能取空值。實(shí)體完整性該規(guī)則是針對基本關(guān)系而言的;現(xiàn)實(shí)世界中的實(shí)體是可區(qū)分的,即它們具有某種唯一性標(biāo)識;關(guān)系模型中以主碼作為唯一性標(biāo)識;主碼中的屬性即主屬性不能取空值。2024/4/1219數(shù)據(jù)庫原理(ReferentialIntegrity)規(guī)則2.2若屬性(或?qū)傩越M)F是關(guān)系R的外碼,它與基本關(guān)系S的主碼Ks相對應(yīng)(基本關(guān)系R和S不一定是不同的關(guān)系),則對于R中每個(gè)元組在F上的取值必須為:或者取空值(F的每個(gè)屬性值均為空值);或者等于S中的某個(gè)元組的主碼值。參照完整性定義外碼與主碼之間的引用規(guī)則2024/4/1220數(shù)據(jù)庫原理例:職工EMP(EMP#,ENAME,JOB,DEPT#)
部門DEPT(DEPT#,DNAME,LOC)例:學(xué)生S(S#,SNAME,AGE,SEX)課程C(C#,CNAME,TEACHER)
學(xué)生課程SC(S#,C#,GRADE)則:EMP中的DEPT#為空或?yàn)镈EPT中的DEPT#的值則:SC中的S#為空或?yàn)镾中的S#的值;SC中的C#為空或?yàn)镃中的C#的值。2024/4/1221數(shù)據(jù)庫原理(User-definedIntegrity)用戶定義的完整性用戶自定義完整性是針對某一具體數(shù)據(jù)的約束條件,反映某一具體應(yīng)用所涉及的數(shù)據(jù)必須滿足的語義要求,由應(yīng)用環(huán)境決定。例:屬性的取值范圍;屬性的非空限制2024/4/1222數(shù)據(jù)庫原理關(guān)系數(shù)據(jù)庫語言關(guān)系代數(shù)具有關(guān)系代數(shù)和關(guān)系演算雙重特點(diǎn)關(guān)系演算域演算關(guān)系數(shù)據(jù)庫標(biāo)準(zhǔn)語言SQL用關(guān)系運(yùn)算來表達(dá)查詢,以ISBL為代表用謂詞公式來表達(dá)查詢元組演算(以行為變量),以ALPHA為代表域演算(以列為變量),以QBE為代表元組演算元組演算、域演算2024/4/1223數(shù)據(jù)庫原理2.4關(guān)系代數(shù)一種抽象的查詢語言,用對關(guān)系的運(yùn)算來表達(dá)查詢。運(yùn)算的三大要素:運(yùn)算對象——關(guān)系運(yùn)算符運(yùn)算結(jié)果——關(guān)系集合運(yùn)算符(并、差、交)專門的關(guān)系運(yùn)算符(廣義笛卡爾積、選擇、投影、連接、除)算術(shù)比較符(大/小于、大/小于等于、等于、不等于)邏輯運(yùn)算符(非、與、或)2024/4/1224數(shù)據(jù)庫原理2.4.1傳統(tǒng)的集合運(yùn)算并(Union)運(yùn)算c1b1a1c1b2a2c2b3a1c2b2a1CBAR1∪R2設(shè)關(guān)系R和關(guān)系S具有相同的目n(即兩個(gè)關(guān)系都有n個(gè)屬性),且相應(yīng)的屬性取自同一個(gè)域,則關(guān)系R與關(guān)系S的并由屬于R或?qū)儆赟的元組組成。其結(jié)果關(guān)系仍為n目關(guān)系。記作:R∪S={t|t∈R∨t∈S}
c1b2a2c2b2a1c1b1a1CBAR1c1b2a2c2b3a1c2b2a1CBAR22024/4/1225數(shù)據(jù)庫原理c1b1a1CBAR1-R2設(shè)關(guān)系R和關(guān)系S具有相同的目n,且相應(yīng)的屬性取自同一個(gè)域,則關(guān)系R與關(guān)系S的差由屬于R而不屬于S的所有元組組成,其結(jié)果仍為n目關(guān)系。記作:R-S={t|t∈R∧tS}∈差(Difference)運(yùn)算c1b2a2c2b2a1c1b1a1CBAR1c1b2a2c2b3a1c2b2a1CBAR22024/4/1226數(shù)據(jù)庫原理ABCa1b2c2a2b2c1R1∩R2c1b2a2c2b2a1c1b1a1CBAc1b2a2c2b3a1c2b2a1CBAR1R2設(shè)關(guān)系R和關(guān)系S具有相同的目n,且相應(yīng)的屬性取自同一個(gè)域,則關(guān)系R與關(guān)系S的交由既屬于R又屬于S的元組組成,其結(jié)果仍為n目關(guān)系。記作:R∩S={t|t∈R∧t∈S}交(Intersection)運(yùn)算2024/4/1227數(shù)據(jù)庫原理廣義笛卡爾積(ExtendedCartesianProduct)運(yùn)算R1×R2c1b1a1c1b1a1c1b1a1CBAc1b2a2c2b3a1c2b2a1CBA......c2b3a1c2b2a1......c2b2a1c2b2a1兩個(gè)分別為n目和m目的關(guān)系R和S的廣義笛卡爾積是一個(gè)(n+m)列的元組的集合。元組的前n列是關(guān)系R的一個(gè)元組,后m列是關(guān)系S的一個(gè)元組。若R有k1個(gè)元組,S有k2個(gè)元組,則關(guān)系R和關(guān)系S的廣義笛卡爾積有k1×k2個(gè)元組。記作:c1b2a2c2b2a1c1b1a1CBAc1b2a2c2b3a1c2b2a1CBAR1R22024/4/1228數(shù)據(jù)庫原理2.4.2專門的關(guān)系運(yùn)算學(xué)號學(xué)生姓名所屬系名學(xué)生年齡
S#SNSDSAS1ACS20S2BCS21S3CMA19S4DCI19S5EMA20S6FCS22S2024/4/1229數(shù)據(jù)庫原理選擇運(yùn)算是從關(guān)系中選取使公式為真的元組。這是從行的角度進(jìn)行的運(yùn)算。在關(guān)系R中選擇滿足給定條件的元組,記作:
σF
(R)={t|t∈RΛF(t)=‘真’}F是一個(gè)公式,表示形式為由邏輯運(yùn)算符(∧,∨,?)連接各算術(shù)表達(dá)式組成。算術(shù)表達(dá)式的基本形式為:XθY。θ={>,≥,<,≤,=,≠}
。選擇(Selection)運(yùn)算(b)2024/4/1230數(shù)據(jù)庫原理例1求計(jì)算機(jī)科學(xué)系CS的學(xué)生學(xué)號學(xué)生姓名所屬系名學(xué)生年齡
S#SNSDSAS1ACS20S2BCS21S3CMA19S4DCI19S5EMA20S6FCS22(a)SS’
S#SNSDSAS1ACS20S2BCS21S6FCS22σSD=‘CS’(S)2024/4/1231數(shù)據(jù)庫原理例2求計(jì)算機(jī)科學(xué)系CS,年齡不超過21歲的學(xué)生。σ
SD=‘CS’∧SA≤21(S)S’
S#SNSDSAS1ACS20S2BCS21S’
S#SNSDSAS1ACS20S2BCS21S6FCS22學(xué)號學(xué)生姓名所屬系名學(xué)生年齡
S#SNSDSAS1ACS20S2BCS21S3CMA19S4DCI19S5EMA20S6FCS22SσSD=‘CS’(S)2024/4/1232數(shù)據(jù)庫原理這是從列的角度進(jìn)行的運(yùn)算。
關(guān)系R上的投影是從R中選擇若干屬性列組成新的關(guān)系。記做:
πA(R)={t[A]|t∈R}投影之后不僅取消了某些列,還可能取消某些元組。投影(Projection)運(yùn)算2024/4/1233數(shù)據(jù)庫原理例3
πSN,SD(S)
即求得學(xué)生關(guān)系S在學(xué)生姓名和所在系這兩個(gè)屬性上的投影結(jié)果。πSN,SD(S)學(xué)號
學(xué)生姓名所屬系名學(xué)生年齡
S#
SNSDSAS1
ACS20
S2BCS21S3CMA19S4DCI19S5
EMA20S6
FCS22(a)(S)πSA(S)SA20211922SNSDACSBCSCMADCIEMAFCSπSA(S)
即求得學(xué)生關(guān)系S在年齡屬性上的投影結(jié)果。2024/4/1234數(shù)據(jù)庫原理
連接運(yùn)算是從兩個(gè)關(guān)系的笛卡爾積中選取屬性間滿足一定條件的元組。記做:2b52b310b37b23b1EBS12b4a28b3a26b2a15b1a1CBARRS
∞
C<E10b38b3a210b36b2a17b26b2a110b35b1a17b25b1a1ES.BCR.BA連接(Join)運(yùn)算其中,F(xiàn)是條件表達(dá)式,它涉及到對兩個(gè)關(guān)系中的屬性的比較。例4設(shè)關(guān)系R、S如下圖:2024/4/1235數(shù)據(jù)庫原理例5設(shè)關(guān)系R、S如下圖:AR.BCS.BEa1b15b13a1b26b27a2b38b310a2b38b32RS∞
R.B=S.Bθ為“=”的連接運(yùn)算稱為等值連接:
等值連接2b52b310b37b23b1EBS12b4a28b3a26b2a15b1a1CBAR2024/4/1236數(shù)據(jù)庫原理自然連接是一種特殊的等值連接,它要求兩個(gè)關(guān)系中進(jìn)行比較的分量必須是相同的屬性組,并且要在結(jié)果中把重復(fù)的屬性去掉。
例6關(guān)系R、S的自然連結(jié):自然連接ABCEa1b153a1b267a2b3810a2b382RS∞
AR.BCS.BEa1b15b13a1b26b27a2b38b310a2b38b32RS∞
R.B=S.B2b52b310b37b23b1EBS12b4a28b3a26b2a15b1a1CBAR2024/4/1237數(shù)據(jù)庫原理
給定關(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中滿足下列條件的元組在X屬性列上的投影:元組在X上分量值x的象集Yx包含S在Y上投影的集合。記作:
R÷S={tr[X]|tr∈R∧Yx
ΠY(S)}
其中Yx為x在R中的象集,x=tr[X]。除(Division)運(yùn)算2024/4/1238數(shù)據(jù)庫原理例7c1b2a1c3b2a2c6b6a4c3b2a1c6b4a3c7b3a2c2b1a1CBARZXYc3c1c2Cd2d1d1Db2b2b1BS2024/4/1239數(shù)據(jù)庫原理a1的象集為:a2的象集為:a3的象集為:a4的象集為:{(b1,c2),(b2,c3),(b2,c1)}{(b3,c7),(b2,c3)}{(b4,c6)}{(b6,c6)}S在B、C上的投影{(b1,c2),(b2,c3),(b2,c1)}
R÷S={tr[X]|tr∈R∧Yx
ΠY(S)}
R÷S={a1}除(Division)運(yùn)算c1b2a1c3b2a2c6b6a4c3b2a1c6b4a3c7b3a2c2b1a1CBARc3c1c2Cd2d1d1Db2b2b1BS2024/4/1240數(shù)據(jù)庫原理并、差、笛卡兒積、選擇、投影RS=R-(R-S)
或RS=S-(S-R)R∩S={t|t∈R∧t∈S}123σAθB
(R×S)R÷S={tr[X]|tr∈R∧Yx
ΠY(S)}
關(guān)系代數(shù)五種基本運(yùn)算交、連接和除可以用上述5種基本運(yùn)算表示2024/4/1241數(shù)據(jù)庫原理3除運(yùn)算
給定關(guān)系R(X,Y)和S(Y,Z),其中X,Y,Z為屬性組。
R÷S={tr[X]|tr∈R∧Yx
ΠY(S)}其中Yx為x在R中的象集,x=tr[X]①T=π
x(R)②P=πy
(S)③Q=(T×P)-R④W=π
x(Q)⑤R÷S=T-WR÷S=π
x(R)-π
x((T×πy
(S))-R)Sc1b2a1c3b2a2c6b6a4c3b2a1c6b4a3c7b3a2c2b1a1CBAd2c3b2d1c1b2d1c2b1DCBR2024/4/1242數(shù)據(jù)庫原理①T=π
x(R)②P=πy
(S)③Q=(T×P)-R④W=π
x(Q)⑤R÷S=T-WABCa1b1c2a2b3c7a3b4c6a1b2c3a4b6c6a2b2c3a1b2c1BCDb1c2d1b2c1d1b2c3d2RSABCa1b1c2a1b2c1a1b2c3a2b1c2a2b2c1a2b2c3a3b1c2a3b2c1a3b2c3a4b1c2a4b2c1a4b2c3Aa1a4a3a2a1ATa4a3a2AWPc3c1c2Cb2b2b1B3除運(yùn)算2024/4/1243數(shù)據(jù)庫原理
設(shè)教學(xué)數(shù)據(jù)庫中有三個(gè)關(guān)系:學(xué)生關(guān)系S(S#,SNAME,SD,AGE)課程關(guān)系C(C#,CN,CP#)學(xué)習(xí)關(guān)系SC(S#,C#,GRADE)例1檢索學(xué)習(xí)課程號為C2的學(xué)生學(xué)號與成績學(xué)號課程號學(xué)習(xí)成績
S#C#GRADES1C1AS1C2AS1C3AS1C5BS2C1BS2C2CS2C4CS3C2B......SCπS#,GRADE(σC#=‘C2’
(SC))σC#=‘C2’(SC)關(guān)系代數(shù)表達(dá)式學(xué)號
課程號
學(xué)習(xí)成績
S#
C#
GRADES1
C2
AS2
C2
CS3
C2
B..
....2024/4/1244數(shù)據(jù)庫原理學(xué)號課程號學(xué)習(xí)成績
S#C#GRADES1C1AS1C2AS1C3AS1C5BS2C1BS2C2C......SC學(xué)號學(xué)生姓名所屬系名學(xué)生年齡
S#SNAMESDSAS1李勇CS20S2劉晨CS21S3王敏MA19S4張力CI19S5田芳MA20........
S例2檢索學(xué)習(xí)課程號為C2的學(xué)生學(xué)號和姓名SSC∞
學(xué)號學(xué)生姓名所屬系名學(xué)生年齡課程號學(xué)習(xí)成績
S#SNAMESDSAC#GRADES1李勇CS20C1AS1李勇CS20C2AS1李勇CS20C3AS1李勇CS20C5AS2劉晨CS21C1BS2劉晨CS21C2C............σC#=‘C2’()SSC∞
S#SNAMES1李勇S2劉晨=πS#,SNAME(s
σC#=‘C2’
(sc))SSCπS#,SNAME(σ
C#=‘C2’
())2024/4/1245數(shù)據(jù)庫原理例3求選修《數(shù)據(jù)庫原理》這門課程的學(xué)生名和所在系。πSN,SD(
(σCN=‘?dāng)?shù)據(jù)庫原理’(C))
)
SSC
設(shè)教學(xué)數(shù)據(jù)庫中有三個(gè)關(guān)系:學(xué)生關(guān)系S(S#,SNAME,SD,AGE)課程關(guān)系C(C#,CN,CP#)學(xué)習(xí)關(guān)系SC(S#,C#,GRADE)2024/4/1246數(shù)據(jù)庫原理學(xué)號課程號學(xué)習(xí)成績
S#C#GRADES1C1AS1C2AS1C3AS1C5BS2C1BS2C2C......SC學(xué)號學(xué)生姓名所屬系名學(xué)生年齡
S#SNAMESDSAS1ACS20S2BCS21S3CMA19S4DCI19S5EMA20........
S例4檢索學(xué)習(xí)課程號為C2或C3的學(xué)生學(xué)號和所在系πS#,SD(
πS#
(σC#=‘C2’∨C#=‘C3’(SC))
)
S2024/4/1247數(shù)據(jù)庫原理例5求至少選修C2和C3這兩門課程的學(xué)生名。C#C2C3KπSN((πS#,C#
(SC)÷K))
SπSN(
(πS#,C#
(SC)÷πC#
(σC#=‘C2’∨C#=‘C3’(C)))
S解法22024/4/1248數(shù)據(jù)庫原理例7求選修全部課程的學(xué)生名。例8求至少選修了劉晨所選課程的學(xué)生名。πS#(SC)-πS#
(σC#=‘C2’(SC))例6求不學(xué)C2這門課程的學(xué)生名。πS#(S)-πS#
(σC#=‘C2’(SC))×√
πSN((πC#,S#
(SC)÷C)
)
S
πSN((πC#,S#
(SC)÷K))
S不是所有的學(xué)生都選修了課程K=πC#
(σSNAME=‘劉晨’(S)SC)2024/4/1249數(shù)據(jù)庫原理2.5關(guān)系演算關(guān)系演算是以數(shù)理邏輯中的謂詞演算為基礎(chǔ)的。按謂詞變元的不同,關(guān)系演算可分為元組關(guān)系演算和域關(guān)系演算。元組關(guān)系演算以元組變量作為謂詞變元的基本對象。
ALPHA語言主要有:GET、PUT、HOLD、UPDATE、DELETE、DROP六條語句域關(guān)系演算以元組變量的分量作為謂詞變元的基本對象。
QBE是QueryByExample(即通過例子進(jìn)行查詢)2024/4/1250數(shù)據(jù)庫原理2.5.1元組關(guān)系演算語言ALPHA元組關(guān)系演算語言ALPHA
ALPHA語言是元組關(guān)系演算語言,謂詞變元是元組變量。元組變量的二個(gè)用途是:
(1)簡化關(guān)系名;
(2)操作條件中使用量詞時(shí)必須用元組變量。
例查詢計(jì)算機(jī)系學(xué)生的姓名元組變量X用來簡化關(guān)系名Student
RANGEStudentXGETW(X.Sname):
X.Deptno=‘CS’
操作語句工作空間名表達(dá)式操作條件(tuplerelationalcalculus)2024/4/1251數(shù)據(jù)庫原理檢索操作更新操作
(1)簡單檢索(即不帶條件的檢索)
(2)限定的檢索(即帶條件的檢索)
(3)帶排序的檢索
(4)帶定額的檢索
(5)用元組變量的檢索
(6)用存在量詞的檢索
(7)帶有多個(gè)關(guān)系的表達(dá)式的檢索
(8)用全稱量詞的檢索
(9)用兩種量詞的檢索
(10)用蘊(yùn)函(Implication)的檢索
(11)集函數(shù)
(1)修改操作
(2)插入操作
(3)刪除元組關(guān)系演算2024/4/1252數(shù)據(jù)庫原理檢索操作(1)簡單檢索(即不帶條件的檢索)
例1查詢所有被選修課程的課程號碼例2查詢所有學(xué)生的數(shù)據(jù)書59頁的數(shù)據(jù)庫GETW(SC.Cno)這里條件為空,表示沒有限定條件。W為工作空間名。GETW(Student)2024/4/1253數(shù)據(jù)庫原理(2)限定的檢索(即帶條件的檢索)例3查詢信息系(IS)中年齡小于20歲的學(xué)生的學(xué)號和年齡
例4查詢計(jì)算機(jī)科學(xué)系(CS)學(xué)生的學(xué)號、年齡,并按年齡降序排序(3)帶排序的檢索檢索操作GETW(Student.Sno,Student.Sage):Student.Sdept='IS'∧Student.Sage<20GETW(Student.Sno,Student.Sage):Student.Sdept='CS'DOWNStudent.Sage2024/4/1254數(shù)據(jù)庫原理(4)帶定額的檢索
例5取出一個(gè)信息系學(xué)生的學(xué)號
檢索操作規(guī)定了檢索出元組的個(gè)數(shù),方法是在W后括號中加上定額數(shù)量。
例6查詢信息系年齡最大的三個(gè)學(xué)生的學(xué)號及其年齡,結(jié)果按年齡降序排序。排序和定額可以一起使用GETW(1)(Student.Sno):Student.Sdept='IS'GETW(3)
(Student.Sno,Student.Sage):Student.Sdept='IS'DOWNStudent.Sage2024/4/1255數(shù)據(jù)庫原理
例7查詢信息系學(xué)生的名字(5)用元組變量的檢索檢索操作元組變量是在某一關(guān)系范圍內(nèi)變化(也稱為范圍變量RangeVariable),一個(gè)關(guān)系可以設(shè)多個(gè)元組變量。其用途有:簡化關(guān)系名;操作條件中使用量詞時(shí)必須用元組變量。RANGEStudentXGETW(X.Sname):X.Sdept='IS'2024/4/1256數(shù)據(jù)庫原理檢索操作(6)用存在量詞的檢索
例8查詢選修2號課程的學(xué)生名字例9查詢選修了其直接先行課是6號課程的課程的學(xué)生學(xué)號RANGESCXGETW(Student.Sname):?X(X.Sno=Student.Sno∧X.Cno='2')
RANGECourseCXGETW(SC.Sno):?CX(CX.Cno=SC.Cno∧CX.Pcno='6')2024/4/1257數(shù)據(jù)庫原理例10查詢至少選修一門其先行課為6號課程的學(xué)生名字前束范式(Prenexnormalform)的形式:RANGECourseCXSCSCXGETW(Student.Sname):?SCX(SCX.Sno=Student.Sno∧ ?CX(CX.Cno=SCX.Cno∧CX.Pcno='6'))GETW(Student.Sname):?SCX?CX(SCX.Sno=Student.Sno∧CX.Cno=SCX.Cno∧CX.Pcno='6')2024/4/1258數(shù)據(jù)庫原理(7)帶有多個(gè)關(guān)系的表達(dá)式的檢索例11查詢成績?yōu)?0分以上的學(xué)生名字與課程名字RANGESCSCXGETW(Student.Sname,Course.Cname):?SCX
(SCX.Grade≥90∧SCX.Sno=Student.Sno∧Course.Cno=SCX.Cno)檢索操作查詢結(jié)果表達(dá)式中可以有多個(gè)關(guān)系(本查詢所要求的結(jié)果學(xué)生名字和課程名字分別在Student和Course兩個(gè)關(guān)系中。)2024/4/1259數(shù)據(jù)庫原理檢索操作
(8)用全稱量詞的檢索
例12查詢不選1號課程的學(xué)生名字
存在量詞來表示:RANGESCSCXGETW(Student.Sname):?SCX(SCX.Sno≠Student.Sno∨SCX.Cno≠'1')RANGESCSCXGETW(Student.Sname):??SCX(SCX.Sno=Student.Sno∧SCX.Cno='1')2024/4/1260數(shù)據(jù)庫原理(9)用兩種量詞的檢索
例13查詢選修了全部課程的學(xué)生姓名檢索操作RANGECourseCXSCSCXGETW(Student.Sname):?CX?SCX
(SCX.Sno=Student.Sno∧SCX.Cno=CX.Cno)2024/4/1261數(shù)據(jù)庫原理檢索操作(10)用蘊(yùn)函(Implication)的檢索例14查詢最少選修了95002學(xué)生所選課程的學(xué)生學(xué)號RANGECouseCXSCSCXSCSCYGETW(Student.Sno):?CX(?SCX(SCX.Sno='95002'∧SCX.Cno=CX.Cno)=>?SCY(SCY.Sno=Student.Sno∧SCY.Cno=CX.Cno))2024/4/1262數(shù)據(jù)庫原理檢索操作(11)集函數(shù)(Aggregationfunction)函數(shù)名功能COUNT對元組計(jì)數(shù)TOTAL求總和MAX求最大值MIN求最小值A(chǔ)VG求平均值例15查詢學(xué)生所在系的數(shù)目例16查詢信息系學(xué)生的平均年齡GETW(COUNT(Student.Sdept))
GETW(AVG(Student.Sage)):Student.Sdept='IS'2024/4/1263數(shù)據(jù)庫原理更新操作(1)修改操作首先用HOLD語句將要修改的元組從數(shù)據(jù)庫中讀到工作空間中然后用宿主語言修改工作空間中元組的屬性
最后用UPDATE語句將修改后的元組送回?cái)?shù)據(jù)庫中UPDATE語句實(shí)現(xiàn)步驟是:例1795007學(xué)生從計(jì)算機(jī)科學(xué)系轉(zhuǎn)到信息系A(chǔ)LPHA語言中,不允許修改主碼值;只能先刪除該元組,再插入具有新主碼值的元組。HOLDW(Student.Sno,Student.Sdetp):Student.Sno='95007'
(從Student關(guān)系中讀出95007學(xué)生的數(shù)據(jù))MOVE'IS'
TOW.Sdept(用宿主語言進(jìn)行修改)UPDATEW(Student)
(把修改后的元組送回Student關(guān)系)2024/4/1264數(shù)據(jù)庫原理更新操作(2)插入操作首先用宿主語言在工作空間中建立新元組
然后用PUT語句把該元組存入指定的關(guān)系中PUT語句實(shí)現(xiàn)步驟:例18學(xué)校新開設(shè)了一門2學(xué)分的課程“計(jì)算機(jī)組織與結(jié)構(gòu)”,其課程號為8,直接先行課為6號課程。插入該課程元組。PUT語言只對一個(gè)關(guān)系操作,即表達(dá)式必須為單個(gè)關(guān)系名。MOVE'8'TOW.CnoMOVE'
計(jì)算機(jī)組織與結(jié)構(gòu)'
TOW.CnameMOVE'6'TOW.CpnoMOVE'2'TOW.CcreditPUTW(Course)2024/4/1265數(shù)據(jù)庫原理更新操作(3)刪除用HOLD語句把要?jiǎng)h除的元組從數(shù)據(jù)庫中讀到工作空間中用DELETE語句刪除該元組DELETE語句實(shí)現(xiàn)步驟:例1995110學(xué)生因故退學(xué),刪除該學(xué)生元組HOLDW(Student):Student.Sno='95110' DELETEW2024/4/1266數(shù)據(jù)庫原理例20將學(xué)號95001改為95102
HOLDW(Student):Student.Sno='95001'DELETEW(Student)MOVE'95102'TOW.SnoMOVE‘李勇'
TOW.SnameMOVE‘男'
TOW.SsexMOVE'20'TOW.SageMOVE'CS'TOW.SdeptPUTW(Student)2024/4/1267數(shù)據(jù)庫原理例21刪除全部學(xué)生HOLDW(SC)DELETEW+HOLDW(Student)DELETEWSC與Student之間具有參照關(guān)系,為保證參照完整性,刪除Student中元組時(shí)相應(yīng)的要?jiǎng)h除SC中的元組。2024/4/1268數(shù)據(jù)庫原理2.5.3域關(guān)系演算語言QBE域關(guān)系演算用域變量代替元組變量的每一個(gè)分量,域變量的變化范圍是某個(gè)值域而不是一個(gè)關(guān)系。QBE為基于屏幕表格的查詢語言,用戶通過終端屏幕編輯程序以填寫表格的方式構(gòu)造查詢要求,而查詢結(jié)果也是以表格形式顯示。QBE是QueryByExample(即通過例子進(jìn)行查詢)2024/4/1269數(shù)據(jù)庫原理檢索操作更新操作
(1)簡單查詢
(2)條件查詢
(3)集函數(shù)
(4)對查詢結(jié)果排序
(1)修改操作
(2)插入操作
(3)刪除操作域關(guān)系演算2024/4/1270數(shù)據(jù)庫原理檢索操作(1)簡單查詢例1求信息系全體學(xué)生的姓名1)用戶提出要求2)屏幕顯示空白表格3)用戶在最左邊一欄輸入關(guān)系名4)屏幕顯示該關(guān)系的欄名,即Student關(guān)系的各個(gè)屬性名5)用戶在上面構(gòu)造查詢要求6)屏幕顯示查詢結(jié)果Student
SnoSnameSsexSageSdept
P.T
IS
P.李勇
IS
IS劉晨張立StudentSnoSnameSsexSageSdept操作步驟:2024/4/1271數(shù)據(jù)庫原理例2查詢?nèi)w學(xué)生的全部數(shù)據(jù)Student
SnoSnameSsexSageSdeptP.95001P.李勇
P.男
P.20P.CS
Student
SnoSnameSsexSageSdeptP.示例元素下面要加下劃線,P.是表示打印的操作符。示例元素是這個(gè)域中可能的一個(gè)值,不必是查詢結(jié)果中的元素。2024/4/1272數(shù)據(jù)庫原理(2)條件查詢例3求年齡大于19歲的學(xué)生的學(xué)號Student
SnoSnameSsexSageSdeptP.95001
>19
檢索操作2024/4/1273數(shù)據(jù)庫原理例4求計(jì)算機(jī)科學(xué)系年齡大于19歲的學(xué)生的學(xué)號Student
SnoSnameSsexSageSdeptP.95001
>19CS
Student
SnoSnameSsexSageSdeptP.95001 CS
P.95001
>192024/4/1274數(shù)據(jù)庫原理例5查詢計(jì)算機(jī)科學(xué)系或者年齡大于19歲的學(xué)生的學(xué)號Student
SnoSnameSsexSageSdeptP.95001 CS
P.95002
>19例6查既選修了1號課程又選修了2號課程的學(xué)生的學(xué)號SC
SnoCnoGradeP.950011P.950012 2024/4/1275數(shù)據(jù)庫原理“與”:(1)條件寫在同一行上;
(2)把兩個(gè)條件寫在不同行上,但使用
相同的示例元素?!盎颉保簝蓚€(gè)條件寫在不同行上,且使用不同的示例元素。2024/4/1276數(shù)據(jù)庫原理例7查詢選修1號課程的學(xué)生姓名Student
SnoSnameSsexSageSdept
95001
P.李勇
SC
SnoCnoGrade
950011Sno為連接屬性,其值在兩個(gè)表中要相同。2024/4/1277數(shù)據(jù)庫原理例8查詢未選修1號課程的學(xué)生姓名Student
SnoSname
溫馨提示
- 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025版高效能工廠物業(yè)管理與能源管理合同2篇
- 2024消防中控室值班員績效考核合同
- 二零二五年度反擔(dān)保抵押教育機(jī)構(gòu)合作合同范本3篇
- 2025年度建筑行業(yè)施工人員意外傷害及醫(yī)療保險(xiǎn)合同3篇
- 二零二五年度地下空間監(jiān)理合同匯編3篇
- 保姆崗位職責(zé)
- 2024年設(shè)備銷售及安裝合同
- 二零二五年布草洗滌環(huán)保技術(shù)創(chuàng)新合同模板2篇
- 2024年能源建設(shè)企業(yè)職工聘用合同范本3篇
- 二零二五年度婚前協(xié)議書(美容整形費(fèi)用承擔(dān))3篇
- 高考語用必考點(diǎn)-理解詞語的含義+課件
- 審計(jì)系統(tǒng)使用管理制度
- 國家開放大學(xué)電大《政治學(xué)原理》考試題答案
- 網(wǎng)絡(luò)切片技術(shù)-第1篇概述
- 混凝土采購組織供應(yīng)、運(yùn)輸、售后服務(wù)方案
- 立法學(xué) 第五版 課件 第1-8章 緒論-立法準(zhǔn)備
- (完整版)200210號文-工程勘察設(shè)計(jì)收費(fèi)標(biāo)準(zhǔn)(2002年修訂本)本月修正2023簡版
- 住宅小區(qū)綠化管理規(guī)定
- 撤銷銀行結(jié)算賬戶申請書
- 魏永征《新聞傳播法教程》(第7版)配套題庫(含考研真題)
- 文化館等級必備條件和評估標(biāo)準(zhǔn)
評論
0/150
提交評論