需求分析
數(shù)據(jù)庫建設(shè)中,第一步也是最重要的一個步驟就是需求收集玩郊、定義以及可視化。需求是數(shù)據(jù)庫建設(shè)的基石练慕,需求分析是數(shù)據(jù)庫建設(shè)的腳手架惰匙。
可以說需求分析階段的成果直接影響了整個項目的成敗。
ER建模
需求分析階段铃将,也被稱為ER建模(Entity-Relationship Modeling)階段项鬼,也常被稱為需求可視化,概念建模等劲阎。這一階段數(shù)據(jù)庫系統(tǒng)開發(fā)人員將協(xié)同需求方以ER圖的方式對業(yè)務(wù)需求進(jìn)行可視化展現(xiàn)绘盟。
基本概念
實體(Entity)
實體表示一個可描述的客觀對象或是匯總的抽象概念。例如人、事物龄毡、課程吠卷、訂單等。
實體的一個特點是允許存在多個實例沦零。例如人有各種各樣的祭隔,也有豐富多彩的課程。
在ER圖中路操,實例通常使用矩形表示:
推薦一款免費(fèi)輕便型在線做圖工具processon
屬性(Attribute)
每個實體都有屬性疾渴,屬性是用來描述實體的特征的。例如一個商品訂單有商品ID屯仗、數(shù)量搞坝、創(chuàng)建時間、創(chuàng)建人等屬性魁袜。
在ER圖中桩撮,使用橢圓來表示屬性:
每個實體會有一個唯一屬性,使用下劃線表示慌核,例如社會人的身份證號距境。
實體還會有多值屬性,使用雙線橢圓表示垮卓,例如人的昵稱外號等垫桂。
當(dāng)一個實體的屬性是依附于另外一個屬性時,這個屬性就叫做派生屬性粟按,例如年齡是依附于出生日期的诬滩。
若一個屬性包含有多個子屬性,那么這個屬性可以稱為復(fù)合屬性灭将,可以使用圓括號表示疼鸟。
用一個簡單的ER圖來表示以上幾個關(guān)系:
弱實體
通常情況下,實體至少要有一個唯一屬性庙曙。而當(dāng)一個實體沒有唯一屬性時空镜,這個實體就稱之為弱實體。
在ER圖中捌朴,弱實體用雙線方框表示吴攒,且必須與它的屬主實體通過標(biāo)識性聯(lián)系連接起來(雙框菱形)。
以我們居住的小區(qū)舉個例子砂蔽。
小區(qū)里有很多幢樓(Building)洼怔,每一幢都有一個號(Building ID):A、B左驾、C等镣隶,甚至幢樓還分為多個單元极谊。
每一幢樓里,都分為6層安岂,每層兩戶轻猖,對應(yīng)也就生成里12個門牌號(Door No):101、102嗜闻、201蜕依、202......601、602琉雳。
在一幢樓的鄰里之間样眠,我們可以認(rèn)為門牌號是每家的唯一屬性。一旦走出這棟樓翠肘,你再說101室就沒人知道了檐束,因為每一幢都有一個101室。這時候只有把樓號和門牌號聯(lián)系起來束倍,A101就很明確了被丧。
以上例子中,一個門戶就是一個弱實體绪妹,依附于強(qiáng)實體樓號甥桂。
有些樓的樓號會標(biāo)明xx路/xx小區(qū)A號,這是很明顯的強(qiáng)實體邮旷。只標(biāo)明xx號的黄选,在某些范圍內(nèi)是強(qiáng)實體,有些范圍內(nèi)是弱實體婶肩,是相對的办陷。
使用ER圖來表示一下上述的例子:
聯(lián)系
實體與實體之間通常存在某種聯(lián)系,并且這種聯(lián)系還伴隨有數(shù)量的關(guān)系律歼,稱之為基數(shù)約束民镜。
在ER圖中,使用菱形來表示聯(lián)系险毁,在菱形兩端的連線上使用1制圈、M、N來表示基數(shù)約束畔况。
例如:
一個學(xué)生與一張課桌有聯(lián)系离唐,并且是1:1的關(guān)系。
一個學(xué)生與成績單有聯(lián)系问窃,關(guān)系是1:M,一個學(xué)生有多張成績單完沪,但是一張成績單只對應(yīng)一個學(xué)生域庇。
一個學(xué)生與班級有聯(lián)系嵌戈,關(guān)系是M:1。
一個學(xué)生與老師有聯(lián)系听皿,關(guān)系是M:N熟呛,學(xué)生有多個老師,老師也有多個學(xué)生尉姨。
使用ER圖表示:
小結(jié)
需求分析及可視化是整個數(shù)據(jù)庫生命周期最重要的一步庵朝,一定要協(xié)同好各方需求,盡可能將需求完整地用ER圖展示出來又厉。