第三章 實體關係模式:進階練習

37

Click here to load reader

Upload: anthea

Post on 06-Jan-2016

101 views

Category:

Documents


19 download

DESCRIPTION

第三章 實體關係模式:進階練習. 目的 多元關係型態 二元關係型態的其他表示法 繪製 ERD 時常犯錯誤 範例 範例一 範例二 範例三. 目的. 延續上一章所描述的實體關係模式 實體關係模式的一些基本符號和規定極為簡單,但要靈活且正確的使用,需要經常的練習 透過一些範例的說明,讓讀者學會活用實體關係模式. 多元關係型態. 當一個關係型態所連結的實體型態超過二個時,我們就稱該關係型態為多元關係型態 三元關係型態 四元關係型態 etc 範例:倉庫 進貨 是從自數個 供應商 載運數樣 商品. 多元關係型態( Cont.). - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 第三章 實體關係模式:進階練習

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

3-1

第三章 實體關係模式:進階練習目的多元關係型態二元關係型態的其他表示法繪製 ERD 時常犯錯誤範例

範例一 範例二 範例三

Page 2: 第三章 實體關係模式:進階練習

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

3-2

目的延續上一章所描述的實體關係模式 實體關係模式的一些基本符號和規定極為簡單,但要靈活且正確的使用,需要經常的練習

透過一些範例的說明,讓讀者學會活用實體關係模式

Page 3: 第三章 實體關係模式:進階練習

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

3-3

多元關係型態 當一個關係型態所連結的實體型態超過二個時,我們就稱該關係型態為多元關係型態 三元關係型態 四元關係型態 etc

範例:倉庫進貨是從自數個供應商載運數樣商品

載運Loads

進貨Cargo

供應商Supplier

商品Product

進貨時間cargoTime

供應商IDsId

商品編號 pNo

Page 4: 第三章 實體關係模式:進階練習

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

3-4

多元關係型態( Cont.) 以上三元關係型態可否表示成以下三個二元關係型態? 進貨—來源為—供應商

進貨—包括—商品

供應商—供應—商品

來源為進貨Cargo

供應商Supplier

M N

包括進貨Cargo

商品Product

M N

供應商品

Product供應商Suppl ier

M N

Page 5: 第三章 實體關係模式:進階練習

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

3-5

包括

c1

c1

c2

p1

p2

p1

c1

c1

c2

供應

s1

s2

s2

p1

p1

p2

載運

c1 s1 p1

c1 s2 p2

c2 s2 p1

來源為

s1

s2

s2

多元關係型態( Cont.)

Answer: NO!

Page 6: 第三章 實體關係模式:進階練習

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

3-6

練習 3-1

請決定以下情況該用一個三元關係型態或數個二元關係型態來表達。

那位老師上哪門課有哪些學生。 那個供應商供應那個商品給那個零售商。

Ans: 應該用兩個二元關係即可表達。 應該用一個三元關係來表達。

Page 7: 第三章 實體關係模式:進階練習

多元關係型態的結構上限制

任一個 A 可以不參加此關係

任一個 A 必須參加此關係

任一組對方的組合( B 和 C )最多只能有一個 A 值

任一組對方的組合( B 和 C )可以有多個 A 值

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

3-7

A

A

AB

C

1

AB

C

N

Page 8: 第三章 實體關係模式:進階練習

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

3-8

多元關係型態的結構上限制 多元關係型態也有基數比和參與度

下列三元關係型態的意義為何?機器

Machine零件Part

供應Supplies

供應商Supplier

NN

1每台機器至少要有一組相對應的零件和供應商,但一組零件和供應商可有多台機器

N

每個零件可以不對應任何機器和供應商,但一組機器和供應商可有多個零件

N

每個供應商可以不對應任何零件和機器,但一組零件和機器最多只能對應一個供應商

1

Page 9: 第三章 實體關係模式:進階練習

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

3-9

練習 3-2 考慮圖 3-5 的三元關係型態,假設機器( Machine )有三個實體: M1,

