數(shù)據(jù)庫系統(tǒng)基礎(chǔ)教程(第5章)_第1頁
數(shù)據(jù)庫系統(tǒng)基礎(chǔ)教程(第5章)_第2頁
數(shù)據(jù)庫系統(tǒng)基礎(chǔ)教程(第5章)_第3頁
數(shù)據(jù)庫系統(tǒng)基礎(chǔ)教程(第5章)_第4頁
數(shù)據(jù)庫系統(tǒng)基礎(chǔ)教程(第5章)_第5頁
已閱讀5頁,還剩58頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、1第第5章章 關(guān)系代數(shù)關(guān)系代數(shù)第5章 關(guān)系代數(shù)2關(guān)系模型中的運算關(guān)系模型中的運算n在關(guān)系模式設(shè)計已確定的前提下,在這些關(guān)系在關(guān)系模式設(shè)計已確定的前提下,在這些關(guān)系上可進(jìn)行哪些運算?得到怎樣的新關(guān)系?上可進(jìn)行哪些運算?得到怎樣的新關(guān)系?n關(guān)系操作有兩種不同的表示方式:代數(shù)的和邏關(guān)系操作有兩種不同的表示方式:代數(shù)的和邏輯的。輯的。n關(guān)系代數(shù)不僅可以表示運算,也可以表示對數(shù)關(guān)系代數(shù)不僅可以表示運算,也可以表示對數(shù)據(jù)庫的約束。據(jù)庫的約束。n關(guān)系操作可在無重復(fù)元組的集合關(guān)系操作可在無重復(fù)元組的集合set上運算,上運算,也能在有重復(fù)元組的包也能在有重復(fù)元組的包bag上運算。上運算。 第5章 關(guān)系代數(shù)35.

2、1 關(guān)系代數(shù)操作關(guān)系代數(shù)操作第5章 關(guān)系代數(shù)4什么是關(guān)系代數(shù)什么是關(guān)系代數(shù)Relational Algebran在關(guān)系模型上定義的一組標(biāo)準(zhǔn)運算,可在關(guān)系模型上定義的一組標(biāo)準(zhǔn)運算,可由已知的關(guān)系計算得到新的關(guān)系。由已知的關(guān)系計算得到新的關(guān)系。n注意:結(jié)果關(guān)系的屬性是什么?結(jié)果關(guān)注意:結(jié)果關(guān)系的屬性是什么?結(jié)果關(guān)系中的元組是什么?系中的元組是什么?n考慮各種運算的特征??紤]各種運算的特征。第5章 關(guān)系代數(shù)5關(guān)系代數(shù)有哪些運算關(guān)系代數(shù)有哪些運算n四大類共九種:四大類共九種:n一般集合運算:并、交、差一般集合運算:并、交、差 (在兩個相同模式的關(guān)系(在兩個相同模式的關(guān)系上進(jìn)行)上進(jìn)行)n刪減運算:在一

3、個關(guān)系上進(jìn)行刪減運算:在一個關(guān)系上進(jìn)行n投影:刪去某些屬性投影:刪去某些屬性(列列)n選擇:刪去某些元組選擇:刪去某些元組(行行)n合并運算:在兩個關(guān)系之間進(jìn)行合并運算:在兩個關(guān)系之間進(jìn)行n笛卡爾積:兩個關(guān)系中所有元組的所有可能的組合笛卡爾積:兩個關(guān)系中所有元組的所有可能的組合(無條件無條件)。n連接:兩個關(guān)系中元組有選擇條件的組合。連接:兩個關(guān)系中元組有選擇條件的組合。n自然連接自然連接 笛卡爾積加投影和選擇運算笛卡爾積加投影和選擇運算n連接連接 笛卡爾積加選擇運算笛卡爾積加選擇運算n改名:在一個關(guān)系上進(jìn)行,改變關(guān)系或?qū)傩缘拿?,改名:在一個關(guān)系上進(jìn)行,改變關(guān)系或?qū)傩缘拿郑挥绊懫渲械脑?/p>

