Presentation is loading. Please wait.

Presentation is loading. Please wait.

 黃三益 2007 資料庫的核心理論與實務第三版 12-1 第十三章 擴充實體關係模式  目的 目的  物件導向基本觀念 物件導向基本觀念  特殊化和一般化 特殊化和一般化  特殊化的多階層架構 特殊化的多階層架構  多重繼承 多重繼承  群類 群類  UML 的類別圖 UML 的類別圖.

Similar presentations


Presentation on theme: " 黃三益 2007 資料庫的核心理論與實務第三版 12-1 第十三章 擴充實體關係模式  目的 目的  物件導向基本觀念 物件導向基本觀念  特殊化和一般化 特殊化和一般化  特殊化的多階層架構 特殊化的多階層架構  多重繼承 多重繼承  群類 群類  UML 的類別圖 UML 的類別圖."— Presentation transcript:

1  黃三益 2007 資料庫的核心理論與實務第三版 12-1 第十三章 擴充實體關係模式  目的 目的  物件導向基本觀念 物件導向基本觀念  特殊化和一般化 特殊化和一般化  特殊化的多階層架構 特殊化的多階層架構  多重繼承 多重繼承  群類 群類  UML 的類別圖 UML 的類別圖  轉成關聯綱目 轉成關聯綱目

2  黃三益 2007 資料庫的核心理論與實務第三版 12-2 目的  本章所探討的是加上物件導向功能的實 體關係模式  擴充後的實體關係圖則稱為擴充實體關係圖 ﹝簡稱 EERD ﹞  物件導向的概念結合了資料和運算方法  我們著重的是資料面

