版權(quán)歸原作者所有,如有侵權(quán),請(qǐng)聯(lián)系我們

E-R圖

百度百科
原創(chuàng)
全球最大中文百科全書(shū)
收藏

模型歷史

ER模型最早由Peter Chen(陳品山)于1976年提出,它在數(shù)據(jù)庫(kù)設(shè)計(jì)領(lǐng)域得到了廣泛的認(rèn)同,但很少用作實(shí)際數(shù)據(jù)庫(kù)管理系統(tǒng)的數(shù)據(jù)模型。即使對(duì)SXL-92數(shù)據(jù)庫(kù)來(lái)說(shuō),設(shè)計(jì)好的數(shù)據(jù)庫(kù)也是具有挑戰(zhàn)性的。它們可以在許多關(guān)于數(shù)據(jù)庫(kù)設(shè)計(jì)的文獻(xiàn)中找到,比如Toby Teorsey 的著作(1994 )。

大部分?jǐn)?shù)據(jù)庫(kù)設(shè)計(jì)產(chǎn)品使用實(shí)體-聯(lián)系模型(ER模型)幫助用戶(hù)進(jìn)行數(shù)據(jù)庫(kù)設(shè)計(jì)。ER數(shù)據(jù)庫(kù)設(shè)計(jì)工具提供了

一個(gè)“方框與箭頭”的繪圖工具,幫助用戶(hù)建立ER圖來(lái)描繪數(shù)據(jù)。

實(shí)體聯(lián)系模型,實(shí)體關(guān)系模型或?qū)嶓w聯(lián)系模式圖(ERD)是由美籍華裔計(jì)算機(jī)科學(xué)家陳品山(Peter Chen)發(fā)明,是概念數(shù)據(jù)模型的高層描述所使用的數(shù)據(jù)模型或模式圖,它為表述這種實(shí)體聯(lián)系模式圖形式的數(shù)據(jù)模型提供了圖形符號(hào)。這種數(shù)據(jù)模型典型的用在信息系統(tǒng)設(shè)計(jì)的第一階段;比如它們?cè)谛枨蠓治鲭A段用來(lái)描述信息需求和/或要存儲(chǔ)在數(shù)據(jù)庫(kù)中的信息的類(lèi)型。但是數(shù)據(jù)建模技術(shù)可以用來(lái)描述特定論域(就是感興趣的區(qū)域)的任何本體(就是對(duì)使用的術(shù)語(yǔ)和它們的聯(lián)系的概述和分類(lèi))。在基于數(shù)據(jù)庫(kù)的信息系統(tǒng)設(shè)計(jì)的情況下,在后面的階段(通常叫做邏輯設(shè)計(jì)),概念模型要映射到邏輯模型如關(guān)系模型上;它依次要在物理設(shè)計(jì)期間映射到物理模型上。注意,有時(shí)這兩個(gè)階段被一起稱(chēng)為"物理設(shè)計(jì)"。

成分

在ER圖中有如下四個(gè)成分:

矩形框:表示實(shí)體,在框中記入實(shí)體名。

菱形框:表示聯(lián)系,在框中記入聯(lián)系名。

橢圓形框:表示實(shí)體或聯(lián)系的屬性,將屬性名記入框中。對(duì)于主屬性名,則在其名稱(chēng)下劃一下劃線。

連線:實(shí)體與屬性之間;實(shí)體與聯(lián)系之間;聯(lián)系與屬性之間用直線相連,并在直線上標(biāo)注聯(lián)系的類(lèi)型。(對(duì)于一對(duì)一聯(lián)系,要在兩個(gè)實(shí)體連線方向各寫(xiě)1; 對(duì)于一對(duì)多聯(lián)系,要在一的一方寫(xiě)1,多的一方寫(xiě)N;對(duì)于多對(duì)多關(guān)系,則要在兩個(gè)實(shí)體連線方向各寫(xiě)N,M。)

構(gòu)圖要素

構(gòu)成E-R圖的3個(gè)基本要素是實(shí)體型、屬性和聯(lián)系,其表示方法為:

實(shí)體

一般認(rèn)為,客觀上可以相互區(qū)分的事物就是實(shí)體,實(shí)體可以是具體的人和物,也可以是抽象的概念與聯(lián)系。關(guān)鍵在于一個(gè)實(shí)體能與另一個(gè)實(shí)體相區(qū)別,具有相同屬性的實(shí)體具有相同的特征和性質(zhì)。用實(shí)體名及其屬性名集合來(lái)抽象和刻畫(huà)同類(lèi)實(shí)體**。在E-R圖中用矩形**表示,矩形框內(nèi)寫(xiě)明實(shí)體名;比如學(xué)生張三、學(xué)生李四都是實(shí)體。如果是弱實(shí)體的話,在矩形外面再套實(shí)線矩形。

