關(guān)系代數(shù)重點(diǎn)_第1頁
關(guān)系代數(shù)重點(diǎn)_第2頁
關(guān)系代數(shù)重點(diǎn)_第3頁
關(guān)系代數(shù)重點(diǎn)_第4頁
關(guān)系代數(shù)重點(diǎn)_第5頁
已閱讀5頁,還剩10頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第二章關(guān)系代數(shù)教學(xué)目的:本章實(shí)際上研究的是關(guān)系的運(yùn)算。學(xué)習(xí)目的:關(guān)系運(yùn)算是設(shè)計(jì)關(guān)系數(shù)據(jù)庫操作語言的基礎(chǔ),因?yàn)槠渲械拿恳粋€(gè)詢問往往表示成一個(gè) 關(guān)系運(yùn)算表達(dá)式,在我們的課程中,數(shù)據(jù)及聯(lián)系都是用關(guān)系表示的,所以實(shí)現(xiàn)數(shù)據(jù)間的聯(lián) 系也可以用關(guān)系運(yùn)算來完成。通過本章學(xué)習(xí),應(yīng)重點(diǎn)掌握:(1) 關(guān)系數(shù)據(jù)庫的基本概念;(2) 如何用關(guān)系代數(shù)表達(dá)式來表達(dá)實(shí)際查詢問題;(3) 如何用元組演算表達(dá)式來表達(dá)實(shí)際查詢問題;(4) 如何用域演算表達(dá)式來表達(dá)實(shí)際查詢問題;(5) 如何將關(guān)系代數(shù)表達(dá)式轉(zhuǎn)換為元組演算表達(dá)式或轉(zhuǎn)換為域演算表達(dá)式。 了解和掌握關(guān)系數(shù)據(jù)結(jié)構(gòu)中涉及到的域、笛卡兒積、關(guān)系模式等有關(guān)內(nèi)容的含義; 掌握關(guān)系的

2、實(shí)體完整性和參照完整性的定義;掌握關(guān)系代數(shù)中的并、交、差、笛卡兒積運(yùn)算,以及選擇、投影和連接運(yùn)算。 教學(xué)重點(diǎn): 關(guān)系的實(shí)體完整性和參照完整性的定義; 關(guān)系代數(shù)中的并、交、差、笛卡兒積運(yùn)算,以及選擇、投影和連接運(yùn)算。 教學(xué)難點(diǎn):關(guān)系代數(shù)中的并、交、差、笛卡兒積運(yùn)算,以及選擇、投影和連接運(yùn)算。 教學(xué)方法:實(shí)例法 教學(xué)內(nèi)容:如下: 2.1關(guān)系模型關(guān)系模型是一種簡單的二維表格結(jié)構(gòu),每個(gè)二維表稱做一個(gè)關(guān)系,一個(gè)二維表的表頭, 即所有列的標(biāo)題稱為一個(gè)元組,每一列數(shù)據(jù)稱為一個(gè)屬性,列標(biāo)題稱估屬性名。同一個(gè)關(guān) 系中不允許出現(xiàn)重復(fù)元組和相同屬性名的屬性。1 關(guān)系模型組成關(guān)系模型由關(guān)系數(shù)據(jù)結(jié)構(gòu)、關(guān)系操作集合和關(guān)系

3、完整性約束三部分組成。關(guān)系操作分 為兩大部分如圖所示。查詢其它選擇 Select增加 In sert投影 Project刪除 Delete連接 Join修改 Update除 Divide并 Union交In tersecti on差Differe nee2.關(guān)系操作的特點(diǎn)關(guān)系操作的特點(diǎn)是操作對(duì)象和操作結(jié)果都是集合。而非關(guān)系數(shù)據(jù)模型的數(shù)據(jù)操作方式則為一次一個(gè)記錄的方式。關(guān)系數(shù)據(jù)語言分為三類:(1) 關(guān)系代數(shù)語言:如ISBL;(2) 關(guān)系演算語言:分為元組關(guān)系演算語言(如Alpha , Quel)、域關(guān)系演算語言(如QBE);(3) 具有關(guān)系代數(shù)和關(guān)系演算雙重特點(diǎn)的語言:如SQL3.關(guān)系數(shù)據(jù)結(jié)構(gòu)及

