一、關係和關係模式
1.1 關係的數學定義
- 域(Domain)
- 具有相同類型的值的集合 , 例如:全體整數 。
- 基數:域中值的個數。
- 笛卡爾積 (Cartesian Product)
- 定義:給定一組域D1,D2,D3,則D1×D2×D3稱爲笛卡爾積。
- 笛卡爾積D1×D2×D3對應一個二維表,所含元組的個數等於各個域的基數之積。
設 D1={張三,李四}, D2={數學,語文}, D3={優,良}
則D1×D2×D3可用二維表表示爲:
- | - | - |
---|---|---|
張三 | 數學 | 優 |
張三 | 數學 | 良 |
張三 | 語文 | 優 |
張三 | 語文 | 良 |
李四 | 數學 | 優 |
李四 | 數學 | 良 |
李四 | 語文 | 優 |
李四 | 語文 | 良 |
1.2 關係(Relation)
- 定義
- 笛卡兒積的一部分元組 ,記作 R(D1,D2,…,Dn)。
- 關係是一個二維表
- 每行對應一個元組
- 每列可起一個名字,稱爲屬性。屬性的取值範圍爲一個域,元組中的一個屬性值是一個分量。
- 關係的目(或度)
- 一個關係所含屬性的個數
- 關係的性質
- 列是同質的,即每列中的數據必須來自同一個域
- 每一列必須是不可再分的數據項(不允許表中套表,即 滿足第一範式)
- 不能有相同的行
- 行、列次序無關
1.3 完整性約束
- 實體完整性:關係的所有主屬性都不能取空值
- 參照完整性
- 若
屬性F
是關係R
的外碼
,與關係S
的主碼
對應,則:- F要麼取空值
- F要麼等於S中某個元素的主碼值。
- 若
二、關係代數
2.1 集合運算
- , , , ,,,
- 設關係模式爲,它的一個關係設爲R。
- ====表示 是 的一個元組;
- 表示元組 中相對應與屬性 的一個分量;
- 若 屬性組 ;
- 表示元組 在 上諸分量的集合;
- 表示 中去掉 後剩餘的屬性組;
- 表示元組的連接(拼接)。
- 並(Union): $R \cup S = { t | t \in R∨t \in S} $
- R和S的屬性個數相同
- R和S相對應的屬性屬於同一個域
- 所有在R中的也在S中的元組
- 交(Intersection): $R ∩ S = { t | t∈R∧t∈S} $
- 差(Difference): $R - S = { t | t∈R∧t∈S} $
- 所有在R中,但是不在S中的元組
- 笛卡爾積:
2.2 關係運算
- 選擇(Selection),又稱限制(Restriction)
: 在
關係R
中選出滿足條件F
的諸元組形成一個新關係。 (從關係中選擇符合條件的行)
- 投影(Projecttion)
: 在
關係R
中選出若干屬性列
組成一個新關係 。(刪除一些不想要的列)注:投影后若有重複行,則自動保留一個
- 連接(Join)
連接運算從R和S的笛卡爾積
R×S
中選取(R關係)在A屬性組上的值與(S關係)在B屬性組上值滿足比較關係θ
的元組。
- 等值連接: θ爲“=”的連接運算稱爲等值連接。它是從關係R與S的笛卡爾積中選取A、B屬性值相等的那些元組。
- 自然連接: 是一種特殊的等值連接,即對兩張表的所有公共屬性上都做等值連接。
- 外連接:自然連接之外,不符合等值連接的元組賦空值。
-
除(Division)
- 設兩個關係爲:R(X, Y), S(Y, Z);
- R/S 表示找出在R中,跟S中所有的Y值都有聯繫的X值。
三、關係演算
3.1 域關係演算
3.1.1 基本格式:
-
是域變量
-
是結果中要顯示的變量
-
P是表達式
3.1.2 表達式
-
原子公式(Atomic formula)
- ;;;
- 是 其中之一;
-
原子公式是一個表達式
-
¬p(否定),p∧q(與),p∨q(或)是一個表達式
3.2 元組關係演算
3.2.1 基本格式: