陳印 何強
摘 要:E-R模型在系統開發中用于業務需求的概念建模較為常見,通過E-R模型將實體及聯系轉化為關系模型,能為關系數據庫的設計提供參考依據。本文闡述了三元E-R模型的概念、各實體間存在的聯系類別、三元E-R模型的設計方法及三元E-R模型向關系模型轉化的方法,對高職院校教材管理系統中教學班、課程及教材中存在的聯系進行了三元E-R模型設計,并實現了該模型到關系模型的轉化。
關鍵詞:教材管理系統 三元E-R模型 關系模型
中圖分類號:TP311 文獻標識碼:A 文章編號:1672-3791(2018)09(c)-0027-02
在高職院校教材管理系統初始設計階段,需要使用E-R模型對業務需求進行概念建模。E-R模型是實體聯系模型的簡稱,用于描述現實世界中的事物及其相互聯系,用實體(Entity)、屬性(Attributes)、聯系(Relationship)來進行數據庫建模[1]。通常,E-R模型中用于描述兩個實體之間聯系的二元模型較為常見。如果業務需求中有3個實體之間存在著某種聯系,就會用到三元E-R模型,以此甚至可以擴展到N元模型。
1 三元E-R模型
1.1 三元E-R模型的類型及關系模式的轉換
1.1.1 1∶1∶1類型
這種類型各個實體之間存在著一對一對一的聯系。如實體A、B、C之間存在著函數依賴:A,B->C、B,C->A、A,C->B,則實體A、B、C存在1∶1∶1的聯系,且A、B、C的度均為1。
這種模型轉化為關系模型的方法是:將其中一個實體轉換成關系模式,再將另外兩個實體的鍵作為外鍵與聯系的屬性(集)一起加在該關系模式的屬性集,另外兩個實體也單獨轉換為兩個獨立的關系模式即可。
1.1.2 1∶1∶N類型
這種類型各個實體之間存在著一對一對多的聯系。如實體A、B、C之間存在著函數依賴:C,A->B、C,B->A,則實體A、B、C存在1∶1∶N的聯系,且A、B的度為1,C的度為N。
這種模型轉化為關系模型的方法是:將度為N的實體轉換成的關系模式,再將兩個度為1的實體的鍵作為外鍵與聯系的屬性(集)加在該關系模式的屬性集,另外兩個實體也單獨轉換為兩個獨立的關系模式即可。
1.1.3 1∶N∶M類型
這種類型各個實體之間存在著一對多對多的聯系。如實體A、B、C之間存在著函數依賴:B,C->A,則實體A、B、C存在1∶N∶M的聯系,且A的度為1,B、C的度為N或M。
這種模型轉化為關系模型的方法是:除了3個實體需要轉換為3個獨立的關系模式外,還需要將聯系也轉換為關系模式,將3個實體的鍵以及聯系的屬性作為該關系模式的屬性、度為N和M的實體鍵作為該關系模式的組合鍵。
1.1.4 N∶M∶P類型
這種類型各個實體之間存在著多對多對多的聯系。3個實體之間不存在函數依賴。
這種模型轉化為關系模型的方法與1∶N∶M類型轉換方式類似,只是聯系所轉換的關系模式的鍵由3個實體的鍵組合而定。
1.2 三元E-R模型類型的確定
根據實體間的函數依賴可以確定三元E-R模型的類型及各實體的度。此外,亦可使用以下方法判別三元E-R模型中某個實體的度:將另外兩個實體都看作只有一個實例,如果該實體只有一個實例能與這兩個實體的實例有聯系,則該實體的度就為“1”,反之則為“N”[2]。
2 案例
在高職院校教材管理系統中,教學班、課程及教材之間存在如下聯系:每個教學班可開設多門課程,每門課程使用一種教材;多個教學班可開設同一門課程,但不一定使用相同教材;多個教學班可開設不同課程使用相同教材。其中“教學班”需要記錄班級編號(鍵)、班級名稱、創建學期;“課程”需要記錄課程編號(鍵)、課程名稱;“教材”需要記錄書號(鍵)、書名、出版社、單價;“選擇”聯系需要記錄征定狀態、征訂數量、實到數量、發放數量。
2.1 三元E-R模型設計
該業務需求中有3個實體:教學班、課程及教材,他們存在著選用教材的一種聯系,符合三元E-R模型特征。從上述描述中可以確定,這3個實體之間存在著以下函數依賴:教學班,課程->教材;教學班,教材->課程。
這種函數依賴與三元E-R模型類型中1∶1∶N的依賴關系相同,屬于1∶1∶N的E-R模型,所以教學班的度為N,課程、教材的度為1。由此繪制出其三元E-R模型如圖1所示。
2.2 關系模型的轉換
按照1∶1∶N的三元E-R模型轉換為關系模型的方法,應該將教學班、課程及教材分別轉換為關系模式,并在教學班的關系模式中加入課程和教材的鍵以及聯系的屬性,結果有、R課程(課程編號、課程名稱);R教材(書號、書名、單價、出版社);R教學班(班級編號、班級名稱、課程編號、書號、征訂狀態、征訂數量、實到數量、發放數量)。
3 結語
三元E-R模型的設計需要考慮3個實體之間存在的依賴關系來確定各個實體在聯系中的度。只有確定了各個實體的度,繪制E-R模型圖才有依據;也只有這樣,才能確定該聯系屬于哪一種類型,從而按照相應的轉換規則對E-R模型進行關系模型的轉換。
參考文獻
[1] 張勇,陳印.SQL數據庫技術——理實一體化教學課程[M].成都:西南交通大學出版社,2014.
[2] 佚名.ER圖中三元聯系[EB/OL].https://blog.csdn.net/zhaohuanhuanjiuqi/article/details/27826669.