關系模型和關系代數(shù)_第1頁
關系模型和關系代數(shù)_第2頁
關系模型和關系代數(shù)_第3頁
關系模型和關系代數(shù)_第4頁
關系模型和關系代數(shù)_第5頁
已閱讀5頁,還剩63頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

關系模型和關系代數(shù)第一頁,共六十八頁,2022年,8月28日關系數(shù)據(jù)操作及類型關系操作在關系結(jié)構框架下,對數(shù)據(jù)結(jié)構——關系進行操作關系操作類型查詢操作:在一個關系內(nèi)或多個關系間檢索或定位數(shù)據(jù),

這一過程又可以分解為⑴單個關系內(nèi):屬性指定⑵單個關系內(nèi):元組選擇⑶多個關系間:合并第二頁,共六十八頁,2022年,8月28日關系數(shù)據(jù)操作及類型(續(xù))修改操作:又包括⑴刪除操作:在某個關系內(nèi)定位元組,然后刪除⑵插入操作:在某個關系內(nèi)增加元組,不需要定位⑶更新操作:在某個關系內(nèi)定位元組,然后改變屬性值兩類操作的聯(lián)系查詢操作是修改操作的基礎,修改操作實際是對查詢(定位)后的結(jié)果進行修改第三頁,共六十八頁,2022年,8月28日關系數(shù)據(jù)操作的表達關系操作的表示:查詢語言關系模型中使用“純”查詢語言,如關系代數(shù)、關系演算關系代數(shù)(2章重點):用一組對關系的運算來表示

查詢和修改。關系演算:用謂詞演算來表示查詢和修改。根據(jù)謂詞的不同,又分為元組關系演算和域關系演算。關系數(shù)據(jù)庫中使用實際的查詢語言,如SQL(3章重點)思考為什么叫“查詢”語言?“查詢”語言只能做查詢么?第四頁,共六十八頁,2022年,8月28日關系數(shù)據(jù)操作的表達(續(xù))關系運算分類第五頁,共六十八頁,2022年,8月28日關系數(shù)據(jù)操作的表達(續(xù))查詢語言的分類過程化:用戶要指定①what:查詢什么②how:怎么查詢,要用什么樣的方法、過程?非過程化:用戶只要指定查詢什么,而“怎么查詢”的問題留給系統(tǒng)處理——系統(tǒng)會自動尋找(近似)最優(yōu)的查詢方法(查詢執(zhí)行計劃),即查詢優(yōu)化。關系代數(shù)是過程化的,SQL和關系演算是非過程化的第六頁,共六十八頁,2022年,8月28日目錄*2.1關系數(shù)據(jù)模型

2.1.1關系基本概念

2.1.2關系數(shù)據(jù)結(jié)構

2.1.3關系數(shù)據(jù)操作

2.1.4關系數(shù)據(jù)完整性約束2.2關系代數(shù)2.3關系演算2.4查詢優(yōu)化第七頁,共六十八頁,2022年,8月28日關系完整性三類關系完整性規(guī)則①實體完整性②參照完整性③用戶定義完整性第八頁,共六十八頁,2022年,8月28日目錄*2.1關系數(shù)據(jù)模型

2.1.1關系基本概念

2.1.2關系數(shù)據(jù)結(jié)構

2.1.3關系數(shù)據(jù)操作

2.1.4關系數(shù)據(jù)完整性約束2.2關系代數(shù)2.3關系演算2.4查詢優(yōu)化第九頁,共六十八頁,2022年,8月28日什么是關系代數(shù)什么是代數(shù)(系統(tǒng))?代數(shù)系統(tǒng)包括運算對象基于運算對象的一組運算。例如,實數(shù)代數(shù)包括運算對象——

實數(shù)基于實數(shù)的運算——

加、減、乘、除…第十頁,共六十八頁,2022年,8月28日什么是關系代數(shù)(續(xù))封閉的代數(shù)系統(tǒng)運算的結(jié)果,仍不超出運算對象的范圍。思考整數(shù)和加、減、乘、除運算,是否構成封閉的代數(shù)系統(tǒng)?整數(shù)和加、減、乘、商、余運算呢?第十一頁,共六十八頁,2022年,8月28日什么是關系代數(shù)(續(xù))關系代數(shù)關系——

運算對象選擇,投影,……

——

