1. 程式人生 > >資料庫:關係模型基本介紹

資料庫:關係模型基本介紹

關係模型研究什麼?

關係模型就是處理Table的,它由三個部分組成:

1:描述DB各種資料的基本結構形式

2:描述Table與Table之間所可能發生的各種操作(關係運算)

3:描述這些操作所應遵循的約束條件(完整性約束)

就是要學習:Table如何描述,有哪些操作,結果是什麼,有哪些約束等.

關係模型的三個要素

1 基本結構:Relation/Table

2 基本操作:Relation Operator(各種運算操作)

3 完整性約束:實現完整性,參照完整性和使用者自定義完整性

候選碼/候選鍵

關係中的一個屬性組,其值能唯一標識一個元組,若從該屬性組中去掉任何一個屬性嗎,它就不具有這一性質了,這樣的屬性組稱為候選碼

例如:"學生(S#,Sname,Sage,Sclass)",S#就是一個候選碼,在此關係中,任何兩個元組的S#是一定不同的,而這兩個元組的Sname,Sage,Sclass都可能相同,所有S#是候選碼。

有時,關係中有很多組候選碼,例如:

    學生(S#,Sname,Sage,Sclass,Saddress)

其中屬性S#是候選碼,屬性組(Sname,Saddress)也是候選碼(同名同地址的兩個同學是不存在的)

主碼/主鍵

當有多個候選碼是,可以選定一個作為主碼

當DBMS以主碼為主要線索管理關係中的各個元組

主屬性與非主屬性

包含在任何一個候選碼中的屬性被稱作主屬性,二其他屬性被稱作非主屬性

最簡單的,候選碼只包含一個屬性

最極端的,所有屬性構成這個關係的候選碼,稱為全碼

     例如:關係“教師授課”(T#,C#)中的候選碼(T#,C#)就是全碼

外碼/外來鍵

關係R中的一個屬性組,它不是R的候選碼,但它與另一個關係S的候選碼相對應,則稱這個屬性組為R的外碼或外來鍵。

例如:“合同”關係中的客戶號不是候選碼,但確實外碼。因它與“客戶”關係中的候選碼“客戶號”相對應。

兩個關係通常是靠外碼連線起來的。

關係模型中的完整性
實體完整性

關係的主碼中的屬性值不能為空值;

意義:關係中的元組對應到現實世界相互之間可區分的一個個個體,這些個體是通過主碼來唯一標識的;若主碼為空。則出現不可標識的個體,這是不容許的

空值的含義

空值:不知道、不存在或無意義的值;

在進行關係操作是,有時關係中的某屬性值是當前填不上的,比如檔案中有“生日不詳”、“下落不明”、“日程尚待公佈”等,需要空值來代替,關係模型中用"?"來表徵。

資料庫中有了空值,會影響許多方面,如影響聚集函式運算的正確性,不能參與算數、比較或邏輯運算等。

有空值的時候是需要特殊處理的,要特別注意。

參照完整性

如果關係R1的外碼Fk與關係R2的主碼Pk相對應,則R1中的每一個元組的Fk值或者等於R2中的某個元組的Pk值,或者為空值、

意義:如果關係R1的年某個元組t1參照了關係R2的某個元組t2,則t2必須存在。

使用者自定義完整性

使用者針對具體應用環境定義的完整性約束條件

如S#要求是10為整數,其中前四位為年度,當前年度與他們的差必須在4以內。

DBMS對關係完整性的支援

實體完整性和參照完整性有由DBMS系統自動支援

DBMS系統通常提供如下機制:

1 它使使用者可以自定義有關完整性約束條件

2 當有更新操作發生是,DBMS將自動按照完整性約束條件檢驗更新操作的正確,即是否符合使用者自定義的完整性