資料庫規範化理論正是用來改造關係模式,通過分解關係模式來消除其中不合適的資料依賴,以解決插入異常、刪除異常、更新異常和資料冗餘問題。在討論關聯式資料庫設計之前我們需要了解一些基本的術語和概念
由五部分組成,即它是乙個五元組:r(u, d, dom, f)
r: 關係名
u: 組成該關係的屬性名集合
d: 屬性組u中屬性所來自的域
dom: 屬性向域的映象集合
f: 屬性間資料的依賴關係集合
資料依賴是完整性約束的表現形式之一。完整性約束之一是限定屬性取值範圍:例如學生成績必須在0-100之間。其二就是定義屬性值間的相互關連(主要體現於值的相等與否),這就是資料依賴,它是資料庫模式設計的。資料依賴通過乙個關係中屬性間值的相等與否體現出來的資料間的相互關係,是現實世界屬性間相互聯絡的抽象,是資料內在的性質,是語義的體現。資料依賴有兩種型別:函式依賴和多值依賴,此處我們主要討論函式依賴。
設有關係模式r(u),x和y是屬性集u的子集,r是r上的任一具體關係,u和v是r中的任意兩個元組。如果由u[x]=v[x]能推導出u[y]=v[y],則稱x函式決定y,或y函式依賴於x,記為fd:x——>y。換個更簡單的說法:函式依賴就是在兩個集合之間存在一種對映關係使兩個集合的元素以某種形式對應起來,這種對映關係就是像函式一樣的依賴。了解函式依賴後和屬性集的閉包後,我們需要了解鍵的定義
能唯一標識元組的屬性集稱為關係模式的超鍵。
了解了基本術語和概念,我們可以開始進入規範化理論的學習
關係必須是規範化的。通常按屬性間依賴情況,來區分關係規範化的程度為第一正規化,第二正規化,第三正規化等。現在正規化發展到了第五方式,但bc正規化已滿足大部分規範情況,因此在正規化的介紹中只到bcnf。規範化也要一些基本的術語需要了解。
在關係r(u)中,如果x——>y,並且對於x的任何乙個真子集x』都有x—\—>y。
如果x——>y,但y不完全函式依賴於x。
在r(u)中,如果x——>y(y不包含於x且y—\—>x),y———>z則稱z對x傳遞函式依賴。
包含在任何乙個候選鍵中的屬性
包含在任何候選鍵中的屬性雖然理論上資料庫滿足的正規化越高階越合理,但實際開發中,有些業務並不需要特別高階的正規化,如為了方便獲取使用者的詳細位址,位址這個屬性可以直接與使用者基本資訊放在同一張表。
資料庫設計理論
資料庫設計理論 一 資料庫設計的幾個原則 乙個好的資料庫產品不等於就是乙個好的應用系統,如果不能設計乙個合理的資料庫模型,不僅會增加客戶端與伺服器端的程式設計和維護難度,而且會影響系統實際執行的效能。因此,要想開發出一款理想的資料庫產品應遵循以下設計準則 1 命名規範化 不同的資料庫產品對物件的命名...
關聯式資料庫設計理論
關聯式資料庫的模式設計 本章的理論性較強,學習時有無從下手的感覺,在學習時應多加思考,從概念出發去理解理論,前後的理論有較強的聯絡,因此要逐個理解,但對於理論的證明等內容則不必深究,本章重點是函式依賴,無損聯接 保持依賴和正規化的概念。一 關係模式的設計問題 識記 關聯式資料庫 是以關係模型為基礎的...
資料庫設計理論之軟體
資料庫的設計在系統設計當中是乙個非常重要的環節,目前很多開發商忽略了它的重要性,把資料庫設計基本等同於建立業務所需要的所有物件,這樣系統就存在很多隱患。對於資料庫的設計,除了一些必要的物件建立之外,還有更多需要考慮在系統執行的整個生命週期中,按照實際的情況及以後可能發生的變化做一些前瞻性的設計,以滿...