4、其形式化定義(1) 域定義 域是一組具有相同數(shù)據(jù)類型的值的集合。(2) 笛卡爾積定義 設(shè)D, D2, D,,D,為任意集合,定義D, D2, D,,Dn的笛卡爾積為Di x D2x D3x-x Dn = (di , d2, d3,dn)di Di , i = 1, 2, 3,n其中每一個(gè)元素(dl , d2, d3,dn,)叫做一個(gè)n元組(n 一 tuple)或簡稱為元組 (Tuple),每一個(gè)值di叫做一個(gè)分量(Component),若Di(i = l , 2,n)為有限集,其基數(shù) (Cardinal number) 為 mi(i=l , 2, 3,,n),n則Dx D2x Dxx Dn的基

5、數(shù)M為M =門mii 3笛卡爾積可以用二維表來表示。例 D仁0 , 1 , D2= a , b, c 則:D1x D2= (0 , a) , (0 , b) , (0 , c), 表來表示,如圖2 2所示。(3)關(guān)系的形式化定義及相關(guān)名詞 定義 D 1x D2 x D xx Dn的子集叫做DD20a0b0c1a1b1c在域 D,D2,D3,Dn上的關(guān)(1 , a) , (1 , b), (1 , c)用二維系,用R(D1,D2,D3,Dn),稱關(guān)系R為n元關(guān)系。候選碼 若關(guān)系中的某一屬性組的值能惟一的標(biāo)識(shí)一個(gè)元組,則稱該屬性組為候選碼(Ca ndidate Key)。主碼若一個(gè)關(guān)系有多個(gè)候選碼

6、,則選定其中一個(gè)為主碼(PrimaryKey)。主碼諸屬性稱為主屬性。不包含在任何候選碼中的屬性稱為非碼屬性(Non Key attribute)。關(guān)系模型的所有屬性組是這個(gè)關(guān)系模式的候選碼,稱為全碼(Allkey)(4 )關(guān)系的三種類型基本關(guān)系(通常又稱為基本表或基表),是實(shí)際存在的表,它是實(shí)際存儲(chǔ)數(shù)據(jù)的邏輯 表示查詢表,查詢結(jié)果對(duì)應(yīng)的表視圖表,是由基本表或其他視圖表導(dǎo)出的表,也常稱為虛表(5)基本關(guān)系有以下五條性質(zhì)每一列中的分量必須是同一類型的數(shù)據(jù),來自同一個(gè)域?qū)傩圆荒苤孛辛械捻樞驘o關(guān)任何兩個(gè)元組不能完全相同每一個(gè)分量必須是不可再分的數(shù)據(jù)項(xiàng)3.關(guān)系完整性關(guān)系模型的完整性規(guī)則是對(duì)關(guān)系的某種

7、約束條件。關(guān)系的完整性共分為三類: 實(shí)體完整性、參照完整性、用戶定義完整性。(1) 實(shí)體的完整性 (Entity Integrity) 規(guī)定:若屬性 A 是基本關(guān)系 R 的主屬性,則屬性 A 不能取空值。即主屬性不能為空。(2) 參照的完整性 (Referential Integrity) 規(guī)定:若 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è)元組的主碼值。(3) 用戶定義的完整性 (User defined Integr

8、ity) :就是針對(duì)某一具體的關(guān)系數(shù)據(jù)庫的 約束條件,由應(yīng)用的環(huán)境決定。4關(guān)系模式 在數(shù)據(jù)庫中要區(qū)分型和值。關(guān)系數(shù)據(jù)庫中的型也稱為關(guān)系數(shù)據(jù)庫模式,是關(guān)系數(shù)據(jù)庫 的描述。它包括若干域的定義以及在這些域上定義的若干關(guān)系模式。關(guān)系數(shù)據(jù)庫的值是這 些關(guān)系模式在某一時(shí)刻對(duì)應(yīng)的關(guān)系的集合,通常稱之為關(guān)系數(shù)據(jù)庫。定義 關(guān)系的描述稱為關(guān)系模式 (Relation Schema) ??梢孕问交谋硎緸镽(U , D, dom, F)其中,R表示關(guān)系名;U是組成該關(guān)系的屬性名集合;D是屬性的域;dom是屬性向域的映像集合; F 為屬性間數(shù)據(jù)的依賴關(guān)系集合。通常將關(guān)系模式簡記為:R(U)或 R(AI , A2, A

9、3,,An。)其中R為關(guān)系名,A1, A2, A3,,An。為屬性名,域名、屬性向域的映像常常直接 說明屬性的類型、長度。例 定義學(xué)生與課程關(guān)系模式及主碼如下:(1) S(Sno, Sname, SD, SA) Key(Sno)(2) C(Cno, Cname, PCno)Key(Cno) Dom(PCno)=Cno這里,Pcno是先行課程號(hào),來自 Cno域,但由于Pc no屬性名不等于 Cno值域名,所以 要用Dom來定義。能否將Pcno直接改為Cno呢? 不能,因?yàn)樵陉P(guān)系模型中,各列屬性必須取相異的名字。(3) SC(Sno, Cno, Grade)Key(Sno, Cno)其中,SC關(guān)系

