後乙個正規化都是在滿足前乙個正規化的基礎上建立的.1nf:
無重複的列
.表中的每一列都是不可分割的基本資料項.不滿足1nf的資料庫不是關聯式資料庫.
例如:聯絡人表(姓名,**),乙個聯絡人有家庭**和公司**,則不符合1nf,應拆分為(姓名,家庭**,公司**).
原子性,資料不可再分
2nf:屬性完全依賴於主鍵
.不能存在僅依賴於關鍵一部分的屬性.
資料沒有冗餘
例如:選課關係(學號,課程名稱,成績,學分),組合關鍵字(學號,課程名稱)作為主鍵.其不滿足2nf,
因為存在決定關係:課程名稱->學分即存在組合主鍵中的部分字段決定非主屬性的情況.會導致資料冗餘,更新/插入/刪除異常.
3nf:屬性不傳遞依賴於其它非主屬性
.非主鍵列必須直接依賴於主鍵,而不能傳遞依賴。
即不能是:非主鍵a依賴於非主鍵b,非主鍵b依賴於主鍵.
例如:學生表(學號,姓名,學院編號,學院名稱),學號是主鍵,姓名、學院編號、學院名稱都完全依賴於學號,
滿足2nf,但不滿足3nf,因為學院名稱直接依賴的是學院編號 ,它是通過傳遞才依賴於主鍵.
MySQL設計三正規化
正規化化的優點 減少資料的冗餘 資料表的字段是通過關係來連線的 每一張小表的字段和少 更新查詢快 正規化化的缺點 查詢需要進行連表查詢 導致效能降低 索引更難進行優化 正規化一 任何一張表都應該由主鍵 並且其他的字段具有原子性 不可再分 例如乙個完整的位址 是可以將它分為多個字段 address x...
Mysql的三正規化設計和反正規化設計
第一正規化 第一正規化 1nf 要求資料庫表的每一列都是不可分割的基本資料項,同一列中不能有多個值。若某一列有多個值,可以將該列單獨拆分成乙個實體,新實體和原實體間是一對多的關係。在任何乙個關聯式資料庫中,第一正規化 1nf 是對關係模式的基本要求,不滿足第一正規化 1nf 的資料庫就不是關聯式資料...
mysql設計之三正規化 MySQL設計之三正規化
資料庫設計三正規化 設計資料庫表的時候所依據的規範,共三個規範 第一正規化 要求有主鍵,並且要求每乙個字段原子性不可再分 第二正規化 要求所有非主鍵字段完全依賴主鍵,不能產生部分依賴 第三正規化 所有非主鍵欄位和主鍵字段之間不能產生傳遞依賴 第一正規化 資料庫表中不能出現重覆記錄,每個欄位是原子性的...