關(guān)于C語(yǔ)言中E-R圖的詳解
E-R 英文縮寫(xiě)為(Entity Relationship Diagram)也稱實(shí)體-聯(lián)系圖。
提供了表示實(shí)體類型、屬性和聯(lián)系的方法,用來(lái)描述現(xiàn)實(shí)世界的概念模型。
下面就講詳解e-r圖,如下:
從上面的的圖可以看到一個(gè)完整的e-r圖有四個(gè)部分:
1.矩形框,矩形表示實(shí)體型,矩形框內(nèi)寫(xiě)明實(shí)體名;
2.橢圓框,橢圓表示實(shí)體的屬性,并用無(wú)向邊將其與相應(yīng)的實(shí)體型連接起來(lái);
3.菱形框,菱形表示實(shí)體型之間的聯(lián)系,在菱形框內(nèi)寫(xiě)明聯(lián)系名,
4.聯(lián)系線,實(shí)體與屬性之間;實(shí)體與聯(lián)系之間;聯(lián)系與屬性之間用直線相連,有單向和雙向線兩種,同時(shí)在線旁標(biāo)上聯(lián)系的類型(1:1,1:n或m:n)。
構(gòu)圖要素
構(gòu)成E-R圖的3個(gè)基本要素是實(shí)體型、屬性和聯(lián)系,其表示方法為:
1.實(shí)體
一般認(rèn)為,客觀上可以相互區(qū)分的事物就是實(shí)體,實(shí)體可以是具體的人和物,也可以是抽象的概念與聯(lián)系。關(guān)鍵在于一個(gè)實(shí)體能與另一個(gè)實(shí)體相區(qū)別,具有相同屬性的實(shí)體具有相同的特征和性質(zhì)。用實(shí)體名及其屬性名集合來(lái)抽象和刻畫(huà)同類實(shí)體。在E-R圖中用矩形表示,矩形框內(nèi)寫(xiě)明實(shí)體名;比如學(xué)生張三、學(xué)生李四都是實(shí)體。如果是弱實(shí)體的話,在矩形外面再套實(shí)線矩形。
2.屬性
實(shí)體所具有的某一特性,一個(gè)實(shí)體可由若干個(gè)屬性來(lái)刻畫(huà)。屬性不能脫離實(shí)體,屬性是相對(duì)實(shí)體而言的。在E-R圖中用橢圓形表示,并用無(wú)向邊將其與相應(yīng)的實(shí)體連接起來(lái);比如學(xué)生的姓名、學(xué)號(hào)、性別、都是屬性。如果是多值屬性的話,在橢圓形外面再套實(shí)線橢圓。如果是派生屬性則用虛線橢圓表示。
3.聯(lián)系
聯(lián)系也稱關(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)系的類型(1 : 1,1 :n或m : n)。比如老師給學(xué)生授課存在授課關(guān)系,學(xué)生選課存在選課關(guān)系。如果是弱實(shí)體的聯(lián)系則在菱形外面再套菱形。
設(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ù)字典中了。現(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)系及其類型(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ì)象類型的組成成分可以抽象為實(shí)體的屬性。組成成分與對(duì)象類型之間是"is part of "的關(guān)系。例如學(xué)號(hào)、姓名、專業(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)系及其類型(1:1、1:n、 m:n)。根據(jù)需求分析,要考察實(shí)體之間是否存在聯(lián)系,有無(wú)多余聯(lián)系。
二、合并生成
各分E-R圖之間的沖突主要有三類:屬性沖突、命名沖突和結(jié)構(gòu)沖突。
1.屬性沖突。
(1) 屬性域沖突,即屬性值的類型、取值范圍或取值集合不同。例如:屬性“零件號(hào)”有的定義為字符型,有的為數(shù)值型;
(2) 屬性取值單位沖突。例如:屬性“重量”有的以克為單位,有的以公斤為單位。
2.命名沖突。
(1) 同名異義。不同意義對(duì)象相同名稱;
(2) 異名同義(一義多名)。同意義對(duì)象不相同名稱。例如:“項(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)不同的類型。例如實(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)系的類型進(jìn)行綜合或調(diào)整。
三、修改重構(gòu)
生成基本E-R圖分E-R圖經(jīng)過(guò)合并生成的是初步E-R圖。之所以稱其為初步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)消除冗余。
舉例:
某研究所有多名科研人員,每一個(gè)科研人員只屬于一個(gè)研究所,研究所有多個(gè)科研項(xiàng)目,每個(gè)科研項(xiàng)目有多名科研人員參加,每個(gè)科研人員可以參加多個(gè)科研項(xiàng)目??蒲腥藛T參加項(xiàng)目要統(tǒng)計(jì)工作量?!把芯克庇袑傩裕壕幪?hào),名稱、地址,“科研人員”有屬性:職工號(hào)、姓名、性別、年齡,職稱?!翱蒲许?xiàng)目”有屬性:項(xiàng)目號(hào)、項(xiàng)目名、經(jīng)費(fèi)。
① 試畫(huà)出ER圖,并注明屬性和聯(lián)系類型。
舉例2
某工廠生產(chǎn)若干產(chǎn)品,每種產(chǎn)品由不同的零件組成,有的零件用在不同的產(chǎn)品上。這些零件由不同的原材料制成。不同的零件所用的材料可以相同。這些零件按所屬的不同產(chǎn)品分別放在倉(cāng)庫(kù)中,原材料按類型放在若干倉(cāng)庫(kù)中。
產(chǎn)品屬性有:編號(hào)、名稱
零件屬性有:編號(hào)、名稱
材料屬性有:編號(hào)、名稱、材料類型
倉(cāng)庫(kù)屬性有:編號(hào)、名稱、地點(diǎn)
① 請(qǐng)用E-R圖畫(huà)出工廠產(chǎn)品、零件、材料、倉(cāng)庫(kù)的概念模型,并注明屬性和聯(lián)系類型。
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接
- C語(yǔ)言實(shí)現(xiàn)圖的鄰接矩陣存儲(chǔ)操作
- C語(yǔ)言圖書(shū)借閱系統(tǒng)源碼
- C語(yǔ)言鏈表實(shí)現(xiàn)圖書(shū)管理系統(tǒng)
- C語(yǔ)言實(shí)現(xiàn)圖書(shū)管理系統(tǒng)
- C語(yǔ)言圖書(shū)管理系統(tǒng)簡(jiǎn)潔版
- c語(yǔ)言解析bmp圖片的實(shí)例
- C語(yǔ)言數(shù)據(jù)結(jié)構(gòu)之圖的遍歷實(shí)例詳解
- 利用C語(yǔ)言編輯畫(huà)圖程序的實(shí)現(xiàn)方法(推薦)
- 利用C語(yǔ)言的Cairo圖形庫(kù)繪制太極圖實(shí)例教程
- C語(yǔ)言使用回溯法解旅行售貨員問(wèn)題與圖的m著色問(wèn)題
相關(guān)文章
關(guān)于C++智能指針shared_ptr和unique_ptr能否互轉(zhuǎn)問(wèn)題
C++中的智能指針最常用的是shared_ptr和unique_ptr,C++新手最常問(wèn)的問(wèn)題是我從一個(gè)函數(shù)中拿到unique_ptr,但要轉(zhuǎn)成shared_ptr才能使用,要怎么轉(zhuǎn)換?同理是否能將shared_ptr轉(zhuǎn)換成unique_ptr,面對(duì)這些問(wèn)題,跟隨小編一起看看吧2022-05-05C++實(shí)現(xiàn)將簡(jiǎn)單密碼譯回原文的方法
這篇文章主要介紹了C++實(shí)現(xiàn)將簡(jiǎn)單密碼譯回原文的方法,可實(shí)現(xiàn)將簡(jiǎn)單的字母位移類型的密碼譯回原文的功能,涉及C++簡(jiǎn)單字符串操作相關(guān)技巧,需要的朋友可以參考下2016-05-05C語(yǔ)言實(shí)現(xiàn)將字符串轉(zhuǎn)換成整數(shù)
這篇文章主要為大家詳細(xì)介紹了如何用C語(yǔ)言寫(xiě)一個(gè)函數(shù),把字符串轉(zhuǎn)換成整數(shù),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-04-04通過(guò)實(shí)例詳解C語(yǔ)言函數(shù)返回值
函數(shù)的返回值是指函數(shù)被調(diào)用之后,執(zhí)行函數(shù)體中的程序段所取得的并返回給主調(diào)函數(shù)的值,下面這篇文章主要給大家介紹了關(guān)于C語(yǔ)言函數(shù)返回值的相關(guān)資料,需要的朋友可以參考下2022-01-01