第十三章 擴充實體關係模式

41
黃黃黃 2007 黃黃黃黃黃黃黃黃黃黃黃黃黃黃 12-1 黃黃黃黃 黃黃黃 黃黃黃黃 黃黃 黃黃黃黃黃黃黃黃 黃黃黃黃 黃黃 黃黃黃黃黃黃黃黃黃 黃黃黃黃 黃黃 UML 黃黃黃黃 黃黃黃黃黃黃

Upload: idana

Post on 25-Jan-2016

55 views

Category:

Documents


1 download

DESCRIPTION

第十三章 擴充實體關係模式. 目的 物件導向基本觀念 特殊化和一般化 特殊化的多階層架構 多重繼承 群類 UML 的類別圖 轉成關聯綱目. 目的. 本章所探討的是加上物件導向功能的實體關係模式 擴充後的實體關係圖則稱為擴充實體關係圖 ﹝ 簡稱 EERD﹞ 物件導向的概念結合了資料和運算方法 我們著重的是資料面. 物件導向基本觀念. 最相關的物件導向概念是繼承 實體關係模式的組成元件包括實體( Entity )和關係( Relationship ) 範例 Student(pId, name, sex, sId, major, degree) - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 第十三章 擴充實體關係模式

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

12-1

第十三章 擴充實體關係模式 目的物件導向基本觀念特殊化和一般化特殊化的多階層架構

多重繼承群類 UML 的類別圖轉成關聯綱目

Page 2: 第十三章 擴充實體關係模式

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

12-2

目的本章所探討的是加上物件導向功能的實體關係模式

擴充後的實體關係圖則稱為擴充實體關係圖﹝簡稱 EERD ﹞

物件導向的概念結合了資料和運算方法我們著重的是資料面

Page 3: 第十三章 擴充實體關係模式

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

12-3

物件導向基本觀念 最相關的物件導向概念是繼承 實體關係模式的組成元件包括實體( Entity )和關係( Relations

hip ) 範例

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

Page 4: 第十三章 擴充實體關係模式

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

12-4

物件導向基本觀念 (Cont.)

「實體」改稱「物件」( Object ) 「實體型態」改稱「類別」( Class ) 上例中有四個類別: Person, Teacher, Student, TA ,有繼

承關係

PersonmajortId dept

Student

sId

Teacher

TA

pId name sex

level

degree

course

Page 5: 第十三章 擴充實體關係模式

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

12-5

物件導向基本觀念 (Cont.)

一個繼承關係是由一個父類別( Superclass )和一個子類別( Subclass )所構成 ,有以下特點: 每一個子類別的物件,也必然是父類別的成員 父類別的成員不一定要屬於子類別 子類別的物件繼承了父類別的所有屬性和其所參與的所有關係型態

Page 6: 第十三章 擴充實體關係模式

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

12-6

練習 12-1

以圖13-1為例,分別列出 Student 和 Teache

r 的所有屬性 Ans:

Student 屬性: pId, name, sex, level, tId, dept Teacher 屬性: pId, name, sex, sId, major, degr

ee

Page 7: 第十三章 擴充實體關係模式

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

12-7

特殊化和一般化 給定一個父類別,按照某個標準分化出數個子類別的過程就稱為「特殊化」( Specialization )

給定數個子類別,並具以歸納出其父類別的過程就稱為「一般化」

範例:產品有三個特殊化分類 按商品種類來分 按商品是否為促銷品來分 按產品庫存地來分

Page 8: 第十三章 擴充實體關係模式

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

12-8

特殊化和一般化( Cont.)

Product

pNo unitPrice

catalogname

DVD Book CD

d

pieces

minutes isbn

songName length

SalesProduct

discount

KaohsiungStockProduct

TaipeiStockProduct

o

warehouse

catalog

‘ DVD’‘ Book’

‘ CD’

Page 9: 第十三章 擴充實體關係模式

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

12-9

特殊化和一般化( Cont.)

一個特殊化分類,可以設定它的限制 條件分類或使用者分類

第一個特殊化分類(按商品種類來分類)是條件分類,其他為使用者分類

重複或非重複限制重複限制用 o 來圖示,非重複限制用 d 來圖示

