數據庫設計及ER模型
數據庫設計
1.第一範式(確保每列保持原子性)
基本的範式,保證數據庫表中的所有字段都不可再分解。
2.第二範式(確保表中的每列都和主鍵相關)
在第一範式的基礎上,第二範式需要表中的每一個字段都和主鍵相關,也就是說只能存在一種類型的數據。不可把多種類型數據放在一個表中。
3.第三範式(確保每列都和主鍵列直接相關,而不是間接相關)
在滿足前兩個範式的基礎上,第三範式需要確保數據表中的每一列數據都和主鍵直接相關,而不能間接相關。
- 1.1第一範式
錯誤:表中的字段還可以再次分解,再拆。
正確:表中字段不可以再分解。
- 第二範式
錯誤:表中訂單號和商品id是主鍵,表中的字段沒有和所有主鍵關聯,再拆分
正確:表中的無關聯的字段重新創建表,每一個表中的所有字段都和主鍵相關聯
- 第三範式
錯誤:表中的客戶信息和商品信息無直接關聯,再拆
再拆:將間接關聯的信息再創建表,每個表的字段信息都是直接關聯的
- 最終實現的目標
E-R模型
E-R模型的基本元素是:實體、聯系和屬性
-
實體:現實生活中任何可以被認知,區分的事物。
-
聯系:實體之間的關系,可以一點一,一對多喲,多對多。
-
屬性:實體的某一特性稱為屬性。
關系也是一種數據,需要通過一個字段存儲在表中
1、一對一:一對一關系是最好理解的一種關系,主鍵可以設置為在兩個表中的任意一個表
在數據庫建表的時候可以將人表的主鍵放置與身份證表裏面,也可以將身份證表的主鍵放置於人表裏面
2、一對多:主鍵應存放在多的表中
1端是父親,多端是兒子,所以多端具有1端的屬性,也就是說多端裏面應該放置1端的主鍵,那麽學生表裏面應該放置班級表裏面的主鍵
3、多對多:新建一張表C,這個表只有兩個字段,一個用於存儲A的主鍵值,一個用於存儲B的主鍵值
對於多對多關系,需要轉換成1對多關系,那麽就需要一張中間表來轉換,這張中間表裏面需要存放學生表裏面的主鍵和課程表裏面的主鍵,此時學生與中間表示1對多關系,課程與中間表是1對多關系,學生與課程是多對多關系
數據庫設計及ER模型