屬性

實(shí)體所具有的某一特性,一個(gè)實(shí)體可由若干個(gè)屬性來(lái)刻畫(huà)。屬性不能脫離實(shí)體,屬性是相對(duì)實(shí)體而言的。在E-R圖中用橢圓形表示,并用無(wú)向邊將其與相應(yīng)的實(shí)體連接起來(lái);比如學(xué)生的姓名、學(xué)號(hào)、性別、都是屬性。如果是多值屬性的話,在橢圓形外面再套實(shí)線橢圓。如果是派生屬性則用虛線橢圓表示。

聯(lián)系

聯(lián)系也稱(chēng)關(guān)系,信息世界中反映實(shí)體內(nèi)部或?qū)嶓w之間的關(guān)聯(lián)。實(shí)體內(nèi)部的聯(lián)系通常是指組成實(shí)體的各屬性之間的聯(lián)系;實(shí)體之間的聯(lián)系通常是指不同實(shí)體集之間的聯(lián)系。在E-R圖中用菱形表示,菱形框內(nèi)寫(xiě)明聯(lián)系名,并用無(wú)向邊分別與有關(guān)實(shí)體連接起來(lái),同時(shí)在無(wú)向邊旁標(biāo)上聯(lián)系的類(lèi)型(1 : 1,1 : n或m : n)。比如老師給學(xué)生授課存在授課關(guān)系,學(xué)生選課存在選課關(guān)系。如果是弱實(shí)體的聯(lián)系則在菱形外面再套菱形。

一般性約束

實(shí)體-聯(lián)系數(shù)據(jù)模型中的聯(lián)系型,存在3種一般性約束:一對(duì)一約束(聯(lián)系)、一對(duì)多約束(聯(lián)系)和多對(duì)多約束(聯(lián)系),它們用來(lái)描述實(shí)體集之間的數(shù)量約束:

(1) 一對(duì)一聯(lián)系(1 ∶1)

對(duì)于兩個(gè)實(shí)體集A和B,若A中的每一個(gè)值在B中至多有一個(gè)實(shí)體值與之對(duì)應(yīng),反之亦然,則稱(chēng)實(shí)體集A和B具有一對(duì)一的聯(lián)系。

一個(gè)學(xué)校只有一個(gè)正校長(zhǎng),而一個(gè)校長(zhǎng)只在一個(gè)學(xué)校中任職,則學(xué)校與校長(zhǎng)之間具有一對(duì)一聯(lián)系。

(2) 一對(duì)多聯(lián)系(1 ∶N)

對(duì)于兩個(gè)實(shí)體集A和B,若A中的每一個(gè)值在B中有多個(gè)實(shí)體值與之對(duì)應(yīng),反之B中每一個(gè)實(shí)體值在A中至多有一個(gè)實(shí)體值與之對(duì)應(yīng),則稱(chēng)實(shí)體集A和B具有一對(duì)多的聯(lián)系。

例如,某校教師與課程之間存在一對(duì)多的聯(lián)系“教”,即每位教師可以教多門(mén)課程,但是每門(mén)課程只能由一位教師來(lái)教。一個(gè)專(zhuān)業(yè)中有若干名學(xué)生,而每個(gè)學(xué)生只在一個(gè)專(zhuān)業(yè)中學(xué)習(xí),則專(zhuān)業(yè)與學(xué)生之間具有一對(duì)多聯(lián)系

(3) 多對(duì)多聯(lián)系(M ∶N)

對(duì)于兩個(gè)實(shí)體集A和B,若A中每一個(gè)實(shí)體值在B中有多個(gè)實(shí)體值與之對(duì)應(yīng),反之亦然,則稱(chēng)實(shí)體集A與實(shí)體集B具有多對(duì)多聯(lián)系

例如,表示學(xué)生與課程間的聯(lián)系“選修 ”是多對(duì)多的,即一個(gè)學(xué)生可以學(xué)多門(mén)課程,而每門(mén)課程可以有多個(gè)學(xué)生來(lái)學(xué)。聯(lián)系也可能有屬性。例如,學(xué)生“ 選修” 某門(mén)課程所取得的成績(jī),既不是學(xué)生的屬性也不是課程的屬性。由于“ 成績(jī)” 既依賴(lài)于某名特定的學(xué)生又依賴(lài)于某門(mén)特定的課程,所以它是學(xué)生與課程之間的聯(lián)系“ 選修”的屬性。

實(shí)際上,一對(duì)一聯(lián)系是一對(duì)多聯(lián)系的特例,而一對(duì)多聯(lián)系又是多對(duì)多聯(lián)系的特例。2聯(lián)系是隨著數(shù)據(jù)庫(kù)語(yǔ)義而改變的,假如有如下3種語(yǔ)義規(guī)定:

