(数据库系统概论|王珊)第七章数据库设计-第四节:逻辑结构设计
文章目錄
- 一:E-R圖向關系模式的轉換
- (1)轉換原則
- (2)具體轉換
- A:同一實體間
- ①:同一實體間1:m 聯系
- ②:同一實體間m:n 聯系
- B:兩實體間
- ①:兩實體間1:1聯系
- ②:兩實體間1:m聯系
- ③:兩實體間m:n聯系
- ④:兩實體間弱實體聯系
- C:兩個以上實體間m:n
- 二:數據模型的優化
- 三:設計用戶子模式
概念結構是獨立于任何一種數據模型的信息結構,邏輯結構設計的任務就是把概念結構設計階段設計好的基本E-R圖轉換為與選用數據庫管理系統產品所支持的數據模型相符合的邏輯結構
一:E-R圖向關系模式的轉換
(1)轉換原則
轉換原則:每一個實體類型轉換為一個關系模式,實體的屬性就是關系的屬性,實體的碼就是關系的碼。對于聯系的轉換注意:
- 一般1:1、1:m聯系不產生新的關系模式,而是將一方實體的碼加入到多方實體對應的關系模式中,聯系的屬性也一并加入
- m:n聯系要產生一個新的關系模式,該關系模式由聯系涉及實體的碼加上聯系的屬性(若有)組成
(2)具體轉換
A:同一實體間
①:同一實體間1:m 聯系
可以在這個實體所對應的關系中多設一個屬性,作為與該實體相聯系的另一個實體的主碼
例如,下面的E-R圖可以轉化為如下關系模式
職工(工號,姓名,年齡,性別,職稱,工資,領導者工號,民意測驗)
②:同一實體間m:n 聯系
必須為這個“聯系”單獨建立一個關系,該關系中至少應該包含被它所聯系的雙方實體的“主碼”,如果聯系有屬性,也一并納入該關系中。由于這個“聯系”只涉及一個實體,所以加入的實體的主碼不能同名
例如,下面的E-R圖可以轉化為如下關系模式
零部件(代號,名稱,價格)
組裝(代號,組裝件代號,數量)
B:兩實體間
①:兩實體間1:1聯系
一個1:1 聯系可以轉換為一個獨立的關系模式,也可以與任意一端對應的關系模式合并
- 如果轉換為一個獨立的關系模式:則與該聯系相連的各實體的碼以及聯系本身的屬性均轉換為關系的屬性,每個實體的碼均是該關系的候選碼
- 如果與某一端實體對應的關系模式合并:則需要在該關系模式的屬性中加入另一個關系模式的碼和聯系本身的屬性
例如,下面的E-R圖可以轉化為如下關系模式
工廠(廠號,廠名,地點,姓名,任期)
廠長(姓名,性別,年齡)
或者
廠長(姓名,性別,年齡,廠號,任期)
工廠(廠號,廠名,地點)
②:兩實體間1:m聯系
可以將“1”方實體的主碼納入“m”方實體對應的關系中作為外碼,同時把聯系的屬性也一并納入“m”方對應的關系中
例如,下面的E-R圖可以轉化為如下關系模式
倉庫(倉庫號,地點,面積)
商品(貨號,品名,價格,倉庫號,數量)
③:兩實體間m:n聯系
必須對“聯系”單獨建立一個關系,該關系中至少包含被它所聯系的雙方實體的主碼,如果聯系也有屬性,也一并納入該關系中
例如,下面的E-R圖可以轉化為如下關系模式
學生(學號,姓名,性別,年齡)
課程(課程號,課程名,學時)
選修(學號,課程號,成績)
④:兩實體間弱實體聯系
可以將被依賴實體的主碼納入弱實體中,作為弱實體的主碼或主碼的一部分
例如,下面的E-R圖可以轉化為如下關系模式
職工(工號,姓名,年齡,性別,職稱)
親屬(工號,親屬姓名,親屬關系)
C:兩個以上實體間m:n
必須對“聯系”單獨建立一個關系,該關系中至少包含被它所聯系的雙方實體的主碼,如果聯系也有屬性,也一并納入該關系中
例如,下面的E-R圖可以轉化為如下關系模式
供應商(供應商號,供應商名,地址)
零件(零件號,零件名,重量)
項目(項目編號,項目名稱,開工日期)
供應(供應商號,項目編號,零件號,零件數)
二:數據模型的優化
數據庫邏輯設計的結果不是唯一的。為了進一步提高數據庫應用系統的性能,還應該根據應用需要適當地修改、調整數據模型的結構,這就是數據模型的優化
關系數據模型的優化通常以規范化理論為指導,方法為:
- 確定每個關系模式內部各個屬性之間的數據依賴以及不同關系模式屬性之間的數據依賴
- 對各個關系模式之間的數據依賴進行最小化處理,消除冗余的聯系
- 確定各關系模式的范式等級
- 按照需求分析階段得到的處理要求,確定要對哪些模式進行合并或分解
- 為了提高數據操作的效率和存儲空間的利用率,對上述產生的關系模式進行適當的修改、調整和重構
三:設計用戶子模式
將概念模型轉換為全局邏輯模型后,還應該根據局部應用需求,結合具體關系數據庫管理系統的特點設計用戶的外模式
在定義用戶外模式時可以注重考慮用戶的習慣于方便,包括以下幾個方面
- 使用更符合用戶習慣的別名
- 可以為不同級別的用戶定義不同的視圖,以保證系統的安全性
- 可將經常使用的復雜的查詢定義為視圖,簡化用戶對系統的使用
總結
以上是生活随笔為你收集整理的(数据库系统概论|王珊)第七章数据库设计-第四节:逻辑结构设计的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: (软件工程复习核心重点)第八章面向对象方
- 下一篇: M1阶段个人总结