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