例如,一個(gè)部門(mén)有一個(gè)經(jīng)理,而每個(gè)經(jīng)理只在一個(gè)部門(mén)任職,則部門(mén)與經(jīng)理的聯(lián)系是一對(duì)一的。

一個(gè)員工可以同時(shí)是多個(gè)部門(mén)的經(jīng)理,而一個(gè)部門(mén)只能有一個(gè)經(jīng)理,則這種規(guī)定下“員工”與“部門(mén)”之間的“管理”聯(lián)系就是1:n的聯(lián)系了。

一個(gè)員工可以同時(shí)在多個(gè)部門(mén)工作,而一個(gè)部門(mén)有多個(gè)員工在其中工作,則“員工”與“部門(mén)”的“工作”聯(lián)系為m:n聯(lián)系。3

弱實(shí)體

弱實(shí)體(weak entity)是一種數(shù)據(jù)庫(kù)系統(tǒng)術(shù)語(yǔ)。其定義為一個(gè)實(shí)體對(duì)于另一個(gè)實(shí)體(一般為強(qiáng)實(shí)體,也可以是依賴(lài)于其他強(qiáng)實(shí)體的弱實(shí)體)具有很強(qiáng)的依賴(lài)聯(lián)系,而且該實(shí)體主鍵的一部分或全部從其強(qiáng)實(shí)體(或者對(duì)應(yīng)的弱實(shí)體依賴(lài)的強(qiáng)實(shí)體)中獲得,則稱(chēng)該實(shí)體為弱實(shí)體。3

作圖步驟

(1)確定所有的實(shí)體集合;

(2)選擇實(shí)體集應(yīng)包含的屬性;

(3)確定實(shí)體集之間的聯(lián)系;

(4)確定實(shí)體集的關(guān)鍵字,用下劃線在屬性上表明關(guān)鍵字的屬性組合;

(5)確定聯(lián)系的類(lèi)型,在用線將表示聯(lián)系的菱形框聯(lián)系到實(shí)體集時(shí),在線旁注明是1或n(多)來(lái)表示聯(lián)系的類(lèi)型。

設(shè)計(jì)步驟

調(diào)查分析

(1)選擇局部應(yīng)用在需求分析階段,通過(guò)對(duì)應(yīng)用環(huán)境和要求進(jìn)行詳盡的調(diào)查分析,用多層數(shù)據(jù)流圖和數(shù)據(jù)字典描述了整個(gè)系統(tǒng)。

設(shè)計(jì)分E-R圖的第一步,就是要根據(jù)系統(tǒng)的具體情況,在多層的數(shù)據(jù)流圖中選擇一個(gè)適當(dāng)層次的(經(jīng)驗(yàn)很重要)數(shù)據(jù)流圖,讓這組圖中每一部分對(duì)應(yīng)一個(gè)局部應(yīng)用,我們即可以以這一層次的數(shù)據(jù)流圖為出發(fā)點(diǎn),設(shè)計(jì)分E-R圖。一般而言,中層的數(shù)據(jù)流圖能較好地反映系統(tǒng)中各局部應(yīng)用的子系統(tǒng)組成,因此人們往往以中層數(shù)據(jù)流圖作為設(shè)計(jì)分E-R圖的依據(jù)。

(2)逐一設(shè)計(jì)分E-R圖每個(gè)局部應(yīng)用都對(duì)應(yīng)了一組數(shù)據(jù)流圖,局部應(yīng)用涉及的數(shù)據(jù)都已經(jīng)收集在數(shù)據(jù)字典中了?,F(xiàn)就是要將這些數(shù)據(jù)從數(shù)據(jù)字典中抽取出來(lái),參照數(shù)據(jù)流圖,<1> 標(biāo)定局部應(yīng)用中的實(shí)體, <2> 實(shí)體的屬性、標(biāo)識(shí)實(shí)體的碼,<3> 確定實(shí)體之間的聯(lián)系及其類(lèi)型(1:1、1:n、m:n)。

下面是對(duì)<1>、<2>和<3>步驟的具體說(shuō)明:

<1> 標(biāo)定局部應(yīng)用中的實(shí)體現(xiàn)實(shí)世界中一組具有某些共同特性和行為的對(duì)象就可以抽象為一個(gè)實(shí)體。對(duì)象和實(shí)體之間是"is member of "的關(guān)系。例如在學(xué)校環(huán)境中,可以把張三、李四、王五等對(duì)象抽象為學(xué)生實(shí)體。對(duì)象類(lèi)型的組成成分可以抽象為實(shí)體的屬性。組成成分與對(duì)象類(lèi)型之間是"is part of "的關(guān)系。例如學(xué)號(hào)、姓名、專(zhuān)業(yè)、年級(jí)等可以抽象為學(xué)生實(shí)體的屬性。其中學(xué)號(hào)為標(biāo)識(shí)學(xué)生實(shí)體的碼。