4、組。而不影響其中的元組。第5章 關(guān)系代數(shù)6關(guān)系中的集合運算關(guān)系中的集合運算n對于兩個關(guān)系對于兩個關(guān)系R和和S,有哪些集合運算?,有哪些集合運算?nRS = t|tR OR tS :并,由:并,由R或或S中中的元組構(gòu)成的集合,同一元組只出現(xiàn)一次。的元組構(gòu)成的集合,同一元組只出現(xiàn)一次。nRS = t|tR AND tS :交,由屬于:交,由屬于R且屬于且屬于S的元組構(gòu)成的集合。的元組構(gòu)成的集合。nR-S = t|tR AND NOT tS :差,由:差,由屬于屬于R且不屬于且不屬于S的元組構(gòu)成的集合。的元組構(gòu)成的集合。n注意:前兩者可交換,差運算不能交換。注意:前兩者可交換,差運算不能交換。 第5

5、章 關(guān)系代數(shù)7集合運算需要什么條件集合運算需要什么條件nR和和S的模式具有相同的屬性集;的模式具有相同的屬性集;n計算之前可能需調(diào)整屬性次序,先保證計算之前可能需調(diào)整屬性次序,先保證R和和S具有相同的屬性次序。具有相同的屬性次序。第5章 關(guān)系代數(shù)8例子例子n設(shè)有關(guān)系設(shè)有關(guān)系R與與S如下:如下: ABa1b1a1b2ABa1b2a2b2ABa1b1a2b2a1b2ABa1b2ABa1b1RSRSRSR-S第5章 關(guān)系代數(shù)9投影投影(projection)n對于一個關(guān)系對于一個關(guān)系R,投影產(chǎn)生一個新關(guān)系,投影產(chǎn)生一個新關(guān)系,只包含只包含R屬性集的一個子集。屬性集的一個子集。 表示為:表示為:A1,

6、A2,An (R) 結(jié)果:屬性為結(jié)果:屬性為A1,A2,An;其中元組;其中元組由由R中元組在屬性中元組在屬性A1,A2,An上的分上的分量構(gòu)成,元組不重復(fù)。量構(gòu)成,元組不重復(fù)。n關(guān)系分解時使用。關(guān)系分解時使用。 第5章 關(guān)系代數(shù)10例子例子titleyearlengthinColorstudioNameProducerC#Star WarsMighty DucksWayness World19771991199212410495TrueTrueTrueFoxDisneyParamount123456789099999titleyearLengthStar WarsMighty DucksWa

7、yness World19771991199212410495MoviesinColorTruetitle, year, length (Movie) inColor (Movie) 第5章 關(guān)系代數(shù)11選擇選擇(selection)n對于一個關(guān)系對于一個關(guān)系R,選擇產(chǎn)生一個新關(guān)系,選擇產(chǎn)生一個新關(guān)系,只包含滿足特定條件的元組。只包含滿足特定條件的元組。 表示為:表示為:c(R) 其中其中c是結(jié)果關(guān)系中每個元組都要滿足的是結(jié)果關(guān)系中每個元組都要滿足的條件。條件。 結(jié)果:保持結(jié)果:保持R屬性集且屬性次序也相同;屬性集且屬性次序也相同;元組是元組是R中滿足條件中滿足條件c的元組集合。的元組集合。第

8、5章 關(guān)系代數(shù)12如何表示條件如何表示條件n運算對象:屬性名和常量運算對象:屬性名和常量 n算術(shù)比較運算:算術(shù)比較運算: n邏輯運算:邏輯運算:NOT AND OR第5章 關(guān)系代數(shù)13例子例子TitleyearlengthinColorstudioNameProducerC#Star WarsMighty Ducks19771991124104TrueTrueFoxDisney1234567890titleyearlengthinColorstudioNameProducerC#Star Wars1977124TrueFox12345Mighty Ducks1991104TrueDisney6

9、7890Wayness World199295TrueParamount99999Movieslength 100 (Movies) length 100 AND studioName =FOX (Movies) titleyearlengthinColorstudioNameProducerC#Star Wars1977124TrueFox12345第5章 關(guān)系代數(shù)14笛卡爾積笛卡爾積n對于關(guān)系對于關(guān)系R和和S,笛卡爾積表示為:,笛卡爾積表示為:RS。 結(jié)果:屬性集是結(jié)果:屬性集是R和和S屬性集合的并集;屬性集合的并集; 區(qū)別區(qū)別R和和S中的同名屬性:中的同名屬性:“關(guān)系名關(guān)系名.屬性屬性名

