資料庫正規化

2021-09-13 17:21:59 字數 1131 閱讀 8333

1.正規化是一種離散數學的知識,是為了解決資料儲存和優化的問題,儲存資料的儲存之後,凡是能通過關係尋找出來的資料,堅決不再重複儲存:終極目標是減少資料的冗餘(以最少的資料完成最大的儲存)

2.正規化是一種分層結構的規範

分為6層,1nf,2nf..6nf(6nf最高層,最嚴格)

每一層都比上一層更加嚴格,若要滿足下一層正規化,前提是要滿足上一層正規化.

正規化只是為了解決空間問題,而資料庫不單是要解決空間問題,還要解決效率問題,所以資料庫的設計不能完全按照正規化要求實現,一般情況下只有前三種正規化要滿足

第一正規化:第一正規化要求資料具有原子性

如上表中的代課時間,當需要取代課的開始時間,需要將字段拆分,不滿足第一正規化。解決方案是單獨兩個字段儲存開始時間和結束時間

第二正規化:表中不允許出現部分依賴

出現部分依賴的原因是因為出現了復合主鍵,如下表中的講師和班級才能組合成乙個主鍵,但性別只依賴於講師,教室只依賴於班級,出現了部分依賴

解決方案是使用邏輯主鍵(增加乙個id做主鍵)

第三正規化:不允許出現傳遞依賴

下表中性別依賴講師,講師依賴主鍵。教室依賴班級,班級依賴主鍵。所以,教室和性別都存在傳遞依賴

解決方案:將存在依賴的字段取出,形成乙個單獨的表

注意:永遠不要將邏輯主鍵看作是真正的主鍵,比如講師表中,真正的主鍵是講師,如果把id當成真正的主鍵,永遠會有依賴傳遞

而上面存在依賴傳遞的表中,真正的主鍵是(講師+班級),所以才會存在性別依賴講師,講師依賴主鍵(id=講師+班級)這種傳遞依賴

規範化程度較高的時候,我們可能需要做很多的關聯查詢,這樣勢必會導致效率的降低。所以有時設計表時,直接儲存想要的資訊,而不去儲存id進行關聯查詢。這是一種磁碟利用率於效率的對抗

資料庫 資料庫正規化

關聯式資料庫的設計規範。不同的規範要求被稱為不同的正規化,越高的正規化資料庫冗餘越小。減少資料庫中資料冗餘的過程 1 第一正規化 1nf 在關係模式r中,當且僅當所有屬性只包含原子值,即每個分量都是不可再分的資料項,則稱r滿足1nf。例如表所示的教師職稱情況關係就不滿足1nf。原因在於,該關係模式中...

資料庫正規化 三正規化

所謂第一正規化 1nf 是指在關係模型中,對域新增的乙個規範要求,所有的域都應該是原子性的,即資料庫表的每一列都是不可分割的原子資料項,而不能是集合,陣列,記錄等非原子資料項。即實體中的某個屬性有多個值時,必須拆分為不同的屬性。在符合第一正規化 1nf 表中的每個域值只能是實體的乙個屬性或乙個屬性的...

資料庫正規化

注 表在定義中被稱為關係,記作r 欄位在定義中被稱作屬性 模式 資料庫中有三種模式,外模式,內模式,模式 粗體是關鍵字的意思 斜體為外來鍵 以前寫下來的,但是用了多年的帳號已經忘了,唯有把文章轉到這裡來了 真暈哦 http blog.csdn.net fantasylu archive 2004 0...