完全或部分參與限制完全參與用雙線來圖示,部分參與用單線來圖示

參考上頁圖13-2

Page 10: 第十三章 擴充實體關係模式

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

12-10

練習 12-2

假設該網路書店還兼賣文具( SchoolSupply ),且還可能賣一些無法歸類的產品,請重劃第一個特殊化(依商品種類來分)

Product

pNo unitPrice catalogname

DVD Book CD

d

pieces

minutes isbn

songName length

SalesProduct

discount

KaohsiungStockProduct

TaipeiStockProduct

o

warehouse

catalog

‘ DVD’‘ Book’‘ CD’

SchoolSupply

name

'SchoolSupply'

Page 11: 第十三章 擴充實體關係模式

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

12-11

特殊化的過程 有四個步驟:

決定該特殊化分類的子類別 設定該特殊化分類的限制 決定每一個子類別的特有屬性 檢視 EERD 的其他實體型態(或類別),以決定是否要為某一個子類別建立新的關係型態

範例:將 Product 的創作者抽離成一獨立的類別,並進行特殊化

Page 12: 第十三章 擴充實體關係模式

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

12-12

AuthorArtist Actor

o

Product

DVD Book CD

d

pieces

minutes isbn

songName length

SalesProduct

discount

KaohsiungStockProduct

TaipeiStockProduct

o

warehouse

catalog

Creator

Acts

Performs

Authors

M N

M

M N

N

namecId

‘ DVD’ ‘ cd’‘ book’

pNo unitPrice catalogname

rolesstylesartTypes

Page 13: 第十三章 擴充實體關係模式

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

12-13

練習 12-3

在上頁圖 13-3 裡,創作者的特殊化的重複限制是用( o ),請問其含意為何?

Ans:表示一位創作者可同時是 artist 、 author, 或 actor

Page 14: 第十三章 擴充實體關係模式

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

12-14

特殊化的多階層架構 一個子類別,我們可以再將其特殊化。如此繼承關係將這些類別串連成一個樹狀結構,稱之為特殊化階層

範例:銀行客戶 可特殊化成子類別貸款戶和存款戶 貸款戶可特殊化成子類別信貸戶、動產貸款戶 ,和不動產貸款戶

存款戶可特殊化成子類別儲蓄戶、支票戶,和定存戶

Page 15: 第十三章 擴充實體關係模式

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

12-15

存款戶Depositor

定存戶CD

貸款戶Loaner

客戶Customer

o

o貸款編號

loanNo

貸款歷史loanHist

不動產貸款戶EstateLoaner

o

建物貸款戶BuildingLoaner

土地貸款戶LandLoaner

動產貸款戶PropertyLoaner

o

支票戶Checking

保證人IDguarantorId

扺押歷史eHist

貸款年限fYear

貸款日期fDate

貸款利率fRate 貸款年限

eYear

貸款日期eDate

貸款利率eRate

貸款年限pYear

貸款日期pDate

貸款利率pRate

扺押品規格mDesc

扺押品名稱mName

建號bNo

地號lNo

客戶IDcId

姓名name

客戶帳號account

開戶日期startDate

定存起訖日期cdDate

定存利率cdRate

定存額cdAmount

被保人關係guarantship

存款歷史history

儲蓄戶Saving

存款餘額balance

存款利率savingRate

支票張數freeCheckNum

保證人姓名guarantorName

保證人guarantor

信貨戶FiduciaryLoaner

扺押品pMortgages

存款餘額balance

Page 16: 第十三章 擴充實體關係模式

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

12-16

多重繼承 當一子類別有兩個或以上的父類別時,稱為多重繼承 比如某些同時擁有定存和不動產貸款的客戶可以成為「貴賓專戶」,如下圖所示

有多重繼承關係的類別會形成晶格 圖 13-1 所顯示的 Person, Student, Teacher, 和

TA 的繼承關係也是一個晶格,這是因為 TA 擁有多重繼承的關係

Page 17: 第十三章 擴充實體關係模式

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

12-17

存款戶Depositor

定存戶CD

貸款戶Loaner

客戶Customer

o

o貸款編號

loanNo

貸款歷史loanHist

不動產貸款戶EstateLoaner

o

