本章討論關係資料理論
6.1問題的提出
前面已經介紹了關聯式資料庫的基本概念,關係模型的三個部分以及關聯式資料庫的標準語言SQL。但還有一個基本問題:如何構造一個適合它的資料庫模式,這是資料庫設計問題。
一個關係模式應當是一個五元組。
R(U,D,DOM,F)
R:關係名,表名
U:表示一組屬性
D:為屬性組屬性中的取值範圍
DOM:為屬性到域的對映
F:為屬性組的資料依賴
由於D,DOM與模式設計關係不大,因此在本章中把關係模式看做一個三元組: R< U,F> 當U屬性組上的一個屬性r滿足F時,r稱為關係模式R<U,F>的一個關係。
做為一個二維表,關係要符合一個最基本的條件:每一個分量必須是不可分的資料項。滿足這個條件的模式就屬於第一正規化(1NF)。通俗的來講1NF就是不可以有表中表(例如:總金額屬性,不能再分為數量屬性和單價屬性),必須屬性列是唯一的。
資料依賴:是一個關係內部屬性與屬性之間的一種約束關係。 舉例: 當知道學生的Sno就可以推出來學生的姓名Sname來 Sno——>Snome
1.函式依賴(FD):比如描述一個學生的關係,可以有學號(Sno),姓名(Sname),系名(Sdept)等等屬性,由於一個學號只對應一個學生,一個學生只在一個系學習。因而當學號值確定之後,學生的姓名以及所在系的值也就被唯一地確定了。屬性間的這種依賴關係類似於數學中的函式y=f(x),自變數X確定之後,相應的函式值y也就唯一確定了。
例如:Sname =f(Sno) 即Sno函式決定Sname,或者說Sname函式依賴於Sno 記作: Sno——>Sname
總結:
1.R< U,F> 當U屬性組上的一個屬性r滿足F時,r稱為關係模式R<U,F>的一個關係。
2. 1NF不可以有表中表,必須屬性列是唯一的。
3.資料依賴是y=f(x),已知一個屬性值推出另外一個值。