2.關係數據庫
– 關係模型三要素:關係數據結構 關係操作集合 關係完整性
– 關係數據結構:關係模型中數據的邏輯結構是一張扁平的二維表
2.1 關係的相關術語
- 關係:
- 域:
- 笛卡爾積:
- 關係:
- 候選碼:
- 關係模式:
– 關係模式是靜態的/穩定的
– 關係是動態的/隨時間不斷變化的
- 關係數據庫
– 關係數據庫的型也成爲關係數據庫模式
– 關係數據庫的值是這些關係模式在某一時刻對應的關係的集合。通常稱爲關係數據庫
- 關係模型的存儲結構
– 邏輯存儲結構
– 物理存儲結構
2.2 關係操作集合
– 查詢操作:選擇/投影/連接/除/並/差/交/笛卡爾積
– 更新操作:插入/刪除/修改
2.3 代數運算
-
傳統的集合運算:
-
專門的關係運算:
– 記號引入:
– 例子的表格:
– 選擇操作:
– 代數符號表示樣例
– 投影操作:
– 代數符號表示樣例
– 連接操作:
– 代數符號表示樣例
– 除操作:
除操作的通俗解釋:
– 兩個關係R與S,其中R的屬性個數爲m,S的屬性個數爲n,且m>n,R與S有重疊的屬性
– 取出R與S的重疊屬性,在S中找由重疊屬性構成的新的關係R1
– 在R中找到存在對應的R1的所有元組構成一個新的關係R2
– 取R2中關於R與S屬性差集的投影,得到最終的結果
– 代數符號表示樣例
2.4 關係的完整性
- 實體完整性:
若屬性(指一個或者一組屬性)A是基本關係R的主屬性,則A不能取空值NULL - 參照完整性:
若屬性(或屬性組)F是基本關係R的外碼,它與基本關係S的主碼Ks相對應(基本關係R和S不一定是不同的關係),則對於R中每個元組在F上的值必須:
– 或者取空值
– 或者等於S中某個元組的主碼值 - 用戶定義完整性:
針對某一個具體關係數據庫的約束條件,它反映某一具體應用所涉及的數據必須滿足的語義要求