關(guān)系模型之基本概念
關(guān)系模型三要素
- 基本結(jié)構(gòu): Relation/Table
- 基本操作: Relation Operator
- 完整性約束: 實體完整性, 參照完整性, 用戶自定義的完整性
關(guān)系運算:關(guān)系代數(shù)和關(guān)系演算
關(guān)系代數(shù):基于集合的運算
基于關(guān)系代數(shù)設(shè)計的數(shù)據(jù)庫語言(ISBL):用計算機可識別的符號表征關(guān)系代數(shù)的運算符號
關(guān)系演算:元組演算和域演算
基于邏輯的運算
基于元組演算設(shè)計的數(shù)據(jù)庫語言(Ingres系統(tǒng)的QUEL):用計算機可識別的符號表征元祖演算的運算符號
域演算:基于示例的運算
基于域演算設(shè)計的數(shù)據(jù)庫語言(QBE: Query By Example)
關(guān)系
定義列
的取值范圍域
域
(Domain)
- 一組值的集合, 這組值具有相同的數(shù)據(jù)類型
- 集合中元素的個數(shù)稱為域的
基數(shù)
關(guān)系是笛卡爾積的一個子集, 笛卡爾積是所有可能的組合, 關(guān)系是在這所有組合中一組有意義的組合.
關(guān)系模式與關(guān)系
- 同一關(guān)系模式下, 可以有很多的關(guān)系
- 關(guān)系模式是關(guān)系的結(jié)構(gòu), 關(guān)系是關(guān)系模式在某一時刻的值的數(shù)據(jù)
- 關(guān)系模式是穩(wěn)定的, 而關(guān)系是某一時刻, 是隨時間變化的
關(guān)系的特性
- 列是同質(zhì)的
- 不同的列可來自同一個域
- 關(guān)系不靠行列的位置區(qū)分, 是以內(nèi)容(名字或列值)來區(qū)分的
理論上關(guān)系的任意兩個元組不能相同, 在現(xiàn)實應(yīng)用中, 表(Table)可能并不完全遵守此特性 - 屬性不可再分: 又被稱為關(guān)系的第一范式
關(guān)系的一些概念
- 候選碼(Candidate Key)/候選鍵
關(guān)系中的一個屬性組, 其值能唯一標(biāo)識一個元組. - 主碼(Primary Key)/主鍵: 當(dāng)有多個候選碼時, 可以選定一個作為主碼.
DBMS以主碼為主要線索管理關(guān)系中的各個元組. - 主屬性與非主屬性
包含在任何一個候選碼中的屬性被稱為主屬性, 而其他的屬性被稱為非主屬性 - 外碼(Foreign Key)/外鍵
關(guān)系R中的一個屬性組, 它不是R的候選碼, 但它與另一個關(guān)系S的候選碼相對應(yīng), 則稱這個屬性組為R的外碼或外鍵. 外碼非常重要, 常常是連接兩個關(guān)系的紐帶.
關(guān)系模型中的完整性
- 實體完整性
關(guān)系的主碼中的屬性值不能為空值;
空值: 不知道或無意義的值 - 參照完整性
如果關(guān)系R1的外碼Fk與關(guān)系R2的主碼Pk相對應(yīng), 則R1中的每一個元組Fk或者等于R2中某個元組的Pk值, 或者為空值