




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、1.2關系代數(shù)關系模型的重要部分是關系操縱,關系代數(shù)是一種抽象的查詢語言,是關系數(shù)據(jù)操縱語言的一種傳統(tǒng)表達方式,它是用對關系的運算來表達查詢的。利用關系代數(shù)可以演示一個查詢語言從關系數(shù)據(jù)庫系統(tǒng)中檢索信息的潛力,可以用最簡單的形式來表達所有關系數(shù)據(jù)庫查詢語言必須完成的運算的集合,這些基本的運算對解釋標準查詢語言SQL如何被執(zhí)行很有幫助,同時也有利于培養(yǎng)關系運算的思維能力。郭文明 2003.06.051.2關系代數(shù)關系代數(shù)的運算對象是關系,運算結果亦為關系。關系代數(shù)用到的運算符包括四類;集合運算符、專門的關系運算符、算術比較符和邏輯運算符。關系代數(shù)的運算按運算符的不同可分為傳統(tǒng)的集合運算和專門的關
2、系運算兩類。其中傳統(tǒng)的集合運算將關系看成元組的集合,其運算是從關系的“水平”方向即行的角度來進行。而專門的關系運算不僅涉及行而且涉及列。比較運算符和邏輯運算符是用來輔助專門的關系運算符進行操作的。 郭文明 2003.06.05關系代數(shù)運算符運算符 符號含義 鍵盤格式 示例 集合運算符 并 UNION RS,或 R UNION S 交 INTERSECTRS,或 R INTERSECT S - 差 MINUS R-S,或 R MINUS S 乘 TIMES RS,或 R TIMES S 專門 關系運算符 選擇 R where C 姓名=“張三”(S)或S where 姓名=張三 投影 R 考號,
3、姓名(S)或S考號,姓名 連接 JOIN RS,或R JOIN S 除 DIVIDEBY RS,或R DIVIDEBY S 關系代數(shù)中,這些運算經(jīng)有限次復合后形成的式子稱為關系代數(shù)表達式。 郭文明 2003.06.051.2.1傳統(tǒng)的集合運算傳統(tǒng)的集合運算是二目運算,包括并、差、交、廣義笛卡爾積。定義1.2.1 設關系R和關系S具有相同的目n(即兩個關系都有n個屬性),且相應的屬性取自同一個域,則可以定義并、差、交運算如下: 并(Union): 關系R與關系S的并記作:RS=t|tRtS 其結果仍為n目關系,由屬于R或屬于S的元組組成。差(Difference): 關系R與關系S的差記作:RS
4、= t|tRt!S 其結果仍為n目關系,由屬于R而不屬于S的所有元組組成。郭文明 2003.06.051.2.1傳統(tǒng)的集合運算交(Intersection):關系R與關系S的交記作:RS= t|tRtS 其結果仍為n目關系,由既屬于R又屬于S的元組組成。關系的交可以用差來表示,即RS=R-(R-S)。廣義笛卡爾積(Extended Cartesian Product):兩個分別為n目和m目的關系R和S的廣義笛卡爾積是一個(n+m)列的元組的集合。元組的前n列是關系R的一個元組,后m列是關系S的一個元組。若R有k1個元組,S有k2個元組,則關系R和關系S的廣義笛卡爾積有k1k2個元組。記作:RS
5、=trts|trRtsS 郭文明 2003.06.05傳統(tǒng)集合運算舉例 R A B C a1 b1 c1 a1 b2 c2 a2 b2 c1 RS A B C a1 b1 c1 a1 b2 c2 a2 b2 c1 a1 b3 c2 S A B C a1 b2 c2 a1 b3 c2 a2 b2 c1 RS A B C a1 b2 c2 a2 b2 c1 郭文明 2003.06.05傳統(tǒng)集合運算舉例 R A B C a1 b1 c1 a1 b2 c2 a2 b2 c1 R-S A B C a1 b1 c1 RS A B C A B C a1 b2 c1 a1 b2 c2 a1 b2 c1 a1
6、b3 c2 a1 b2 c1 a2 b2 c1 a1 b2 c2 a1 b2 c2 a1 b2 c2 a1 b3 c2 a1 b2 c2 a2 b2 c1 a2 b2 c1 a1 b2 c2 a2 b2 c1 a1 b3 c2 a2 b2 c1 a2 b2 c1 S A B C a1 b2 c2 a1 b3 c2 a2 b2 c1郭文明 2003.06.051.2.2 專門的關系運算專門的關系運算包括選擇、投影、連接、除等。為了敘述上的方便,先引入幾個常用記號。設關系模式為R(Al,A2,An)。它的一個關系設為R。tR表示t是R的一個元組。tAi則表示元組t中相應于屬性Ai的一個分量。若A=
7、Ai1,Ai2,Aik,其中Ail,Ai2,Aik是A1,A2,An中的一部分,則A稱為屬性列或域列。 郭文明 2003.06.051.2.2 專門的關系運算R為n目關系,S為m目關系。trR,tsS,trts稱為元組的連接。它是一個n+m列的元組,前n個分量為R中的一個n元組,后m個分量為S中的一個m元組。給定一個關系R(X,Z),X和Z為屬性組。定義tX=x時,x在R中的象集(Images Set)為: Zx=tZtR,tX=x 它表示R中屬性組X上值為x的諸元組在Z上分量的集合。郭文明 2003.06.05學生-課程數(shù)據(jù)庫S 學生表 學號 姓名 性別 年齡 所在系 Sno Sname S
8、sex Sage Sdept 2000101 張明 男 19 CS 2000102 李華 女 20 IS 2000103 王強 男 18 MA 2000104 秦永 男 19 CSC 課程表 課程號 課程名 學分 Cno Cname Ccredit 1 數(shù)據(jù)庫 3 2 數(shù)學 4 3 信息系統(tǒng) 3 4 操作系統(tǒng) 3SC 學生選課表 學號課 程號 成績 Sno Cno Grade 200101 1 92 200101 2 85 200101 3 88 200102 2 90 200102 3 80郭文明 2003.06.05選擇(Selection)定義1.2.2 選擇 選擇又稱為限制(Restr
9、iction),它是在關系R中選擇滿足給定條件的諸元組,記作: F(R)=ttRF(t)=真 其中F表示選擇條件,它是一個邏輯表達式,取邏輯值真或假。邏輯表達式F由邏輯運算符,連接各算術表達式組成。算術表達式的基本形式為:X1Y1,其中表示比較運算符,它可以是、=19 and Sage=20 郭文明 2003.06.05投影(Projection)定義1.2.3 投影 關系R上的投影是從R中選擇出若干屬性列組成新的關系,是對關系的垂直分解。記作: A(R)=tA|tR 其中A為R中的屬性列集合。 投影之后不僅取消了原關系中的某些列,而且還可能取消某些元組,因為取消了某些屬性列后,就可能出現(xiàn)重復
10、行,應取消這些完全相同的行。郭文明 2003.06.05投影(Projection)例3 查詢學生的姓名和所在系。 Sname,Sdept(S) 或 2,5(S) 或 SSname,Sdept例4 查詢學生關系Student中都有哪些系。 Sdept(S) 或 SSdept郭文明 2003.06.05連接(Join)定義1.2.4 連接 連接也稱為連接。它是從兩個關系的笛卡爾積中選取屬性間滿足一定條件的元組。記作: RS=trts|trRtsStrAtsB AB 其中A和B分別為R和S上度數(shù)相等且可比的屬性組。是比較運算符。連接運算的結果是從R和S的廣義笛卡爾積RS中選取R關系在A屬性組上的值
11、與S關系在B屬性組上值滿足比較關系的元組。 郭文明 2003.06.05連接(Join)連接運算中有兩種最為重要也最為常用的連接,一種是等值連接(equijoin),另一種是自然連接(Naturaljoin)。另外還有外連接、左連接、右連接等。為“=”的連接運算稱為等值連接。它是從關系R與S的廣義笛卡爾積中選取A,B屬性值相等的那些元組.自然連接(Natural join)是一種特殊的等值連接,它要求兩個關系中進行比較的分量必須是相同的屬性組,并且在結果中把重復的屬性列去掉。 郭文明 2003.06.05外連接定義1.2.5 外連接 表R(A1,A2,An,B1, B2,Bk)和S(B1,B2
12、,Bk,C1,C2,Cm)的外連接RoS,行t屬于表RoS,如果下列情況之一發(fā)生: 1)可連接的行u,v分別在R和S中,有uBi=vBi(0=iB2 S o 外連接 OUTER JOIN R o S Lo 左連接 LOUTER JOIN R Lo S Ro 右連接 ROUTER JOIN R Ro S 郭文明 2003.06.05連接運算舉例RA B C a1 b1 5 a1 b2 6a2 b3 8a2 b4 12 S B E b1 3 b2 7 b3 10 b3 2 b5 2 連接R CE S A R.B C S.B Ea1 b1 5 b2 7a1 b1 5 b3 10a1 b2 6 b2
13、7a1 b2 6 b3 10a2 b3 8 b3 10 等值連接R R.B=S.B S A R.B C S.B E a1 b1 5 b1 3a1 b2 6 b2 7a2 b3 8 b3 10a2 b3 8 b3 2 自然連接RSA B C Ea1 b1 5 3a1 b2 6 7a2 b3 8 10a2 b3 8 2郭文明 2003.06.05連接運算舉例RA B C a1 b1 5 a1 b2 6a2 b3 8a2 b4 12 S B E b1 3 b2 7 b3 10 b3 2 b5 2 外連接R o SA B C Ea1 b1 5 3a1 b2 6 7a2 b3 8 10a2 b3 8 2
14、a2 b4 12 nullnull b5 null 2 左連接R Lo S A B C Ea1 b1 5 3a1 b2 6 7a2 b3 8 10a2 b3 8 2a2 b4 12 null右連接R Ro SA B C Ea1 b1 5 3a1 b2 6 7a2 b3 8 10a2 b3 8 2null b5 null 2郭文明 2003.06.05除(Division)定義1.2.6 除 給定關系R(X,Y)和S(Y,Z),其中X,Y,Z為屬性組。R 中的Y與S中的Y可以有不同的屬性名,但必須出自相同的域集。R與S的除運算得到一個新的關系P(X),P是R中滿足下列條件的元組在X屬性列上的投影
15、:元組在X上分量值x的象集Yx包含S在Y上投影的集合。記作: RS=trX|trRy(S)Yx 其中Yx為x在R中的象集,x=trX。郭文明 2003.06.05除(Division)除操作是同時從行和列角度進行運算。除運算是乘運算的逆運算,給定兩個表T和S,如果表R是通過R=TS定義的,那么有T=RS成立。在這個意義上可解釋為什么稱作除運算。 郭文明 2003.06.05除運算舉例 RA B Ca1 b1 c2a2 b3 c7a3 b4 c6a1 b2 c3a4 b6 c6a2 b2 c3a1 b2 c1SB C Db1 c2 d1b2 c1 d1b2 c3 d2RSAa1郭文明 2003.
16、06.05除運算舉例 在關系R中,A可以取四個值a1,a2,a3,a4。其中: a1的象集為(b1,c2),(b2,c3,),(b2,c1) a2的象集為(b3,c7),(b2,c3) a3的象集為(b4,c6) a4的象集為(b6,c6) S在(B,C)上的投影為(b1,c2),(b2,c1),(b2,c3)顯然a1的象集包含了S在(B,C)屬性組上的投影,所以RS=a1.郭文明 2003.06.05除運算舉例 R1)給出S,求得 T=RS。注意: TS都在R中。 S T 2)給出S,求得 T=RS。注意: TS都在R中。 S T3)給出S,求得 T=RS。注意: TS都在R中。 S T4)
17、給出S,求得 T=RS。注意:TS都在R中。 S TABCa1b1c1a2b1c1a1b2c1a1b2c2a2b1c2a1b2c3a1b2c4a1b1c5Cc1ABa1b1a2b1a1b2Cc1c2ABa1b2a2b1Cc1c2c3c4ABa1b2BCb1c1Aa1a2郭文明 2003.06.051.2.3關系代數(shù)綜合例子以下例子建立在下面CAP數(shù)據(jù)庫上。 C顧客 cid cname city discnt c001 李廣 天津 10.00 c002 王開基 北京 12.00 c003 安利德 北京 8.00 c004 曹士雄 天津 8.00 c006 曹士雄 廣州 0.00P商品pid pn
18、ame city quantity price p01 梳子 天津 111400 0.50 p02 刷子 成都 203000 0.50 p03 刀片 西安 150600 1.00 p04 鋼筆 西安 125300 1.00 p05 鉛筆 天津 221400 1.00 p06 文件夾 天津 123100 2.00 p07 盒子 成都 100500 1.00 A代理 aid aname city percent a01 史可然 北京 6 a02 韓利利 上海 6 a03 杜不朗 成都 7 a04 甘瑞 北京 6 a05 敖斯群 武漢 5 a06 史可然 天津 5O訂單ordno month cid
19、 aid pid qty dollars 1011 01 c001 a01 p01 1000 450.00 1012 01 c001 a01 p01 1000 450.00 1019 02 c001 a02 p02 400 180.00 1017 02 c001 a06 p03 600 540.00 1018 02 c001 a03 p04 600 540.00 1023 03 c001 a04 p05 500 450.00 1022 03 c001 a05 p06 400 720.00 1025 04 c001 a05 p07 800 720.00 1013 01 c002 a03 p03
20、1000 880.00 1026 05 c002 a05 p03 800 704.00郭文明 2003.06.051.2.3關系代數(shù)綜合例子例1 查詢所有定購了至少一個價值為0.50的商品的顧客的名字。 cname(pid(price=0.50(P)O)C)例2 找出全部沒有在代理商a03處訂購商品的顧客cid值。 cid(O)cid(aid=a03(O) 或 cid(C)cid(aid=a03(O)例3 找出只在代理商a03處訂購商品的顧客。 cid(O)cid(aida03(O)郭文明 2003.06.051.2.3關系代數(shù)綜合例子例4 找出沒有被任何一個在北京的顧客通過在上海的代理商訂購
21、的所有商品。 在北京的顧客通過在上海的代理商訂購的商品: pid(cid(city=北京(C) O)city=上海(A) 從所有商品中剔除以上商品: pid(P)pid(cid(city=北京(C) O)city=上海(A)例5 找出訂購了所有價格為0.50的商品的顧客名字。 cname(cid,pid(O)pid(price=0.50(P) C)例6 找出訂購所有被任何人訂購過一次的商品的顧客cid。 cid,pid(O)pid(O)例7 找出所有接到至少顧客c004訂購的商品集合的訂單的代理商的aid。 aid,pid(O)pid(cid=c004(O)郭文明 2003.06.051.2.3關系代數(shù)綜合例子例8 找出訂購了p01和p07這兩種商品的顧客的cid。 錯誤 cid(pid=p01 and pid=p07(O) 錯誤 cid(pid=p01 or pid=p07(O) 正確 cid(pid=p01(O) cid(pid=p07(O)例9 找出從至少一個接受訂購商品p03訂單的代理商處訂購過商品的顧客cid。 解題思路: cid(aid(pid=p03(O) O)訂購商品p03的代理商從這些代理商處訂購商品的顧客p03郭文明 2003.06.051.2.
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 公司組拔河比賽活動方案
- 公司春游野餐活動方案
- 公司特色聚餐活動方案
- 公司美食節(jié)擺攤活動方案
- 公司自制壽司活動方案
- 公司組織種地活動方案
- 公司沙灘拓展活動方案
- 公司組織拓展活動方案
- 2025年智能制造工程師職業(yè)考試題及答案
- 2025年營養(yǎng)學與食品安全的考試試卷及答案
- 機械原理課程設計-旋轉型灌裝機
- ktv包房服務員崗位職責8篇
- 西安某大跨度鋼桁架人行天橋結構設計分析
- 初中學段勞動任務清單(七到九年級)
- 色溫-XY-UV色坐標換算公式
- 國企治理三會一層詳解
- YY 0731-2009大型蒸汽滅菌器手動控制型
- 2020重大疾病保險的疾病定義使用規(guī)范修訂解讀及影響課件
- 《建筑工程消防施工質量驗收規(guī)范》
- 計算機網(wǎng)絡課程設計小型公司網(wǎng)絡
- 中考考前注意事項講稿
評論
0/150
提交評論