M2, M3 ,零件( Part )有二個實體: P1, P2 ,供應商( Supplier )也有二個實體: S1 和 S2 。請針對以下每一群供應關係,描述其是否合法,若否,請舉出理由。

Machine Part Supplier

M1 P1 S1

M1 P2 S1

M2 P1 S1

M2 P2 S1

Machine Part Supplier

M1 P1 S1

M1 P2 S1

M1 P1 S1

M2 P2 S1

M3 P1 S2

不合法,因為 M3 沒有參與任何關係

不合法,因為(M1, P1, S1) 出現兩次

Page 10: 第三章 實體關係模式:進階練習

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

3-10

Machine Part Supplier

M1 P1 S1

M1 P2 S1

M1 P1 null

M2 P2 S1

M3 P1 S2

Machine Part Supplier

M1 P1 S1

M1 P2 S1

M2 P1 S1

M2 P2 S1

M3 P1 S1

Machine Part Supplier

M1 P1 S1

M1 P2 S1

M1 P1 S2

M2 P2 S1

M3 P1 S2

不合法因為第三筆關係的Supplier 為空值,使得該關係變成不合法的三元關係

合法

不合法,因為(M1, P1 )有兩個供應商: S1, S2

Page 11: 第三章 實體關係模式:進階練習

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

3-11

二元關係型態的其他表示法( min, max )

參與關係型態的每一實體型態上註明一 (min, max) ,表示其每一實體最少要參與 min 個關係,最多則可參與 max個關係

交易Transacti on

相對Corresponds

購物車Cart

1 1

Page 12: 第三章 實體關係模式:進階練習

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

3-12

二元關係型態的其他表示法( min, max ) ( Cont.)

會員Member

確認Confirms

交易Transaction

1 N

Page 13: 第三章 實體關係模式:進階練習

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

3-13

二元關係型態的其他表示法( min, max ) ( Cont.)

交易Transacti on

記錄Records

商品Product

M N

Page 14: 第三章 實體關係模式:進階練習

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

3-14

練習 3-3

練習 3-3. 請完整的解釋以下「記錄」關係型態的結構限制

Ans: 一筆交易至少包括一個商品,至多可有 N 個商品。一個商品可以不存在任何交易裡,至多可以存在N 個交易

Page 15: 第三章 實體關係模式:進階練習

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

3-15

二元關係型態的其他表示法(雞爪)

用一個雞爪的形狀來表示 N ( 多 ) 個參與、一條短線來表示 1 個參與、和一個圓圈來表示 0 個 ( 即沒有 ) 參與

交易Transacti on

相對Corresponds

購物車Cart

1 1

Page 16: 第三章 實體關係模式:進階練習

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

3-16

二元關係型態的其他表示法(雞爪) ( Cont.)

會員Member

確認Confirms

交易Transaction

1 N

Page 17: 第三章 實體關係模式:進階練習

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

3-17

二元關係型態的其他表示法(雞爪) ( Cont.)

交易Transacti on

記錄Records

商品Product

M N

Page 18: 第三章 實體關係模式:進階練習

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

3-18

練習 3-4

練習 3-4. 請完整的解釋以下「記錄」關係型態的結構限制

Ans: 一筆交易至少包括一個商品,但可有多個商品。一個商品可以不存在任何交易裡,但也可存在多個交易

Page 19: 第三章 實體關係模式:進階練習

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

3-19

繪製 ERD 時常犯錯誤 實體型態沒有關鍵屬性 將一個複合關鍵屬性的各個屬性都劃上底線

不當使用多元關係型態

課 程 編 號

名 稱

系 所

課 程 編 號

名 稱

系 所

課程老師

學生 教科書

上課

Page 20: 第三章 實體關係模式:進階練習

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

3-20

繪製 ERD 時常犯錯誤( Cont.)

存在多餘的屬性。 考慮以下實體型態之系所屬性,因已存在一個開課的關係型態,屬性「授課老師」即為多餘

多餘

Page 21: 第三章 實體關係模式:進階練習

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

3-21

繪製 ERD 時常犯錯誤( Cont.)

