E-R圖轉換
E-R圖是由實體、實體的屬性和實體之間的聯系三個要素組成的。將E-R圖轉換為關系模型實際上就是要將實體、實體的屬性和實體之間的聯系轉化為關系模式 。
實體集向關系模式的轉換
一般轉換遵循的原則
實體集的轉換規則:一個實體型轉換為一個關系模式。實體的屬性就是關系的屬性,實體的碼就的碼。
例:學生實體可以轉換為如下關系模式:
學生(學號,姓名,性別,出生日期,所在系,年級)
兩個實體型之間的聯系集向關系模式的轉換
-
1:1聯系的轉換方法:1:1聯系可以轉換為一個獨立的關系模式,也可以與任意一端對應的關系模式合並。
-
如果轉換為一個獨立的關系模式,則與該聯系相連的各實體的主碼以及聯系本身的屬性均轉換為關系的屬性,每個實體的主碼均是該關系的候選碼。
-
如果與某一端對應的關系模式合並,則需要在該關系模式的屬性中加入另一個關系模式的主碼和聯系本身的屬性。
-
實例
-
-
1:n聯系的轉換方法: 1:n聯系可以轉換為一個獨立的關系模式,也可以與n端對應的關系模式合並。
-
若轉換為一個獨立的關系模式,則與該聯系相連的各實體的主碼以及聯系本身的屬性均轉換為關系的屬性,而關系的主碼為n端實體的主碼。
-
若與n端關系模式合並,則在n端實體集中增加新屬性,新屬性由聯系對應的1端實體集的主碼和聯系自身的屬性構成,而關系模式的主碼不變。
-
實例
- 方案一:1:n聯系形成的關系獨立存在
倉庫(倉庫號 ,地點,面積)
產品(產品號,產品名,價格)
倉儲(產品號 ,倉庫號,數量) - 方案二:聯系形成的關系與n端對象合並
倉庫(倉庫號 ,地點,面積)
產品(產品號,產品名,價格,
倉庫號,數量)
- 方案一:1:n聯系形成的關系獨立存在
-
-
m:n聯系的轉換方法:與該聯系相連的各實體的碼以及聯系本身的屬性均轉換為關系的屬性。而關系的碼為各實體碼的組合。
-
實例
-
同一實體型之間的聯系集向關系模式的轉換
v同一實體型的實體間的聯系即自聯系,也可按上述1:1、1:n和m:n三種情況分別處理。
-
1:n
-
m:n
多實體型之間的聯系向關系模式的轉換
- 一般地,兩個以上的實體型間也存在着1:1、1:n和m:n三種情況,轉換方法一般遵循以下原則:
- 1:n的多元聯系:修改1端實體集對應的關系,即將與聯系相關的其他實體集的碼和聯系自身的屬性作為新屬性加入到1端實體集中。
- m:n的多元聯系:新建一個獨立的關系,多元聯系相連的各實體的碼以及聯系本身的屬性均轉換為關系的屬性。而關系的碼為各實體碼的組合。
弱實體集向關系模式的轉換
- 強實體集和弱實體集的概念與存在依賴密切相關,強實體集的成員必然是支配實體,而弱實體集的成員是從屬實體。
- 由於弱實體不能獨立存在,它必須依附於一個所有者實體,因此將弱實體集轉換成關系模式時,弱實體所對應的關系中必須包含所有者實體的主碼。
應用實例
-
**按上述規則將****E-R圖向關系模式轉換完成后,具有相同主碼的關系模式可合並,主要目的在於減少系統中的關系個數,便於維護及保持數據的一致性。
-
合並方法是將具有相同主碼的關系模式中,某個關系模式的全部屬性加入到另一個關系模式中,然后去掉其中的同義屬性(可能同名也可能不同名),並適當調整屬性的次序。
-
例3-12 某工程的E-R圖,如圖3-19所示。其中各實體的屬性如下: