複製鏈接
請複製以下鏈接發送給好友

E-R圖

鎖定
E-R圖也稱實體-聯繫圖(Entity Relationship Diagram),提供了表示實體類型、屬性和聯繫的方法,用來描述現實世界概念模型
它是描述現實世界關係概念模型的有效方法。是表示概念關係模型的一種方式。用“矩形框”表示實體型,矩形框內寫明實體名稱;用“橢圓圖框”或圓角矩形表示實體的屬性,並用“實心線段”將其與相應關係的“實體型”連接起來;
用”菱形框“表示實體型之間的聯繫成因,在菱形框內寫明聯繫名,並用”實心線段“分別與有關實體型連接起來,同時在”實心線段“旁標上聯繫的類型(1:1,1:n或m:n)。
中文名
實體-聯繫圖
外文名
Entity Relationship Diagram
簡    稱
E-R圖
類    別
概念模型

E-R圖模型歷史

ER模型最早由Peter Chen(陳品山)於1976年提出,它在數據庫設計領域得到了廣泛的認同,但很少用作實際數據庫管理系統數據模型。即使對SXL-92數據庫來説,設計好的數據庫也是具有挑戰性的。它們可以在許多關於數據庫設計的文獻中找到,比如Toby Teorsey 的著作(1994 )。
E-R圖例
E-R圖例(9張)
大部分數據庫設計產品使用實體-聯繫模型(ER模型)幫助用户進行數據庫設計。ER數據庫設計工具提供了
一個“方框與箭頭”的繪圖工具,幫助用户建立ER圖來描繪數據。
實體聯繫模型,實體關係模型或實體聯繫模式圖(ERD)是由美籍華裔計算機科學家陳品山(Peter Chen)發明,是概念數據模型的高層描述所使用的數據模型或模式圖,它為表述這種實體聯繫模式圖形式的數據模型提供了圖形符號。這種數據模型典型的用在信息系統設計的第一階段;比如它們在需求分析階段用來描述信息需求和/或要存儲在數據庫中的信息的類型。但是數據建模技術可以用來描述特定論域(就是感興趣的區域)的任何本體(就是對使用的術語和它們的聯繫的概述和分類)。在基於數據庫的信息系統設計的情況下,在後面的階段(通常叫做邏輯設計),概念模型要映射到邏輯模型如關係模型上;它依次要在物理設計期間映射到物理模型上。注意,有時這兩個階段被一起稱為"物理設計"。

E-R圖成分

在ER圖中有如下四個成分:
矩形框:表示實體,在框中記入實體名。
菱形框:表示聯繫,在框中記入聯繫名。
橢圓形框:表示實體或聯繫的屬性,將屬性名記入框中。對於主屬性名,則在其名稱下劃一下劃線。
連線:實體與屬性之間;實體與聯繫之間;聯繫與屬性之間用直線相連,並在直線上標註聯繫的類型。(對於一對一聯繫,要在兩個實體連線方向各寫1; 對於一對多聯繫,要在一的一方寫1,多的一方寫N;對於多對多關係,則要在兩個實體連線方向各寫N,M。) [1] 

E-R圖構圖要素

構成E-R圖的3個基本要素是實體型、屬性和聯繫,其表示方法為:

E-R圖實體

一般認為,客觀上可以相互區分的事物就是實體,實體可以是具體的人和物,也可以是抽象的概念與聯繫。關鍵在於一個實體能與另一個實體相區別,具有相同屬性的實體具有相同的特徵和性質。用實體名及其屬性名集合來抽象和刻畫同類實體在E-R圖中用矩形表示,矩形框內寫明實體名;比如學生張三、學生李四都是實體。如果是弱實體的話,在矩形外面再套實線矩形。

E-R圖屬性

實體所具有的某一特性,一個實體可由若干個屬性來刻畫。屬性不能脱離實體,屬性是相對實體而言的。在E-R圖中用橢圓形表示,並用無向邊將其與相應的實體連接起來;比如學生的姓名、學號、性別、都是屬性。如果是多值屬性的話,在橢圓形外面再套實線橢圓。如果是派生屬性則用虛線橢圓表示。

E-R圖聯繫

聯繫也稱關係,信息世界中反映實體內部或實體之間的關聯。實體內部的聯繫通常是指組成實體的各屬性之間的聯繫;實體之間的聯繫通常是指不同實體集之間的聯繫。在E-R圖中用菱形表示,菱形框內寫明聯繫名,並用無向邊分別與有關實體連接起來,同時在無向邊旁標上聯繫的類型(1 : 1,1 : n或m : n)。比如老師給學生授課存在授課關係,學生選課存在選課關係。如果是弱實體的聯繫則在菱形外面再套菱形。

E-R圖一般性約束

實體-聯繫數據模型中的聯繫型,存在3種一般性約束:一對一約束(聯繫)、一對多約束(聯繫)和多對多約束(聯繫),它們用來描述實體集之間的數量約束:
(1) 一對一聯繫(1 ∶1)
對於兩個實體集A和B,若A中的每一個值在B中至多有一個實體值與之對應,反之亦然,則稱實體集A和B具有一對一的聯繫。
一個學校只有一個正校長,而一個校長只在一個學校中任職,則學校與校長之間具有一對一聯繫。
(2) 一對多聯繫(1 ∶N)
對於兩個實體集A和B,若A中的每一個值在B中有多個實體值與之對應,反之B中每一個實體值在A中至多有一個實體值與之對應,則稱實體集A和B具有一對多的聯繫。
例如,某校教師與課程之間存在一對多的聯繫“教”,即每位教師可以教多門課程,但是每門課程只能由一位教師來教。一個專業中有若干名學生,而每個學生只在一個專業中學習,則專業與學生之間具有一對多聯繫
(3) 多對多聯繫(M ∶N)
對於兩個實體集A和B,若A中每一個實體值在B中有多個實體值與之對應,反之亦然,則稱實體集A與實體集B具有多對多聯繫
例如,表示學生與課程間的聯繫“選修 ”是多對多的,即一個學生可以學多門課程,而每門課程可以有多個學生來學。聯繫也可能有屬性。例如,學生“ 選修” 某門課程所取得的成績,既不是學生的屬性也不是課程的屬性。由於“ 成績” 既依賴於某名特定的學生又依賴於某門特定的課程,所以它是學生與課程之間的聯繫“ 選修”的屬性。
實際上,一對一聯繫是一對多聯繫的特例,而一對多聯繫又是多對多聯繫的特例。 [2]  聯繫是隨着數據庫語義而改變的,假如有如下3種語義規定:
例如,一個部門有一個經理,而每個經理只在一個部門任職,則部門與經理的聯繫是一對一的。
一個員工可以同時是多個部門的經理,而一個部門只能有一個經理,則這種規定下“員工”與“部門”之間的“管理”聯繫就是1:n的聯繫了。
一個員工可以同時在多個部門工作,而一個部門有多個員工在其中工作,則“員工”與“部門”的“工作”聯繫為m:n聯繫。 [3] 

E-R圖弱實體

弱實體(weak entity)是一種數據庫系統術語。其定義為一個實體對於另一個實體(一般為強實體,也可以是依賴於其他強實體的弱實體)具有很強的依賴聯繫,而且該實體主鍵的一部分或全部從其強實體(或者對應的弱實體依賴的強實體)中獲得,則稱該實體為弱實體。 [3] 

E-R圖作圖步驟

(1)確定所有的實體集合;
(2)選擇實體集應包含的屬性;
(3)確定實體集之間的聯繫;
(4)確定實體集的關鍵字,用下劃線在屬性上表明關鍵字的屬性組合;
(5)確定聯繫的類型,在用線將表示聯繫的菱形框聯繫到實體集時,在線旁註明是1或n(多)來表示聯繫的類型。

