1 / 140

第七章 關係

第七章 關係. 7.1 關係及其性質. 研究集合間元素之關連性,會使用稱為 關係 (relation) 的結構,其實就是所探討集合所形成的笛卡耳積之子集合。 關係能用來求解下面的問題: 判斷在飛行航線網路中,兩城市間是否連結的航線 為一個複雜的計畫,針對不同階段的工作,找出一個可行的順序 生成一個有用的方式將資訊儲存至電腦的資料庫. 二元關係. 令 A 與 B 為集合。一個由 A 到 B 之二元關係 (binary relation) 是 A  B 的子集合。

Télécharger la présentation

第七章 關係

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第七章 關係

  2. 7.1 關係及其性質 • 研究集合間元素之關連性,會使用稱為關係(relation)的結構,其實就是所探討集合所形成的笛卡耳積之子集合。 • 關係能用來求解下面的問題: • 判斷在飛行航線網路中,兩城市間是否連結的航線 • 為一個複雜的計畫,針對不同階段的工作,找出一個可行的順序 • 生成一個有用的方式將資訊儲存至電腦的資料庫

  3. 二元關係 • 令A與B為集合。一個由A到B之二元關係(binary relation)是AB的子集合。 • 例:令 <≡ {(n, m)| n < m}ZZ是個由Z到Z的二元關係 • 用符號aRb來表示(a, b)R。 • 例:a <b means (a, b) < • 當(a, b)屬於R時,我們說a與b有關係R。

  4. 例:令A為學校中的學生集合,而B為開授課程所成集合。令關係R包含(a, b),表示學生a有選修課程b。例如,若傑森和狄波拉都選修了CS518,則有序對(傑森,CS518)和(狄波拉,CS518)都屬於關係R。若傑森還選修了CS510,則(傑森,CS510)也在關係R中。然而,若狄波拉沒有修CS510,則(狄波拉,CS510)不在關係R中。 我們注意到,若有個學生完全沒有選修任何課程,則以此學生為第一分量之有序對將不會在R中;同樣的,若以沒有開設的課程當成第二分量之有序對,也不會出現在R中。

  5. 例:令A為美國所有城市所成集合,而B為美國50個州所成集合。定義關係R中的元素為(a, b),若城市a位於b州中。 • 則(包爾德,科羅拉多),(班勾爾,緬因),(安那堡,密西根),(密斗鎮,紐澤西),(密斗鎮,紐約),(卡博蒂諾,加州)和 (紅岸,紐澤西)都在關係R中。

  6. 例:令A = {0, 1, 2}和B = {a, b}。則 R = {(0, a), (0, b), (1, a), (2, b)}為由A到B的關係。 可知:0Ra但1Rb。因為(0, a)R但是(1, b)R.

  7. 集合上的關係 • 一個在集合A上的關係,指的是由A到A的關係。 • 例:令A為集合{1, 2, 3, 4}。哪些有序數對屬於關係R = {(a, b)a整除b}? • 解:因為(a, b)在R中,若且唯若a與b都是不大於4的正整數,使得a整除b,我們發現 R = {(1, 1), (1, 2), (1, 3), (1, 4), (2, 2), (2, 4), (3, 3), (4, 4)}

  8. 例:考慮下面整數集合上的關係: R1 = {(a, b)ab};R2 = {(a, b)a > b}; R3 = {(a, b)a = b或a = b};R4 = {(a, b)a = b}; R5 = {(a, b)a = b + 1};R6 = {(a, b)a + b 3} 哪個關係包含下列有序對(1, 1), (1, 2), (2, 1), (1, 1)和(2, 2)?

  9. 解: • (1, 1)關係R1,R3,R4和R6 • (1, 2)在關係R1和R6 • (2, 1)在關係R2,R5和R6 • (1, 1)在關係R2,R3和R6 • (2, 2)在關係R1,R3和R4

  10. 例:在包含n個集合的關係上,共有多少個不同的關係?例:在包含n個集合的關係上,共有多少個不同的關係? • 解:在集合A上的關係是AA的子集合。因為當A有n個元素時,AA有n2個元素;而一個包含m個元素的集合共有2m個子集合。所以,AA有 個子集合。譬如,在{a, b, c}上的關係共有 個不同的關係。

  11. 關係的性質--定義 • 集合A上的關係稱為反身性的(reflexive) 若(a, a)R,對所有的aA。 • 集合A上的關係稱為對稱性的(symmetric),若對所有的a, bA,當(a, b) R時,有(b, a) R。 • 集合A上的關係使得對所有的a, bA,當(a, b)R與(b, a)R時,有a = b,稱為反對稱的(antisymmetric)。 • 集合A上的關係R稱為有遞移性的(transitive),對所有的a, b, cR,若當(a, b)R且(b, c)R,則 (a, c)R。

  12. 範例 • 下列哪一個關係是有反身性的? R1={(a, b) | a  b} R2={(a, b) | a >b} R3={(a, b) | a =b or a = b} R4={(a, b) | a =b} R5={(a, b) | a =b+1} R6={(a, b) | a +b 3} 是的,因為a  a. 不是,因為a <a 是的,因為a = a 是的,因為a = a 不是,因為a  a+1 不是,因為5+5 3

  13. 下列哪一個關係是有對稱性的,而哪一個是有反對稱性的?下列哪一個關係是有對稱性的,而哪一個是有反對稱性的? R1={(a, b) | a  b} R2={(a, b) | a >b} R3={(a, b) | a =b or a = b} R4={(a, b) | a =b} R5={(a, b) | a =b+1} R6={(a, b) | a +b 3} 反對稱性 沒有對稱性 沒有對稱性 反對稱性,為什麼? 對稱性 沒有反對稱性 反對稱性 對稱性 沒有對稱性 反對稱性 對稱性 沒有反對稱性

  14. 下列哪一個關係是有遞移性的? R1={(a, b) | a  b} R2={(a, b) | a >b} R3={(a, b) | a =b or a = b} R4={(a, b) | a =b} R5={(a, b) | a =b+1} R6={(a, b) | a +b 3} 有遞移性 有遞移性 有遞移性 有遞移性 沒有遞移性,因為 a=b+1, b=c+1  a=c+2c+1 沒有遞移性,因為 2+1  3, 1+2  3  2+2 > 3

  15. 正整數集合上的“整除”關係是否為對稱性的?是否違反對稱性的?是否有遞移性?正整數集合上的“整除”關係是否為對稱性的?是否違反對稱性的?是否有遞移性? • 解: • 此關係不為對稱的,因為12,但21。 • 然而此關係是反對稱的,因為兩個正整數a與b,若同時有ab與ba,則a = b。 • 假設a整除b,b整除c。則存在k和l,使得b= ak與c= bl。所以,c = a(kl),即a整除c。因此,這個關係是有遞移性的。

  16. 例:在含有n個元素之集合上的關係中,有多少是具有反身性的?例:在含有n個元素之集合上的關係中,有多少是具有反身性的? • 解:在集合A上的關係R是個AA的子集合。因此,R中的元素是由AA的n2個元素中取出。若R是有反身性的,則n個形如(a, a),aA,的有序對一定得包含於R中。至於其他的n(n1)個元素,即(a, b),ab,的有序對,則不一定要在R中。根據乘法原理,共有2n(n1)個不同的反身關係。【這個數字等於一一決定每個(a, b)的有序對是否在R中,其中ab。】

  17. 關係的組合 • 因為由A到B的關係是AB的子集合,因此,兩個關係間的組合可以使用所有集合間的組合來表現。 • 例:令A = {1, 2, 3}和B = {1, 2, 3, 4}。 關係R1 = {(1, 1), (2, 2), (3, 3)}和 R2 = {(1, 1), (1, 2), (1, 3), (1, 4)}能以下列方式組合 R1R2 = {(1, 1), (1, 2), (1, 3), (1, 4), (2, 2), (3, 3)} R1R2 = {(1, 1)} R1R2 = {(2, 2), (3, 3)} R2R1 = {(1, 2), (1, 3), (1, 4)}

  18. 例:令A與B分別為學校中的學生集合與開授課程所成集合。假設關係R1包含所有有序對(a, b),表示學生a選修課程b;而關係R2包含所有有序對(a, b),表示學生a必須修課程b方能畢業。則下列關係之組合R1R2,R1R2,R1R2,R1R2與R2R1分別表示什麼?

  19. 解:關係R1R2包含所有的有序對(a, b),其中學生a選修課程b或是學生a必須修課程b方能畢業。關係R1R2包含所有的有序對(a, b),其中學生a選修課程b而且學生a必須修課程b方能畢業。關係R1R2包含所有的有序對(a, b),其中學生a選修無關畢業的課程b或是學生a必須修課程b方能畢業但他卻沒選。關係R1R2包含所有的有序對(a, b),其其中學生a選修無關畢業的課程b。關係R2R1包含所有的有序對(a, b),其中學生a必須修課程b方能畢業但他卻沒選。

  20. 例:假設關係R1為實數集合中“小於”關係;而關係R2為實數集合中“大於”關係。即,R1 = {(x, y)x < y}而 R2 = {(x, y)x > y},則下列關係之組合R1R2,R1R2,R1R2,R2R1與R1R2分別為何?

  21. 解:(x, y) R1R2若且唯若(x, y) R1或是(x, y)R2。所以,(x, y) R1R2若且唯若x < y或x > y,其實就是xy。即,R1R2 = {(x, y)x y}。“小於”關係與“大於”關係的聯集就是“不等於”關係。 接下來,我們發現不可能有個有序數對同時在R1又在R2中,因為不可能x < y又x > y。所以,R1R2 = 。我們同時發現R1R2 = R1,R2R1 = R2與R1R2 = R1R2R1R2= {(x, y)x y}。

  22. 定義 • 令R為由集合A到集合B的關係,而S為由集合B到集合C的關係。R與S的合成(composite)也是個關係包含有序對(a, c),其中aA,cC,而且存在一個bB使得(a, b)R和(b, c)S。我們將R和S的合成記為 SR • 我們注意到函數的合成fg即為一個範例。 • 令R為集合A上的關係。冪次Rn,n = 1, 2, 3, …,遞迴定義如下:R1 = R而且Rn+1 = RnR • 負數冪次可定義如下:R−n:≡ (R−1)n.

  23. 例:令R為由{1, 2, 3}到{1, 2, 3, 4}的關係 R = {(1, 1), (1, 4), (2, 3), (3, 1), (3, 4)}, 而S為由{1, 2, 3, 4}到{0, 1, 2}的關係 S = {(1, 0), (2, 0), (3, 1), (3, 2), (4, 1)}。 R與S的合成為何? 下面關係R2, R3, R4又各為何? • 解:SR = {(1, 4), (2, 4), (3, 4), (4, 1), (4, 2)} R2=RR = {(1, 1), (2, 1), (3, 1), (4, 2)} R3=R2R = {(1, 1), (2, 1), (3, 1), (4, 1)} R4=R3R = {(1, 1), (2, 1), (3, 1), (4, 1)} = Rn, n3

  24. 定理:集合A上的關係R是有遞移性的若且唯若Rn R,n = 1, 2, 3, …。 • 證明:首先證明 “若”的部份。假設Rn R,n = 1, 2, 3, …。因此,R2  R。我們能由此證明R是有遞移性的。若(a, b)R和(b, c)R,根據合成的定義(a, c)R2。由於R2R,得到(a, c)R,也因此R是有遞移性的。

  25. 使用數學歸納法來證明“唯若”的部份。當n = 1時,定理明顯成立。假定歸納假說為:Rn R,其中n為正整數。往證Rn+1亦為R的子集合。首先假設(a, b)Rn+1 = RnR。因而存在xA使得(a, x) R且(x, b) Rn。根據歸納假說,Rn R, 有(x, b)R。由於R是有遞移性的,(a, x) R且(x, b)R,可推導出(a, b)R。因而Rn+1 R,定理得證。

  26. 7.2 n元關係及其應用 • 令A1, A2, …, An為集合。一個在這些集合上的n元關係,是A1A2…An的子集合。集合A1, A2, …, An稱為這個關係的域(domain),而n稱為這個關係的階(degree)。 • 例:令R為NNN上的關係,包含有序三項 (a, b, c),其中a,b和c為a < b < c的整數。 則(1, 2, 3) R,但(2, 4, 3) R。此關係的階數為3,而其域為自然數集合。

  27. 例:令R為ZZZ上的關係,包含有序三項 (a, b, c),其中a,b和c形成一個算術數列。 即,(a, b, c)R若且唯若存在整數k,使得b = a + k且c = a + 2k;或是,ba = k且cb = k。 • 我們發現(1, 3, 5)R,因為3 = 1 + 2且5 = 1 + 22;但是(2, 5, 9)R,因為5  2 = 3而9  5 = 4。此關係的階數為3,而其域為整數集合。

  28. 例:令R為ZZZ+上的關係,包含有序三項(a, b, m),其中a,b和m為整數m 1,而a b (mod m)。 • 則(8, 2, 3),(1, 9, 5)和(14, 0, 7)都屬於R, 但是(7, 2, 3),(2, 8, 5)和(11, 0, 6)不屬於R。 因為8 2 (mod 3),1 9 (mod 5)和14 0 (mod 7); 然而,7  2 (mod 3),2 8 (mod 5)與11  0 (mod 6)。 • 此關係的階數為3,而其域前兩個為整數集合,第三個為正整數集合。

  29. 例:令R為有序5元(A, N, S, D, T)所組成的關係,用來表現飛行航班間的關係,其中A為航空公司,N為航班數,S是出發地,D是目的地,而T為起飛時間。 • 例如,若那達航空公司在15:00有班963班機由紐沃克機場飛班國鎮,則我們知道(那達,963,紐沃克機場,班國鎮,15:00)。 • 此關係的階數為5,而其域為所有航空公司所成集合、航班集合、城市的集合與時間集合。

  30. 資料庫和關係 • 在資料庫中進行資訊操作所需時間,與資訊儲存的方式有關。各種運算在一個大型資料每天都要執行好幾百萬次。因為這些運算的重要性,已經開發了好多種表現資料庫的方法。我們將討論一種根據關係的概念而來的關聯式資料模型(relational data model)。 • 資料庫由記錄(record)組成,所謂記錄是由欄位(field)形成的有序n項。

  31. n元關係的域稱為主鍵(primary key),如果有序n項的值能由這個關係之域來決定。 • 在n元關係中,域的組合也可用來判斷出唯一的有序n項。當一組域能確定關係中之有序n項時,這些域的笛卡耳積稱為複合鍵(composite key)。

  32. 下面是一個簡單的資料庫,包含六筆資料 (阿克曼,231455,電腦科學,3.88) (亞當斯,888323,物理,3.45) (趙,102147,電腦科學,3.49) (古德弗瑞德,453876,數學,3.45) (羅奧,678543,數學,3.90) (史帝芬斯,786576,心理,2.99)

  33. 用來表現資料庫的關係也稱為表格(tables),因為這些關係經常以表格方式呈現。表格中每一行表示資料庫的一個屬性(attribute)。例如,學生的資料庫如下頁所示。這個關係的屬性有姓名、學號、主修科系與平均成績。

  34. 表格-- 學生 姓名 學號 主修科系 平均分數 阿克曼 231455 電腦科學 3.88 亞當斯 888323 物理 3.45 趙 102147 電腦科學 3.49 古德弗瑞德 453876 數學 3.45 羅奧 678543 數學 3.90 史帝芬斯 786576 心理 2.99

  35. 例:假設未來不會有序n項會再加入,則呈現於學生表格之n元關係哪一個域是主鍵?例:假設未來不會有序n項會再加入,則呈現於學生表格之n元關係哪一個域是主鍵? • 解:因為再表中每個學生的姓名只有一個有序4項,學生姓名的域是一個主鍵。同樣的,學號在表中也是唯一出現的,所以學號這個域也是個主鍵。總之,主修科系這個域因為出現了不只一次,所以不會是主鍵。同樣的道理,平均成績也不是主鍵,因為有兩個有序4項出現了相同的平均成績。

  36. 例:假設未來不會有序n項會再加入,呈現於學生表格之n元關係中,主修科目和平均成績的笛卡耳積會不會是複合鍵?例:假設未來不會有序n項會再加入,呈現於學生表格之n元關係中,主修科目和平均成績的笛卡耳積會不會是複合鍵? • 解:因為在表中沒有兩個有序4項有相同之主修科目和平均成績,所以,修科目和平均成績的笛卡耳積是複合鍵。

  37. n元關係上的運算--定義 • 令R為一個n元關係而C是個R中元素必須滿足的條件。則選擇算子(selection operator)sC,將n元關係R對應至n元關係中所有滿足條件C的所有有序n項。 • 投影(projection) ,其中i1< i2< … < im,將有序n項(a1, a2, …, an)對應到有序m項 ,其中mn。 • 令R為一個m階關係,而S是個n階關係。連結Jp(R, S),pn且pn,是個m + np階關係,包含所有的有序(m+np)項(a1, a2, …, amp, c1, c2, …, cp, b1, b2, …, bnp),其中有序m項(a1, a2, …, amp, c1, c2, …, cp)屬於R,而有序n項(c1, c2, …, cp, b1, b2, …, bnp)屬於S。

  38. 例:為找出學生表格呈現的n元關係中主修電腦科之記錄,使用算子sC1,其中C1為條件“主修科系” = “電腦科學”。結果將得到兩個有序4項(阿克曼,231455,電腦科學,3.88)和(趙,102147,電腦科學,3.49)。同樣的,為找出學生資料庫中平均成績大於3.5的記錄,我們使用算子sC2,其中C2為條件“平均成績” > “3.5”。結果也是兩個有序4項(阿克曼,231455,電腦科學,3.88)和(羅奧,678543,數學,3.90)。最後,為找出學生資料庫中主修科系微電腦科學,且平均成績大於3.5的記錄,我們使用算子sC3,其中C3為條件(“主修科系” = “電腦科學”  “平均成績” > “3.5”。結果指剩下一個有序4項(阿克曼,231455,電腦科學,3.88)。

  39. 例:執行P1, 3後,有序4項(2, 3, 0, 4),(珍,2354111001,地理,3.14)和(a1, a2, a3, a4)會變成什麼? • 解:投影P1, 3執行後,這些有序4項將變成(2, 0),(珍,地理)和(a1, a3)。

  40. 例:當執行投影P1, 4後,學生表格之關係將會變成怎樣的關係? 解:當執行投影P1, 4後,表中的第二和第三列將被刪去,而剩下表現學生姓名和平均成績的有序對。右表呈現執行運算後之結果關係。 姓名 平均分數 阿克曼 3.88 亞當斯 3.45 趙 3.49 古德弗瑞德 3.45 羅奧 3.90 史帝芬斯 2.99

  41. 例:利用連結算子J2將表5與表6呈現之關係連結在一起會得到什麼結果?例:利用連結算子J2將表5與表6呈現之關係連結在一起會得到什麼結果? • 解:連結J2所產生的關係如下表所示。

  42. 資料庫查詢語言SQL(Structured Query Language的縮寫)可用來實踐本節所描述的運算。 • 我們將藉由說明SQL如何利用下頁之表格來查詢飛機航班。來描述SQL如何用來作查詢運算。SQL陳述如下: SELECT 起飛時間 FROM 航空公司 WHERE 目的地 = ‘底特律’

  43. 通常用來找出投影P5(在起飛時間的屬性)在飛機航班資料庫滿足條件:“目的地” = “底特律”,所選出的有序5項。所得結果是一個表單包含以底特律為目的地之航班起飛時間:08:10,08:47和09:44。SQL使用FROM來辨識n元關係所要查詢的欄位;利用WHERE來指定選擇運算的條件;SELECT來指定被應用之投影運算。

  44. 利用矩陣表現關係 • 有限集合間的關係能以零-一矩陣來表現。假設R是由集合A = {a1, a2, …, am}到集合B = {b1, b2, …, bn}(此處集合的元素可以任意方式排序,但若A = B時,我們使用相同的排列順序)。關係R能以矩陣MR = [mij]表示,其中 換句話說,表現關係R的零-壹矩陣中,第(i, j)個位置的元素為1,若ai與bj有關係;而第(i, j)個位置的元素為0,若ai與bj沒有關係。(這種表示法與集合A與B使用之順序相關。)

  45. 例:假設A = {1, 2, 3}而B = {1, 2}。令R為由A到B的關係,包含所有的有序對(a, b),如果aA,bB,而且a > b。何為R之矩陣表示法,其中a1= 1, a2 = 2, a3 = 3,而且b1 = 1, b2 = 2? • 解:因為R = {(2, 1), (3, 1), (3, 2)},R的矩陣為 MR中的1說明(2, 1), (3, 1)和(3, 2)屬於R,而0說明沒有其他的有序對屬於R。

  46. 例:令A = {a1, a2, a3}而B = {b1, b2, b3, b4, b5}。若R的表現矩陣如下,則哪些有序對再關係R中? • 解:因為R中包含的有序對(ai, bj)使得mij = 1。所以,R = {(a1, b2), (a2, b1), (a2, b3), (a2, b4), (a3, b1), (a3, b3), (a3, b5)}。

  47. 7.3 表現關係 • 當關係R是反身的若(a, a)R,當aA。所以,R是反身的若且唯若(ai, ai)R,i = 1, 2, ..., n。因而,R是反身的若且唯若mii = 1,i = 1, 2, …, n。換句話說,R是反身的,如果矩陣MR的主對角線之元素都為1。 • 關係R是對稱的,若(a, b)R,能推導出(b, a)R。所以,A = {a1, a2, …, an}是對稱的,若且唯若當(ai, aj)R,能推導出(aj, ai)R。以矩陣的觀點來看,R是對稱的若且唯若當mij = 1時,mji = 1,而且當mij = 0時,mji = 0。也就是說,R是對稱的若且唯若對所有的整數對i與j,mij = mji。即,(MR) = (MR)t。

  48. 關係R是反對稱的,若(a, b)R且(b, a)R,則a = b。因此,反對稱關係的矩陣有下列性質,若ij,有mij = 1,則mji = 0。換言之,當ij,要不是mij = 0就是mji = 0。

  49. 例:假設表現關係R的矩陣為 判斷R是否為反身的?對稱的?反對稱的? • 解:因為所有對角線的元素都是1,所以R是反身的。由於MR是對稱的,所以R是對稱的。很容易就能看出R並不是反對稱的。

More Related