对E—R模型的深入理解
摘要:首先對E/R模型作了詳細(xì)的介紹,詳細(xì)介紹了E/R模型的結(jié)構(gòu),對幾種特殊的實(shí)體聯(lián)系,以及怎樣構(gòu)造模型,還有實(shí)際的應(yīng)用問題,本文都給予了詳細(xì)的介紹。
關(guān)鍵詞:E-R模型 三范式? 實(shí)體集?屬性聯(lián)系集
一丶E-R模型
1.E-R模型的結(jié)構(gòu)
E-R模型的構(gòu)成成分是實(shí)體集、屬性和聯(lián)系集,其表示方法如下:
(1) 實(shí)體集用矩形框表示,矩形框內(nèi)寫上實(shí)體名。
(2) 實(shí)體的屬性用橢圓框表示,框內(nèi)寫上屬性名,并用無向邊與其實(shí)體集相連。
(3) 實(shí)體間的聯(lián)系用菱形框表示,聯(lián)系以適當(dāng)?shù)暮x命名,名字寫在菱形框中,用無向連線將參加聯(lián)系的實(shí)體矩形框分別與菱形框相連,并在連線上標(biāo)明聯(lián)系的類型,即1—1、1—M或M—M。
因此,E-R模型也稱為E-R圖。例如系、學(xué)生和課程的聯(lián)系的E-R模型表示見圖。
系、學(xué)生和課程作為實(shí)體集;一個(gè)系有多個(gè)學(xué)生,而一個(gè)學(xué)生僅屬于一個(gè)系,所以系和課程之間是一對多的聯(lián)系;一個(gè)學(xué)生可以選修多門課程,而一門課程有多個(gè)學(xué)生選修,所以學(xué)生和課程之間是多對多的聯(lián)系。
2.E-R模型對幾種特殊的實(shí)體聯(lián)系的表示
E-R模型在表示復(fù)雜實(shí)體和實(shí)體之間的復(fù)雜聯(lián)系方面有較強(qiáng)的能力。除了可以明確表示二個(gè)實(shí)體集之間1—1、1—M或M—M的聯(lián)系。還可以:
(1) 表示三個(gè)以上的實(shí)體集之間的聯(lián)系。
例如,一個(gè)售貨員(Salesperson)可以將多種商品(Goods)售給一個(gè)顧客(Customer),而一個(gè)售貨員也可以將一種商品售給多個(gè)顧客;一個(gè)顧客的一種商品可以由多個(gè)售貨員經(jīng)售。售貨員、商品和顧客三個(gè)實(shí)體集之間的聯(lián)系是多對多的三元聯(lián)系,其E-R模型表示見圖1.11
(2) 表示一個(gè)實(shí)體集內(nèi)部的聯(lián)系
例如,雇員(EMP)這個(gè)實(shí)體集中,總經(jīng)理下設(shè)多個(gè)部門經(jīng)理,而部門經(jīng)理下面有多個(gè)雇員。因此,雇員這個(gè)實(shí)體集中實(shí)體之間存在一對多的聯(lián)系,其E-R模型如圖1.12所示。
(3) 表示二個(gè)實(shí)體集之間的多種聯(lián)系
例如,雇員(EMP)和設(shè)備(EQUIP)之間可以有多種聯(lián)系,一種聯(lián)系是一個(gè)設(shè)備可以由多個(gè)雇員操作(operation),另一種聯(lián)系是一個(gè)雇員可以維修(maintain)多個(gè)設(shè)備,其E-R模型如圖1.13所示。
3.作E-R圖的步驟
(1) 確定實(shí)體和實(shí)體的屬性
(2) 確定實(shí)體之間的聯(lián)系及聯(lián)系的類型
(3) 給實(shí)體和聯(lián)系加上屬性
如何劃分實(shí)體及其屬性有兩個(gè)原 則可作參考:一是作為實(shí)體屬性的事物本身沒有再需要刻畫的特征而且和其它實(shí)體沒有聯(lián)系。二是屬性的一個(gè)值可以和多個(gè)實(shí)體對應(yīng),而不是相反。盡管E-R模型中的屬性可以是單值屬性也可以是多值屬性,為簡單計(jì),多值屬性常常被作為多個(gè)屬性或作為一個(gè)實(shí)體(見第6章弱實(shí)體)。
例如,職工和部門,一般情況下,一個(gè)部門有多個(gè)職工,而一個(gè)職工僅屬于一個(gè)部門。所以職工應(yīng)作為實(shí)體,而部門既可作為職工的屬性——部門本身僅有一個(gè)名稱;也可以作為實(shí)體——部門具有部門號、部門名稱及電話等,如圖1.14所示。
再如,職工和工種,一個(gè)工種有多個(gè)職工,而一個(gè)職工僅屬于一個(gè)工種,所以職工應(yīng)作為實(shí)體,而工種既可作為職工的屬性——工種本身僅有一個(gè)名稱;也可以作為實(shí)體——工種和其它實(shí)體,例如和勞保用品有聯(lián)系,如圖1.15所示。
如何劃分實(shí)體和聯(lián)系也有一個(gè)原則可作參考:當(dāng)描述發(fā)生在實(shí)體集之間的行為時(shí),最好采用聯(lián)系集。例如,讀者和圖書之間的借、還書行為,顧客和商品之間的購買行為,均應(yīng)該作為聯(lián)系集。
如何劃分聯(lián)系的屬性:一是發(fā)生聯(lián)系的實(shí)體的標(biāo)識屬性應(yīng)作為聯(lián)系的缺省屬性,二是和聯(lián)系中的所有實(shí)體都有關(guān)的屬性。例如,學(xué)生和課程的選課聯(lián)系中的成績屬性,顧客、商品和雇員之間的銷售聯(lián)系中的商品的數(shù)量等。
4.E-R模型中的三范式
如果我們要寫數(shù)據(jù)庫方便的論文,設(shè)計(jì)的e-r模型一定要滿足3NF,所以我特地找了些這方面的資料。經(jīng)過加工內(nèi)容如下:
1函數(shù)依賴要掌握如下概念:
1).函數(shù)依賴:??
???????? 若對于一個(gè)關(guān)系模式中所有具體關(guān)系的屬性之間都滿足如下約束;對于X的每一個(gè)具體值,Y有唯一的具體值與之對應(yīng),則稱Y函數(shù)依賴于X,或稱Y函數(shù)依賴于X,或X函數(shù)?? 決定Y,記作X→Y,X稱作決定因素。
????? ? 2).非平凡函數(shù)依賴:
如果X→Y,并且Y不是X的子集,則稱X→Y 是非平凡的函數(shù)依賴。
3).平凡函數(shù)依賴
如果X→Y,并且Y是X的子集,則稱X→Y 是平凡的函數(shù)依賴。
4.)部分函數(shù)依賴
設(shè)X→Y是關(guān)系模式R的一個(gè)函數(shù)依賴,如果存在X的真子集X’,
使得 X’→Y成立,則稱Y部分依賴于X,
5.)完全函數(shù)依賴
設(shè)X→Y是關(guān)系模式R的一個(gè)函數(shù)依賴,如果不存在X的真子集X’ ,
使得 X’→Y成立,則稱Y部分依賴于X,
例:設(shè)有關(guān)系模式選課SC1(SNO,CNO,GRADE,CREDIT)其中,SNO表示學(xué)號,CNO表示課程號,GRADE表示成績,CREDIT表示學(xué)分。
由于成績是對某個(gè)學(xué)生、某門課程而言,因此,成績只能由某個(gè)學(xué)生,某門課程兩個(gè)屬性共同來確定。? 所以?
(SNO,CNO)??????? GRADE(完全函數(shù)依賴)
由于CNO課程號可直接決定CREDIT學(xué)分。所以(SNO,CNO)??????? CREDIT(部分函數(shù)依賴)
6).傳遞依賴
在同一關(guān)系模式中,如果存在非平凡函數(shù)依賴X→Y,Y→Z,而? YX,則稱Z 傳遞依賴于X。這里特別要注意YX,如果X、Y互相依賴,實(shí)際上
處于等價(jià)地位,X→Z則為直接函數(shù)依賴,不是傳遞依賴。
例:在關(guān)系模式S(學(xué)號、姓名、所在系、系名稱、系地址)
由于一個(gè)系里有多名學(xué)生,而一個(gè)學(xué)生只能在一個(gè)系里注冊,一個(gè)系有一個(gè)確定的辦公地址。所以? 學(xué)號 →所在系,但 所在系 學(xué)號,所
在系→系地址,根據(jù)傳遞依賴的定義,可知,學(xué)號→系地址是傳遞依賴。
7 ).關(guān)鍵字
在關(guān)系模式R(U)中,K是U中的屬性或?qū)傩越M。如果K完全函數(shù)決定整個(gè)元組,即
??????????????? KU
則稱K為關(guān)系 R(U) 的一個(gè)候選關(guān)鍵字。R(U)中若有一個(gè)以上的候選關(guān)鍵字,則選定其中一個(gè)作為主關(guān)鍵字。
8).外關(guān)鍵字
??????? 在關(guān)系模式R(U)中,若屬性或?qū)傩越MX不是關(guān)系R 的關(guān)鍵字,但X是其它關(guān)系模式的關(guān)鍵字,則稱X為其它關(guān)系模式的關(guān)鍵字,則稱X為
關(guān)系R(U)外關(guān)鍵字。
?二、關(guān)系的范式
??????? 在設(shè)計(jì)關(guān)系數(shù)據(jù)庫時(shí),如果隨意建立關(guān)系模式,可能會出現(xiàn)很多弊病,較好的關(guān)系模式必須滿足一定的規(guī)范化要求。滿足不同程度要
求的為不同范式,滿足最低要求的叫第一范式,在第一范式中進(jìn)一步滿足一些要求的為第二范式,其余類推。范式形式有第一、第二、第三、B
CNF。
1.第一范式:在關(guān)系模式R中的每一相具體關(guān)系r中,如果每個(gè)屬性值都是不可再分的最小數(shù)據(jù)單位,則稱R是第一范式。
2.第二范式:如果關(guān)系模式R(U,F)中所有非主屬性都完全函數(shù)依賴于任意一個(gè)候選關(guān)鍵字,則稱關(guān)系R 是屬于第二范式的。
??? 例:設(shè)有關(guān)系模式選課SC1(SNO,CNO,GRADE,CREDIT)其中,SNO表示學(xué)號,CNO表示課程號,GRADE表示成績,CREDIT表示學(xué)分。
由于成績是對某個(gè)學(xué)生、某門課程而言,因此,成績只能由某個(gè)學(xué)生,某門課程兩個(gè)屬性共同來確定。? 所以?
(SNO,CNO) --->?? GRADE(完全函數(shù)依賴)
由于CNO課程號可直接決定CREDIT學(xué)分。所以
??? ? ? (SNO,CNO) --->? CREDIT(部分函數(shù)依賴)
?
3.第三范式:如果關(guān)系模式R(U,F)中的所有非主屬性對任何候選關(guān)鍵字都不存在傳遞依賴,則稱關(guān)系R 是屬于第三范式。
?? ? ? 例:設(shè)有關(guān)系模式選課SC1(SNO,CNO,GRADE,LEVEL)其中,SNO表示學(xué)號,CNO表示課程號,GRADE表示成績,LEVEL表示等級(優(yōu)良,中,差)。
由于成績是對某個(gè)學(xué)生、某門課程而言,因此,成績只能由某個(gè)學(xué)生,某門課程兩個(gè)屬性共同來確定。? 所以?
? (SNO,CNO) --->?? GRADE(完全函數(shù)依賴)
?????? GRADE? ---> LEVEL
????? (SNO, CNO) --->LEVEL (傳遞依賴)
BCNF??? 如果關(guān)系模式R(U,F)的所有屬性(包括主屬性和非主屬性)都不傳遞依賴于R 的任何候選關(guān)鍵字,那么稱關(guān)系R 是屬于BCNF的
。
????? 規(guī)范化的過程是逐步消除關(guān)系模式中不合適的數(shù)據(jù)依賴的過程。第一范式中消除非主屬性對關(guān)鍵字的部分函數(shù)依賴,就可達(dá)到2NF;第二
范式中消除非主屬性對關(guān)鍵字的傳遞函數(shù)依賴,就可達(dá)到3NF;第三范式中消除主屬性對關(guān)鍵字的部分和傳遞函數(shù)依賴,就可達(dá)到 BCNF。
參考文獻(xiàn):
[1]黃梯云.管理信息系統(tǒng)[M].北京:高等教育出版社,2003.
[2] 薛華成.管理信息系統(tǒng).第三版[M].北京:清華大學(xué)出版社,2004.
[3] Efrem G.Mallach [美] 李昭智,等 譯.決策支持與數(shù)據(jù)倉庫系統(tǒng)[M].北京:電子工業(yè)出版社, 2001-04
總結(jié)
以上是生活随笔為你收集整理的对E—R模型的深入理解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C++各大著名程序库
- 下一篇: C/S和B/S的异同