本文介紹常用的第一正規化、第二正規化、第三正規化以及bc正規化。在理解正規化前需要先了解一些基本概念。
基本概念:
碼:乙個屬性或者屬性組,使得整個關係中除過此屬性或者屬性組之外的其餘屬性都完全函式依賴
於它,那它就是碼。在乙個關係中可以同時存在多個碼。
主碼:從候選碼中挑選的其中乙個稱為主碼。
主鍵:從候選碼中選定的乙個既稱為主碼,也稱為主鍵。
主屬性:所有碼中的屬性都是主屬性。
函式依賴:a的值確定了,通過某種關係b的值也確定了,記做a->b,b函式依賴於a,a函式決定b。
部分函式依賴:(a,b)->c,b->c,這種關係稱c部分函式依賴於(a,b)
傳遞函式依賴:a->b,b->c得出a->c,稱為c傳遞函式依賴於a
正規化
第一正規化:表中的屬性不可再分。
第二正規化:非主屬性完全函式依賴於碼。第二正規化的本質就是消除關係的部分函式依賴。如果乙個資料表的主鍵只有單一乙個字段的話,它就一定符合第二正規化(前提是該資料表符合第一正規化)。第二正規化需要確保資料庫表中的每一列都和主鍵相關,而不能只與主鍵的某一部分相關(主要針對聯合主鍵而言)。
也就是說在乙個資料庫表中,乙個表中只能儲存一種資料,不可以把多種資料儲存在同一張資料庫表中。
第三正規化:消除非主屬性對於碼的傳遞函式依賴。每一列資料都和主鍵直接相關,而不能間接相關
。bc正規化:消除主屬性對於碼的部分函式依賴與傳遞函式依賴。
資料庫設計正規化
目前關聯式資料庫有六種正規化 第一正規化 1nf 第二正規化 2nf 第三正規化 3nf 第四正規化 4nf 第五正規化 5nf 和第六正規化 6nf 滿足最低要求的正規化是第一正規化 1nf 在第一正規化的基礎上進一步滿足更多要求的稱為第二正規化 2nf 其餘正規化以次類推。一般說來,資料庫只需滿...
資料庫設計正規化
前言 為什麼要寫這篇文章呢,從去年年底開始,就和很多做技術的朋友交流過,從資料庫設計到資料庫架構各個方面的內容。有一些朋友執著於orm,執著於所謂的資料庫設計,卻忘記了一切技術是要為業務服務這個基石。當然這文章裡也有一些自己的理解,想向大家表達。正規化是什麼 正規化是符合某一種級別的關係模式的集合。...
資料庫正規化設計
在軟體開發過程中,資料庫的設計是非常重要的。可以說,良好的資料庫設計,是對使用者需求的理解的精準定位。它不僅能夠使得軟體開發起來非常便捷,而且還能夠使軟體系統高效執行,同時,為日後的維護或者更換資料庫提供便利。在最近開發系統的過程中,感覺收穫最大的也是關於資料庫的操作。最初開發機房收費系統的時候,由...