基于關系的一組運算。歷史:關系模型創(chuàng)始人在集合代數(shù)基礎上發(fā)展而來關系代數(shù)是封閉的,任何關系運算的結(jié)果還是一個關系第十二頁,共六十八頁,2022年,8月28日什么是關系代數(shù)(續(xù))關系運算的分類基本運算選擇;投影;笛卡兒積;集合并;集合差;更名附加運算(非基本的,可以用基本運算的組合來替換)集合交;自然連接;除;賦值擴展運算(前兩種基礎上對運算能力進行擴展和增強)廣義投影;外連接;聚集運算一元運算輸入為一個關系二元運算輸入為兩個關系第十三頁,共六十八頁,2022年,8月28日選擇運算()–

例子關系

rABCDA=B∧D>5

(r)ABCD123710第十四頁,共六十八頁,2022年,8月28日選擇運算()選擇運算(一元)選擇滿足下標謂詞(條件)的元組

p(r)={t|trandp(t)}

t是元組,{t|……}表示滿足該條件的元組集合,即一個關系(可能未命名)輸入關系r用圓括號括起來下標p稱為選擇謂詞。它是一個布爾表達式,由以下組成:(r的)屬性常量運算符:(與),(或),(非),=,,>,<,<=,*,/,+,-,…第十五頁,共六十八頁,2022年,8月28日選擇運算()(續(xù))選擇運算的結(jié)果一個(無名字的)關系,保留輸入關系的全部屬性,但只包含那些滿足條件的元組選擇運算的例子:

sex=‘Male’

(student)student-nonamesex1JonesMale2SmithMale3KateFemalestudentstudent-nonamesex1JonesMale2SmithMale?第十六頁,共六十八頁,2022年,8月28日思考下列選擇運算的結(jié)果是什么?

1=1(student)student-nonamesex1JonesMale2SmithMale3KateFemale?student-nonamesex1JonesMale2SmithMale3KateFemalestudent第十七頁,共六十八頁,2022年,8月28日思考下列選擇運算的結(jié)果是什么?

1=2

(student)student-nonamesex1JonesMale2SmithMale3KateFemalestudent?

×第十八頁,共六十八頁,2022年,8月28日思考下列選擇運算的結(jié)果是什么?

1=2

(student)student-nonamesex?√student-nonamesex1JonesMale2SmithMale3KateFemalestudent第十九頁,共六十八頁,2022年,8月28日投影運算()–

例子關系

rABC102030401112AC1112AC112A,C(r)第二十頁,共六十八頁,2022年,8月28日投影運算()投影運算(一元)從輸入關系r,產(chǎn)生一個僅包含r中某些屬性的新關系。并消去重復元組

A1,A2,…,Ak(r)={t[A1,A2,…,Ak

]|tr}

t[A1,A2,…,Ak

]是一個新元組,僅包含原來t的A1,A2,…,Ak屬性值下標A1,A2,…,Ak是那些我們希望在結(jié)果中出現(xiàn)的屬性第二十一頁,共六十八頁,2022年,8月28日投影運算()(續(xù))投影運算的輸出一個(無名字)的關系,包含指定的那些屬性,而元組數(shù)量與輸入關系相比可能相同,也可能要少(消除重復元組時)

投影運算的例1

name,class

(student)student-nonameclass1JonesA12SmithA23KateA2student?nameclassJonesA1SmithA2KateA2第二十二頁,共六十八頁,2022年,8月28日投影運算()(續(xù))投影運算的例2

class(student)student-nonameclass1JonesA12SmithA23KateA2student?classA1A2第二十三頁,共六十八頁,2022年,8月28日并,交,差運算–

例子關系r,s:

rs:AB121AB23rsAB1213AB12213r–s:AB11AB2rs:第二十四頁,共六十八頁,2022年,8月28日并,交,差運算并,交,差運算(二元)r

s的結(jié)果是出現(xiàn)在r或者s或者兩者中的元組集合

r

s={t|trorts}

同時出現(xiàn)在r和s的元組,在結(jié)果中只出現(xiàn)一次r-s的結(jié)果是在r中出現(xiàn),但是不在s中出現(xiàn)的元組集合

r

-s={t|trandts}rs的結(jié)果是在r中以及在s中同時出現(xiàn)的元組集合

r

s={t|t

randt

s}第二十五頁,共六十八頁,2022年,8月28日并,交,差運算(續(xù))并非任意兩個關系都可以進行交/并/差運算!為使r

s/

r

-s/

r

s有效,必須滿足以下條件1、r和s的屬性數(shù)目相等2、r和s的對應屬性相容(名字可不同,但類型相同或相近)r的第1個屬性和s的第1個屬性相容,r的第2個屬性和s的第2個屬性相容……并,交,差運算的輸出一個(無名字的)新關系,屬性名以第一個輸入關系r為準第二十六頁,共六十八頁,2022年,8月28日并,交,差運算(續(xù))并運算的例1