10、名”。n元組是元組是R中的每個元組與中的每個元組與S中每個元組的中每個元組的組合。元組數(shù)量是組合。元組數(shù)量是MRNS。第5章 關(guān)系代數(shù)15例子例子BCD25647891011AB1234RSRSAR.BS.BCD1225612478129101134256344783491011第5章 關(guān)系代數(shù)16自然連接自然連接n對于兩個關(guān)系對于兩個關(guān)系R和和S,自然連接表示為,自然連接表示為R S 結(jié)果:結(jié)果: 屬性是屬性是R和和S中的屬性的并集,去掉同名的屬中的屬性的并集,去掉同名的屬性;性; 其元組是其元組是R和和S在同名屬性上一致的元組的所在同名屬性上一致的元組的所有組合。有組合。n確切說,設(shè)確切說

11、,設(shè)A1,A2,An是是R和和S的公共屬性,的公共屬性,當(dāng)且僅當(dāng)當(dāng)且僅當(dāng)R的元組的元組r與與S的元組的元組s在在A1,A2,An上都一致時,元組上都一致時,元組s和和r組合成為組合成為R S的一個的一個元組,稱為一個連接元組。元組,稱為一個連接元組。第5章 關(guān)系代數(shù)17例子例子BCD25647891011AB1234RSR SABCD12563478注意:注意:若若R和和S沒有同名的公共屬性,則自然連接是沒有同名的公共屬性,則自然連接是無效運算無效運算(并非空元組并非空元組)。 第5章 關(guān)系代數(shù)18例子例子BCD2342357810ABC123678978UVU VABCD1234123567

12、81097810第5章 關(guān)系代數(shù)19懸掛元組懸掛元組n若若R中元組與中元組與S中任何元組均不匹配,則中任何元組均不匹配,則在在R S中沒有該元組出現(xiàn),這種元組稱中沒有該元組出現(xiàn),這種元組稱為懸掛元組。懸掛元組在為懸掛元組。懸掛元組在R中有,在中有,在S中中也有。也有。 例如例如: 姓名姓名=張平張平(學(xué)生學(xué)生 選修選修) 或 姓名姓名=張平張平(學(xué)生學(xué)生) 選修選修第5章 關(guān)系代數(shù)20連接連接n在笛卡爾積的基礎(chǔ)上,增加條件以限制在笛卡爾積的基礎(chǔ)上,增加條件以限制元組。元組。n對于兩個關(guān)系對于兩個關(guān)系R和和S,基于條件,基于條件c的的連接連接表示為表示為 R cS,計算步驟:,計算步驟: 計算計

