第2章 关系模型
?以下圖片來自西安交通大學侯迪老師的ppt,僅供學習和復習使用,請勿轉載或他用
2.1 關系
2.1.1 域
列的取值范圍——域
域:一組值的集合,這組值具有相同的數據類型
集合中元素的個數稱為域的基數(Cardinality)
2.1.2 笛卡爾積
所有可能組成的元組:笛卡爾積
-
一組域D_{1} , D_{2} ,…, D_{n}的笛卡爾積為D_{1}×D_{2}×…×D_{n} = { (d_{1} , d_{2} , … , d_{n}) | d_{i}∈D_{i} , i=1,…,n }
-
笛卡爾積的每個元素(d_{1} , d_{2} , … , d_{n})稱作一個n-元組(n-tuple)
-
每一個d_{i}叫做一個分量
-
笛卡爾積是n個域形成的所有可能的n-元組集合
-
若D_{i}的基礎為m_{i},則笛卡爾積的基數為m_{1} \times m_{2} \times ... \times m_{n}
2.1.3 關系
一組域D_{1} , D_{2} ,…, D_{n}的笛卡爾積的子集
笛卡爾積中具有某一方面意義的那些元組被稱作一個關系(Relation)。
關系可用R(A_{1}:D_{1}, A_{2}:D_{2}, … , A_{n}:D_{n})表示,可簡記為R(A_{1} , A_{2} , … , A_{n} ),這種描述又被稱為關系模式(Schema)或表標題(head),其中R是關系的名字, A_{i} 是屬性, D_{i} 是屬性所對應的域, n是關系的度或目(degree), 關系中元組的數目稱為關系的基數(Cardinality)
例如:
關系模式與關系:
-
同一關系模式下,可有很多的關系。
-
關系模式是關系的結構, 關系是關系模式在某一時刻的數據。
-
關系模式是穩定的;而關系是某一時刻的值,是隨時間可能變化的。
理論上,關系的任意兩個元組不能完全相同。(集合的要求:集合內不能有相同的兩個元素);現實應用中,表(Table)可能并不完全遵守此特性。
關系的特性:
屬性不可再分特性:又被稱為關系第一范式
2.1.4 候選鍵與主鍵
關系中的一個屬性組,其值能唯一標識一個元組,若從該屬性組中去掉任何一個屬性,它就不具有這一性質了,這樣的屬性組稱作候選碼。
主鍵:
-
當有多個候選碼時,可以選定一個作為主碼。
-
DBMS以主碼為主要線索管理關系中的各個元組。
2.1.5 主屬性與非主屬性
包含在任何一個候選碼中的屬性被稱作主屬性,而其他屬性被稱作非主屬性 如 “選課”中的S# , C#為主屬性,而Sname, Cname, Grade則為非主屬性
2.1.6 外鍵
關系R中的一個屬性組,它不是R的候選碼,但它與另一個關系S的候選碼相對應,則稱這個屬性組為R的外碼或外鍵。
兩個關系通常是靠外碼連接起來的。
2.1.7 小結
2.2 關系模型中的完整性
-
實體完整性:即關系的主碼中的屬性值不能為空值。
-
參照完整性:如果關系R1的外碼Fk與關系R2的主碼Pk相對應,則R1中的每一個元組的Fk值或者等于R2 中某個元組的Pk 值,或者為空值。
如下圖中,D#是外碼,而Dept表中D#沒有值為05的元組
注意,下圖中D#為空值是可以的
-
用戶自定義完整性:
用戶針對具體的應用環境定義的完整性約束條件
在三個完整性約束中,實體完整性和參照完整性由DBMS系統自動支持
2.3 關系代數
基于集合,提供了一系列的關系代數操作:并、差、笛卡爾積(廣義積)、選擇、投影和更名等基本操作
2.3.1 并相容性
某些關系代數操作,如并、差、交等,需滿足“并相容性”——參與運算的兩個關系及其相關屬性之間有一定的對應性、可比性或意義關聯性
定義:關系R與關系S存在相容性,當且僅當:
$$
(1) 關系R和關系S的屬性數目必須相同;\\ (2) 對于任意i,關系R的第i個屬性的域必須和關系S的第i個屬性的域相同
$$
2.3.2 并操作
假設關系R和關系S是并相容的,則關系R與關系S的并運算結果也是一個關系,記作:R ∪S, 它由或者出現在關系R中,或者出現在S中的元組構成。
2.3.3 差操作
假設關系R 和關系S是并相容的,則關系R 與關系S 的差運算結果也是一個關系,記作:R ? S, 它由出現在關系R中但不出現在關系S中的元組構成。
2.3.4 廣義笛卡爾積(中間產物,為了實現連接)
下圖中,關系R的元組數目是3,度數是3; 關系S的元組數目是4, 度數是3; 則R x S的元組數目是12, 度數是6
2.3.5 選擇操作
2.3.6 投影
注意投影后要去掉重復元組!
小結
先from(需要的表),再連接join,再選擇where,最后投影select
2.3.7 交
2.3.8 \theta-連接
2.3.9 等值連接
2.3.10 自然連接
注意最后會去掉重復的屬性列。
2.3.11 除操作
2.3.12 外連接
2.4 關系演算之元組演算
2.4.1 例子
2.4.2 存在量詞和全稱量詞
可以使用全稱量詞與存在量詞的等價關系改寫
2.5 關系演算之域演算
2.5.1 例子
2.5.2 元組演算和域演算的比較
2.5.3 關系運算的安全性
即不產生無限關系和無窮驗證的運算
需要對關系演算加約束:DOM
總結
- 上一篇: 高端餐饮空间布局要点
- 下一篇: REPEATABLE-READ隔离级别