10、中的Sno、Cno又分別為外碼。因?yàn)樗鼈兎謩e是S、C關(guān)系中的主碼。2 2 關(guān)系代數(shù) 關(guān)系代數(shù)是一種抽象的查詢語言,是關(guān)系數(shù)據(jù)操縱語言的一種傳統(tǒng)表達(dá)方式。它是用 對(duì)關(guān)系的運(yùn)算來表達(dá)查詢的。關(guān)系運(yùn)算符有四類:集合運(yùn)算符,專門的關(guān)系運(yùn)算符,算術(shù)比較符和邏輯運(yùn)算符, 如圖 2 3 所示。運(yùn)算符含義運(yùn)算符含義并大于集合-差比較大于等于運(yùn)算符交運(yùn)算符S trt s | tR A t S A t r A 0 t sB A* b=其中:二是比較運(yùn)算符,A和B分別為R和S上度數(shù)相等,且可比的屬性組。 等值連接:當(dāng) 二為“=”時(shí),稱之為等值連接,記為:R 関 tGs | t ER AtsSAtrA = t sB

11、A=B = 自然連接:是一種特殊的等值連接,它要求兩個(gè)關(guān)系中進(jìn)行比較的分量必須是相 同的屬性組,并且在結(jié)果中將重復(fù)屬性列去掉。若R和S具有相同的屬性組 B,則自然連接可以記為:R S = t7t s | t r 三 R A t S A t r B = t sB 特別需要說明的是:一般連接是從關(guān)系的水平方向運(yùn)算,而自然連接不僅要從關(guān)系 的水平方向,而且要從關(guān)系的垂直方向運(yùn)算。因?yàn)樽匀贿B接要去掉重復(fù)屬性,如果沒 有重復(fù)屬性,那么自然連接就轉(zhuǎn)化為笛卡爾積。(4) 除(Divisio n);除運(yùn)算是同時(shí)從關(guān)系的水平方向和垂直方向進(jìn)行運(yùn)算。給定關(guān)系R(X, Y)和S(Y, Z), X, Y, Z為屬性組

