表中所有欄位都是不可分割的原子值。只要字段值還可以繼續拆分,就不滿足第一正規化。例如位址這個字段,如果寫為xx省xx市xx區就不滿足第一正規化,因為這個字段可以繼續拆分為欄位省,欄位市,字段區。在實際資料處理過程中,正規化設計越詳細,操作更加靈活。
如表1學生資訊表1
學生學號
學生姓名
性別家庭住址
其中家庭住址的範圍較廣,可以繼續拆分為表2
學生資訊表2
學生學號
學生姓名
性別家庭住址(省)
家庭住址(市)
家庭住址(區)
這樣在執行查詢語句的時候,條件限制更為具體(當然,區往後還可以繼續再分,根據實際要求看)。
在滿足了第一正規化的條件下,要求除了主鍵外的每乙個列都必須完全依賴主鍵。例如表3
學生資訊表3
學生姓名
學生性別
學生身份證號
緊急聯絡人
所屬關係
職務所在公司
其中學生性別、學生身份證號、緊急聯絡人、所屬關係都是依賴於學生本身的,而職務、所在公司與學生本身是沒有依賴關係的,所以這張表應該分為兩張表:
表4學生資訊表4
學生姓名
學生性別
學生身份證號
緊急聯絡人
所屬關係
表5聯絡人資訊表
緊急聯絡人
職務所在公司
必須先滿足第二正規化,並且除開主鍵列的其他列之間不能存在傳遞依賴關係。
這裡的傳遞依賴用乙個簡單的例子說明:
如表6學生資訊表6
學生學號
系編號系主任
通過學生學號可以查詢其所在的系編號,通過系編號可以查詢到系主任,但是由系編號是決定不了具體的乙個學生的,所以說系主任和學生學號之間存在傳遞依賴,換句話說系主任是依賴於系編號的,但是表中的學生學號才是主鍵,系主任卻不能完全依賴於學生學號。所以要將系主任置於另一張以系編號為主鍵的資訊表中。
資料庫設計的基本三大正規化
1 第一正規化 確保每一列的屬性都是不可再分 第一正規化的合理遵循需要根據系統的實際需求來定。比如某些資料庫系統中需要用到 位址 這個屬性,本來直接將 位址 屬性設計成乙個資料庫表的字段就行。但是如果系統經常會訪問 位址 屬性中的 城市 部分,那麼就非要將 位址 這個屬性重新拆分為省份 城市 詳細位...
秒懂資料庫三正規化
懂得資料庫正規化,對於設計出乙個合理的資料庫有很大的幫助。本文根據自己對資料庫正規化的理解,結合具體的例子,嘗試著用通俗易懂的語言講明白資料庫三正規化。如果資料庫中所有的字段值都是不可拆分的原子值,那麼就滿足第一正規化了。簡單點說就是不能有表中表,所以關聯式資料庫都滿足第一正規化。例子略。第二正規化...
資料庫的三大正規化
看到一篇寫正規化的文章,比較好,記錄下來備忘 引用自 正規化 英文名稱是 normal form,它是英國人 e.f.codd 關聯式資料庫的老祖宗 在上個世紀70年代提出關聯式資料庫模型後總結出來的,正規化是關聯式資料庫理論的基礎,也是我們在設計資料庫結構過程中所要遵循的規則和指導方法。目前有跡可...