3、绘制E-R图:数据库概要设计阶段
需求分析階段過后,就進入了概要設計階段。
在概要設計階段,我們需要和項目團隊中的其他成員及客戶進行溝通,討論數據庫的設計是否滿足客戶的業務和數據處理需求。
數據庫設計和機械、建筑等行業一樣,機械行業需要機械制圖,建筑行業需要施工圖,而數據庫設計也需要圖形化的表達方式——E-R圖(Entity-Relationship),也可以稱為實體-關系圖。
實體關系圖構成要素
E-R圖是設計數據庫的工具之一,一般情況下,用于建立數據庫的概念模型。實體、屬性和關系是構成 E-R圖的基本要素。
1. 實體
實體是指現實世界中客觀存在并可以相互區分的對象或事物。就數據庫而言,實體往往指某類事物的集合。可以是具體的人和事物,也可以是抽象的概念、聯系。例如,酒店管理系統中的客房(如 1008 客房、1018 客房等)、客人(如張三、李四、王五)等。
實體一般是名詞,對應表中的一行數據。例如,用戶張三是一個實體,他對應于客人表中“張三”所在的一行數據,包括客人姓名、身份證號等信息。嚴格的說,實體用來指表中的一行特定數據。但在開發時,我們也常常把表稱為一個實體。
2. 屬性
屬性可以理解為實體的特征。例如,”客人“這一實體的屬性有入住日期、結賬日期和交付的押金等。屬性用來對應表中的列。
3. 關系
關系是兩個或多個實體之間的關聯關系。
關系可分為以下 4 種類型,例如對于實體 X 和 Y 之間的關系就必須為以下任意一種:
1)一對一
X 中的一個實體最多與 Y 中的一個實體關聯,并且 Y 中的一個實體最多與 X 中的一個實體關聯。
比如,每輛汽車同一時刻只能占用一個車位,同一時刻每個車位也只停放一輛汽車,那么,汽車實體與車位實體之間就是一對一的關系。一對一關系也可以表示為 1 : 1。
2)一對多
X 中的一個實體可以與 Y 中任意數量的實體關聯,Y 中的一個實體最多與 X 中的一個實體關聯。
比如,一間客房可以入住多位客人,但是一位客人只能入住一間客房,所以,客房實體和客人實體之間就是典型的一對多的關系。一對多關系也可以表示為 1 : N。
3)多對一
X 中的一個實體最多與 Y 中的一個實體關聯,Y 中的一個實體可以與 X 中的任意數量的實體關聯。
比如,客房實體和客人實體之間是典型的一對多關系,反過來說,客人實體和客房實體之間就是多對一的關系。
4)多對多
X 中的一個實體可以與 Y 中的任意數量的實體關聯,反之亦然。
比如,圖書館的每本書可以借給多個讀者,每個讀者也可以借閱多本書,那么,圖書實體和讀者實體之間就是典型的多對多關系。再如,產品和訂單之間也是多對多關系,每個訂單中可以包含多個產品,一個產品也可以出現在多個訂單中。多對多關系也可以表示為 M : N。
繪制實體關系圖
E-R 圖以圖形的方式來表示數據庫的整個邏輯結構,如下:
- 實體:用矩形表示
- 屬性:用橢圓形表示
- 關系:用菱形表示
- 使用直線連接屬性和實體,以及連接實體和關系
E-R(實體關系)圖的繪制一般用軟件輔助,畫實體關系圖常用的軟件有:WORD、億圖圖示、Visio 等,PPT 也可以繪制出美觀的實體關系圖。
下圖為客人實體和客房實體之間的聯系。
在 E-R圖中,直線可以有方向(在末端有一個箭頭)的來表示實體之間的關系。
下面演示如何繪制不同關系的 E-R 圖。其中一些語言可能不符合實際情況,另外,為了方便大家觀看,我們省略了實體中的屬性,只留下了實體和關系。
1)一對一
上圖表示為一位客人最多入住一間客房,一間客房最多被一位客人入住。
2)一對多
上圖表示一位客人可以入住多間客房,一間客房最多被一位客人入住。
3)多對一
上圖表示一位客人最多入住一間客房,一間客房可以被多位客人入住。
4)多對多
上圖表示一位客人可以入住多間客房,一間客房也可以被多位客人入住。
為了畫圖更加方便,也可以用 1 代替箭頭,用*代替直線。如多對一還可以如下:
多對一E-R圖
繪制 E-R 圖后,我們還需要反復與客戶進行溝通,讓客戶提出修改意見,以確認系統中的數據處理需求是否正確完整。
總結
以上是生活随笔為你收集整理的3、绘制E-R图:数据库概要设计阶段的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2、数据库需求分析阶段详解
- 下一篇: 5、数据库设计的三大范式