12、。R- S應(yīng)當(dāng)滿足元組在 X上的分量值 x的像集Yx包含S在Y上投影的集合。記作:R - S = t r X | t r R A 二 ySYx其中:Yx為x在R中的像集,x = tr X。且R- S的結(jié)果集的屬性組為 X。(5) 需要注意的四個(gè)問題: 關(guān)系代數(shù)的五個(gè)基本操作為:并、差、笛卡爾積、投影和選擇。其它的操作都可以 由5個(gè)基本的操作導(dǎo)出,因此它們構(gòu)成了關(guān)系代數(shù)完備的操作集。例如兩個(gè)關(guān)系R與S的交運(yùn)算等價(jià)于:R - S= R 一 (R S)或 R S= S 一 (S R)所以交運(yùn)算不是一個(gè)獨(dú)立的運(yùn)算。 關(guān)系代數(shù)在使用的過程中對(duì)于只涉及選擇、投影、連接的查詢可用表達(dá)式:二 A1,AK(;f

13、(S R)l 或二 A1,AK(匚 f(S X R) 對(duì)于否定操作,一般要用差操作表示,例如不學(xué)“操作系統(tǒng)”課的學(xué)生姓名,通常 不要用如下的形式表示:兀 Sname( b Cnam辱操作系統(tǒng))(S SCCXC)而采用如下形式:二 Sname - 二 Sname (二 Cname =操作系統(tǒng) )(S SC C ) 對(duì)于檢索具有全部特征的操作,一般要用除法操作表示, 例如查詢選修全部課程的學(xué)生學(xué)號(hào)。通常不要用如下的形式表示;二 Sn o,C no (SC 二 Cn o(C)而采用如下形式:二 Sn o,C no (SC)二 Cn o(C)2. 3關(guān)系演算關(guān)系演算分為元組演算和域演算,下面分別介紹。

14、元組演算ABCabccde元組達(dá)式在元組演算中,其元組表達(dá)式中的變量是以 為單位的,其一般形式為:t | P(t)其中:t是元組變量,P(t)是關(guān)系演算公式。 下面將五種基本的關(guān)系運(yùn)算用元組演算表 表示如下。(1) 并 RUS= t | R(t) V S(t)(2) 差 R- S= t | R(t)- S(t)(3) 笛卡爾積R x S= t (n+m) | (u(n) ) ( -I v(m) ( R(u) S(v) t1= u1 tn = untn+1= v1tn+m= vm)R x S后生成的新關(guān)系是 n+m目關(guān)系。t1= ui 1tk = 投影 二 i1,i2,ik(R) = t (k)

15、 | ( u )(R(u) u (ik)(5) 選擇-(R) = t | R(t)F域演算在域演算中,表達(dá)式中的域變量是表示域的變量,可將關(guān)系的屬性名視為域變量,域 演算表達(dá)式的一般形式為:t1,t k | P(t 1,t k)其中,11 tk是域變量,P(t 1t k)是域演算公式。關(guān)系代數(shù)、元組演算、域演算三類關(guān)系運(yùn)算的表達(dá)能力是等價(jià)的,可以互相轉(zhuǎn)換???以證明如下三個(gè)結(jié)論:(1) 每一個(gè)關(guān)系代數(shù)表達(dá)式有一個(gè)等價(jià)的安全的元組演算表達(dá)式;(2) 每一個(gè)安全的元組演算表達(dá)式有一個(gè)等價(jià)的安全的域演算表達(dá)式;(3) 每一個(gè)安全的域演算表達(dá)式有一個(gè)等價(jià)的關(guān)系代數(shù)表達(dá)式。2 1設(shè)有關(guān)系R, S如圖2

16、4所示。請(qǐng)求出:RUS R S, Rc S, Rx S,兀 a,c(R) , a ab(R)。ABCabcbadcdedfgRSABCbaddfgfhkABCabcbadcdedfgfhk解 RUS , R S, R S, RX S,二 a,c(R),:二ab(R)如圖所示:RUSR SACacbdcedgABCb;SdcdeABCbadR.AR 八R.BR.CS.AS.BS.Cabcbadabcdfgabcfhkbadbadbaddfgbadfhkcdebadcdedfgcdefhkdfgbaddfgdfgdfgfhk二 A,c (R)匚 ab(R)例2 2設(shè)有關(guān)系R, S如圖2 4所示,求

17、:Hr.bABCabcbadcdedfgRSABCbaddfgfhk解 本題的F公式為R.AS.B,意為將R關(guān)系中屬性A的值小于S關(guān)系中屬性B的值的 元組取出來作為結(jié)果集的元組。結(jié)果集的前三個(gè)屬性為:R.A,R.B,R.C結(jié)果集的后三個(gè)屬性為:S.A,S.B,S.C結(jié)果如圖所示。R.AR.BR.CS.AS.BS.Cabcdfgabcfhkbacdfgbadfhkcdedfgcdefhkdfgdfgdfgfhk例2-3設(shè)有關(guān)系R, S如圖2-7所示,求:RgRSABCABCBADCDEDFGfhkACDacddfgcekbdg解 本題要求R與S關(guān)系的自然連接,自然連接是一種特殊的等值連接,它要求

18、兩個(gè)關(guān)系中進(jìn)行比較的分量必須是相同的屬性組,并且在結(jié)果中將重復(fù)屬性列去掉。本題R與S關(guān)系中相同的屬性組為 AC,因此,結(jié)果中的屬性列應(yīng)為:ABCD其結(jié)果如圖2 8所示。分析1根據(jù)除法定義,此題的 X有屬性AB, Y有屬性CD那么,R+ S應(yīng)當(dāng)滿足元組 在X上的分量值x的像集Yx包含S在Y上投影的集合。而結(jié)果集的屬性為ABoABCDabcdabefabhkbdefbddlckcdckef例2-4設(shè)有關(guān)系R, S如圖2-9所示,求:R- SRSCDcdefR S.ABCDabcdbadgcdek分析1根據(jù)除法定義,此題的X有屬性AB, Y有屬性CD,那么,R+ S應(yīng)當(dāng)滿足元組在 X上的分量值x的像

19、集Yx包含S在Y上投影的集合。而結(jié)果集的屬性為ABo分析2在關(guān)系R中,屬性組X(即AB)可以取3個(gè)值(a , b) , (b , d) , (c , k),其中:(a, b)的像集為:(c , d) , (e , f) , (h , k)(b, d)的像集為:(e , f) , (d , 1)(c, k)的像集為:(c , d) , (e , f)分析3 S在Y(即CD)的投影為(c , d) , (e , f)從上分析可以看出,只有(a , b) , (c , k)包含了 S在Y(即CD)的投影,所以,R- S=(a , b) , (c , k) o結(jié)果如圖所示:ABabckR S例2 5設(shè)

20、有學(xué)生課程數(shù)據(jù)庫中包含三個(gè)關(guān)系:學(xué)生關(guān)系S、課程關(guān)系 C、學(xué)生選課關(guān)系SC如圖211(a) , (b) , (c)所示。請(qǐng)用關(guān)系代數(shù)表達(dá)式、元組演算表達(dá)式查詢?nèi)缦聠栴}:CnoCn amePcnoCredit1數(shù)據(jù)庫332數(shù)學(xué)43操作系統(tǒng)444數(shù)據(jù)結(jié)構(gòu)735數(shù)字通信636信息系統(tǒng)147程序設(shè)計(jì)22CSnoCnoGrade3001193300128430013843002283300239310421841042282SCSnoSn ameSexSDAge3001王平女計(jì)算機(jī)183002張勇男計(jì)算機(jī)194003黎明女機(jī)械184004劉明遠(yuǎn)男機(jī)械191041趙國慶男通信201042樊建璽男通信20S

21、(1)檢索選修課程名為“數(shù)學(xué)”的學(xué)生號(hào)和學(xué)生姓名解:檢索選修課程名為“數(shù)學(xué)”的學(xué)生號(hào)和學(xué)生姓名:關(guān)系代數(shù)表達(dá)式為:兀 Sno,Sname( Cname=數(shù)學(xué)SCXC)因?yàn)镾 竝 K 為自然連接,所以去掉重復(fù)列后的結(jié)果如圖(a) , (b)所示。SnoSn ameSexSDAgeCnoGradeCn amePcnoCredit3001王平女:計(jì)算18193數(shù)據(jù)庫333001王平女機(jī)18284數(shù)學(xué)43001王平女計(jì)算18384操作系統(tǒng)443002張勇男機(jī)19283數(shù)學(xué)43002張勇男計(jì)算19393操作系統(tǒng)441042樊建璽男機(jī)20184數(shù)據(jù)庫331042樊建璽男計(jì)算機(jī)計(jì)算機(jī)通信通信20282數(shù)學(xué)4

22、(a)SnoSn ame3001王平3002張勇1042樊建璽(b)從圖中可見我們可將上述的關(guān)系代數(shù)表達(dá)式寫為:CnoCn amePcnoCredit1數(shù)據(jù)庫332數(shù)學(xué)43操作系統(tǒng)444數(shù)據(jù)結(jié)構(gòu)735數(shù)字通信636信息系統(tǒng)147程序設(shè)計(jì)22SnoCnoGrade3001193300128430013843002283300239310421841042282-1,2( - 8=數(shù)學(xué)(S SC 一 C )元組演算表達(dá)式為:t |(u)(v)(-1 w)S(u)SC(v)C(w)u1 =V1v2=w1w2=數(shù)學(xué)tl = u(l)t2=u2例2 6給定學(xué)生數(shù)據(jù)庫,有s,SSC, C三個(gè)關(guān)系如圖211所示:SnoSn ameSexSDAge3001王平女計(jì)算機(jī)183002張勇男計(jì)算機(jī)194003黎明女機(jī)械184004劉明遠(yuǎn)男機(jī)械191041趙國慶男通信201042樊建璽男通信202. 4查詢優(yōu)化查詢實(shí)例要查詢學(xué)生“李明”選修的所有課程的成績。有幾種查詢表示:E1=nscore (s.sno=sc.snoANDs.sname=李明” (Student x SC)E2=nscore (s.sn

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論