3  黃三益 2007 資料庫的核心理論與實務第三版 12-3 物件導向基本觀念  最相關的物件導向概念是繼承  實體關係模式的組成元件包括實體( Entity )和關係 ( Relationship )  範例  Student(pId, name, sex, sId, major, degree)  Teacher((pId, name, sex, tId, dept, level)  有的實體(助教)可以同時是老師和學生  老師和學生都是學校成員  共有以下四個實體型態:  Person(pId, name, sex)  Student(sId, major, degree)  Teacher((tId, dept, level)  TA(course)  TA is-a (繼承) Student is-a (繼承) Person  TA is-a (繼承) Teacher is-a (繼承) Person

4  黃三益 2007 資料庫的核心理論與實務第三版 12-4 物件導向基本觀念 (Cont.)  「實體」改稱「物件」( Object )  「實體型態」改稱「類別」( Class )  上例中有四個類別: Person, Teacher, Student, TA ,有繼承 關係

5  黃三益 2007 資料庫的核心理論與實務第三版 12-5 物件導向基本觀念 (Cont.)  一個繼承關係是由一個父類別( Superclass ) 和一個子類別( Subclass )所構成 ,有以下 特點:  每一個子類別的物件,也必然是父類別的成員  父類別的成員不一定要屬於子類別  子類別的物件繼承了父類別的所有屬性和其所參 與的所有關係型態

6  黃三益 2007 資料庫的核心理論與實務第三版 12-6 練習 12-1  以圖 13-1 為例,分別列出 Student 和 Teacher 的所有屬性圖 13-1  Ans:  Student 屬性: pId, name, sex, level, tId, dept  Teacher 屬性: pId, name, sex, sId, major, degree

7  黃三益 2007 資料庫的核心理論與實務第三版 12-7 特殊化和一般化  給定一個父類別,按照某個標準分化出數個 子類別的過程就稱為「特殊化」 ( Specialization )  給定數個子類別,並具以歸納出其父類別的 過程就稱為「一般化」  範例:產品有三個特殊化分類  按商品種類來分  按商品是否為促銷品來分  按產品庫存地來分

8  黃三益 2007 資料庫的核心理論與實務第三版 12-8 特殊化和一般化( Cont.)

9  黃三益 2007 資料庫的核心理論與實務第三版 12-9 特殊化和一般化( Cont.)  一個特殊化分類,可以設定它的限制  條件分類或使用者分類  第一個特殊化分類(按商品種類來分類)是條件分類, 其他為使用者分類  重複或非重複限制  重複限制用 o 來圖示,非重複限制用 d 來圖示  完全或部分參與限制  完全參與用雙線來圖示,部分參與用單線來圖示  參考上頁圖 13-2圖 13-2

10  黃三益 2007 資料庫的核心理論與實務第三版 12-10 練習 12-2  假設該網路書店還兼賣文具( SchoolSupply ),且還可能賣 一些無法歸類的產品,請重劃第一個特殊化(依商品種類來 分)

11  黃三益 2007 資料庫的核心理論與實務第三版 12-11 特殊化的過程  有四個步驟:  決定該特殊化分類的子類別  設定該特殊化分類的限制  決定每一個子類別的特有屬性  檢視 EERD 的其他實體型態(或類別),以決定 是否要為某一個子類別建立新的關係型態  範例:將 Product 的創作者抽離成一獨立的類 別,並進行特殊化

12  黃三益 2007 資料庫的核心理論與實務第三版 12-12

13  黃三益 2007 資料庫的核心理論與實務第三版 12-13 練習 12-3  在上頁圖 13-3 裡,創作者的特殊化的重複限 制是用( o ),請問其含意為何?圖 13-3  Ans: 表示一位創作者可同時是 artist 、 author, 或 actor

14  黃三益 2007 資料庫的核心理論與實務第三版 12-14 特殊化的多階層架構  一個子類別,我們可以再將其特殊化。如此 繼承關係將這些類別串連成一個樹狀結構, 稱之為特殊化階層  範例:銀行客戶  可特殊化成子類別貸款戶和存款戶  貸款戶可特殊化成子類別信貸戶、動產貸款戶 , 和不動產貸款戶  存款戶可特殊化成子類別儲蓄戶、支票戶,和定 存戶

15  黃三益 2007 資料庫的核心理論與實務第三版 12-15

16  黃三益 2007 資料庫的核心理論與實務第三版 12-16 多重繼承  當一子類別有兩個或以上的父類別時,稱為 多重繼承  比如某些同時擁有定存和不動產貸款的客戶可以 成為「貴賓專戶」,如下圖所示下圖  有多重繼承關係的類別會形成晶格  圖 13-1 所顯示的 Person, Student, Teacher, 和 TA 的繼承關係也是一個晶格,這是因為 TA 擁有多重 繼承的關係 圖 13-1

17  黃三益 2007 資料庫的核心理論與實務第三版 12-17

18  黃三益 2007 資料庫的核心理論與實務第三版 12-18 練習 12-4  請解釋圖 13-4 中,各特殊化(存款戶,貸款 戶,不動產貸款戶)重疊限制的意義圖 13-4  Ans:  表示一位存款戶可同時有定存、支票和儲蓄帳戶。 一位貸款戶可同時有動產和不動產貸款。一位不 動產貸款戶可同時有土地和建物貸款

19  黃三益 2007 資料庫的核心理論與實務第三版 12-19 練習 12-5  圖 13-5 中,貴賓專戶共有哪些屬性? 圖 13-5  Ans:  VIPAccount , cdDate , cdAmount , cdRate , history , eYear , eDate , eRate , eHist , guarantor , loanHist , loanNo , cId , name , account , startDate

20  黃三益 2007 資料庫的核心理論與實務第三版 12-20 群類  某些本質上完全不同的 類別有時候可以群聚起 來合成一個類別,這樣 的類別我們就稱為群類 ( Category)  範例:銀行的帳戶可以 屬於個人或公司,此時 帳戶( AccountOwner) 為個人 (Person) 和公司 (Company) 所組成的群 類

21  黃三益 2007 資料庫的核心理論與實務第三版 12-21 群類 (Cont.)  群類不同於繼承

22  黃三益 2007 資料庫的核心理論與實務第三版 12-22 群類 (Cont.) C  A ∪ B (b) C  A∩B (c) C  A ∪ B

23  黃三益 2007 資料庫的核心理論與實務第三版 12-23 群類 (Cont.)  群類裡也可設定完全參與限制  具備完全參與限制的群類等同於繼承

24  黃三益 2007 資料庫的核心理論與實務第三版 12-24

25  黃三益 2007 資料庫的核心理論與實務第三版 12-25 UML 的類別圖表示法  UML 裡定義了許多圖  絕大部分的圖都跟程式功 能流程相關,其中只有類 別圖( Class diagram) 主 要與資料面相關  類別圖的基本組成份子包 括類別和關連  類別的描述包括三個部分:  類別名稱  屬性( Attribute )  運算方法( Operation )

26  黃三益 2007 資料庫的核心理論與實務第三版 12-26 UML 的類別圖表示法 (Cont.)  類別圖裡的關連是用來描述類別與類別間的關係  關連上也可以設定角色( role ),也有結構上的限制,採用類似( min, max )的方式  一個 " * " 表示 "0.. * " ,一個 "1" 表示 "1..1" , " * " 表示沒上限 每一個 C1 ( C2 )物件至少有 min1 ( min2 ) 至多有 max1 ( max2 )個 C2 ( C1 )物件與它關連

27  黃三益 2007 資料庫的核心理論與實務第三版 12-27 練習 12-7 :  考慮公司和員工的關係,其中一個公司可以有 1 到 多個員工,但每一位員工只能屬於一家公司。  用 UML 類別圖的關連來表示  用第二章 M:N 的關係型態來表示  用第二章 (min, max) 的關係型態來表  Ans: UML M:N (min, max)

28  黃三益 2007 資料庫的核心理論與實務第三版 12-28 UML 的類別圖表示法 (Cont.)  類似關連的概念:彙總( Aggregation )和組合 ( Composition )  彙總:引擎是汽車的組成部分,員工是公司的組成部 分  用空心菱形表示  與關連間的區別不清楚  組合:類似彙總但隱含組成類別的物件不可單獨存在  用實心凌形表示  常用來表示弱實體型態或多值屬性

29  黃三益 2007 資料庫的核心理論與實務第三版 12-29

30  黃三益 2007 資料庫的核心理論與實務第三版 12-30 UML 的特殊化分類表示法  UML 的類別圖用一個三角形來表示特殊化分類。對 於特殊化分類的限制,其表示法如下所述:  分類標準:將特殊化分類名稱書寫於三角形旁。  重複限制( Disjoint constraints ):若是父類別的物件不 可重複出現在子類別裡,則用空心三角形表示(擴充實 體關係模式用「 d 」來表示);若是可重複出現,則用實 心三角形表示(擴充實體關係模式用「 o 」來表示)。  完全參與限制( Completeness constraints ):若是完全 特殊化(即一個父類別的物件一定要屬於至少一個子類 別),則在三角形旁註解 {complete} 。

31  黃三益 2007 資料庫的核心理論與實務第三版 12-31

32  黃三益 2007 資料庫的核心理論與實務第三版 12-32 特殊化分類轉成關聯模式  愈來愈多的系統分析師採用物件導向方法論 來設計系統,但物件導向資料庫管理系統的 使用很不普遍  雖以物件導向的的方式來做資料塑模,最後還是 需轉換成關聯模式  特殊化分類的轉換 ,三種方式  子類別和父類別分別產生關聯綱目  只有子類別產生關聯綱目  只有父類別產生關聯綱目

33  黃三益 2007 資料庫的核心理論與實務第三版 12-33 特殊化分類轉成關聯模式  方式一(每個類別產 生一個關聯綱目)  替 C 產生一個關聯綱 目,有 C 的所有屬性 並以 k 為主鍵  替每個子類別 S i 產生 一個關聯綱目,有 S i 的所有屬性再加上 k , 並以 k 為主鍵。

34  黃三益 2007 資料庫的核心理論與實務第三版 12-34 特殊化分類轉成關聯模式 (Cont.)  範例:圖 13-2圖 13-2 ProductpNonamecatalogunitPrice DVDpNominutes BookpNoisbn CDpiecespNosongNamelength SalesProductpNodiscount KaohsiungStockProductpNo TaipeiStockProductpNowarehouse

35  黃三益 2007 資料庫的核心理論與實務第三版 12-35 特殊化分類轉成關聯模式 (Cont.)  方式二(只有子類別產生關聯綱目)  替每個子類別 Si 產生一個關聯綱目,有 Si 的所有 屬性再加上 C 的全部屬性,並以 k 為主鍵  只適用於完全特殊化分類

36  黃三益 2007 資料庫的核心理論與實務第三版 12-36 特殊化分類轉成關聯模式 (Cont.)  範例:圖 13-2 按產品種類的特殊化分類圖 13-2

37  黃三益 2007 資料庫的核心理論與實務第三版 12-37 特殊化分類轉成關聯模式 (Cont.)  方式三(只有父類別產生關聯綱目)  Case 1: 不重複限制  替 C 產生一個關聯綱目,有 C 及所有子類別的屬性,再 加上一個額外屬性用來辨別紀錄所屬的子類別,並以 k 為主鍵  Case 2: 重複限制  替 C 產生一個關聯綱目,有 C 及所有子類別的屬性,再 加上 n 個額外布林( Boolean )屬性用來辨別紀錄是否 屬於每個子類別,並以 k 為主鍵

38  黃三益 2007 資料庫的核心理論與實務第三版 12-38 特殊化分類轉成關聯模式 (Cont.)  範例:圖 13-2圖 13-2 Product pNonamecatalogunitPriceminutesisbnsalesflagdiscount CDPieces pNosongNamelength Product pNonamecatalogunitPriceKaohsiungFlagTaipeiFlagwarehouse

39  黃三益 2007 資料庫的核心理論與實務第三版 12-39 群類轉成關聯綱目  替 C 產生一個關聯綱目, 每個類別 Si 也個別產生 一個關聯綱目  C :群類 C 的屬性,再加 上一個新的主鍵 k c 。若 C 本身已有關聯主鍵則不 須另外附加 。  S i :類別 S i 上的屬性,再 加上一個外部鍵,參考 到 C 的關聯主鍵 k c 。

40  黃三益 2007 資料庫的核心理論與實務第三版 12-40 群類轉成關聯綱目( Cont.)  範例:圖 13-6圖 13-6

41  黃三益 2007 資料庫的核心理論與實務第三版 12-41 轉成關聯綱目的問題  不管使用哪一種方式來將特殊化分類轉成關 聯綱目都有可能喪失一些限制的資訊  考慮圖 13-17 的第一種轉換方式所得到的關聯 綱目,該關聯綱目並無法確保圖 13-17  「每一個 Book 、 DVD 和 CD 的 pNo 值都存在於 Product 裡」  「 Book 、 DVD 和 CD 的 pNo 值必然不同」  這些喪失的限制必須靠 SQL 的 Trigger 來設定 或使用應用程式來確保


Download ppt " 黃三益 2007 資料庫的核心理論與實務第三版 12-1 第十三章 擴充實體關係模式  目的 目的  物件導向基本觀念 物件導向基本觀念  特殊化和一般化 特殊化和一般化  特殊化的多階層架構 特殊化的多階層架構  多重繼承 多重繼承  群類 群類  UML 的類別圖 UML 的類別圖."

Similar presentations


Ads by Google