這篇文章主要講述的是數(shù)據(jù)倉(cāng)庫(kù)建模的一些基本概念,包括:實(shí)體、屬性、域、關(guān)系、鍵、約束、范式、命名規(guī)范等。
實(shí)體
實(shí)體通常是名詞,如“人”、“事”等的抽象化對(duì)象;比如:?jiǎn)T工、公司等等;
實(shí)體,就是你想要在數(shù)據(jù)庫(kù)里存儲(chǔ)的所有信息;
實(shí)體對(duì)應(yīng)數(shù)據(jù)庫(kù)就是表,實(shí)體中的實(shí)例就是一行行的數(shù)據(jù);
屬性
屬性用來描述實(shí)體的具體特性,如下圖所示

屬性的分類---按內(nèi)容
屬性的內(nèi)容非常廣泛,包括但不限于:
1. ID? ? 2. 描述? ? 3. 引用? ? 4. 分類? ? 5. 限制? ? ?6. 數(shù)量? ? 7. 時(shí)間相關(guān)? ?
8. 人物相關(guān)? ? 9. 地點(diǎn)相關(guān)? ?10. 狀態(tài)? ?11. 審計(jì)? ?12. 派生 等等等
屬性的一些特性(空 默 類 多 派)
1. 是否允許為空,即強(qiáng)制的,還是可選的?
2. 是否有默認(rèn)值?
3. 數(shù)據(jù)類型是什么?
4. 是單值還是多值?
5. 派生屬性是如何計(jì)算的?
域
可以從高中學(xué)習(xí)的集合的概念引申一下,即為作用域;域是屬性的所有取值范圍的集合,其實(shí)可以理解為自定義的數(shù)據(jù)類型,并可以加一些約束;域類型如:
1. 格式:VARCHAR, currency,email
2. 列表:枚舉類型、gender
3. 范圍:from x to y, 年齡取值范圍 0-150
使用域可以提高數(shù)據(jù)質(zhì)量,使數(shù)據(jù)模型更易于理解和便于溝通;
關(guān)系
關(guān)系是 動(dòng)詞??
老師 教 課程 ,老師和課程都是實(shí)體,教 是關(guān)系
用于表示實(shí)體和實(shí)體之間的關(guān)系;
在概念模型層級(jí),存在1:N,0:N, 1:1, 0:1, M:N這幾種情況
在邏輯模型和物理模型層級(jí),需要消除M:N的情況,通常是建立關(guān)系映射表
鍵

候選鍵:一個(gè)或者多個(gè)屬性的組合,可以唯一確定實(shí)體的一個(gè)實(shí)例,候選鍵也可以叫做候選主鍵,可以選為主鍵的;
主鍵:從候選鍵中,選中用來作為唯一標(biāo)識(shí)的屬性或者屬性組,被稱為主鍵;
可選建:候選鍵中,沒有選中的其他鍵,稱為可選鍵;
主鍵的特點(diǎn):
1. 唯一性,不可重復(fù);
2. 強(qiáng)制性,不可以為空
3. 永久性,不可改變;
4. 最小集合,不可摻雜多余的屬性;
單鍵與復(fù)合鍵:
單鍵:主鍵如果是一個(gè)屬性,稱為單鍵;
復(fù)合鍵:主鍵如果是多個(gè)屬性的組合,稱為復(fù)合鍵。
自然鍵和代理鍵:
自然鍵:已經(jīng)真是存在的鍵,通常具有商業(yè)含義,比如身份證ID,護(hù)照編碼等??梢允菃捂I,也可以是復(fù)合鍵;
代理鍵:完全沒有商業(yè)含義,通常由當(dāng)前的系統(tǒng)自動(dòng)生成,都是單鍵。
約束
約束存在的目的就是將商業(yè)規(guī)則應(yīng)用到數(shù)據(jù)庫(kù)的設(shè)計(jì)中;約束分為:
1. 唯一標(biāo)識(shí)
2. 非空約束
3. 默認(rèn)值
4. 檢查
5. 參照完整性
規(guī)范化