rsABC367257723443rsABC443345257ABC367257723443345?第二十七頁,共六十八頁,2022年,8月28日并,交,差運算(續(xù))并運算的例2

rsABC367257723443rsCDE443345257ABC367257723443345?第二十八頁,共六十八頁,2022年,8月28日思考r

s=s

r,對么

?

第二十九頁,共六十八頁,2022年,8月28日并,交,差運算(續(xù))差運算的例子

r-sABC367257723443rsABC443345257ABC367723?第三十頁,共六十八頁,2022年,8月28日并,交,差運算(續(xù))交運算的例子

rsABC367257723443rsABC443345257ABC443257?第三十一頁,共六十八頁,2022年,8月28日思考關系代數(shù)/集合代數(shù)中,并和差是基本運算,但是交卻是附加運算。為什么?RSR-SR-(R-S)R

S第三十二頁,共六十八頁,2022年,8月28日思考我們可以用表達式R-(R-S)來重寫RS

,即用差運算來代替交運算。交運算是可替代的,所以它是非基本(附加)的,而并、差運算不可替代,所以是基本的。RSR-SR-(R-S)R

S第三十三頁,共六十八頁,2022年,8月28日笛卡兒積運算(x)–

例子關系r,s:rx

s:AB12AB11112222CD1010201010102010EaabbaabbCD10102010Eaabbrs第三十四頁,共六十八頁,2022年,8月28日笛卡兒積運算(x)笛卡爾積運算(二元)r

×s的結(jié)果是所有這樣的元組對集合:一個元組來自r,另一個來自s

r

×

s={tq|trandqs}

元組對tq

表示將兩個元組t和q連接起來得到的一個新元組第三十五頁,共六十八頁,2022年,8月28日笛卡兒積運算(x)(續(xù))笛卡兒積運算的輸出設若r有A個屬性,s有B個屬性,那么r

×s:有A+B個屬性,前A個來自r,后B個來自s設若r有X個元組,s有Y個元組,那么r

×s:有X×Y個元組(X個元組和Y個元組共有X×Y種可能組合)第三十六頁,共六十八頁,2022年,8月28日笛卡兒積運算(x)(續(xù))笛卡兒積運算的例1

rxsAB12111122221010201010102010aabbaabbCD10102010EaabbABCDErs第三十七頁,共六十八頁,2022年,8月28日笛卡兒積運算(x)(續(xù))要點:屬性重名時,加上關系名前綴如果r和s有屬性同名,那么r

×s中勢將包含兩個重名的屬性。為了區(qū)別這些屬性,需要在它們前面加上原來的關系名作為前綴(r.或s.)對于只出現(xiàn)在r中的屬性名,或者只出現(xiàn)在s中的屬性名,在r

×s的結(jié)果關系中不加上關系名前綴第三十八頁,共六十八頁,2022年,8月28日笛卡兒積運算(x)(續(xù))AR.BR.CS.BS.CD123456R×SABC123RBCD456S笛卡兒積運算的例2第三十九頁,共六十八頁,2022年,8月28日運算的復合:關系代數(shù)表達式一個關系運算+輸入關系,本身就是一個簡單的關系代數(shù)表達式例如,rxs,1=1(r)可以用多個運算的復合來構建復雜的關系代數(shù)表達式例如,A=C(rxs)AB12CD10102010EaabbrsAB11112222CD1010201010102010Eaabbaabbrxs第四十頁,共六十八頁,2022年,8月28日運算的復合:關系代數(shù)表達式(續(xù))ABCDE122102020aabAB11112222CD1010201010102010EaabbaabbA=C(rxs)第四十一頁,共六十八頁,2022年,8月28日笛卡爾積是連接兩個關系的元組生成結(jié)果,這種連接是無條件(任意)的如果希望兩個關系的元組相連接時遵循一定的條件,則可以使用(θ)連接運算第四十二頁,共六十八頁,2022年,8月28日連接運算連接運算(又稱θ連接,二元)從兩個關系的笛卡爾積中選取屬性間滿足一定條件的元組

r

s={tq|trandqsand

tr[A]θts[B]}

A和B:分別為R和S上度數(shù)相等且可比的屬性組θ:比較運算符AθB第四十三頁,共六十八頁,2022年,8月28日連接運算(續(xù))連接運算的例子R

S

C<E第四十四頁,共六十八頁,2022年,8月28日連接運算(續(xù))應用舉例:S:學生表;C:班級表;問:所有學生的姓名和班主任?姓名班主任小張老王小劉老陳小李老王姓名班號小張1小劉2小李1S班號班主任1老王2老陳C姓名,班主任