<2> 實(shí)體的屬性、標(biāo)識(shí)實(shí)體的碼實(shí)際上實(shí)體與屬性是相對(duì)而言的,很難有截然劃分的界限。同一事物,在一種應(yīng)用環(huán)境中作為"屬性 ",在另一種應(yīng)用環(huán)境中就必須作為"實(shí)體 "。一般說(shuō)來(lái),在給定的應(yīng)用環(huán)境中:

a、屬性不能再具有需要描述的性質(zhì)。即屬性必須是不可分的數(shù)據(jù)項(xiàng)。

b、屬性不能與其他實(shí)體具有聯(lián)系。聯(lián)系只發(fā)生在實(shí)體之間。

<3> 確定實(shí)體之間的聯(lián)系及其類(lèi)型(1:1、1:n、 m:n)。根據(jù)需求分析,要考察實(shí)體之間是否存在聯(lián)系,有無(wú)多余聯(lián)系。

合并生成

各分E-R圖之間的沖突主要有三類(lèi):屬性沖突、命名沖突和結(jié)構(gòu)沖突。

1.屬性沖突 。

(1) 屬性域沖突,即屬性值的類(lèi)型、取值范圍或取值集合不同。例如:屬性“零件號(hào)”有的定義為字符型,有的為數(shù)值型;

(2) 屬性取值單位沖突。例如:屬性“重量”有的以克為單位,有的以公斤為單位。

2.命名沖突 。

(1) 同名異義。不同意義對(duì)象相同名稱(chēng);

(2) 異名同義(一義多名)。同意義對(duì)象不相同名稱(chēng)。例如:“項(xiàng)目”和“課題”。

3.結(jié)構(gòu)沖突。

(1) 同一對(duì)象在不同應(yīng)用中具有不同的抽象。例如"課程 "在某一局部應(yīng)用中被當(dāng)作實(shí)體,而在另一局部應(yīng)用中則被當(dāng)作屬性;

(2) 同一實(shí)體在不同局部視圖中所包含的屬性不完全相同,或者屬性的排列次序不完全相同;

(3) 實(shí)體之間的聯(lián)系在不同局部視圖中呈現(xiàn)不同的類(lèi)型。例如實(shí)體E1與E2在局部應(yīng)用A中是多對(duì)多聯(lián)系,而在局部應(yīng)用B中是一對(duì)多聯(lián)系;又如在局部應(yīng)用X中E1與E2發(fā)生聯(lián)系,而在局部應(yīng)用Y中E1、E2、E3三者之間有聯(lián)系。解決方法是根據(jù)應(yīng)用的語(yǔ)義對(duì)實(shí)體聯(lián)系的類(lèi)型進(jìn)行綜合或調(diào)整。

修改重構(gòu)

生成基本E-R圖分E-R圖經(jīng)過(guò)合并生成的是初步E-R圖。之所以稱(chēng)其為初步E-R圖,是因?yàn)槠渲锌赡艽嬖谌哂嗟臄?shù)據(jù)和冗余的實(shí)體間聯(lián)系,即存在可由基本數(shù)據(jù)導(dǎo)出的數(shù)據(jù)和可由其他聯(lián)系導(dǎo)出的聯(lián)系。冗余數(shù)據(jù)和冗余聯(lián)系容易破壞數(shù)據(jù)庫(kù)的完整性,給數(shù)據(jù)庫(kù)維護(hù)增加困難,因此得到初步E-R圖后,還應(yīng)當(dāng)進(jìn)一步檢查E-R圖中是否存在冗余,如果存在,應(yīng)設(shè)法予以消除。修改、重構(gòu)初步E-R圖以消除冗余,主要采用分析方法。除此外,還可以用規(guī)范化理論來(lái)消除冗余。

E-R圖的設(shè)計(jì)

E-R圖設(shè)計(jì)的正確與否取決于數(shù)據(jù)庫(kù)設(shè)計(jì)人員能否真正把握應(yīng)用環(huán)境的業(yè)務(wù)流程以及在該業(yè)務(wù)流程中所涉及的各個(gè)客觀對(duì)象和他們之間發(fā)生的活動(dòng),這需要作準(zhǔn)確深入的用戶(hù)需求分析。這些客觀對(duì)象如果需要記錄的話,就抽象為E-R圖中的實(shí)體(描述實(shí)體的眾多相關(guān)數(shù)據(jù)就抽象為實(shí)體的屬性,將具有相同屬性的眾多實(shí)體抽象為實(shí)體型)。它們之間發(fā)生的活動(dòng)如果也需要記錄的話,就抽象為E-R圖中的聯(lián)系,這是E-R圖設(shè)計(jì)的重點(diǎn)。

內(nèi)容資源由項(xiàng)目單位提供