存在多餘的關係型態(如 " 教 ")

課程

修課

開課老師

學生

Page 22: 第三章 實體關係模式:進階練習

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

3-22

繪製 ERD 時常犯錯誤( Cont.)

為每一實體型態產生人工編號,以避免使用弱實體型態 以圖 2-15 的 ERD 之購物車實體型態為例,若替購物車產生一個人工編號,會有以下兩個缺點:“每一位會員的數台購物車其時間必然不同”的資訊

從 ERD 裡看不出來。要多維護一個屬性

Page 23: 第三章 實體關係模式:進階練習

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

3-23

Page 24: 第三章 實體關係模式:進階練習

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

3-24

範例一 假設你要為一個醫療系統進行資料塑模,經過訪談,你得到

以下的需求: 有 4 個實體型態:醫師( Doctor )、住院病人( InPatient )、檢驗項目( TestItem )、病房( Room )。

醫師有三個屬性:代號( dId )、姓名( dName )、性別( gender )。其中代號是唯一的。

住院病人有三個屬性:病人代號( pId )、姓名( pName )、緊急聯絡人( contact ),其中緊急聯絡人可以有多位,且必須記載緊急聯絡人之姓名( name )與電話( phone )。此外病人代號是唯一的。每一位病人必定有一位主治醫師。

檢驗項目有兩個屬性:項目代號( tId )、名稱( tName )。其中項目代號是唯一的。一位住院病人可以有多個檢驗項目,檢驗日期( date )必須記載。

病房有兩個屬性:房號( rNo )、等級( level )。其中房號是唯一的。

有些醫師(如住院醫師)有指導醫師,不過只能有一位。

Page 25: 第三章 實體關係模式:進階練習

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

3-25

範例一( Cont.)

醫師Doctor

住院病人InPatient

檢驗項目TestItem

病房Room

病床Bed

代號dId

姓名dName

性別gender

指導Supervises

姓名pName

病人代號pId 姓名

name

電話phone

等級level

房號rNo

日期date

名稱tName

項目代號tId

主治Treats

住Stays

被檢驗TestedOn

1 N

1

1

1 N

N

1

M

N

床號bNo

包括Contains

緊急連絡人contact

_supervisee

_supervisor

Page 26: 第三章 實體關係模式:進階練習

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

3-26

範例二 假設你要去替一個經銷商的銷退貨系統進行資料塑模,經

過訪談,你得到以下的需求: 至少要有 4 個實體型態:客戶( Customer )、銷貨單( SaleForm )、

產品( Product )、退貨單( ReturnForm )。 客戶有三個屬性:代號( cId )、姓名( cName )、性別( gender )。

其中代號是唯一的。 產品有三個屬性:產品編號( pNo )、產品名稱( pName )、產品種類( pType )。其中產品編號是唯一的。

銷貨單有三個屬性:銷貨單編號( sNo )、發票編號( invoiceNo )、日期( date )。其中銷貨單編號和發票編號都是唯一的。

退貨單有二個屬性:退貨單編號( rNo )、日期( date )。其中退貨單編號是唯一的。

一張銷貨單記載一個客戶所購買的數種產品之產品編號、產品數量( num )及單價 (unitPrice) 。

一張退貨單記載一個客戶所退回的數種產品之產品編號、產品數量( num )及原銷貨單編號。

銷退貨單如下圖所示。

Page 27: 第三章 實體關係模式:進階練習

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

3-27

範例二( Cont.)

Page 28: 第三章 實體關係模式:進階練習

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

3-28

範例二( Cont.)

銷貨部分可表達如下:

客戶Customer

銷貨單SaleForm

代號cId

姓名cName 性別

gender

銷貨單編號sNo 日期

date

銷貨Purchases

1 N

發票編號invoiceNo

產品Product

產品名稱pName

產品編號pNo

M

N

產品種類pType

包括Contains

數量num

單價unitPrice

Page 29: 第三章 實體關係模式:進階練習

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

3-29

範例二( Cont.)

無法表示每一筆退貨記錄上的原銷貨單資訊

