關聯式資料庫規範化總結

2021-06-22 03:50:05 字數 1740 閱讀 6289

最近本人在準備軟考,所以不得不拿起大一大二時的書本,再次複習一遍。在做軟考的試題中遇到了幾個常遇到的問題,在這裡就討論一下關係型資料庫規範化的問題。關係型資料庫設計的理論核心是資料間的函式依賴問題,衡量的標準是關係規範化的程度及分解的無損連線和保持函式的依賴性。函式依賴是最重要的資料依賴。函式依賴又可分為一下幾種情況。

1)非平凡的函式依賴

如果x->y,但是y不屬於x,那麼稱x->y是非平凡的函式依賴。

2)平凡的函式依賴

如果x->y,而y屬於x,那麼稱x->y是平凡的函式依賴。

3)完全函式依賴

在r(u)中,如果x->y,對於任何乙個x的任何真子集x',都有x『不能決定y,則稱y對x完全函式依賴。

4)部分函式依賴

如果x->y,但y不完全依賴於x,則稱y對x部分函式依賴。

5)傳遞依賴

在r(u,f),中如果x->y, y不屬於x,y->z,則稱z對x傳遞函式依賴。

-> 符號表示  xx決定xx

規範化關係型資料庫的設計方法之一就是要滿足正規化的模式。主要的正規化有 1nf、2nf、3nf、bcnf、4nf、5nf。在一般的專案中做到3nf就可以了。下面列舉 前3個正規化的例子,以及他們存在的問題,來幫助大家更好的理解,資料庫正規化的實現。

1nf(第一正規化)

根據第一正規化的定義,如果關係模式中r的每個分量是不可再分的資料項,即滿足原子性,每一列都不允許再次拆分,則關係模式r屬於第一正規化。舉個例子,**者和它所提供的零件資訊。

first(sno,sname,status,city,pno,qty)

f = ,從上面可以看出每個資料項都是不可以再分的,所以是第一正規化。

下面舉乙個不是1nf的例子,方便大家進行對比。

如果上面的上述r中有address的資料項,它又可以分為province,city,county etc.所以他不滿足第一正規化。

2nf(第二正規化)

2nf是在1nf的基礎上進行擴充套件的,在滿足1nf的基礎上,每乙個非主屬性完全依賴於碼(碼即能夠唯一確定該資料行的標識屬性)。

first關係中的碼是sno,pno,而sno->status,因此非主屬性status部分依賴於碼,因此不是2nf。

如果上述的first關係進一步分解first1(sno,sname,status,city)和first(sno,pno,qty).可以看出first1的碼為sno,非主屬性完全依賴於sno,所以屬於2nf。first2的碼為sno、pno,非主屬性qty完全依賴於sno、pno,所以也屬於2nf。

3nf(第三正規化)

第三正規化是在2nf的基礎上,當消除了非主屬性的傳遞函式依賴,則成為第三正規化。由於sno->status,status->city,所以關係模式存在傳遞函式依賴,不滿足3nf。

如果在2nf的基礎上再次進行劃分first1(sno,sname,status)   first2(status,city)   first3(sno,pno,qty),關係模式不再存在傳遞函式依賴。所以符合第三正規化的定義。要注意的是多個正規化之間存在包含關係 5nf∈

4nf  ∈bcnf ∈

3nf∈

2nf∈

1nf,範圍越來越小,劃分越來越細,資料冗餘和修改操作不一致、插入異常、刪除異常的現象也在也來越少。但是帶來的工作量也越來越大,所以推薦大家一般將關係模式劃分到3nf就可以了。考慮到複雜度和效能之間的平衡度。這也非常符合中國傳統文化中的中庸思想,其實你會越發感覺,你並不是在程式設計,而是在做一名高階翻譯,把世界中的自然語言翻譯成計算機可以執行的**。今天的總結就到這吧。也祝自己能夠在軟考中取得滿意的成績

關聯式資料庫規範化總結

最近本人在準備軟考,所以不得不拿起大一大二時的書本,再次複習一遍。在做軟考的試題中遇到了幾個常遇到的問題,在這裡就討論一下關係型 資料庫規範化的問題。關係型資料庫設計的理論核心是資料間的函式依賴問題,衡量的標準是關係規範化的程度及分解的無損連線和保持函式的依賴性。函式依賴是最重要的資料依賴。函式依賴...

關聯式資料庫的規範化

文章分類 資料庫 一 函式依賴 在資料庫中,函式依賴是最基本 最重要的一種依賴。在資料庫中,屬性值之間會發生聯絡,這類聯絡稱為函式依賴。設有屬性集u上的關係模式r u x,y是u的子集,若對於任乙個關係r中的任一元組在x中的屬性值確定後,則在y中的屬性值必確定,則稱y依賴於x。二 正規化和規範化方法...

關聯式資料庫規範化理論 正規化

此篇博文是我的第一篇文章,在複習資料庫正規化部分的時候做的筆記。正規化指 規範化的關係模式,由於規範程度不同,產生了不同的正規化 乙個低一級的關係正規化通過模式分解可以轉換成若干高一級正規化的關係模式的集合。這個過程稱為關係模式的規範化。關係模式規範化的必要性 關係模式規範化,使之達到較高的正規化是...