13、算RS ,即笛卡爾積;,即笛卡爾積; 用條件用條件c做選擇運算:做選擇運算:c(RS)。 第5章 關(guān)系代數(shù)21例子例子BCD2342357810ABC123678978UVU As0),那么,那么RS是一個是一個(r-s)元的元組集合。元的元組集合。 RS是滿足下列條是滿足下列條件的關(guān)系:其中每個元組件的關(guān)系:其中每個元組t與與S中的每個元組中的每個元組u組成的組成的新元組新元組(t,u)必須在關(guān)系必須在關(guān)系R中。中。nRS的具體計算過程:的具體計算過程: T=1,2,r-s(R) W=(TS)-R V=1,2,r-s(W) RS=T-V即即 RS=1,2,r-s(R)-1,2,r-s(1,2

14、,r-s(R)S)-R)第5章 關(guān)系代數(shù)32例子例子ABCDabcdabefabdebcefedcdedefCDcdefABabedRSRS即即 (RS)S R第5章 關(guān)系代數(shù)33綜合例子綜合例子 設(shè)有關(guān)系:設(shè)有關(guān)系: 學(xué)生學(xué)生(學(xué)號學(xué)號,姓名姓名,性別性別,年齡年齡) 選修選修(學(xué)號學(xué)號,課號課號,成績成績) 課程課程(課號課號,課名課名,教師教師) 求:求:1. 選修選修c2的學(xué)生學(xué)號的學(xué)生學(xué)號 學(xué)號學(xué)號(課號課號 = c2(選修選修)2.選修選修c2的學(xué)生學(xué)號和姓名的學(xué)生學(xué)號和姓名 學(xué)號學(xué)號,姓名姓名(課號課號 =c2 (學(xué)生學(xué)生 選修選修)第5章 關(guān)系代數(shù)34綜合例子綜合例子3. 既選

15、修課名為既選修課名為Maths的學(xué)生學(xué)號和姓名的學(xué)生學(xué)號和姓名 學(xué)號學(xué)號,姓名姓名(課名課名 = Maths(學(xué)生學(xué)生 選修選修 課程課程)4. 選修選修c1或選修或選修c2的學(xué)生學(xué)號的學(xué)生學(xué)號 學(xué)號學(xué)號(課號課號 = c1(選修選修) 學(xué)號學(xué)號(課號課號 = c2(選選修修)5. 既選修既選修c1,亦選修,亦選修c2的學(xué)生學(xué)號的學(xué)生學(xué)號 學(xué)號學(xué)號(課號課號 = c1(選修選修) 學(xué)號學(xué)號(課號課號 = c2(選選修修)第5章 關(guān)系代數(shù)35綜合例子綜合例子6. 沒選修沒選修c1的學(xué)生學(xué)號的學(xué)生學(xué)號 學(xué)號學(xué)號(選修選修) 學(xué)號學(xué)號(課號課號 = c1(選修選修)7. 學(xué)習(xí)全部課程的學(xué)生姓名學(xué)習(xí)全

16、部課程的學(xué)生姓名 姓名姓名(學(xué)生學(xué)生 (學(xué)號學(xué)號,課號課號(選修選修)課號課號(課課程程)8. 所學(xué)課程包含所學(xué)課程包含S3所學(xué)課程的學(xué)生學(xué)號所學(xué)課程的學(xué)生學(xué)號 學(xué)號學(xué)號,課號課號(選修選修)課號課號(學(xué)號學(xué)號 = S3(選修選修)第5章 關(guān)系代數(shù)36思考在銷售系統(tǒng)的情況思考在銷售系統(tǒng)的情況Customer (custid, name, prov, city,phone, unit)Salesman (empid, idno, name, gender, phone, deptid)Product (prodid, factory, type, spec, price, desc)Depart

17、ment (deptid, name, headerid)Salesitem (orderno, lineno, prodid, singlecost, quantity)Salesorder (orderno, signdate, empid, custid)第5章 關(guān)系代數(shù)37思考在銷售系統(tǒng)的情況思考在銷售系統(tǒng)的情況1.計算名為計算名為“張三張三”的銷售員的員工號及的銷售員的員工號及其電話號碼。其電話號碼。2.計算員工號為計算員工號為“A0043”的銷售員所經(jīng)的銷售員所經(jīng)辦的客戶的姓名及其電話號碼。辦的客戶的姓名及其電話號碼。3.計算員工號為計算員工號為“A0043”的銷售員所銷的銷售員所

18、銷售的商品的種類和規(guī)格。售的商品的種類和規(guī)格。第5章 關(guān)系代數(shù)385.2 包的關(guān)系運算包的關(guān)系運算第5章 關(guān)系代數(shù)39什么是包什么是包bagn一組元素的一種聚集形式,允許重復(fù)元一組元素的一種聚集形式,允許重復(fù)元素出現(xiàn)。而集合素出現(xiàn)。而集合set中不允許元素重復(fù)出中不允許元素重復(fù)出現(xiàn)?,F(xiàn)。n對一個包去掉其中重復(fù)元素,就可得到對一個包去掉其中重復(fù)元素,就可得到一個集合。一個集合。n一個集合可認(rèn)為是一個特殊的包,其中一個集合可認(rèn)為是一個特殊的包,其中沒有重復(fù)元組。沒有重復(fù)元組。第5章 關(guān)系代數(shù)40為何需要包為何需要包n關(guān)系中的元組應(yīng)該不重復(fù),但經(jīng)運算得關(guān)系中的元組應(yīng)該不重復(fù),但經(jīng)運算得到的新關(guān)系中的

19、元組可以重復(fù)。數(shù)據(jù)庫到的新關(guān)系中的元組可以重復(fù)。數(shù)據(jù)庫系統(tǒng)支持。系統(tǒng)支持。n提高投影計算效率。提高投影計算效率。n對聚合運算有用對聚合運算有用(匯總值、平均值、計數(shù)匯總值、平均值、計數(shù)等等)。第5章 關(guān)系代數(shù)41在包上如何進(jìn)行運算在包上如何進(jìn)行運算n集合運算集合運算(并、交、差并、交、差)、投影、選擇、投影、選擇、乘積和連接都允許運算之前和之后元組乘積和連接都允許運算之前和之后元組重復(fù)。重復(fù)。n設(shè)設(shè)R和和S是包,若元組是包,若元組t在在R和和S中分別出中分別出現(xiàn)現(xiàn)n和和m次,則:次,則:nt在在RS中出現(xiàn)中出現(xiàn)n+m次次nt在在RS中出現(xiàn)中出現(xiàn)min(n,m)次次nt在在RS中出現(xiàn)中出現(xiàn)max

20、(0,n-m)次次第5章 關(guān)系代數(shù)425.3 關(guān)系代數(shù)的擴展操作關(guān)系代數(shù)的擴展操作第5章 關(guān)系代數(shù)43關(guān)系代數(shù)的擴展操作關(guān)系代數(shù)的擴展操作1. 消除重復(fù)消除重復(fù)清除包中的重復(fù)元素,只保留一個副本在關(guān)系中。清除包中的重復(fù)元素,只保留一個副本在關(guān)系中。2. 聚集操作聚集操作獨立于同一關(guān)系中的其它元組而對某些元組進(jìn)行運算。獨立于同一關(guān)系中的其它元組而對某些元組進(jìn)行運算。3. 分組分組根據(jù)元組的值對他們在一個或多個屬性上分組。根據(jù)元組的值對他們在一個或多個屬性上分組。4. 排序排序根據(jù)一個或多個屬性對關(guān)系的元組來排序。根據(jù)一個或多個屬性對關(guān)系的元組來排序。5. 擴展投影擴展投影以原有的列作為參數(shù)來計算

21、,并產(chǎn)生新的列。以原有的列作為參數(shù)來計算,并產(chǎn)生新的列。6. 外連接運算外連接運算連接運算的變體,它防止了懸掛元組的出現(xiàn)。連接運算的變體,它防止了懸掛元組的出現(xiàn)。第5章 關(guān)系代數(shù)44消除重復(fù)消除重復(fù) 把包中的重復(fù)元素都去掉,只保留一個副本在把包中的重復(fù)元素都去掉,只保留一個副本在關(guān)系中。關(guān)系中。AB12341212AB1234R(R)第5章 關(guān)系代數(shù)45聚集操作聚集操作1. SUM用來產(chǎn)生一列總和,得到的是一個數(shù)字用來產(chǎn)生一列總和,得到的是一個數(shù)字值。值。2. AVG用來產(chǎn)生一列平均值,結(jié)果也是數(shù)字值。用來產(chǎn)生一列平均值,結(jié)果也是數(shù)字值。3. MAX和和MIN當(dāng)用于數(shù)字值列的時候,產(chǎn)生的當(dāng)用于

22、數(shù)字值列的時候,產(chǎn)生的分別是這一列中最大的和最小的值;當(dāng)應(yīng)用于分別是這一列中最大的和最小的值;當(dāng)應(yīng)用于字符列的時候產(chǎn)生是字典序的最大者和最小者。字符列的時候產(chǎn)生是字典序的最大者和最小者。4. COUNT產(chǎn)生一列中的產(chǎn)生一列中的“值值”的數(shù)目的數(shù)目(并不一定并不一定指不同的值指不同的值)。同樣,。同樣,COUNT應(yīng)用于一個關(guān)系應(yīng)用于一個關(guān)系的任何屬性時,產(chǎn)生的是這個關(guān)系的元組數(shù),的任何屬性時,產(chǎn)生的是這個關(guān)系的元組數(shù),包括重復(fù)的元組。包括重復(fù)的元組。第5章 關(guān)系代數(shù)46例子例子AB12341212考慮關(guān)系考慮關(guān)系1. SUM(B)=2+4+2+2=102. AVG(A)=(1+3+1+1)/4=

23、1.53. MIN(A)=14. MAX(B)=45. COUNT(A)=4第5章 關(guān)系代數(shù)47分組操作分組操作n為什么要分組為什么要分組 分組是便于各分組中元組的聚集操作。分組是便于各分組中元組的聚集操作。n如何分組如何分組 算符算符的下標(biāo)是一個元素的列表,其中每個元素是下列的下標(biāo)是一個元素的列表,其中每個元素是下列情況之一:情況之一: 是應(yīng)用是應(yīng)用操作的那個關(guān)系的一個屬性,這個屬性是那操作的那個關(guān)系的一個屬性,這個屬性是那些可以把些可以把R分組的屬性其中之一。這個元素稱為分組的屬性其中之一。這個元素稱為分組分組屬性屬性。 應(yīng)用到關(guān)系的一個屬性上的聚集操作符。為了在結(jié)應(yīng)用到關(guān)系的一個屬性上的

24、聚集操作符。為了在結(jié)果中對應(yīng)此聚集,給屬性一個名稱,一個箭頭和一個果中對應(yīng)此聚集,給屬性一個名稱,一個箭頭和一個新的名字附在這個聚集的后面,稱為新的名字附在這個聚集的后面,稱為聚集屬性聚集屬性。第5章 關(guān)系代數(shù)48分組操作分組操作n表達(dá)式表達(dá)式L(R)所產(chǎn)生的關(guān)系所產(chǎn)生的關(guān)系把關(guān)系把關(guān)系R的元組分組。每一組有具有的元組分組。每一組有具有L中中分組屬性為特定賦值的所有元組構(gòu)成。分組屬性為特定賦值的所有元組構(gòu)成。對于每一組,產(chǎn)生如下內(nèi)容的元組:對于每一組,產(chǎn)生如下內(nèi)容的元組:那個組的分組屬性值。那個組的分組屬性值。本組中所有元組對列表本組中所有元組對列表L的屬性聚集操作的的屬性聚集操作的結(jié)果。結(jié)果

25、。第5章 關(guān)系代數(shù)49例子例子n設(shè)有關(guān)系模式設(shè)有關(guān)系模式 StarsIn(title,year,starName) 現(xiàn)在要找出至少出演了三部電影,以及現(xiàn)在要找出至少出演了三部電影,以及他們最先出演的電影的拍攝時間。他們最先出演的電影的拍攝時間。starName,minYear(ctTitle3(starName,MIN(year)minYear,COUNT(title)ctTitle(StarsIn)第5章 關(guān)系代數(shù)50擴展的投影操作擴展的投影操作n擴展投影操作擴展投影操作L(R),使它支持在元組,使它支持在元組上的操作,其投影列表可以是以下所列上的操作,其投影列表可以是以下所列出的元素之一:

26、出的元素之一:1. R的一個屬性。的一個屬性。2. 形如形如xy的表達(dá)式,其中,的表達(dá)式,其中,x和和y都是屬性的都是屬性的名字。名字。xy表示表示R中的中的x屬性取來并重命名為屬性取來并重命名為y。3. 形如形如Ez的表達(dá)式,其中的表達(dá)式,其中E是一個涉及是一個涉及R的屬的屬性、常量、代數(shù)運算或字符串運算的表達(dá)式。性、常量、代數(shù)運算或字符串運算的表達(dá)式。z是表達(dá)式是表達(dá)式E得到結(jié)果屬性的新名字。得到結(jié)果屬性的新名字。第5章 關(guān)系代數(shù)51例子例子n設(shè)有關(guān)系設(shè)有關(guān)系RABC012012345xY111111AX030339A,B+CX(R)B-AX,C-BY(R)第5章 關(guān)系代數(shù)52排序操作排序

27、操作n表達(dá)式表達(dá)式L(R),其中,其中R是關(guān)系,是關(guān)系,L是是R中的中的某些屬性的列表。這個表達(dá)式表示的就某些屬性的列表。這個表達(dá)式表示的就是關(guān)系是關(guān)系R的本身,只是結(jié)果中的所有元組的本身,只是結(jié)果中的所有元組是按是按L來排序的。來排序的。n設(shè)設(shè)L是由是由A1,A2,An組成,那么組成,那么R的元組的元組就先按就先按A1的值排序,對于的值排序,對于A1屬性相等的屬性相等的元組則按元組則按A2的值排序,依次類推。的值排序,依次類推。第5章 關(guān)系代數(shù)53排序操作的特殊之處排序操作的特殊之處n它是關(guān)系代數(shù)中唯一一個結(jié)果是元組列它是關(guān)系代數(shù)中唯一一個結(jié)果是元組列表的操作。因此,從查詢的表達(dá)方面來表的操

28、作。因此,從查詢的表達(dá)方面來看,它只能作為一串操作的最后一個運看,它只能作為一串操作的最后一個運算來使用才具有實際意義。算來使用才具有實際意義。第5章 關(guān)系代數(shù)54外連接外連接n連接操作的缺陷連接操作的缺陷 連接操作的一個性質(zhì)是可能產(chǎn)生連接操作的一個性質(zhì)是可能產(chǎn)生懸掛元組懸掛元組。而。而這些元組不能跟另外關(guān)系的任何一個元組匹配,這些元組不能跟另外關(guān)系的任何一個元組匹配,所以這種連接操作并不能完全反映原始關(guān)系的所以這種連接操作并不能完全反映原始關(guān)系的全部信息。全部信息。n什么是外連接什么是外連接 考慮兩個關(guān)系考慮兩個關(guān)系R和和S的自然連接,然后再把來的自然連接,然后再把來自自R或或S的懸浮元組加

29、入其中,用的懸浮元組加入其中,用null的表示符的表示符號號 補齊結(jié)果元組中那些不具有值的屬性。我補齊結(jié)果元組中那些不具有值的屬性。我們稱之為們稱之為外連接外連接,用符號,用符號 表示。表示。第5章 關(guān)系代數(shù)55例子例子設(shè)有關(guān)系設(shè)有關(guān)系A(chǔ)BC123456789BCD231023116712ABCD12310123114567896712UVU V第5章 關(guān)系代數(shù)56外連接的不同變體外連接的不同變體n只是將左變量只是將左變量R的懸浮元組補齊的懸浮元組補齊 加入到結(jié)果加入到結(jié)果中,稱之左外連接,用符號中,稱之左外連接,用符號R LS表示。表示。n只是將右變量只是將右變量S的懸浮元組補齊的懸浮元組補

30、齊 加入到結(jié)果加入到結(jié)果中,稱之左外連接,用符號中,稱之左外連接,用符號R RS表示。表示。n外連接的操作是,先進(jìn)行外連接的操作是,先進(jìn)行連接,然后將那連接,然后將那些不能匹配其他關(guān)系的元組,也用些不能匹配其他關(guān)系的元組,也用 補齊,用補齊,用U CV表示一個帶條件表示一個帶條件C的的外連接。同樣,外連接。同樣,可用可用L或或R來修飾這個算符,使其表示來修飾這個算符,使其表示的左外的左外連接或右外連接。連接或右外連接。第5章 關(guān)系代數(shù)57例子例子ABCD12310123116712ABCD1231012311456789U AV.CVAU.BU.CV.BV.CD4562310456231178

31、9231078923111236712U LVU RV第5章 關(guān)系代數(shù)585.4 對關(guān)系的約束對關(guān)系的約束 第5章 關(guān)系代數(shù)59關(guān)系代數(shù)作為約束語言關(guān)系代數(shù)作為約束語言n兩種表示約束的方式:兩種表示約束的方式:1 若若R是一個關(guān)系代數(shù)表達(dá)式,則是一個關(guān)系代數(shù)表達(dá)式,則R是是一個約束,表示一個約束,表示R中沒有元組。中沒有元組。2 若若R和和S是兩個關(guān)系代數(shù)表達(dá)式,則是兩個關(guān)系代數(shù)表達(dá)式,則R S是一個約束,表示是一個約束,表示R中的每個元組都在中的每個元組都在S中。中。n這兩種方式都能表示等價的語義。這兩種方式都能表示等價的語義。 R 等價于等價于 R R S 等價于等價于RS第5章 關(guān)系代數(shù)60參照完整性約束參照完整性約束考慮電影數(shù)據(jù)庫模式考慮電影數(shù)據(jù)

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論