建物貸款戶BuildingLoaner

土地貸款戶LandLoaner

動產貸款戶PropertyLoaner

o

支票戶Checking

保證人IDguarantorId

扺押歷史eHist

貸款年限fYear

貸款日期fDate

貸款利率fRate 貸款年限

eYear

貸款日期eDate

貸款利率eRate

貸款年限pYear

貸款日期pDate

貸款利率pRate

扺押品規格mDesc

扺押品名稱mName

建號bNo

地號lNo

客戶IDcId

姓名name

客戶帳號account

開戶日期startDate

定存起訖日期cdDate

定存利率cdRate

定存額cdAmount

被保人關係guarantship

存款歷史history

儲蓄戶Saving

存款餘額balance

存款利率savingRate

支票張數freeCheckNum

保證人姓名guarantorName

保證人guarantor

信貨戶FiduciaryLoaner

扺押品pMortgages

存款餘額balance

貴賓專戶VIP

專戶帳號VIPAccount

Page 18: 第十三章 擴充實體關係模式

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

12-18

練習 12-4

請解釋圖 13-4 中,各特殊化(存款戶,貸款戶,不動產貸款戶)重疊限制的意義

Ans: 表示一位存款戶可同時有定存、支票和儲蓄帳戶。一位貸款戶可同時有動產和不動產貸款。一位不動產貸款戶可同時有土地和建物貸款

Page 19: 第十三章 擴充實體關係模式

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

12-19

練習 12-5

圖 13-5 中,貴賓專戶共有哪些屬性? Ans:

VIPAccount , cdDate , cdAmount , cdRate , history , eYear , eDate , eRate , eHist , guarantor , loanHist , loanNo , cId , name , account , startDate

Page 20: 第十三章 擴充實體關係模式

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

12-20

群類 某些本質上完全不同的類別有時候可以群聚起來合成一個類別,這樣的類別我們就稱為群類( Category)

範例:銀行的帳戶可以屬於個人或公司,此時帳戶( AccountOwner)為個人 (Person) 和公司(Company) 所組成的群類

AccountOwner

U

Person Company

pId cNamepName

accountNo startDate

cId

Page 21: 第十三章 擴充實體關係模式

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

12-21

群類 (Cont.)

群類不同於繼承

AccountOwner

d

Person CompanyAccountOwner

Person Company

Page 22: 第十三章 擴充實體關係模式

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

12-22

群類 (Cont.)

CA B (b) C ∪ A∩B (c) CA B ∪

C

A B

U

C

A B

C

A B

d

Page 23: 第十三章 擴充實體關係模式

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

12-23

群類 (Cont.)

群類裡也可設定完全參與限制 具備完全參與限制的群類等同於繼承

C

A B

U

C

A B

d

Page 24: 第十三章 擴充實體關係模式

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

12-24

貴賓專戶VIP

專戶帳號vipAccount

信貨戶FiduciaryLoaner

存款戶Depositor

定存戶CD

貸款戶Loaner

客戶Customer

o

o貸款編號

loanNo保證人guarantor

貸款歷史loanHist

不動產貸款戶EstateLoaner

o

建物貸款戶BuildingLoaner

土地貸款戶LandLoaner

動產貸款戶PropertyLoaner

o

支票戶Checking

保證人IDguarantorId

保證人姓名guarantorName

扺押歷史eHist

貸款年限fYear

貸款日期fDate

貸款利率fRate

貸款年限eYear

貸款日期eDate

貸款利率eRate

貸款年限pYear

貸款日期pDate

貸款利率pRate

扺押品規格mDesc 扺押品名稱

mName

扺押品pMortgages

建號bNo

地號lNo

客戶IDcId

姓名name

客戶帳號account

開戶日期startDate

定存起訖日期cdDate

定存利率cdRate

定存款cdAmount

被保人關係guarantship

存款歷史history

儲蓄戶Saving

存款餘額balance 存款利率

savingRate

支票張數freeCheckNum

國內投資戶DomesticInvestor

o

投資帳號dAccount

投資帳號oAccount

董事Director

監事Supervisor

理事CouncilMember

d

銀行股東Owner

國外投資戶OverseasInvestor

股東身份ownerPosition

股東姓名ownerName