(SC)S.班號=C.班號第四十五頁,共六十八頁,2022年,8月28日連接運算-等值連接兩類特殊連接運算等值連接:θ為“=”的連接運算,即從輸入關系R與S的廣義笛卡爾積中選取A、B屬性值相等的那些元組

r

s={tq|trandqsand

tr[A]=ts[B]}

A=B第四十六頁,共六十八頁,2022年,8月28日連接運算-等值連接(續(xù))等值連接的例子R

S

R.B=S.B第四十七頁,共六十八頁,2022年,8月28日連接運算-自然連接自然連接():一種特殊的連接運算,要求兩個關系連接的元組在同名屬性上相等,并且在連接后的結(jié)果中去掉重復的同名屬性。自然連接運算的輸出一個(無名字的)新關系,包含r和s的所有屬性,但要去除多余的同名屬性。新關系的元組,由那些匹配的r元組和s元組(在同名屬性上取相同值)連接而成,并且要去掉多余的同名屬性值

第四十八頁,共六十八頁,2022年,8月28日連接運算-自然連接(續(xù))自然連接運算的例子rABCDa1c3b2d4c3e6BDE36f24g36hrssABCDEb2d4gc3e6fc3e6h第四十九頁,共六十八頁,2022年,8月28日連接運算-自然連接(續(xù))自然連接可等價表示為其它運算組成的式子,例如:

r(A,B,C,D),s(B,D,E)r

s

A,r.B,C,r.D,E(r.B=s.Br.D=s.D(rxs))

第五十頁,共六十八頁,2022年,8月28日重命名運算()大多數(shù)關系運算(關系表達式)的結(jié)果是一個無名字的關系重命名運算(一元)的作用允許我們對關系運算/關系代數(shù)表達式的結(jié)果進行命名,以便后面引用給一個已經(jīng)有名字的關系起另一個新名字,允許我們通過多個名字來引用它

格式1:

x(E)

E是一個關系代數(shù)表達式,也可以是單個關系下標x是一個名字,表示將E的結(jié)果關系命名為x第五十一頁,共六十八頁,2022年,8月28日重命名運算(續(xù))student-nonamesex1JonesMale2SmithMale3KateFemalestudentstudent-nonamesex1JonesMale2SmithMale?

sex=“Male”

(student)student-nonamesex1JonesMale2SmithMaleboy

boy(

sex=“male”

(student))第五十二頁,共六十八頁,2022年,8月28日重命名運算(續(xù))格式2:

x(A1,A2,…,An)(E)

下標表示將E的結(jié)果關系命名為x,同時屬性依次命名為A1,A2,…,An思考:下標中列出的屬性個數(shù)n可以任意不受限制么?第五十三頁,共六十八頁,2022年,8月28日重命名運算(續(xù))AR.BR.CS.BS.CD123456R×SABC133RBCD456S

V(RA,RB,RC,SB,SC,SD)

(

R×S)RARBRCSBSCRD123456V第五十四頁,共六十八頁,2022年,8月28日賦值運算()賦值運算編程語言中的賦值運算:將一個表達式的結(jié)果賦給變量關系代數(shù)中的賦值運算:將一個關系代數(shù)表達式的結(jié)果賦給關系(變量)形式varE表示將右邊表達式E的結(jié)果,賦予左邊的關系(變量)var第五十五頁,共六十八頁,2022年,8月28日賦值運算(續(xù))用途對復雜的關系代數(shù)表達式,可以用如下方法簡化將其中的一些子式分解出來,并賦值給“中間關系”

再利用中間關系代替這些子式重寫原表達式第五十六頁,共六十八頁,2022年,8月28日賦值運算(續(xù))例:

A(A=1(r.A,s.B(rxs))–

B=2(r.A,s.B(rxs)))A(r)

可以重寫為

temp1

r.A,s.B(rxs)

result=A(A=1(temp1)–

B=2(temp1))A(r)

temp1

r.A,s.B(rxs)

temp2

A=1(temp1)–

B=2(temp1)

result=A

(temp2)A(r)第五十七頁,共六十八頁,2022年,8月28日除運算(÷)除運算(二元)笛卡爾積的逆運算設有關系R,S,T,滿足T=RxS,則

T÷R=ST÷S=RT÷R有效的充分必要條件:T包含R的全部屬性,并額外含有不在R中的屬性——這些屬性將會出現(xiàn)在除的結(jié)果中第五十八頁,共六十八頁,2022年,8月28日除運算(續(xù))更一般地,如果RxS

T,則

溫馨提示

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

評論

0/150

提交評論