E-R圖設計步驟

E-R圖調查分析

(1)選擇局部應用在需求分析階段,通過對應用環境和要求進行詳盡的調查分析,用多層數據流圖和數據字典描述了整個系統。
設計分E-R圖的第一步,就是要根據系統的具體情況,在多層的數據流圖中選擇一個適當層次的(經驗很重要)數據流圖,讓這組圖中每一部分對應一個局部應用,我們即可以以這一層次的數據流圖為出發點,設計分E-R圖。一般而言,中層的數據流圖能較好地反映系統中各局部應用的子系統組成,因此人們往往以中層數據流圖作為設計分E-R圖的依據。
(2)逐一設計分E-R圖每個局部應用都對應了一組數據流圖,局部應用涉及的數據都已經收集在數據字典中了。現就是要將這些數據從數據字典中抽取出來,參照數據流圖,<1> 標定局部應用中的實體, <2> 實體的屬性、標識實體的碼,<3> 確定實體之間的聯繫及其類型(1:1、1:n、m:n)。
下面是對<1>、<2>和<3>步驟的具體説明:
<1> 標定局部應用中的實體現實世界中一組具有某些共同特性和行為的對象就可以抽象為一個實體。對象和實體之間是"is member of "的關係。例如在學校環境中,可以把張三、李四、王五等對象抽象為學生實體。對象類型的組成成分可以抽象為實體的屬性。組成成分與對象類型之間是"is part of "的關係。例如學號、姓名、專業、年級等可以抽象為學生實體的屬性。其中學號為標識學生實體的碼。
<2> 實體的屬性、標識實體的碼實際上實體與屬性是相對而言的,很難有截然劃分的界限。同一事物,在一種應用環境中作為"屬性 ",在另一種應用環境中就必須作為"實體 "。一般説來,在給定的應用環境中:
a、屬性不能再具有需要描述的性質。即屬性必須是不可分的數據項
b、屬性不能與其他實體具有聯繫。聯繫只發生在實體之間。
<3> 確定實體之間的聯繫及其類型(1:1、1:n、 m:n)。根據需求分析,要考察實體之間是否存在聯繫,有無多餘聯繫。

E-R圖合併生成

各分E-R圖之間的衝突主要有三類:屬性衝突、命名衝突和結構衝突。
1.屬性衝突 。
(1) 屬性域衝突,即屬性值的類型、取值範圍或取值集合不同。例如:屬性“零件號”有的定義為字符型,有的為數值型;
(2) 屬性取值單位衝突。例如:屬性“重量”有的以克為單位,有的以公斤為單位。
2.命名衝突 。
(1) 同名異義。不同意義對象相同名稱;
(2) 異名同義(一義多名)。同意義對象不相同名稱。例如:“項目”和“課題”。
3.結構衝突。
(1) 同一對象在不同應用中具有不同的抽象。例如"課程 "在某一局部應用中被當作實體,而在另一局部應用中則被當作屬性;
(2) 同一實體在不同局部視圖中所包含的屬性不完全相同,或者屬性的排列次序不完全相同;
(3) 實體之間的聯繫在不同局部視圖中呈現不同的類型。例如實體E1與E2在局部應用A中是多對多聯繫,而在局部應用B中是一對多聯繫;又如在局部應用X中E1與E2發生聯繫,而在局部應用Y中E1、E2、E3三者之間有聯繫。解決方法是根據應用的語義對實體聯繫的類型進行綜合或調整。

E-R圖修改重構

生成基本E-R圖分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] 
參考資料
  • 1.    E-R圖的精細設計  .知網.2015-04-25[引用日期2019-06-18]
  • 2.    周屹 李豔娟.數據庫原理及開發應用(第二版):清華大學出版社,2013:29-31
  • 3.    陶宏才.數據庫原理及設計(第3版):清華大學出版社,2014:60-63