持有股份shares

ownerPosition

‘ director’ ‘ councilmember’‘ supervisor’

投資標的物Product

標的物種類

pTyped

股票Stock

基金Fund

債券Bond

期貨Futures

投資Investment

N

M

標的物名稱pName

pType

‘ futures’‘ stock’

‘ fund’ ‘ bond’

投資日期vipInvDate

投資額vipInvestment

理財戶

U

存款餘額balance

Page 25: 第十三章 擴充實體關係模式

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

12-25

UML 的類別圖表示法 UML 裡定義了許多圖

絕大部分的圖都跟程式功能流程相關,其中只有類別圖( Class diagram)主要與資料面相關

類別圖的基本組成份子包括類別和關連

類別的描述包括三個部分: 類別名稱 屬性( Attribute ) 運算方法( Operation )

Transaction

tNopayment bankId bankName cardType cardId dueDatetransTimemethod

:屬性

:類別名稱

:運算方法 get-method ( )get-transTime ( )set-method ( )......

Page 26: 第十三章 擴充實體關係模式

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

12-26

UML 的類別圖表示法 (Cont.)

類別圖裡的關連是用來描述類別與類別間的關係 關連上也可以設定角色( role ),也有結構上的限制,採用類似( min,

max )的方式 一個 "* " 表示 "0..* " ,一個 "1" 表示 "1..1" , "* " 表示沒上限

C1 C2(min1..max1)(min2..max2)

每一個 C1( C2)物件至少有min1(min2)至多有max1(max2)個 C2( C1)物件與它關連

Page 27: 第十三章 擴充實體關係模式

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

12-27

練習 12-7 : 考慮公司和員工的關係,其中一個公司可以有 1到多個員工,但每一位員工只能屬於一家公司。 用 UML 類別圖的關連來表示 用第二章 M:N 的關係型態來表示 用第二章 (min, max) 的關係型態來表

Ans:

UML

M:N

(min, max)

(1..*)(1..1)擁有

員工公司公司 員工1 N擁有

公司 員工擁有(1,n) (1,1)

Page 28: 第十三章 擴充實體關係模式

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

12-28

UML 的類別圖表示法 (Cont.)

類似關連的概念:彙總( Aggregation )和組合( Composition ) 彙總:引擎是汽車的組成部分,員工是公司的組成部分

用空心菱形表示與關連間的區別不清楚

組合:類似彙總但隱含組成類別的物件不可單獨存在 用實心凌形表示常用來表示弱實體型態或多值屬性

公司 員工1 *

汽車 零件1 *

Page 29: 第十三章 擴充實體關係模式

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

12-29

mId pIdnamebirthdayphoneaddressemailintroducerId

Member

get mIdget pId...

cartTime

Cart

get cartTime

tNotransTimemethodpayment bankId bankName cardType cardId dueDate

Transaction

*1

1

*

*

**

*

* 1..*

0..1

Product

pNopNamecatalogunitPrice

Has

Corresponds

0..1

Confirms Order

amount

Borwse

browseTime

RecordsalePriceamount

Author

name

*1

Page 30: 第十三章 擴充實體關係模式

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

12-30

UML 的特殊化分類表示法 UML 的類別圖用一個三角形來表示特殊化分類。對於特殊化分類的限制,其表示法如下所述: 分類標準:將特殊化分類名稱書寫於三角形旁。 重複限制( Disjoint constraints ):若是父類別的物件不可重複出現在子類別裡,則用空心三角形表示(擴充實體關係模式用「 d 」來表示);若是可重複出現,則用實心三角形表示(擴充實體關係模式用「 o 」來表示)。

完全參與限制( Completeness constraints ):若是完全特殊化(即一個父類別的物件一定要屬於至少一個子類別),則在三角形旁註解 {complete} 。

Page 31: 第十三章 擴充實體關係模式

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

12-31

Product

pNopNamecatalogunitPrice

catalog(complete)

DVD Book CDminutes isbn

CDpiecessongNamelength

*SalesProduc

tdiscount

1

KaohsiungStockProduct

TaipeiStockProduct

warehouse

‘ DVD’ ‘ CD’‘ Book’

Page 32: 第十三章 擴充實體關係模式

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

12-32

特殊化分類轉成關聯模式 愈來愈多的系統分析師採用物件導向方法論來設計系統,但物件導向資料庫管理系統的使用很不普遍 雖以物件導向的的方式來做資料塑模,最後還是需轉換成關聯模式

特殊化分類的轉換 ,三種方式 子類別和父類別分別產生關聯綱目 只有子類別產生關聯綱目 只有父類別產生關聯綱目

Page 33: 第十三章 擴充實體關係模式

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

12-33

特殊化分類轉成關聯模式方式一(每個類別產生一個關聯綱目) 替 C 產生一個關聯綱目,有 C 的所有屬性並以 k 為主鍵

替每個子類別 Si產生一個關聯綱目,有 Si

的所有屬性再加上 k ,並以 k 為主鍵。

C

. . .

k

S1 S2 Sn

Page 34: 第十三章 擴充實體關係模式

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

12-34

特殊化分類轉成關聯模式 (Cont.)

範例:圖 13-2

Product pNo name catalog unitPrice

DVD pNo minutes

Book pNo isbn

CDpieces pNo songName length

SalesProduct pNo discount

KaohsiungStockProduct pNo

TaipeiStockProduct pNo warehouse

Page 35: 第十三章 擴充實體關係模式

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

12-35

特殊化分類轉成關聯模式 (Cont.)

方式二(只有子類別產生關聯綱目) 替每個子類別 Si 產生一個關聯綱目,有 Si 的所有屬性再加上 C 的全部屬性,並以 k 為主鍵

只適用於完全特殊化分類

Page 36: 第十三章 擴充實體關係模式

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

12-36

特殊化分類轉成關聯模式 (Cont.)

範例:圖 13-2 按產品種類的特殊化分類

DVD

Book

CDpieces

pNo

name catalog unitPrice isbn

pNo

name catalog unitPrice minutes

pNo

songName length

pNo

name catalog unitPrice CD

Page 37: 第十三章 擴充實體關係模式

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

12-37

特殊化分類轉成關聯模式 (Cont.)

方式三(只有父類別產生關聯綱目) Case 1: 不重複限制

替 C 產生一個關聯綱目,有 C及所有子類別的屬性,再加上一個額外屬性用來辨別紀錄所屬的子類別,並以 k 為主鍵

Case 2: 重複限制替 C 產生一個關聯綱目,有 C及所有子類別的屬性,再加上 n 個額外布林( Boolean )屬性用來辨別紀錄是否屬於每個子類別,並以 k 為主鍵

Page 38: 第十三章 擴充實體關係模式

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

12-38

特殊化分類轉成關聯模式 (Cont.)

範例:圖 13-2 Product

pNo name catalog unitPrice minutes isbn salesflag discount

CDPieces

pNo songName length

Product

pNo name catalog unitPrice KaohsiungFlag TaipeiFlag warehouse

Page 39: 第十三章 擴充實體關係模式

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

12-39

群類轉成關聯綱目 替 C 產生一個關聯綱目,每個類別 Si 也個別產生一個關聯綱目 C :群類 C 的屬性,再加上一個新的主鍵 kc。若 C 本身已有關聯主鍵則不須另外附加 。

Si:類別 Si上的屬性,再加上一個外部鍵,參考到 C 的關聯主鍵 kc 。

C

S1 Sn

U

S2

k1 k2 kn

. . .

Page 40: 第十三章 擴充實體關係模式

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

12-40

群類轉成關聯綱目( Cont.)

範例:圖 13-6

accountNo

startDate

AccountOwner

Person Company

pId

pName personAccount

cId cName companyAccount

Page 41: 第十三章 擴充實體關係模式

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

12-41

轉成關聯綱目的問題不管使用哪一種方式來將特殊化分類轉成關聯綱目都有可能喪失一些限制的資訊

考慮圖 13-17 的第一種轉換方式所得到的關聯綱目,該關聯綱目並無法確保 「每一個 Book 、 DVD 和 CD 的 pNo值都存在於 Product 裡」

「 Book 、 DVD 和 CD 的 pNo值必然不同」 這些喪失的限制必須靠 SQL 的 Trigger 來設定或使用應用程式來確保