客戶Customer

銷貨單SaleForm

退貨單ReturnForm

產品Product

代號cId

姓名cName

性別gender

銷貨單編號sNo 日期

date

產品名稱pName

產品編號pNo

日期date

退貨單編號rNo

銷貨Purchases

退貨Returns

1 N

M

N

1 M

N

數量num

發票編號invoiceNo

產品種類pType

包括Contains

記錄Records

數量num

單價unitPrice

N

用類似方式表達退貨部份:

Page 30: 第三章 實體關係模式:進階練習

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

3-30

範例二( Cont.)

客戶Customer

銷貨單SaleForm

退貨單ReturnForm

產品Product

代號cId

姓名cName

性別gender

銷貨單編號sNo 日期

date

產品名稱pName

產品編號pNo

日期date

退貨單編號rNo

銷貨Purchases

退貨Returns

1 N

1

N

1 N

N

1 M

N

數量num

發票編號invoiceNo

產品種類pType

包括Contains

數量num

單價unitPrice

1N

流水號SegNo

相對Corresponds

有Has

退貨明細ReturnDetail

記錄Records

將關係型態「記錄」改成「退貨明細」,以便記錄其原銷貨單

Page 31: 第三章 實體關係模式:進階練習

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

3-31

範例二( Cont.)

若每一筆退貨明細一定要有原銷貨單資訊,則退貨的資訊可改成三元關係型態,如下:

客戶Customer

銷貨單SaleForm

退貨單ReturnForm

產品Product

代號cId

姓名cName

性別gender

銷貨單編號sNo 日期

date

產品名稱pName

產品編號pNo

日期date

退貨單編號rNo

銷貨Purchases

退貨Returns

1 N

N

1 M

N

數量num

發票編號invoiceNo

產品種類pType

包括Contains記錄

Records

數量num

單價unitPrice

Page 32: 第三章 實體關係模式:進階練習

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

3-32

範例三 假設你設計了數個網路遊戲放在你的網站上給會員使用,現在你想收集一些使用者的資料以便做統計,需求如下: 每一會員( Member )有代號( mId )、姓名( nam

e )、住址( address )、性別( gender ),和出生年月日( birthday )。其中代號是唯一的。

每一遊戲有代號( gId )、名稱( gName )、遊戲難度( difficulty )。其中代號是唯一的。

會員進站時須輸入帳號( account )和密碼( password )。為方便統計,你希望記載進站的時間( sTime )和玩遊戲時的得分( score )和時間( time )。

Page 33: 第三章 實體關係模式:進階練習

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

3-33

範例三( Cont.)

無法表達一個會員玩一個遊戲可能有好多次,每次的分數都不同 。以及一次上線完了哪些遊戲。

會員Member

遊戲Game

代號mId

姓名name

性別gender

名稱gName

玩Plays

NM

分數score

時間time

住址address

生日birthday 代號

gId遊戲難度difficulty

最簡單的作法:

Page 34: 第三章 實體關係模式:進階練習

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

3-34

範例三( Cont.)

會員Member

遊戲Game

代號mId

姓名name

性別gender

名稱gName

玩PlaysN

M

分數score

時間time

住址address

生日birthday

代號gId

遊戲難度difficulty

密碼password

1

N

進站Enters

登入Session

記錄Records

開始時間sTime

Page 35: 第三章 實體關係模式:進階練習

ERD 表達能力的限制交換性的問題:關係型態間的限制

以下 ERD無法表達:「每位老師所教的課必須是由其所屬的系所所開」

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

3-35

Page 36: 第三章 實體關係模式:進階練習

ERD 表達能力的限制無迴圈的問題:限制遞迴關係型態不可以形成迴圈 以下 ERD無法排除:「甲介紹乙、乙介紹丙,且丙又介紹甲」

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

3-36

Page 37: 第三章 實體關係模式:進階練習

ERD 表達能力的限制時序的問題:時序上的限制

以下 ERD無法限制:「每一位員工在任一日期只能為一個計畫工作」

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

3-37