4、数据库逻辑结构设计阶段
我們在概要設計階段解決了客戶的需求,并繪制了 E-R圖。邏輯結構設計的任務,就是把在概要結構設計階段建立的基本 E-R 圖,按選定的關系數(shù)據(jù)模型的原則轉(zhuǎn)換成相應的數(shù)據(jù)庫模型圖。
本節(jié)將介紹如何將 E-R圖轉(zhuǎn)化為關系模型和數(shù)據(jù)庫模型圖,
關系數(shù)據(jù)庫模式
用二維表的形式表示實體與實體間關系的數(shù)據(jù)模型稱為關系模型。關系數(shù)據(jù)庫模式是對關系數(shù)據(jù)庫結構的描述,或者說是對關系數(shù)據(jù)庫框架的描述。一個關系通常對應一張表。
一般情況下,我們把關系模式表示為 R(U) 或 R(A,B)。其中,R 表示關系名,U 表示屬性集合,A、B 代表 U 中的屬性。
將 E-R 圖轉(zhuǎn)換為關系模式的步驟如下。
1)把每個實體都轉(zhuǎn)化為關系模式 R(A,B) 形式
以酒店管理系統(tǒng)為例,實體“客人”和“客房”分別可以使用關系模式表示如下。
客房(客房號,客房描述,客房類型,客房狀態(tài),床位數(shù),入住人數(shù),價格)。
客人(客人編號,客人姓名,身份證號,入住日期,結賬日期,押金,總金額)。
2)建立實體間關系的轉(zhuǎn)換
實體間的關系分成一對一、一對多、多對多三種,當兩個實體各自轉(zhuǎn)化為關系模式后,實體間關系的轉(zhuǎn)換如下。
- 一對一的轉(zhuǎn)換:把任意實體的主鍵放到另一個實體的關系模式中。
- 一對多的轉(zhuǎn)換:把關系數(shù)量為 1 的實體的主鍵放到關系數(shù)量為 N 的實體關系模式中。
- 多對多的轉(zhuǎn)換:把兩個實體中的主鍵和關系的屬性放到另一個關系模式中,會多生成一個關系模式。
酒店管理系統(tǒng)中客房與客人的關系為一對多關系,轉(zhuǎn)換后的結果如下。
客房(客房號 ,客房描述,客房類型,客房狀態(tài),床位數(shù),入住人數(shù),價格)。
客人(客人編號 ,客人姓名,身份證號,入住日期,結賬日期,押金,總金額,客房號)。
上述關系模式中含有下劃線的屬性代表主屬性,在表中作為主鍵,加粗屬性為外鍵。
數(shù)據(jù)庫模型圖
數(shù)據(jù)庫模型圖主要用來說明數(shù)據(jù)庫有哪些表,表中有哪些屬性以及表與表之間的關聯(lián)關系。
將 E-R 圖轉(zhuǎn)化為數(shù)據(jù)庫模型圖主要執(zhí)行以下 4 步:
- 在 Visio 中新建數(shù)據(jù)庫模型圖
- 添加實體,將 E-R圖中各實體轉(zhuǎn)化為對應的表
- 將各屬性轉(zhuǎn)化為各表對應的列,定義字段名稱、數(shù)據(jù)類型等
- 添加實體之間的映射關系
添加實體之間的映射關系,具體步驟如下:
- 添加 GuestRecord(客人)實體和 Room(客房)實體。
- 為 GuestRecord 表添加外鍵約束列 RoomID(客房號),對應 Room 表中的 RoomID 列。
為了數(shù)據(jù)編碼的兼容性,建議使用英文字段。為了直觀可見,我們在英文括號內(nèi)注明了對應的中文含義。下面將 E-R 圖中的“客房”和“客人”兩個實體轉(zhuǎn)換為數(shù)據(jù)庫模型圖,如下圖所
圖中的 PK 表示表的主鍵列,FK 表示外鍵列。需要注意的是,表中的 ID 編號列只能用作主鍵或外鍵,否則該列沒有實際含義。如客人表中的 GuestID 列,客房表中添加的 RoomID 列。
在數(shù)據(jù)庫模型圖中也可以很好的體現(xiàn)實體之間的映射關系。比如,客房和客人之間是一對多關系,對于一對多關系的兩個實體,一般會各自轉(zhuǎn)換為一張表,并且后者對應的表引用前者對應的表,即客人(GuestRecord)表中的客房號來自客房(Room)表中的客房號,它們之間應建立主鍵、外鍵關系,如上圖所示。
一般來說,一對多關系是一個表中的主鍵對應另一個表中可重復字段,主鍵的值是不能重復的,而關聯(lián)的字段是可以重復的,這樣就會存在一個值對應一個值或者一個值對應多個值。在一對一關系中,一般是一個主鍵對應一個不可重復的字段,顯然只能一個值對應一個值。
多對多映射關系也是比較常見的。要表示多對多關系,除了將多對多關系中的兩個實體各自轉(zhuǎn)換為表外,一般還會創(chuàng)建第三個表,稱為連接表。它將多對多關系劃分為兩個一對多關系,并且將這兩個表的主鍵都插入到第三個表中。
例如,訂單表和產(chǎn)品表有多對多關系,這種關系通常通過與“訂單明細”表建立兩個一對多關系來定義。一個訂單可以有多個產(chǎn)品,每個產(chǎn)品可以出現(xiàn)在多個訂單中。關于這一點可以在以后的數(shù)據(jù)庫設計實例中慢慢理解。
總結
以上是生活随笔為你收集整理的4、数据库逻辑结构设计阶段的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 实现用友U8+与旺店通ERP数据同步
- 下一篇: 不联网计算机软件升级,不能联网的电脑如何