1. 程式人生 > >關於資料庫三大正規化的理解

關於資料庫三大正規化的理解

三大正規化

1. 列不可分

列到底可不可分,和具體應用有關,不具有絕對性。在某應用中地址可能是不可分的,但在另外一個應用中可能會分為省份,城市,街道等等。

2. 消除部分依賴

假設
用大白話說,就是

對於單列主鍵,肯定不存在部分依賴,一定是完全函式依賴。
對於多列主鍵,消除了部分依賴,則滿足第二正規化

3. 消除傳遞依賴

> 每個非碼屬性都和主鍵直接相關

資料庫設計時滿足的正規化越高,資料就傾向於分散到不同的表中,這樣就導致查詢的時候經常會出現多表連線的情況,查詢速度會比較慢,資料庫設計者要在”更高的正規化”和”更快的查詢速度”之間進行權衡。
當然,也可以任性地選擇更高的正規化,後期進行SQL效能調優

,比如建索引,改寫SQL語句等方式。