數(shù)據(jù)庫(kù)設(shè)計(jì)理論及應(yīng)用(4)——概念結(jié)構(gòu)設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
數(shù)據(jù)庫(kù)設(shè)計(jì)理論及應(yīng)用(4)——概念結(jié)構(gòu)設(shè)計(jì)
作者:最后一只恐龍 發(fā)表時(shí)間:
?
該系列計(jì)劃包括5部分:完整性約束理論及應(yīng)用、范式理論及應(yīng)用、需求分析、概念結(jié)構(gòu)設(shè)計(jì)、邏輯結(jié)構(gòu)設(shè)計(jì)。本文是第四部分,介紹概念結(jié)構(gòu)設(shè)計(jì)的內(nèi)容,包括分E-R的設(shè)計(jì)、分E-R圖的集成、以及基本E-R圖的設(shè)計(jì)。
?
1.概念模型
概念模型是現(xiàn)實(shí)世界到機(jī)器世界的一個(gè)中間層次,在這個(gè)層次中,使用接近計(jì)算機(jī)存儲(chǔ)的方式表示數(shù)據(jù),同時(shí)又不涉及具體的DBMS。做出概念模型后,再轉(zhuǎn)換為具體的DBMS(如SQL Server或Oracle)下的模型,就成為邏輯模型。
概念模型中包括實(shí)體、屬性、碼、域、聯(lián)系等概念,在本系列文章的第一部分已作說明,下面再介紹其它幾個(gè)概念。
1.1 兩個(gè)實(shí)體型間的聯(lián)系
(1)一對(duì)一聯(lián)系:實(shí)體集A中的每一個(gè)實(shí)體,實(shí)體集B中至多有一個(gè)實(shí)體與之有聯(lián)系,反之亦然,則稱實(shí)體集A與B具有一對(duì)一聯(lián)系,記為1:1。如班級(jí)與班長(zhǎng)的聯(lián)系,一個(gè)班只有一個(gè)班長(zhǎng),一個(gè)班長(zhǎng)也只能在一個(gè)班級(jí)中任職。
(2)一對(duì)多聯(lián)系:實(shí)體集A中的每一個(gè)實(shí)體,實(shí)體集B中有n(n≥0)個(gè)實(shí)體與之有聯(lián)系;而實(shí)體B中的每一個(gè)實(shí)體,實(shí)體A中至多有一個(gè)與之有聯(lián)系,則稱實(shí)體集A與B具有一對(duì)多聯(lián)系,記為1:n。如班級(jí)與學(xué)生的聯(lián)系,一個(gè)班有多個(gè)學(xué)生,一個(gè)學(xué)生只能在一個(gè)班級(jí)學(xué)習(xí)。
(3)多對(duì)多聯(lián)系:實(shí)體集A中的每一個(gè)實(shí)體,實(shí)體集B中有n(n≥0)個(gè)實(shí)體與之有聯(lián)系;而實(shí)體B中的每一個(gè)實(shí)體,實(shí)體A中有m(m≥0)個(gè)與之有聯(lián)系,則稱實(shí)體集A與B具有多對(duì)多聯(lián)系,記為m:n。如教師與學(xué)生的聯(lián)系,一個(gè)教師可以教多名學(xué)生,一名學(xué)生也可以上多位老師的課。
1.2 其它類型的聯(lián)系
兩個(gè)以上實(shí)體集之間也存在1:1、1:n、m:n的聯(lián)系。如教師、課程、參考書的聯(lián)系。注意把這三個(gè)實(shí)體之間的聯(lián)系與兩兩直接的多個(gè)聯(lián)系區(qū)分開來。
同一個(gè)實(shí)體集的各實(shí)體之間也存在1:1、1:n、m:n的聯(lián)系。如職工和職工之間有直接領(lǐng)導(dǎo)的聯(lián)系。
1.3 概念模型的一種表示方法:實(shí)體-聯(lián)系方法
概念模型最著名的方法就是P.P.S.Chen于1976年提出的實(shí)體-聯(lián)系方法,也就是E-R圖方法了。E-R圖的表示方法:
(1) 實(shí)體型:用矩形表示,矩形框內(nèi)寫明實(shí)體名。
(2) 屬性:用橢圓表示,并用無向邊與相應(yīng)實(shí)體連接起來。
(3) 聯(lián)系:用菱形表示,菱形框內(nèi)寫明聯(lián)系名,并用無向邊分別與有關(guān)實(shí)體連接起來,同時(shí)在無向邊上標(biāo)明關(guān)系的類型。
一般E-R圖的構(gòu)造過程是:
(1)?????? 根據(jù)局部應(yīng)用的數(shù)據(jù)流圖,設(shè)計(jì)分E-R圖。
(2)?????? 將各局部應(yīng)用的分E-R圖合并起來,消除沖突,形成初步E-R圖。
(3)?????? 消除初步E-R圖中的冗余,構(gòu)造基本E-R圖。
下面討論上篇文章介紹的工廠管理信息系統(tǒng)的E-R圖構(gòu)造方法。先看一下銷售子系統(tǒng)的分E-R圖。
2.銷售子系統(tǒng)的分E-R圖
2.1 存儲(chǔ)實(shí)體
根據(jù)上節(jié)所畫的數(shù)據(jù)流圖,我們發(fā)現(xiàn)了如下幾個(gè)數(shù)據(jù)存儲(chǔ):應(yīng)收帳款、訂單(訂單記錄本)、產(chǎn)品(產(chǎn)品描述)、待完成訂單、發(fā)票主清單、發(fā)票記錄本。我們對(duì)這幾個(gè)存儲(chǔ)對(duì)象進(jìn)行分析,明確以下幾點(diǎn):
(1)待完成訂單:因?yàn)橛唵瓮瓿珊箝_發(fā)票,因此沒有發(fā)票號(hào)的訂單就可以認(rèn)為是待完成訂單,因此這個(gè)實(shí)體雖然對(duì)用戶來講是必須的,但在設(shè)計(jì)中沒有必要單獨(dú)存儲(chǔ)。
(2)發(fā)票主清單和發(fā)票記錄本:這個(gè)數(shù)據(jù)存儲(chǔ)對(duì)應(yīng)手工憑證,發(fā)票上的信息在開發(fā)票時(shí)已存入應(yīng)收帳款,因此沒有必要再存儲(chǔ)。
這樣,需要存儲(chǔ)的實(shí)體只剩下應(yīng)收帳款、訂單、產(chǎn)品描述3個(gè)。
2.2 角色
數(shù)據(jù)流圖中涉及3個(gè)角色:顧客、主管部門、生產(chǎn)部門。主管部門和生產(chǎn)部門是實(shí)際操作該應(yīng)用系統(tǒng)的角色,擁有不同權(quán)限,這兩個(gè)角色要到權(quán)限管理子系統(tǒng)中設(shè)計(jì)。
顧客不是操作系統(tǒng)的角色,而是由系統(tǒng)管理的對(duì)象,應(yīng)收帳款和訂單都與顧客有聯(lián)系,因此必須在E-R圖中體現(xiàn)。
這樣,需要存儲(chǔ)的實(shí)體又增加了一個(gè):顧客。
2.3 分E-R圖
根據(jù)以上4個(gè)實(shí)體,我們畫出分E-R圖的框架。(記得Microsoft Visio Enterprise Architect 版上有E-R圖設(shè)計(jì)的,但現(xiàn)在用的是Microsoft Office Visio 2003版,直接就是邏輯結(jié)構(gòu)設(shè)計(jì)的模型圖了,因此沒有用Visio畫。)
圖2.1 銷售子系統(tǒng)分E-R圖架構(gòu)
顧客
產(chǎn)品
支付
訂貨
訂單
?
應(yīng)收帳款
1
n
1
n
?
?