Download presentation
Presentation is loading. Please wait.
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 來設定 或使用應用程式來確保
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.