資料庫是乙個能讓資料持久化的容器,為什麼要遵循這些正規化?資料隨著使用者量越來越大,如果將很多資訊都放在一張表中,會存在很多的冗餘資訊,表字段很多,可讀性差。
什麼是列的原子性,在化學中,原子是乙個很小的單位,在資料庫中,我們保證列的原子性,意思就是每一列都是最小的,不能繼續拆分了。這就是列的原子性。
示例:乙個訂單號對應多個商品這樣就很混亂,資料庫規範中不允許一列有多個值
遵循第一正規化:
在遵循第一正規化的條件下,一張表只說明乙個事物;有主鍵且非主鍵依賴主鍵,限制多對多的關係,建立乙個關聯表,通過外來鍵和聯合主鍵來關聯兩張表
示例:根據上面第一正規化可以發現,一張表裡有訂單資訊,商品資訊。有些屬性並不依賴主鍵。那麼就要進行拆分
遵循第二正規化:
要求每列都與主鍵有直接關係,不存在傳遞依賴;
由於表的拆分,使資料庫的效能很低,開發效能第一,所以可以去用部分的資料冗餘來置換效能。所以第三正規化可以不遵守
總結:資料的規範和程式的效能必然是互斥的,所以我們可以選擇乙個折中的辦法,不是說遵循三大正規化就一定是好的。可以選擇浪費一部分空間置換效能
資料庫設計三大正規化資料庫設計三大正規化
為了建立冗餘較小 結構合理的資料庫,設計資料庫時必須遵循一定的規則。在關係型資料庫中這種規則就稱為正規化。正規化是符合某一種設計要求的總結。要想設計乙個結構合理的關係型資料庫,必須滿足一定的正規化。在實際開發中最為常見的設計正規化有三個 1 第一正規化 確保每列保持原子性 第一正規化是最基本的正規化...
資料庫三大正規化
1 第一正規化 1nf 在任何乙個關聯式資料庫中,第一正規化 1nf 是對關係模式的基本要求,不滿足第一正規化 1nf 的資料庫就不是關聯式資料庫。所謂第一正規化 1nf 是指資料庫表的每一列都是不可分割的基本資料項,同一列中不能有多個值,即實體中的某個屬性不能有多個值或者不能有重複的屬性。如果出現...
資料庫三大正規化
第一正規化 確保每列的原子性.如果每列 或者每個屬性 都是不可再分的最小資料單元 也稱為最小的原子單元 則滿足第一正規化.例如 顧客表 姓名 編號 位址 其中 位址 列還可以細分為國家 省 市 區等。第二正規化 在第一正規化的基礎上更進一層,目標是確保表中的每列都和主鍵相關.如果乙個關係滿足第一正規...