定義
關係的描述稱為關係模式(Relation Schema)它可以形式化地表示為:
R(U,D,dom,F)
其中R為關係名,U為組成該關係的屬性名集合,D為屬性組U中屬性所來自的域,dom為屬性向域的
映象集合,F為屬性間數據的依賴關係集合。
通常簡記為:
R(U)或R(A1,A2,…,An)
其中R為關係名,U為屬性名集合,A1,A2,…,An為各屬性名。
性質
1)如果關係模式在達到1NF的基礎上,使每個非主屬性都完全依賴於每個關係鍵,則該關係模式達到2NF的要求。
2)如果關係模式屬於2NF,且每個非主屬性都不傳遞依賴於關係的任何鍵,這該關係模式屬於3NF的要求。
3)若關係符合1NF,且對於每個函式依賴X→Y,X必含有候選鍵,或者關係中的每個決定屬性集都是候選鍵,則關係達到BCNF的要求。
4)達到2NF的關係模式沒有去掉非主屬性對關係鍵的傳遞依賴關係,而達到3NF的關係模式去掉了非主屬性對關係鍵的傳遞依賴關係。2NF和3NF沒有去掉主屬性對關係鍵的依賴關係,而滿足BCNF的關係消除了任何屬性(主屬性或非主屬性)對鍵的部分依賴或傳遞依賴。
5)各個範式之間的聯繫有BCNF?3NF?2NF,如果關係滿足某個範式要求,也會滿足級別較低的所有範式的要求,即較高層次的範式比較低層次的範式具有更合乎要求4.證明在關係資料庫中任何的二元關係模式必定是BCNF。
設R為一個二元關係R(x1,x2),則屬性x1和x2之間可能存在以下幾種依賴關係:
1) x1→x2,但x2 !→x1,則關係R的候選關鍵字為x1,函式依賴的左部包含候選關鍵字x1,所以R為BCNF。
2) x1 !→x2,x2 !→x1,則關係R的候選關鍵字為x1和x2,這兩個函式依賴的左部都包含了R的任一候選關鍵,所以R為BCNF。
3) xl→x2,x2→x1,則關係R的候選關鍵字為(x1,x2),R上沒有函式依賴,所以R為BCNF。
構成
在資料庫中要區分型和值。
關係資料庫中,關係模式是型,關係是值。關係模式是對關係的描述,那么一個關係需要描述哪些方面呢?
首先,應該知道,關係實質上是一張
二維表,表的每一行為一個元組,每一列為一個屬性。一個元組就是該關係所涉及的屬性集的
笛卡爾積的一個元素。關係是元組的集合,因此關係模式必須指出這個元組集合的結構,即它由哪些屬性構成,這些屬性來自哪些域,以及屬性與域之間的
映象關係。
其次,一個關係通常是由賦予它的元組語義來確定的。元組語義實質上是一個n目謂詞(n是屬性集中屬性的個數)。凡使該n目謂詞為真的笛卡爾積中的元素(或者說凡符合元組語義的那部分元素)的全體就構成了該關係模式的關係。
運用
關係模式僅涉及關係名、各屬性名、域名、屬性向域的
映象四部分。
例如,在上面例子中,由於導師和研究生出自同一個域—人,所以要取不同的屬性名,並在模式中定義屬性向域的映象,即說明它們分別出自哪個域,如:
dom(SUPERVISOR-PERSON)=dom(POSTGRADUATE-PERSON)=PERSON 關係模式通常可以簡記為 R(U)或R(A1,A2,…,An)
其中R為關係名,A1,A2,…,An為屬性名。而域名及屬性向域的映象常常直接說明為屬性的類型、長度。關係是關係模式在某一時刻的狀態或內容。關係模式是靜態的、穩定的,而關係是動態的、隨時間不斷變化的,因為關係操作在不斷地更新著資料庫中的數據。但在實際當中,人們常常把關係模式和關係都稱為關係,這不難從上下文中加以區別。