基於E-R模型的關系型數據庫設計方法


摘要
  在管理信息系統開發中,數據庫設計的目標是建立DBMS能識別的關系數據模型。而關系數據模型建立的基礎是首先建立E-R模型,通過E-R模型才能轉換為關系數據模型。如何建立E-R模型以及如何將E-R模型轉換為關系數據模型,是管理信息系統開發中數據庫設計的關鍵。摘自《價值工程》

可以通俗理解為E-R模型能夠更好的去幫助我們去分析創建關系數據庫中的所需的表

一、那么什么是E-R模型?

 E-R模型即實體-聯系模型,E-R模型的提出基於這樣一種認識,數據庫總是存儲現實世界中有意義的數據,而現實世界是由一組實體和實體的聯系組,E-R模型可以成功描述數據庫所存儲的數據。

二、為什么要設計E-R模型?

 設計E-R模型能夠更有效和更好的模擬現實世界。

三、E-R模型的基本要素

1) 實體 :實體是E-R模型的基本對象,是現實世界中各種事物的抽象,凡是可以相互區別,並可以被識別的事、物概念等均可認為是實體。在一個單位中,具有共性的一類實體可以划分為一個實體集,例如,學生李明,黃穎等都是實體,為了便於描述,可以定義學生這樣的一個實體集,所有學生都是這個集合的成員。

2)屬性:每個實體都具有各種特征,稱其為實體的屬性,如學生有學號,姓名,年齡等屬性。實體的屬性值是數據庫存儲的主要數據。能唯一標識實體的屬性或屬性組稱為實體鍵,如一個實體有多個鍵存在。則可從中選取一個作為主鍵。

3)實體間會存在各種關系,如人與人之間可能存在領導與雇員關系等,實體間的關系被抽象為聯系。

 

以下例子解釋的很好 :引自《Oracle 11g基礎教程與實驗指導》

聯系可分為以下 3 種類型:

 (1) 一對一聯系(1 ∶1)

 對於實體集A和實體集B來說,如果對於A中的每一個實體a,B中至多有一個實體b與之有聯系,而反過來也是如此,則稱實體集A與實體集B存在一對一聯系。

 例如,一個部門有一個經理,而每個經理只在一個部門任職,則部門與經理的聯系是一對一的。

  (2) 一對多聯系(1 ∶N)

對於實體集A和實體集B來說,如果對於A中的每一個實體a,B中有N個實體b與之有聯系,而實體B中每一個實體b,A中至多有一個與之有聯系,則稱體集A與實體集B存在一對多聯系。

 例如,某校一個班級可以有多個學生,但一個學生只能有一個班級

 (3) 多對多聯系(M ∶N)

對於實體集A和實體集B來說,如果對於A中的每一個實體a,B中有N個實體b與之有聯系,而實體B中每一個實體b,A中有M個與之有聯系,則稱實體集A與實體集B存在多對多聯系。
      
實體符號用矩形表示,並標以實體名稱,屬性用橢圓表示,並標以屬性名稱,聯系用菱形表示,並標以聯系名稱
  
(1) 一對一聯系(1 ∶1)E-R圖(畫圖畫的請見諒、)
    
   

 在關系模型中一張二維表格(行,列)對應一個表格,二維表中的每行代表一個實體,每個實體的列代表該實體屬性。E-R圖最終需要轉換為關系模型才有意義。

四、將E-R模型轉化為關系模型

1、實體轉化為關系  

實體集轉化為關系非常簡單,只需將實體的屬性作為關系的列即可(實體的所有屬性);

2、聯系轉化為關系

 1)一對一聯系需要將其中一個實體的主鍵作為另一個實體的屬性。反映到映射中,將一個關系的主鍵作為另一個關系的普通列聯系本身的屬性也應當以列的形式植入。對於一對一關系可將主從關系顛倒,也不會導致信息丟失

 

可將角色編號作為用戶關系中的一個普通列,反過來也可以!

2)一對多聯系,需要將一的一方作為主表,多的一方作為從表。聯系的所有屬性為從表的列,這樣才不會導致信息丟失。

  如學生與班級:學生信息為從表,班級信息為主表

 

3)一對多。無論聯系加入到哪一方都將造成信息丟失。

  如學生與選課。可以將學號,課程Id,以及關系的屬性---學分作為新關系的列

《參考文獻》:郝安林,康會光,《Oracle 11g基礎教程與實驗指導》


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM