資料庫的三大正規化

2022-08-19 10:06:08 字數 1504 閱讀 1296

什麼是三大正規化:資料庫中的三大正規化,可以說是三種規範,三大正規化規定了資料庫最基本的設計規範,在設計資料庫的時候,讓資料庫的結構更加簡明,可以提高效率。設計範

式的思想很像是我做我的事,別人做別人的事,大家沒有交集,避免衝突,可以很大程度上提高效率。

簡單來說就是:

第一正規化:具有原子性

第二正規化:主鍵列與非主鍵列遵循完全函式依賴關係

第三正規化:非主鍵列之間沒有傳遞函式依賴關係

資料庫表的每一列都是不可分割的基本資料項。第一正規化是資料庫最基本的要求,在資料庫中表示為沒有重複的列,在設計資料庫的時候,要滿足資料庫中的每乙個屬性都是不可分割的一項,例如在資料庫的乙個表中設計了家庭住址這一屬性,但是在查詢的時候,要求列出每條資料的家庭所在城市,我們通常在填寫的時候,會把家庭所在的省,市,詳細住址填進去,這樣帶來的後果就是,在對資料庫進行查詢操作的時候,效率低下。把家庭住址拆成省,市,詳細位址。這樣在查詢的時候,直接查某個屬性值就可以了,想要完整位址的時候再組合在一起。不滿足第一正規化還表現為資料庫中表的兩個屬性類似,例如乙個屬性為商品(假如是這樣),這個商品的概念很廣啊,商品的什麼?編號?名稱?**?所以這個商品向下可以分為很多。這樣清晰地分出各個屬性,在後續的查詢上會方便很多,同樣效率也是最高的。第一正規化保證了列的原子性。

第二正規化的基礎是滿足第一正規化,不滿足第一正規化,不可能滿足第二正規化,第二正規化要求資料庫表中的每個例項或行必須可以被唯一的區分,為了區分各個例項,需要加上一列值,通過這個值可以找到唯一的乙個例項(資料庫中的一條記錄),加上的這個屬性列稱之為主鍵,在有的資料庫書上稱之為主碼。我們經常說第二正規化就是主鍵約束。那些非主屬性完全依賴於主關鍵字,例如乙個表,這個表示存商品的各種資訊的,商品的資訊有很多,**,名字,產地等等,我們怎麼區分這些呢,也就是在資料庫中能準確的找到某個商品呢?我們可以設定乙個商品編號,這個編號是唯一的,每個商品對應乙個編號,把這個編號作為主鍵存在資料庫中,這樣我們在查詢某個商品的時候,只要知道商品編號,就可以查到唯一的一條資訊。之前說到了非主屬性完全依賴於主鍵,這個完全表現在,乙個表中不能有和主鍵無關的屬性,例如商品表中,還有生產廠家,廠家位址,等等一些關於廠家的資訊,這樣完全可以再新建另一張表來存生產廠家的資訊。所以說第三正規化保證了屬性完全與主鍵相關。

同樣滿足第三正規化的條件是滿足前兩個正規化。第三正規化要求乙個資料庫表中不包含已在其它表中已包含的非主關鍵字資訊(消除了傳遞依賴)。簡單來說,在一張表中,定義了學生姓名,性別等等關於學生的一些資訊,那麼在另一張表,是記錄學生獲獎資訊的表,在這張表中不能有在前面那張學生基本資訊表中的資訊了,不能有學生的姓名,性別等等,這樣避免了資料的冗餘(資料的重複)。一般情況下我們在一張表中建立乙個外來鍵,建立和另一張表的聯絡。乙個表中有學生的基本資訊,還有學生所在班級的基本資訊,這個表的主鍵為學號,學生的基本資訊依賴於學號區分,但是表中的班級資訊也要依賴於學號區分,顯然這是不合理的這種情況下可以分為兩個表,乙個學生表,乙個班級資訊表。所以說第三正規化消除了傳遞依賴。這個第三正規化和第二正規化很像,大家在區分的時候注意一下。

資料庫設計三大正規化資料庫設計三大正規化

為了建立冗餘較小 結構合理的資料庫,設計資料庫時必須遵循一定的規則。在關係型資料庫中這種規則就稱為正規化。正規化是符合某一種設計要求的總結。要想設計乙個結構合理的關係型資料庫,必須滿足一定的正規化。在實際開發中最為常見的設計正規化有三個 1 第一正規化 確保每列保持原子性 第一正規化是最基本的正規化...

資料庫三大正規化

1 第一正規化 1nf 在任何乙個關聯式資料庫中,第一正規化 1nf 是對關係模式的基本要求,不滿足第一正規化 1nf 的資料庫就不是關聯式資料庫。所謂第一正規化 1nf 是指資料庫表的每一列都是不可分割的基本資料項,同一列中不能有多個值,即實體中的某個屬性不能有多個值或者不能有重複的屬性。如果出現...

資料庫三大正規化

第一正規化 確保每列的原子性.如果每列 或者每個屬性 都是不可再分的最小資料單元 也稱為最小的原子單元 則滿足第一正規化.例如 顧客表 姓名 編號 位址 其中 位址 列還可以細分為國家 省 市 區等。第二正規化 在第一正規化的基礎上更進一層,目標是確保表中的每列都和主鍵相關.如果乙個關係滿足第一正規...