又準備開始找工作了,根據以往經驗,資料庫正規化是面試時較為常見的問題,前些天重新翻了下資料,今晚簡單總結一下。
在資料庫設計時,我們鼓勵設計滿足一定的規則,即是所謂的資料庫正規化,已確保消除資料庫的資料冗餘、更新異常、插入異常、刪除異常。資料庫正規化有第一正規化,第二正規化,第三正規化,bcnf正規化....一般情況下,我們主需要關注到第三正規化
第一正規化要求資料庫表中的屬性具有原子性,即他的屬性列不能是多列。這個無需理會,只要是關係型資料庫都滿足此正規化。
第二正規化要求資料庫表的非關鍵字段完全依賴於任意候選關鍵字段,既不存在依賴於關鍵字段的某部分的非關鍵字字段。
第三正規化要求消除資料庫表的傳遞依耐性,即不存在非關鍵字字段傳遞函式依賴於關鍵字段。
bcnf正規化是修正的第三正規化,要求不存在任何字段傳遞依賴於關鍵字段。
然後舉下例子吧,拿個簡單的企業人事管理系統來做例子,資料有 員工id,員工資料,部門id,部門資料,任務id,任務資料
滿足第一正規化
(員工id,員工資料,部門id,部門資料,任務id,任務資料)
滿足第二正規化
(員工id,員工資料,部門id,部門資料)
(員工id,任務id)
(任務id,任務資料)
滿足第三正規化
(員工id,員工資料,部門id)
(部門id,部門資料)
(員工id,任務id)
(任務id,任務資料)
當然,實際設計中也不一定要做到滿足這些正規化,具體情況具體分析,下次再寫(*^__^*)
資料庫設計正規化
目前關聯式資料庫有六種正規化 第一正規化 1nf 第二正規化 2nf 第三正規化 3nf 第四正規化 4nf 第五正規化 5nf 和第六正規化 6nf 滿足最低要求的正規化是第一正規化 1nf 在第一正規化的基礎上進一步滿足更多要求的稱為第二正規化 2nf 其餘正規化以次類推。一般說來,資料庫只需滿...
資料庫設計正規化
前言 為什麼要寫這篇文章呢,從去年年底開始,就和很多做技術的朋友交流過,從資料庫設計到資料庫架構各個方面的內容。有一些朋友執著於orm,執著於所謂的資料庫設計,卻忘記了一切技術是要為業務服務這個基石。當然這文章裡也有一些自己的理解,想向大家表達。正規化是什麼 正規化是符合某一種級別的關係模式的集合。...
資料庫正規化設計
在軟體開發過程中,資料庫的設計是非常重要的。可以說,良好的資料庫設計,是對使用者需求的理解的精準定位。它不僅能夠使得軟體開發起來非常便捷,而且還能夠使軟體系統高效執行,同時,為日後的維護或者更換資料庫提供便利。在最近開發系統的過程中,感覺收穫最大的也是關於資料庫的操作。最初開發機房收費系統的時候,由...