1. 程式人生 > >數據庫設計及ER模型

數據庫設計及ER模型

col 最終 .com fan nbsp 三範式 建表 lis 保持

數據庫設計

1.第一範式(確保每列保持原子性)

基本的範式,保證數據庫表中的所有字段都不可再分解。

2.第二範式(確保表中的每列都和主鍵相關)

在第一範式的基礎上,第二範式需要表中的每一個字段都和主鍵相關,也就是說只能存在一種類型的數據。不可把多種類型數據放在一個表中。

3.第三範式(確保每列都和主鍵列直接相關,而不是間接相關)

在滿足前兩個範式的基礎上,第三範式需要確保數據表中的每一列數據都和主鍵直接相關,而不能間接相關。

  • 1.1第一範式

錯誤:表中的字段還可以再次分解,再拆。

技術分享圖片

正確:表中字段不可以再分解。

技術分享圖片

  • 第二範式  

錯誤:表中訂單號和商品id是主鍵,表中的字段沒有和所有主鍵關聯,再拆分

技術分享圖片

正確:表中的無關聯的字段重新創建表,每一個表中的所有字段都和主鍵相關聯

技術分享圖片

  • 第三範式

錯誤:表中的客戶信息和商品信息無直接關聯,再拆

技術分享圖片

再拆:將間接關聯的信息再創建表,每個表的字段信息都是直接關聯的

技術分享圖片

  • 最終實現的目標

技術分享圖片

E-R模型

E-R模型的基本元素是:實體、聯系和屬性

  • 實體:現實生活中任何可以被認知,區分的事物。

  • 聯系:實體之間的關系,可以一點一,一對多喲,多對多。

  • 屬性:實體的某一特性稱為屬性。

技術分享圖片

關系也是一種數據,需要通過一個字段存儲在表中

1、一對一:一對一關系是最好理解的一種關系,主鍵可以設置為在兩個表中的任意一個表

在數據庫建表的時候可以將人表的主鍵放置與身份證表裏面,也可以將身份證表的主鍵放置於人表裏面

技術分享圖片

技術分享圖片

2、一對多:主鍵應存放在多的表中

1端是父親,多端是兒子,所以多端具有1端的屬性,也就是說多端裏面應該放置1端的主鍵,那麽學生表裏面應該放置班級表裏面的主鍵

技術分享圖片

    技術分享圖片

3、多對多:新建一張表C,這個表只有兩個字段,一個用於存儲A的主鍵值,一個用於存儲B的主鍵值

對於多對多關系,需要轉換成1對多關系,那麽就需要一張中間表來轉換,這張中間表裏面需要存放學生表裏面的主鍵和課程表裏面的主鍵,此時學生與中間表示1對多關系,課程與中間表是1對多關系,學生與課程是多對多關系

技術分享圖片

 技術分享圖片

數據庫設計及ER模型