版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第二章關(guān)系模型2.1關(guān)系模型概述2.2關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義2.3關(guān)系的完整性2.4關(guān)系代數(shù)2.5關(guān)系演算2.6小結(jié)2.1關(guān)系模型概述2.1概述E.F.Codd于70年代初提出關(guān)系數(shù)據(jù)理論,他因此獲得1981年的ACM圖靈獎(jiǎng)關(guān)系理論是建立在集合代數(shù)理論基礎(chǔ)上的,有著堅(jiān)實(shí)的數(shù)學(xué)基礎(chǔ)早期代表系統(tǒng)SystemR:由IBM研制INGRES:由加州Berkeley分校研制目前主流的商業(yè)數(shù)據(jù)庫(kù)系統(tǒng)Oracle,Informix,Sybase,SQLServer,DB2Access,F(xiàn)oxpro,F(xiàn)oxbase2.1概述數(shù)據(jù)結(jié)構(gòu):二維表關(guān)系操作:查詢(Query):選擇(select)、投影(project)、連接(join)除(divide)、并(union)、交(intersection)差(difference)增加(insert)、刪除(delete)、修改(updated)關(guān)系代數(shù),關(guān)系演算,SQL關(guān)系的三類完整性約束實(shí)體完整性、參照完整性、用戶自定義的完整性2.1概述關(guān)系代數(shù)是用對(duì)關(guān)系的運(yùn)算來表達(dá)查詢要求的方式。
關(guān)系演算是用謂詞表達(dá)查詢要求的方式。按謂詞變?cè)幕緦?duì)象是元組變量還是域變量分為元組關(guān)系演算和域關(guān)系演算
2.1概述具體系統(tǒng)中的實(shí)際語(yǔ)言SQL介于關(guān)系代數(shù)和關(guān)系演算之間,由IBM公司研制systemR時(shí)提出QUEL
基于Codd提出的元組關(guān)系演算語(yǔ)言ALPHA,在INGRES上實(shí)現(xiàn)QBE
基于域關(guān)系演算,由IBM公司研制2.2關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義域(Domain)一組值的集合,這組值具有相同的數(shù)據(jù)類型如:整數(shù)的集合、字符串的集合、全體學(xué)生的集合笛卡爾積(Car’tesianProduct)一組域D1,D2,…,Dn的笛卡爾積為:D1×D2×…×Dn
={(d1,d2,…,dn)|di∈Di
,i=1,…,n}笛卡爾積的每個(gè)元素(d1,d2,…,dn)稱作一個(gè)n-元組(n-tuple)元組的每一個(gè)值di叫做一個(gè)分量(component)若Di的基數(shù)為mi,則笛卡爾積的基數(shù)為2.2關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義(續(xù))例:設(shè)
D1為學(xué)生集合(T)={張群,徐晶,王剛}(cāng)
D2為性別集合(S)={男,女
} 則D1×D2是個(gè)二元組集合,元組個(gè)數(shù)為3×2,是所有可能的(學(xué)生,性別)元組集合TS張群男張群女徐晶男徐晶女王剛男王剛女D1×D2=2.2關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義(續(xù))例:設(shè)
D1為教師集合(T)={t1,t2} D2為學(xué)生集合(S)={s1,s2,s3} D3為課程集合(C)={c1,c2}
則D1×D2×D3是個(gè)三元組集合,元組個(gè)數(shù)為2×3×2,是所有可能的(教師,學(xué)生,課程)元組集合笛卡爾積可表為二維表的形式TSCt1s1c1t1s1c2t1s2c1………t2s3c2域(課程集合)元組2.2關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義(續(xù))關(guān)系笛卡爾積D1×D2×…×Dn的子集叫做在域D1,D2,…,Dn上的關(guān)系,用R(D1,D2,…,Dn)表示R是關(guān)系的名字,n是關(guān)系的度或目關(guān)系是笛卡爾積中有意義的子集關(guān)系也可以表示為二維表關(guān)系TEACH(T,S,C)TSCt1s1c1t1s1c2t1s2c1t2s3c2元組屬性2.2關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義(續(xù))關(guān)系的性質(zhì)列是同質(zhì)的行列的順序無(wú)關(guān)緊要任意兩個(gè)元組不能完全相同每一分量必須是不可再分的數(shù)據(jù)。不同的屬性,屬性名不能相同學(xué)生姓名學(xué)號(hào)年月出生日期日2.2關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義(續(xù))數(shù)據(jù)結(jié)構(gòu)單一的數(shù)據(jù)結(jié)構(gòu)——關(guān)系實(shí)體集、聯(lián)系都表示成關(guān)系DEPT(D#,DN,DEAN)S(S#,SN,SEX,AGE,D#)C(C#,CN,PC#,CREDIT)TEACH(P#,C#)SC(S#,C#,SCORE)PROF(P#,PN,D#,SAL)學(xué)生課程選修屬于系教師教授工作2.2關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義(續(xù))候選碼(CandidateKey)關(guān)系中的一個(gè)屬性組,其值能唯一標(biāo)識(shí)一個(gè)元組。若從屬性組中去掉任何一個(gè)屬性,它就不具有這一性質(zhì)了,這樣的屬性組稱作候選碼如DEPT中的D#,DN都可作為候選碼任何一個(gè)候選碼中的屬性稱作主屬性如SC中的S#,C#主碼(PrimaryKey)進(jìn)行數(shù)據(jù)庫(kù)設(shè)計(jì)時(shí),從一個(gè)關(guān)系的多個(gè)候選碼中選定一個(gè)作為主碼如可選定D#作為DEPT的主碼外部碼(ForeignKey)關(guān)系R中的一個(gè)屬性組,它不是R的碼,但它與另一個(gè)關(guān)系S的碼相對(duì)應(yīng),則稱這個(gè)屬性組為R的外部碼如S關(guān)系中的D#屬性2.2關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義(續(xù))關(guān)系模式關(guān)系的描述稱作關(guān)系模式,包括關(guān)系名、關(guān)系中的屬性名、屬性向域的映象、屬性間的數(shù)據(jù)依賴關(guān)系等,記作R(A1,A2,…,An)屬性向域的映象一般直接說明為屬性的類型、長(zhǎng)度等某一時(shí)刻對(duì)應(yīng)某個(gè)關(guān)系模式的內(nèi)容(元組的集合)稱作關(guān)系關(guān)系模式是型,是穩(wěn)定的關(guān)系是某一時(shí)刻的值,是隨時(shí)間不斷變化的2.2關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義(續(xù))關(guān)系數(shù)據(jù)庫(kù)其型是關(guān)系模式的集合,即數(shù)據(jù)庫(kù)描述,稱作數(shù)據(jù)庫(kù)的內(nèi)涵(Intension)其值是某一時(shí)刻關(guān)系的集合,稱作數(shù)據(jù)庫(kù)的外延(Extension)2.3關(guān)系的完整性關(guān)系模式的完整性實(shí)體完整性關(guān)系的主碼中的屬性值不能為空值空值:不知道或無(wú)意義意義:關(guān)系對(duì)應(yīng)到現(xiàn)實(shí)世界中的實(shí)體集,元組對(duì)應(yīng)到實(shí)體,實(shí)體是相互可區(qū)分的,通過主碼來唯一標(biāo)識(shí),若主碼為空,則出現(xiàn)不可標(biāo)識(shí)的實(shí)體,這是不容許的學(xué)號(hào)姓名性別系名0101張男CS0102李女CS0203趙男MA2.3關(guān)系的完整性(續(xù))參照完整性如果關(guān)系R2的外部碼Fk與關(guān)系R1的主碼Pk相對(duì)應(yīng),則R2中的每一個(gè)元組的Fk值或者等于R1中某個(gè)元組的Pk值,或者為空值意義:如果關(guān)系R2的某個(gè)元組t2參照了關(guān)系R1的某個(gè)元組t1,則t1必須存在例如關(guān)系S在D#上的取值有兩種可能空值,表示該學(xué)生尚未分到任何系中若非空值,則必須是DEPT關(guān)系中某個(gè)元組的D#值,表示該學(xué)生不可能分到一個(gè)不存在的系中DEPT(D#,DN,DEAN)S(S#,SN,SEX,AGE,D#)2.3關(guān)系的完整性(續(xù))學(xué)號(hào)姓名性別系名0101張男CS0102李女CS0203趙男MA課號(hào)課名CS145數(shù)據(jù)庫(kù)CS148操作系統(tǒng)CS180數(shù)據(jù)結(jié)構(gòu)學(xué)號(hào)課號(hào)成績(jī)0101CS145880101CS148900102CS180870203CS145782.3關(guān)系的完整性(續(xù))供應(yīng)商號(hào)供應(yīng)商名所在城市B01紅星北京S10宇宙上海T20黎明天津Z01立新重慶零件號(hào)顏色供應(yīng)商號(hào)010紅B01312白S10201藍(lán)T20今要向關(guān)系P中插入新行,新行的值分別列出如下。哪些行能夠插入?A.(‘037’,‘綠’,null)B.(null,‘黃’,‘T20’)C.(‘201’,‘紅’,‘T20’)D.(‘105’,‘藍(lán)’,‘B01’)E.(‘101’,‘黃’,‘T11’)零件關(guān)系P(主碼是“零件號(hào)”,外碼是“供應(yīng)商號(hào)”)供應(yīng)商關(guān)系S(主碼是“供應(yīng)商號(hào)”)2.3關(guān)系的完整性(續(xù))用戶定義的完整性用戶針對(duì)具體的應(yīng)用環(huán)境定義的完整性約束條件如S#要求是8位整數(shù),SEX要求取值為“男”或“女”系統(tǒng)支持實(shí)體完整性和參照完整性由系統(tǒng)自動(dòng)支持系統(tǒng)應(yīng)提供定義和檢驗(yàn)用戶定義的完整性的機(jī)制關(guān)系代數(shù)屬于關(guān)系操作的一種關(guān)系代數(shù)是一種抽象的查詢語(yǔ)言通過對(duì)關(guān)系的運(yùn)算來表達(dá)查詢操作運(yùn)算對(duì)象、結(jié)果均為關(guān)系運(yùn)算符集合運(yùn)算符、專門的關(guān)系運(yùn)算符、比較運(yùn)算符、邏輯運(yùn)算符關(guān)系代數(shù)——運(yùn)算符2.4關(guān)系代數(shù)基本運(yùn)算一元運(yùn)算選擇、投影多元運(yùn)算笛卡兒積、并、集合差其它運(yùn)算集合交、自然連接、除、賦值擴(kuò)展運(yùn)算廣義投影、外連接、聚集修改操作插入、刪除、更新2.4關(guān)系代數(shù)(續(xù))并運(yùn)算定義所有至少出現(xiàn)在兩個(gè)關(guān)系中之一的元組集合RS={r|rRrS}RS兩個(gè)關(guān)系R和S若進(jìn)行并運(yùn)算,則它們必須是相容的:關(guān)系R和S必須是同元的,即它們的屬性數(shù)目必須相同對(duì)i,R的第i個(gè)屬性的域必須和S的第i個(gè)屬性的域相同2.4關(guān)系代數(shù)(續(xù))并運(yùn)算ABC367257723443RABC345723SABC367257723443345R∪S2.4關(guān)系代數(shù)(續(xù))2.4關(guān)系代數(shù)(續(xù))2.4關(guān)系代數(shù)(續(xù))ABCabcbafcbdRSABCbgabafDEFghijklTABCabcbafcbdbgaR∪S2.4關(guān)系代數(shù)(續(xù))差運(yùn)算定義所有出現(xiàn)在一個(gè)關(guān)系而不在另一關(guān)系中的元組集合RS={r|rRrS}R和S必須是相容的RS2.4關(guān)系代數(shù)(續(xù))差運(yùn)算ABC367257723443RABC345723SABC367257443R-SABC345S-R2.4關(guān)系代數(shù)(續(xù))2.4關(guān)系代數(shù)(續(xù))ABCabcbafcbdRSABCbgabafDEFghijklTABCabccbdR-S2.4關(guān)系代數(shù)(續(xù))交運(yùn)算定義所有同時(shí)出現(xiàn)在兩個(gè)關(guān)系中的元組集合RS={r|rRrS}交運(yùn)算可以通過差運(yùn)算來重寫RS=R(RS)RS2.4關(guān)系代數(shù)(續(xù))交運(yùn)算ABC367257723443RABC345723SABC723R∩S2.4關(guān)系代數(shù)(續(xù))2.4關(guān)系代數(shù)(續(xù))ABCabcbafcbdRSABCbgabafDEFghijklTABCbafR∩S2.4關(guān)系代數(shù)(續(xù))廣義笛卡爾積元組的連串(Concatenation)若r=(r1,…
,rn),s=(s1,…,sm),則定義r與s的連串為:定義兩個(gè)關(guān)系R,S,其度分別為n,m,則它們的笛卡爾積是所有這樣的元組集合:元組的前n個(gè)分量是R中的一個(gè)元組,后m個(gè)分量是S中的一個(gè)元組RS的度為R與S的度之和,RS的元組個(gè)數(shù)為R和S的元組個(gè)數(shù)的乘積rs=(r1,…
,rn,s1,…,sm)RS={rs|rRsS}2.4關(guān)系代數(shù)(續(xù))AB12RCD10102010EaabbSAB11112222CD1010201010102010EaabbaabbRx
S2.4關(guān)系代數(shù)(續(xù))ABCabcbafcbdRSABCbgabafDEFghijklTR.AR.BR.CS.AS.BS.CabcbgaabcbafbafbgabafbafcbdbgacbdbafR×S2.4關(guān)系代數(shù)(續(xù))記號(hào)說明給定關(guān)系模式R(A1,A2,…,An),設(shè)R是它的一個(gè)具體的關(guān)系,tR是關(guān)系的一個(gè)元組分量設(shè)tR,則t[Ai]表示元組t中相應(yīng)于屬性Ai的一個(gè)分量屬性列Ai={Ai1,Ai2,…,Aik}{A1,A2,…,An},稱A為屬性列ā表示{A1,A2,…,An}中去掉A后剩余的屬性組t[Ai]=(t[Ai1],t[Ai2],…,t[Aik])象集給定關(guān)系R(X,Z),X和Z為屬性組。當(dāng)t[X]=x時(shí),x在R中的象集(ImagesSet)為:Zx={t[Z]|t∈R,t[X]=x},它表示R中屬性組X上值為x的諸元組在Z上分量的集合。2.4關(guān)系代數(shù)(續(xù))學(xué)號(hào)姓名性別系別0101張男CS0102李女CS0203趙男MA0103吳女CS關(guān)系模式:學(xué)生(學(xué)號(hào),姓名,性別,系別)元組t:(0102,李,女,CS)t[性別]:女屬性組X:{性別,系別}t[性別,系別]:(女,CS)屬性組Z:{學(xué)號(hào),姓名}t[X]=(女,CS)象集Zx
=?CS系全部女生的學(xué)號(hào),姓名XZX=(女,CS),
Zx=?XZ姓名課程張蕊物理王紅數(shù)學(xué)張蕊數(shù)學(xué)x=張蕊Zx課程數(shù)學(xué)物理張蕊同學(xué)所選修的全部課程從R中選出在X上取值為張蕊的元組,去掉X上的分量,只留Z上的分量2.4關(guān)系代數(shù)(續(xù))選擇運(yùn)算基本定義在關(guān)系R中選擇滿足給定條件的元組(從行的角度)F(R)={t|tR,F(t)=‘真’}F是選擇的條件,tR,F(xiàn)(t)要么為真,要么為假F的形式:由邏輯運(yùn)算符連接算術(shù)表達(dá)式而成 邏輯表達(dá)式:,, 算術(shù)表達(dá)式:XY X,Y是屬性名、常量、或簡(jiǎn)單函數(shù) 是比較算符,{,,,,,≠}2.4關(guān)系代數(shù)(續(xù))選擇運(yùn)算2.4關(guān)系代數(shù)(續(xù))ABC367257723443RA<5(R)
ABC367257443A<5C=7(R)
ABC3672572.4關(guān)系代數(shù)(續(xù))SNOSNASEXDEPT0101張男CS0102李女CS0203趙男MA0103吳女CSDept=‘CS’(S)
SSNOSNASEXDEPT0101張男CS0102李女CS0103吳女CS4=‘CS’(S)
2.4關(guān)系代數(shù)(續(xù))示例:用關(guān)系表達(dá)式表達(dá)下列查詢找前頁(yè)關(guān)系S中計(jì)算機(jī)系(代號(hào):‘CS’)全部的男生Dept=‘CS’∧
SEX=‘男’(S)關(guān)系運(yùn)算——選擇(σ)例:σssex=‘男’ANDsdep=‘IS’(Student)
2.4關(guān)系代數(shù)(續(xù))投影定義從關(guān)系R中取若干列組成新的關(guān)系(從列的角度)A(R)={t[A]|tR},AR投影的結(jié)果中要去掉相同的行2.4關(guān)系代數(shù)(續(xù))投影cbcfedcbaCBABCbcef
R
B,C(R)
2,3(R)2.4關(guān)系代數(shù)(續(xù))投影Student(S#,SN,Age)Course(C#,CN)SC(C#,S#,Score)示例給出所有學(xué)生的姓名和年齡SN,AGE(S)找001號(hào)學(xué)生所選修的課程號(hào)C#(S#=001(SC))關(guān)系運(yùn)算——投影(π)例:πssex,sage(student)2.4關(guān)系代數(shù)(續(xù))選擇與投影的區(qū)別選擇:
投影:2.4關(guān)系代數(shù)(續(xù))SNOSNASEXDEPT0101張男CS0102李女CS0203趙男MA0103吳女CS示例列出CS系和MA系學(xué)生學(xué)號(hào)和姓名
方案1:∏SNO(DEPT=‘CS’∨
DEPT=‘MA’(S))
方案2:∏SNO(DEPT=‘CS’(S))∪∏SNO(DEPT=‘MA’(S))S2.4關(guān)系代數(shù)(續(xù))連接定義從兩個(gè)關(guān)系的廣義笛卡兒積中選取給定屬性間滿足一定條件的元組
A,B為R和S上度數(shù)相等且可比的屬性列為算術(shù)比較符,為等號(hào)時(shí)稱為等值連接
RS=R[A]S[B](
R×S)ABABRS={rs|rRsSr[A]S[B]}2.4關(guān)系代數(shù)(續(xù))987654321CBADE3162ABCDE123311236245662
RSB<D
R
S2.4關(guān)系代數(shù)(續(xù))自然連接定義從兩個(gè)關(guān)系的廣義笛卡兒積中選取在相同屬性列B上取值相等的元組,并去掉重復(fù)的行。自然連接與等值連接的不同自然連接中相等的分量必須是相同的屬性組,并且要在結(jié)果中去掉重復(fù)的屬性,而等值連接則不必。當(dāng)R與S無(wú)相同屬性時(shí),RS=R×SRS={rs|rRsSr[B]=S[B]}2.4關(guān)系代數(shù)(續(xù))AB12412CDaababRB13123DaaabbES11112aaaabABCDERS2.4關(guān)系代數(shù)(續(xù))987654321CBACD3162
R
SABCD12314562
RS2.4關(guān)系代數(shù)(續(xù))除給定關(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上投影的集合。記作:
RS={tr[X]|tr∈R^y(S)Yx}
其中,Yx為x在R中的象集,x=tr[X]2.4關(guān)系代數(shù)(續(xù))RSXYYZYxy(S)RS2.4關(guān)系代數(shù)(續(xù))ABCa1b1c2a2b3c7a3b4c6a1b2c3a4b6c6a2b2c3a1b2c1BCDb1c2d1b2c1d1b2c3d2R
S
RS=Aa12.4關(guān)系代數(shù)(續(xù))ABCDabcdabefabdebcefedcdedefCDcdefABabedABabbcedABCDabcdabefbccdbcefedcdedefR
AB(R)S
AB(R)CD(S)AB(R)CD(S)-RABCDbccdRS=ABabbcedABbc-=RS=X(R)X(X(R)Y(S)R)2.4關(guān)系代數(shù)(續(xù))姓名課程成績(jī)張軍物理88王紅數(shù)學(xué)80張軍數(shù)學(xué)90物理數(shù)學(xué)課程姓名張軍選修了全部課程的學(xué)生的姓名2.4關(guān)系代數(shù)(續(xù))學(xué)號(hào)Sno姓名Sname性別Ssex年齡Sage系別Sdept95001李勇男20CS95002劉晨女19IS95003王敏女18MA95004張立男19IS
例題背景S課程號(hào)Cno課程名Cname先行課Cpno學(xué)分Ccredit1數(shù)據(jù)庫(kù)542數(shù)學(xué)23信息系統(tǒng)144操作系統(tǒng)635數(shù)據(jù)結(jié)構(gòu)746數(shù)據(jù)處理27PASCAL64C學(xué)號(hào)Sno課程號(hào)Cno成績(jī)Grade9500119295001285950013889500229095002380SC2.4關(guān)系代數(shù)(續(xù))查詢信息系(IS)的全體學(xué)生
Sdept=‘IS’(S)或5=‘IS’(S)查詢年齡小于20歲的學(xué)生
Sage<20(S)或4=20(S)查詢學(xué)生的姓名和所在系
Sname,Sdept(S)
或2,5(S)查選修了2號(hào)課程的學(xué)生的學(xué)號(hào)
Sno(Cno=‘2’(SC))查2號(hào)課程的學(xué)生學(xué)號(hào)和成績(jī)
Sno,Grade(Cno=‘2’(SC))2.4關(guān)系代數(shù)(續(xù))查2號(hào)課程的學(xué)生姓名和成績(jī)
Sname,Grade(Cno=‘2’(SSC))或
Sname,Grade(Sno,Grade(Cno=‘2’(SC))S)查選修“數(shù)學(xué)”的學(xué)生學(xué)號(hào),姓名及該課程的成績(jī)
Sno,Sname,Grade(Cname=‘?dāng)?shù)學(xué)’(SSCC))查選修1號(hào)或2號(hào)課程的學(xué)生學(xué)號(hào)
Sno(Cno=‘1’VCno=‘2’(SC))2.4關(guān)系代數(shù)(續(xù))查沒學(xué)2號(hào)課程的學(xué)生姓名
Sname(S)-Sname(Cno=‘2’(SSC))查詢選修了全部課程的學(xué)生學(xué)號(hào)
Sno,Cno(SC)Cno(C)2.4關(guān)系代數(shù)(續(xù))5種基本運(yùn)算并、差、笛卡爾積、投影、選擇其它運(yùn)算交、連接、除均可用5種基本運(yùn)算來表達(dá),引進(jìn)它們并不增加語(yǔ)言的能力,但可以簡(jiǎn)化表達(dá)RS=R(RS)RS=∏屬性列表(相同的屬性列值相等(R)(R×S))RS=X(R)X(X(R)Y(S)R)關(guān)系代數(shù)中,這些運(yùn)算經(jīng)有限次復(fù)合后形成的式子稱為關(guān)系代數(shù)表達(dá)式2.5關(guān)系演算以數(shù)理邏輯中的謂詞演算為基礎(chǔ)元組關(guān)系演算,例ALPHA域關(guān)系演算,例QBE形式化定義{t|P(t)}表示所有使謂詞P為真的元組集合t為元組變量如果元組變量前有“全稱”()或“存在”()量詞,則稱其為約束變量,否則稱為自由變量P是公式由原子公式和運(yùn)算符組成2.5關(guān)系演算(續(xù))-元組關(guān)系演算原子公式t∈R,寫成R(t)t是關(guān)系R中的一個(gè)元組t[i]u[j]t[i]與u[j]為元組分量,他們之間滿足比較關(guān)系,元組t的第I個(gè)分量與元組u的第j個(gè)分量滿足比較關(guān)系t[i]c分量t[i]與常量c之間滿足比較關(guān)系
2.5關(guān)系演算(續(xù))-元組關(guān)系演算公式的遞歸定義原子公式是公式如果P是公式,那么┑P也是公式如果P1,P2是公式,則P1
P2,
P1
P2,P1
P2也是公式如果P(t)是公式,R是關(guān)系,則tR(P(t))是公式如果P(t)是公式,R是關(guān)系,則tR(P(t))
也是公式運(yùn)算優(yōu)先級(jí)(從高到低)算術(shù)比較運(yùn)算符最高量詞次之,高于邏輯運(yùn)算符:┑,,
括號(hào)優(yōu)先2.5關(guān)系演算(續(xù))-元組關(guān)系演算公式的等價(jià)性P1
P2
┑(┑P1
┑P2)t
(P(t))
┑t(┑P(t))P1
P2
┑P1P2pq┑ppq┑pqTTFTTTFFFFFTTTTFFTTT2.5關(guān)系演算(續(xù))-元組關(guān)系演算ABC123456789ABC123346569RSABC346569{t|S(t)t[A]>2}ABC456789{t|R(t)┑S(t)}2.5關(guān)系演算(續(xù))-元組關(guān)系演算ABC123456789ABC123346569RS{t|(
u)(S(t)R(u)
t[C]<u[B])}ABC1233462.5關(guān)系演算(續(xù))-元組關(guān)系演算ABC123456789ABC123346569RS2.5關(guān)系演算(續(xù))-元組關(guān)系演算ABC456789{t|(u)(R(t)S(u)
t[C]>u[A])}ABC123456789ABC123346569RS2.5關(guān)系演算(續(xù))-元組關(guān)系演算R.BS.CR.A534837867897{t|(u)(v)(R(u)S(v)u[A]>v[B]
t[A]=u[B]t[B]=v[C]t[C]=u[A])}
表達(dá)式的安全性元組關(guān)系演算有可能會(huì)產(chǎn)生無(wú)限關(guān)系,這樣的表達(dá)式是不安全的如{t|┑(tR)},求所有不在R中的元組引入公式P的域概念,用dom(P)表示
dom(P)=顯式出現(xiàn)在P中的值+在P中出現(xiàn)的關(guān)系的元組中出現(xiàn)的值(不必是最小集)如dom(t|┑(tR))是R中出現(xiàn)的所有值的集合如果出現(xiàn)在表達(dá)式{t|P(t)}結(jié)果中的所有值均來自dom(P),則稱{t|P(t)}是安全的2.5關(guān)系演算(續(xù))-元組關(guān)系演算ABA1B1A1B2A2B3dom(┑(tR))={{A1,A2},{B1,B2,B3}}ABA1B3A2B1A2B2R{t|┑(tR)}2.5關(guān)系演算(續(xù))-元組關(guān)系演算2.5關(guān)系演算(續(xù))-元組關(guān)系演算學(xué)號(hào)Sno姓名Sname性別Ssex年齡Sage系別Sdept95001李勇男20CS95002劉晨女19IS95003王敏女18MA95004張立男19IS
例題背景S課程號(hào)Cno課程名Cname先行課Cpno學(xué)分Ccredit1數(shù)據(jù)庫(kù)542數(shù)學(xué)23信息系統(tǒng)144操作系統(tǒng)635數(shù)據(jù)結(jié)構(gòu)746數(shù)據(jù)處理27PASCAL64C學(xué)號(hào)Sno課程號(hào)Cno成績(jī)Grade9500119295001285950013889500229095002380SC2.5關(guān)系演算(續(xù))-元組關(guān)系演算查詢信息系(IS)的全體學(xué)生
Sdept=‘IS’(S)
{t|S(t)t[Sdept]’IS’}
查詢年齡小于20歲的學(xué)生
Sage<20(S)
{t|S(t)t[Sage]<20}
查詢學(xué)生的姓名和所在系
Sname,Sdept(S)
或2,5(S)
{t|(u)(S(u)t[1]=u[Sname]t[2]=u[Sdept])}
2.5關(guān)系演算(續(xù))-元組關(guān)系演算查選修了2號(hào)課程的學(xué)生的學(xué)號(hào)
Sno(Cno=‘2’(SC))
{t|(u)(SC(u)u[Cno]=‘2’t[1]=u[Sno])}
查2號(hào)課程的學(xué)生學(xué)號(hào)和成績(jī)
Sno,Grade(Cno=‘2’(SC))
{t|(u)(SC(u)u[Cno]=‘2’t[1]=u[Sno]
t[2]=u[Sno])}
2.5關(guān)系演算(續(xù))-元組關(guān)系演算查選修2號(hào)課程的學(xué)生姓名和成績(jī)
Sname,Grade(Cno=‘2’(S|×|SC))
{t|(u)(v)(S(u)SC(v)v[Cno]=‘2’
u[Sno]=v[Sno]
t[1]=u[Sname]
t[2]=v[Grade])}
查選修“數(shù)學(xué)”的學(xué)生學(xué)號(hào),姓名及該課程的成績(jī)
Sno,Sname,Grade(Cname=‘?dāng)?shù)學(xué)’(S|×|SC|×|C))
{t|(u)(v)(w)(S(u)SC(v)C[w]
w[Cname]=‘?dāng)?shù)學(xué)’
u[Sno]=v[Sno]v[Cno]=w[Cno]
t[1]=u[Sno]t[2]=u[Sname]t[3]=v[Grade])}
2.5關(guān)系演算(續(xù))-元組關(guān)系演算查選修1號(hào)或2號(hào)課程的學(xué)生學(xué)號(hào)
Sno(Cno=‘1’VCno=‘2’(SC))
{t|(u)(SC(u)(u[Cno]=‘1’u[Cno]=‘2’)
t[1]=u[Sno])}
元組關(guān)系演算與關(guān)系代數(shù)的等價(jià)性投影∏A(R)={t|sR(s[A]=t[A])}選擇F(A)(R)={t|tRF(t[A])}廣義笛卡兒積R(A)S(B)={t|uRsS(t[A]=u[A]
t[B]=s[B])}并RS={t|tR
tS}差RS={t|tR
┑tS}2.5關(guān)系演算(續(xù))-元組關(guān)系演算關(guān)系演算示例VPROF(P#,PNAME,SAL,DNO)找出工資在800元以上的老師{t|tPROFt[SAL]>800}GetW(Prof):Prof.Sal>800找出工資在800元以上的老師的姓名{t|sPROF(t[PNAME]s[PNAME]
s[SAL]>800)}給出計(jì)算機(jī)系老師的
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 地鐵軌道瀝青鋪設(shè)運(yùn)輸服務(wù)
- 博物館環(huán)保涂料裝修服務(wù)
- 圖書報(bào)刊配送外包合同
- 商業(yè)街區(qū)土方清運(yùn)協(xié)議
- 汽車裝飾店裝修合同樣本
- 2024年貴州大客車從業(yè)資格證考試試題
- 2024年吉林客運(yùn)上崗證題目考試題庫(kù)
- 危險(xiǎn)品運(yùn)輸合同范本
- 醫(yī)療器械運(yùn)輸協(xié)議樣本
- 2024年貴陽(yáng)客運(yùn)駕駛從業(yè)資格考試題庫(kù)
- 2024-2025學(xué)年魯教版(五四制)八年級(jí)數(shù)學(xué)上冊(cè)期中測(cè)試題
- 2024年大學(xué)生信息素養(yǎng)大賽(省賽)練習(xí)考試題庫(kù)(含答案)
- 外事實(shí)務(wù)智慧樹知到期末考試答案章節(jié)答案2024年山東外事職業(yè)大學(xué)
- 道路交通標(biāo)志與標(biāo)線PPT課件
- 幕墻打膠工藝
- 實(shí)習(xí)實(shí)訓(xùn)報(bào)告-墊片復(fù)合沖壓模具的設(shè)計(jì)
- 35kv變電所電氣部分設(shè)計(jì)(有設(shè)計(jì)源圖)
- 編寫標(biāo)準(zhǔn)必備文件 國(guó)家標(biāo)準(zhǔn) 地方標(biāo)準(zhǔn) 行業(yè)標(biāo)準(zhǔn) 企業(yè)標(biāo)準(zhǔn) 格式模板大全
- 全面預(yù)算實(shí)施方案(共8篇)
- 天津市南開中學(xué)2020-2021學(xué)年高一上學(xué)期期中考試物理試題含答案
- 建設(shè)工程施工勞務(wù)分包合同(地坪)(完整版)
評(píng)論
0/150
提交評(píng)論