關(guān)系模型重點(diǎn)課件_第1頁(yè)
關(guān)系模型重點(diǎn)課件_第2頁(yè)
關(guān)系模型重點(diǎn)課件_第3頁(yè)
關(guān)系模型重點(diǎn)課件_第4頁(yè)
關(guān)系模型重點(diǎn)課件_第5頁(yè)
已閱讀5頁(yè),還剩77頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第三章關(guān)系模型第三章關(guān)系模型1提綱關(guān)系基本概念關(guān)系模型關(guān)系代數(shù)元組關(guān)系演算域關(guān)系演算提綱關(guān)系基本概念2關(guān)系模型回顧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)oxbase關(guān)系模型回顧E.F.Codd于70年代初提出關(guān)系數(shù)據(jù)理論,他3關(guān)系基本概念域(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ù)為關(guān)系基本概念域(Domain)4關(guān)系基本概念例:設(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關(guān)系基本概念例:設(shè)TSCt1s1c1t1s1c2t1s2c15關(guān)系基本概念關(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元組屬性關(guān)系基本概念關(guān)系TSCt1s1c1t1s1c2t1s2c1t6關(guān)系基本概念關(guān)系的性質(zhì)列是同質(zhì)的即每一列中的分量來(lái)自同一域,是同一類型的數(shù)據(jù)。如TEACH(T,S,C)={(t1,s1,c1),(t1,t2,c1)}是錯(cuò)誤的不同的列可來(lái)自同一域,每列必須有不同的屬性名。如P={t1,t2,

s1,s2,s3},C={c1,c2},則TEACH不能寫成TEACH(P,P,C),還應(yīng)寫成TEACH(T,S,C)行列的順序無(wú)關(guān)緊要任意兩個(gè)元組不能完全相同(集合內(nèi)不能有相同的兩個(gè)元素)每一分量必須是不可再分的數(shù)據(jù)。滿足這一條件的關(guān)系稱作滿足第一范式(1NF)的關(guān)系基本概念關(guān)系的性質(zhì)7關(guān)系模型數(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)SC(S#,C#,SCORE)PROF(P#,PN,D#,SAL)TEACH(P#,C#)學(xué)生課程選修屬于系教師教授工作管理關(guān)系模型數(shù)據(jù)結(jié)構(gòu)DEPT(D#,DN,DEAN)學(xué)生8關(guān)系模型候選碼(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#屬性關(guān)系模型候選碼(CandidateKey)9關(guān)系模型關(guān)系模型10關(guān)系模型關(guān)系模型11關(guān)系模型關(guān)系模式關(guān)系的描述稱作關(guān)系模式,包括關(guān)系名、關(guān)系中的屬性名、屬性向域的映象、屬性間的數(shù)據(jù)依賴關(guān)系等,記作R(A1,A2,…,An)屬性向域的映象一般直接說(shuō)明為屬性的類型、長(zhǎng)度等某一時(shí)刻對(duì)應(yīng)某個(gè)關(guān)系模式的內(nèi)容(元組的集合)稱作關(guān)系關(guān)系模式是型,是穩(wěn)定的關(guān)系是某一時(shí)刻的值,是隨時(shí)間不斷變化的關(guān)系模型關(guān)系模式12關(guān)系模型關(guān)系數(shù)據(jù)庫(kù)其型是關(guān)系模式的集合,即數(shù)據(jù)庫(kù)描述,稱作數(shù)據(jù)庫(kù)的內(nèi)涵(Intension)其值是某一時(shí)刻關(guān)系的集合,稱作數(shù)據(jù)庫(kù)的外延(Extension)關(guān)系模型關(guān)系數(shù)據(jù)庫(kù)13關(guān)系模型關(guān)系操作關(guān)系操作是集合操作,操作的對(duì)象及結(jié)果都是集合,是一次一集合(Set-at-a-time)的方式而非關(guān)系型的數(shù)據(jù)操作方式是一次一記錄(Record-at-a-time)關(guān)系操作可以用關(guān)系代數(shù)和關(guān)系演算兩種方式來(lái)表示,它們是相互等價(jià)的如用關(guān)系代數(shù)來(lái)表示關(guān)系的操作,可以有選擇、投影、連接、除、交、差、并等關(guān)系模型關(guān)系操作14關(guān)系模型關(guān)系模式的完整性實(shí)體完整性關(guān)系的主碼中的屬性值不能為空值空值:不知道或無(wú)意義意義:關(guān)系對(duì)應(yīng)到現(xiàn)實(shí)世界中的實(shí)體集,元組對(duì)應(yīng)到實(shí)體,實(shí)體是相互可區(qū)分的,通過(guò)主碼來(lái)唯一標(biāo)識(shí),若主碼為空,則出現(xiàn)不可標(biāo)識(shí)的實(shí)體,這是不容許的關(guān)系模型關(guān)系模式的完整性15關(guān)系模型參照完整性如果關(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è)不存在的系中關(guān)系模型參照完整性16關(guān)系模型用戶定義的完整性用戶針對(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)系模型用戶定義的完整性17關(guān)系模型供應(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)”)關(guān)系模型供應(yīng)商號(hào)供應(yīng)商名所在城市B01紅星北京S10宇宙上海18關(guān)系數(shù)據(jù)語(yǔ)言概述關(guān)系數(shù)據(jù)語(yǔ)言的特點(diǎn)一體化一般關(guān)系系統(tǒng)的數(shù)據(jù)語(yǔ)言都同時(shí)具有數(shù)據(jù)定義、數(shù)據(jù)操縱和數(shù)據(jù)控制語(yǔ)言,而不是分為幾個(gè)語(yǔ)言。對(duì)象單一,都是關(guān)系,因此操作符也單一。而非關(guān)系型系統(tǒng),如DBTG,有對(duì)記錄的操作,有對(duì)系的操作非過(guò)程化用戶只需提出“做什么”,無(wú)須說(shuō)明“怎么做”,存取路徑的選擇和操作過(guò)程由系統(tǒng)自動(dòng)完成面向集合的存取方式操作對(duì)象是一個(gè)或多個(gè)關(guān)系,結(jié)果是一個(gè)新的關(guān)系(一次一關(guān)系)。非關(guān)系系統(tǒng)是一次一記錄的方式關(guān)系數(shù)據(jù)語(yǔ)言概述關(guān)系數(shù)據(jù)語(yǔ)言的特點(diǎn)19關(guān)系數(shù)據(jù)語(yǔ)言概述抽象的查詢語(yǔ)言關(guān)系代數(shù)用對(duì)關(guān)系的運(yùn)算來(lái)表達(dá)查詢,需要指明所用操作關(guān)系演算用謂詞來(lái)表達(dá)查詢,只需描述所需信息的特性元組關(guān)系演算謂詞變?cè)幕緦?duì)象是元組變量域關(guān)系演算謂詞變?cè)幕緦?duì)象是域變量關(guān)系數(shù)據(jù)語(yǔ)言概述抽象的查詢語(yǔ)言20關(guān)系數(shù)據(jù)語(yǔ)言概述具體系統(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公司研制關(guān)系數(shù)據(jù)語(yǔ)言概述具體系統(tǒng)中的實(shí)際語(yǔ)言21關(guān)系代數(shù)運(yùn)算匯總基本運(yùn)算一元運(yùn)算選擇、投影、更名多元運(yùn)算笛卡兒積、并、集合差其它運(yùn)算集合交、自然連接、除、賦值擴(kuò)展運(yùn)算廣義投影、外連接、聚集修改操作插入、刪除、更新關(guān)系代數(shù)運(yùn)算匯總基本運(yùn)算22關(guān)系代數(shù)的一些記號(hào)給定關(guān)系模式R(A1,A2,…,An),設(shè)R是它的一個(gè)具體的關(guān)系,t

R是關(guān)系的一個(gè)元組分量設(shè)t

R,則t[Ai]表示元組t中相應(yīng)于屬性Ai的一個(gè)分量屬性列Ai={Ai1,Ai2,…,Aik}{A1,A2,…,An},稱A為屬性列;A表示{A1,A2,…,An}中去掉A后剩余的屬性組t[Ai]=(t[Ai1],t[Ai2],…,t[Aik])關(guān)系代數(shù)的一些記號(hào)給定關(guān)系模式R(A1,A2,23選擇運(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ù) 是比較算符,{,,,,,≠}選擇運(yùn)算基本定義24選擇運(yùn)算ABC367257723443R

A<5(R)

ABC367257443

A<5

C=7(R)

ABC367257選擇運(yùn)算ABC367257723443RA<5(R)AB25選擇運(yùn)算示例找年齡不小于20的男學(xué)生

AGE≥20∧

SEX=‘male’(S)選擇運(yùn)算示例26投影定義從關(guān)系R中取若干列組成新的關(guān)系(從列的角度)

A(R)={t[A]|tR},AR投影的結(jié)果中要去掉相同的行cbcfedcbaCBABCbcef

R

B,C(R)投影定義cbcfedcbaCBABCbcefRB,27投影示例給出所有學(xué)生的姓名和年齡

SN,AGE(S)找001號(hào)學(xué)生所選修的課程號(hào)

C#(S#=001(SC))投影示例28并運(yùn)算定義所有至少出現(xiàn)在兩個(gè)關(guān)系中之一的元組集合R

S={r|r

R

r

S}R

S兩個(gè)關(guān)系R和S若進(jìn)行并運(yùn)算,則它們必須是相容的:關(guān)系R和S必須是同元的,即它們的屬性數(shù)目必須相同對(duì)

i,R的第i個(gè)屬性的域必須和S的第i個(gè)屬性的域相同并運(yùn)算定義RS兩個(gè)關(guān)系R和S若進(jìn)行并運(yùn)算,則它們必須是相容29并運(yùn)算ABC367257723443RABC345723SABC367257723443345R∪S并運(yùn)算ABC367257723443RABC345723SA30并運(yùn)算示例求選修了001號(hào)或002號(hào)課程的學(xué)生號(hào)方案:∏S#(C#=001^

C#=002(SC))?∏S#(C#=001(SC))Λ∏S#(C#=002(SC))?

方案1:∏S#(C#=001∨

C#=002(SC))

方案2:∏S#(C#=001(SC))∪∏S#(C#=002(SC))并運(yùn)算示例方案1:31差運(yùn)算定義所有出現(xiàn)在一個(gè)關(guān)系而不在另一關(guān)系中的元組集合R

S={r|r

R

r

S}R和S必須是相容的R

S差運(yùn)算定義RS32差運(yùn)算ABC367257723443RABC345723SABC367257443R-SABC367S-R差運(yùn)算ABC367257723443RABC345723SA33差運(yùn)算示例求選修了001號(hào)而沒(méi)有選002號(hào)課程的學(xué)生號(hào)∏S#(C#=001(SC))-∏S#(C#=002(SC))差運(yùn)算示例∏S#(C#=001(SC))-∏S#(34交運(yùn)算定義所有同時(shí)出現(xiàn)在兩個(gè)關(guān)系中的元組集合R

S={r|r

R

r

S}交運(yùn)算可以通過(guò)差運(yùn)算來(lái)重寫R

S=R

(R

S)R

S交運(yùn)算定義RS35交運(yùn)算ABC367257723443RABC345723SABC723R∩S交運(yùn)算ABC367257723443RABC345723SA36交運(yùn)算示例求同時(shí)選修了001號(hào)和002號(hào)課程的學(xué)生號(hào)錯(cuò)誤的寫法:∏S#(C#=001

C#=002(SC))正確的寫法:∏S#(C#=001(SC))∩∏S#(C#=002(SC))交運(yùn)算示例37廣義笛卡爾積運(yùn)算元組的連串(Concatenation)若r=(r1,…

,rn),s=(s1,…,sm),則定義r與s的連串為:定義兩個(gè)關(guān)系R,S,其度分別為n,m,則它們的笛卡爾積是所有這樣的元組集合:元組的前n個(gè)分量是R中的一個(gè)元組,后m個(gè)分量是S中的一個(gè)元組R

S的度為R與S的度之和,R

S的元組個(gè)數(shù)為R和S的元組個(gè)數(shù)的乘積rs=(r1,…

,rn,s1,…,sm)R

S={rs|r

R

s

S}廣義笛卡爾積運(yùn)算元組的連串(Concatenation)rs38廣義笛卡爾積運(yùn)算AB

12rCD

10102010EaabbsAB

11112222CD

1019201010102010Eaabbaabbrx

s廣義笛卡爾積運(yùn)算AB1rCD10EasAB1CD1039廣義笛卡爾積運(yùn)算

A=C(rxs)rxs

A=C(rxs)AB

11112222CD

1019201010102010EaabbaabbABCDE

122

102020aab廣義笛卡爾積運(yùn)算A=C(rxs)AB1CD10Ea40更名運(yùn)算定義給一個(gè)關(guān)系表達(dá)式賦予名字

x(E)

返回表達(dá)式E的結(jié)果,并把名字x賦給E

x(A1,A2,

,

An)(E)

返回表達(dá)式E的結(jié)果,并把名字x賦給E,同時(shí)將各屬性更名為A1,A2,

,An

關(guān)系被看作一個(gè)最小的關(guān)系代數(shù)表達(dá)式,可以將更名運(yùn)算施加到關(guān)系上,得到具有不同名字的同一關(guān)系。這在同一關(guān)系多次參與同一運(yùn)算時(shí)很有幫助更名運(yùn)算定義41廣義笛卡爾積運(yùn)算示例求數(shù)學(xué)成績(jī)比王紅同學(xué)高的學(xué)生89數(shù)學(xué)張軍86數(shù)學(xué)王紅93物理張軍成績(jī)課程姓名∏S.姓名(

R.成績(jī)S.成績(jī)R.課程=數(shù)學(xué)S.課程=數(shù)學(xué)R.姓名=王紅

(R

S(R))R86數(shù)學(xué)王紅86數(shù)學(xué)王紅86數(shù)學(xué)王紅R.成績(jī)R.課程R.姓名89數(shù)學(xué)張軍86數(shù)學(xué)王紅93物理張軍S.成績(jī)S.課程S.姓名廣義笛卡爾積運(yùn)算示例89數(shù)學(xué)張軍86數(shù)學(xué)王紅93物理張軍成績(jī)42連接定義從兩個(gè)關(guān)系的廣義笛卡兒積中選取給定屬性間滿足一定條件的元組A,B為R和S上度數(shù)相等且可比的屬性列為算術(shù)比較符,為等號(hào)時(shí)稱為等值連接

RS=

r[A]

S[B](

R×S)A

BA

BRS={rs|r

R

s

S

r[A]

S[B]}連接定義ABABRS={rs|r43連接求數(shù)學(xué)成績(jī)比王紅同學(xué)高的學(xué)生。987654321CBADE3162ABCDE123311236245662

RSB<D

R

S∏S.姓名((課程=數(shù)學(xué)姓名=王紅(R))(

課程=數(shù)學(xué)

S(R)))R.成績(jī)<S.成績(jī)連接求數(shù)學(xué)成績(jī)比王紅同學(xué)高的學(xué)生。987654321CBA44自然連接定義從兩個(gè)關(guān)系的廣義笛卡兒積中選取在相同屬性列B上取值相等的元組,并去掉重復(fù)的行。自然連接與等值連接的不同自然連接中相等的分量必須是相同的屬性組,并且要在結(jié)果中去掉重復(fù)的屬性,而等值連接則不必。當(dāng)R與S無(wú)相同屬性時(shí),RS=R×SRS={rs[B]|r

R

s

S

r[B]=S[B]}自然連接定義RS={rs[B]|rRs45自然連接AB

12412CD

aababrB13123DaaabbE

s

11112

aaaab

ABCDErs自然連接AB1CDarB1DaEs1aABCDE46自然連接示例求001號(hào)學(xué)生所在系的名稱∏DN(S#=001(S)DEPT)987654321CBACD3162

R

SABCD12314562

RS自然連接示例987654321CBACD3162RSAB47除運(yùn)算象集(ImageSet)關(guān)系R(X,Z),X,Z是屬性組,x是X上的取值,定義x在R中的象集為Zx={t[Z]|t

Rt[X]=x}

從R中選出在X上取值為x的元組,去掉X上的分量,只留Z上的分量XZ張軍同學(xué)所選修的全部課程x=張軍Zx姓名課程張軍物理王紅數(shù)學(xué)張軍數(shù)學(xué)課程數(shù)學(xué)物理除運(yùn)算象集(ImageSet)XZ48除運(yùn)算

做法:逐個(gè)考慮選課關(guān)系SC中的元組r,求r在姓名SN上的分量x,再求x在選課關(guān)系中的象集課程Cx,若Cx包含了所有的課程C,則x是滿足條件的一個(gè)元組如何得到選修了全部課程的學(xué)生?{x|x=r[SN]

rSC

CxC}選修全部課程的學(xué)生全部課程x同學(xué)所選修的全部課程除運(yùn)算如何得到選修了全部課程的學(xué)生?{x|x=r49除運(yùn)算除定義R(X,Y)

S(Y)={x|x=r[x]

r

R

Yx

S}R(X,Y)

S(Y)={t|t

X(R)uS(tu

r)}R

S=

X(R)

X(

X(R)

Y(S)

R)除運(yùn)算除定義50除運(yùn)算

物理數(shù)學(xué)課程=物理王紅數(shù)學(xué)張軍數(shù)學(xué)王紅物理張軍課程姓名王紅張軍姓名沒(méi)有選修全部課程的學(xué)生所有學(xué)生選修全部課程

=數(shù)學(xué)張軍數(shù)學(xué)王紅物理張軍課程姓名物理王紅數(shù)學(xué)張軍數(shù)學(xué)王紅物理張軍課程姓名姓名王紅姓名王紅張軍姓名王紅

=姓名張軍選修了全部課程的學(xué)生除運(yùn)算物理數(shù)學(xué)課程=物理王紅數(shù)學(xué)張軍數(shù)學(xué)王紅物理張軍課程姓51除運(yùn)算ABCDabcdabefabdebcefedcdedefCDcdefABabedABabbcedABCDabcdabefbccdbcefedcdedefR

AB(R)S

AB(R)

CD(S)

AB(R)

CD(S)-RABCDbccdR

S=ABabbcedABbc-=除運(yùn)算ABCDabcdabefabdebcefedcdede52除運(yùn)算示例求同時(shí)選修了001和002號(hào)課程的學(xué)生號(hào)

方案1:∏S#,C#(SC)C#=001

C#=002(C)

方案2:∏S#(SCC#=001

C#=002(C))

哪一個(gè)正確?分析除運(yùn)算示例分析53除運(yùn)算方案1:∏S#,C#(SC)C#=001

C#=002(C)分析:1、

C#=001

C#=002(C)的結(jié)果為:c#,cn;2、∏S#,C#(SC)的結(jié)果為:s#、c#、scroe;3、在做

時(shí),自動(dòng)在1的結(jié)果中投影出c#;4、令R=∏S#,C#(SC),S=C#=001

C#=002(C)5、R(X,Y)=R(s#,c#),則X=s#,Y=c#;S(Y,Z)=S(C#,CN);6、該計(jì)算為:求R在X(S#)上的象集要包含S在C#上的投影。除運(yùn)算方案1:54除運(yùn)算

課程數(shù)學(xué)物理=姓名課程成績(jī)張軍物理93王紅數(shù)學(xué)86張軍數(shù)學(xué)93王紅物理92

課程數(shù)學(xué)物理姓名課程張軍物理王紅數(shù)學(xué)張軍數(shù)學(xué)王紅物理姓名張軍王紅=姓名成績(jī)張軍93選修了全部課程并且成績(jī)都相同的學(xué)生選修了全部課程的學(xué)生除運(yùn)算課程數(shù)學(xué)物理=姓名課程成績(jī)張軍物理93王紅數(shù)學(xué)86張55賦值運(yùn)算定義為使查詢表達(dá)簡(jiǎn)單、清晰,可以將一個(gè)復(fù)雜的關(guān)系代數(shù)表達(dá)式分成幾個(gè)部分,每一部分都賦予一個(gè)臨時(shí)關(guān)系變量,該變量可被看作關(guān)系而在后面的表達(dá)式中使用臨時(shí)關(guān)系變量

關(guān)系代數(shù)表達(dá)式賦值給臨時(shí)關(guān)系變量只是一種結(jié)果的傳遞,而賦值給永久關(guān)系則意味著對(duì)數(shù)據(jù)庫(kù)的修改賦值運(yùn)算定義56賦值運(yùn)算示例R

S=

X(R)

X(

X(R)

Y(S)

R)用賦值重寫為:temp1

X(R)temp2

X(temp1

Y(S)

R)result

temp1

temp2賦值運(yùn)算示例57賦值運(yùn)算求未選修001號(hào)課程的學(xué)生號(hào)方案1:∏S#(S)-∏S#(C#=001(SC)) 方案2:∏S#(C#≠001(SC))哪一個(gè)正確?S#C#Gs1c190s2c195s1c296S#SNAGEs1……s2……s3……賦值運(yùn)算求未選修001號(hào)課程的學(xué)生號(hào)哪一個(gè)正確?S#C#Gs58關(guān)系代數(shù)查詢實(shí)例求僅選修了001號(hào)課程的學(xué)生號(hào)選修001號(hào)課程的學(xué)生-僅選001號(hào)課程之外的學(xué)生=∏S#(C#=001(SC))-∏S#(SC-C#=001(SC))S#C#SCOREP03C0288P01C0392S#P01P02S#P01P03S#P02關(guān)系代數(shù)查詢實(shí)例求僅選修了001號(hào)課程的學(xué)生號(hào)S#C#SCO59廣義投影定義在投影列表中使用算術(shù)表達(dá)式來(lái)對(duì)投影進(jìn)行擴(kuò)展

F1,F2

,…,Fn

(E)F1,F2,…,Fn是算術(shù)表達(dá)式示例求教工應(yīng)繳納的所得稅

P#

,SAL*5/100

(PROF)

p#,INCOME-TAX

(P#

,SAL*5/100

(PROF))廣義投影定義60外連接例:列出老師的有關(guān)信息,包括姓名、工資、所教授的課程∏P#,PN,SAL,C#,CN((PROF)PCC)500李三P04600700800SAL孫立P03錢廣P02趙明P01PNP#化學(xué)C03數(shù)學(xué)C02物理C01CNC#P04C02P02C02P01C01P#C#數(shù)學(xué)C02500李三P04數(shù)學(xué)C02700錢廣P02物理C01800趙明P01CNC#SALPNP#問(wèn)題:有關(guān)P03號(hào)職工的姓名和工資信息沒(méi)有顯示出來(lái)外連接例:列出老師的有關(guān)信息,包括姓名、工資、所教授的課程561外連接外連接為避免自然連接時(shí)因失配而發(fā)生的信息丟失,可以假定往參與連接的一方表中附加一個(gè)取值全為空值的行,它和參與連接的另一方表中的任何一個(gè)未匹配上的元組都能匹配,稱之為外連接外連接=自然連接+失配的元組外連接的形式:左外連接、右外連接、全外連接左外連接=自然連接+左側(cè)表中失配的元組右外連接=自然連接+右側(cè)表中失配的元組全外連接=自然連接+兩側(cè)表中失配的元組外連接外連接62外連接500李三P04600700800SAL孫立P03錢廣P02趙明P01PNP#化學(xué)C03數(shù)學(xué)C02物理C01CNC#P04C02P02C02P01C01P#C#數(shù)學(xué)C02500李三P04數(shù)學(xué)C02700錢廣P02物理C01800趙明P01CNC#SALPNP#所有老師的信息外連接500李三P04600700800SAL孫立P03錢廣63外連接500李三P04600700800SAL孫立P03錢廣P02趙明P01PNP#化學(xué)C03數(shù)學(xué)C02物理C01CNC#P04C02P02C02P01C01P#C#數(shù)學(xué)C02500李三P04數(shù)學(xué)C02700錢廣P02物理C01800趙明P01CNC#SALPNP#所有課程的信息外連接500李三P04600700800SAL孫立P03錢廣64外連接500李三P04600700800SAL孫立P03錢廣P02趙明P01PNP#化學(xué)C03數(shù)學(xué)C02物理C01CNC#P04C02P02C02P01C01P#C#數(shù)學(xué)C02500李三P04數(shù)學(xué)C02700錢廣P02物理C01800趙明P01CNC#SALPNP#所有老師和課程的信息外連接500李三P04600700800SAL孫立P03錢廣65聚集函數(shù)定義求一組值的統(tǒng)計(jì)信息,返回單一值使用聚集的集合可以是多重集,即一個(gè)值可以重復(fù)出現(xiàn)多次。如果想去除重復(fù)值,可以用連接符‘-’將‘distinct’附加在聚集函數(shù)名后,如sum-distinctsum:求和求全體教工的總工資sumSAL((PROF))

求001號(hào)學(xué)生的總成績(jī)sumSCORE(

S#=001(SC))聚集函數(shù)定義66聚集函數(shù)avg:求平均求001號(hào)同學(xué)選修課程的平均成績(jī)。avgSCORE(

S#=001(SC))count:計(jì)數(shù)求001號(hào)同學(xué)選修的課程數(shù)。countC#(

S#=001(SC))

求任課老師的總數(shù)。count-distinctP#(PC)聚集函數(shù)avg:求平均67聚集函數(shù)max:求最大值

min:求最小值求學(xué)生選修數(shù)學(xué)的最高成績(jī)maxSCORE(CN=數(shù)學(xué)(C)SC))分組將一個(gè)元組集合分為若干個(gè)組,在每個(gè)分組上使用聚集函數(shù)。屬性下標(biāo)G

聚集函數(shù)屬性下標(biāo)(關(guān)系)對(duì)此屬性在每個(gè)分組上運(yùn)用聚集函數(shù)按此屬性上的值對(duì)關(guān)系分組聚集函數(shù)max:求最大值對(duì)此屬性在每個(gè)分組上運(yùn)用聚集函數(shù)按此68聚集函數(shù)分組運(yùn)算G的一般形式G1,G2,...,Gn

G

F1,A1,F2,A2,…,Fm,Am(E)Gi是用于分組的屬性,F(xiàn)i是聚集函數(shù),Ai是屬性名。

G將E分為若干組,滿足:1)同一組中所有元組在G1,G2,...,Gn上的值相同。2)不同組中元組在G1,G2,...,Gn上的值不同。示例求每位學(xué)生的總成績(jī)和平均成績(jī)S#GsumSCORE,avgSCORE(SC)聚集函數(shù)分組運(yùn)算G的一般形式69數(shù)據(jù)庫(kù)修改刪除將滿足條件的元組從關(guān)系中刪除r

r

E是對(duì)永久關(guān)系的賦值運(yùn)算例:刪除001號(hào)老師所擔(dān)任的課程PCPC

PC#=001(PC)刪除沒(méi)有選課的學(xué)生SS

(∏S#(S)

∏S#

(SC))S關(guān)系關(guān)系代數(shù)表達(dá)式數(shù)據(jù)庫(kù)修改刪除關(guān)系關(guān)系代數(shù)表達(dá)式70數(shù)據(jù)庫(kù)修改插入插入一個(gè)指定的元組,或者插入一個(gè)查詢結(jié)果r

r

E示例:新加入一個(gè)老師PCPC

{(P07,“周正”,750,D08)}示例:加入計(jì)算機(jī)系學(xué)生選修“數(shù)學(xué)”的信息SCSC∏S#(S

DN=計(jì)算機(jī)系(DEPT))∏C#(CN=數(shù)學(xué)(C))數(shù)據(jù)庫(kù)修改插入71數(shù)據(jù)庫(kù)修改更新利用廣義投影改變?cè)M的某些屬性上的值r

F1,F2

,…,Fn(r)示例:給每位老師上調(diào)10%的工資PC

P#,

PN,SAL

SAL*1.1,

D#

(PC)示例:對(duì)工資超過(guò)800的老師征收5%所得稅PC

P#,

PN,SAL

SAL*0.95,

D#

(SAL800(PC))∪P#,

PN,SAL,

D#

(SAL800(PC))數(shù)據(jù)庫(kù)修改更新72視圖定義視圖是命名的、從基本表中導(dǎo)出的虛表,它在物理上并不存在,存在的只是它的定義視圖中的數(shù)據(jù)是從基本表中導(dǎo)出的,每次對(duì)視圖查詢都要重新計(jì)算createview

view_name

as<查詢表達(dá)式>視圖之上可以再定義視圖視圖Vs臨時(shí)關(guān)系變量視圖V1視圖V2基本表B1基本表B3基本表B2視圖定義視圖V1視圖V2基本表B1基本表B3基本表B273視圖視圖的優(yōu)點(diǎn)個(gè)性化服務(wù)簡(jiǎn)化了用戶觀點(diǎn),使不同用戶可以從不同角度觀察同一數(shù)據(jù)安全性“知必所需”,限制用戶數(shù)據(jù)的訪問(wèn)范圍邏輯獨(dú)立性視圖作為基本表與外模式之間的映象視圖視圖的優(yōu)點(diǎn)74視圖示例給出老師所教授課程的信息createview

p_course

As

∏PN,CN(PROFPC

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論