1.1關係數據庫的介紹
- 關係數據庫由表的集合構成,每個表有唯一的名字。
- 一般來說,表中的一行代表了一組值之間的一種聯繫。
- 在關係模型的術語中,關係用來指代表,而元組用來這指代行,屬性指代的是表中的列。
- 對於關係的每個屬性,都存在一個允許取值的集合,稱爲該屬性的域。
- 如果域中元素被看作是不可再分的單元,則域是原子的。
- 空值是一個特殊的值,表示值未知或不存在。
1.2碼
我們必須有一種能區分給定關係中的不同元組的方法。這用他們的屬性來表明,也就是說,一個元組的屬性值必須是能夠唯一區分元組的。換句話說,一個關係種沒有兩個元組在所有的屬性上的值都相同。
- 超碼是一個或多個屬性的集合,這些屬性的組合可以使我們在一個關係中唯一地標識一個元組。
- 如果一個超碼的任意真子集都不能成爲超碼,這樣的最小超碼稱爲候選碼。
- 主碼表示一個數據庫設計者選中的、主要用來在一個關係中區分不同元組的候選碼(主碼應該選擇那些值從不或極少變化的屬性)。
- 一個關係模式(如R1)可能在它的屬性中包括另一個關係模式(如R2)的主碼。這個屬性在R1上稱作參照R2的外碼。關係R1也稱爲外碼依賴的參照關係,R2叫做外碼的被參照關係。
- 參照完整性約束要求在參照關係中任意元組在特定屬性上的取值必然等於被參照關係中某個元組在特定屬性上的取值。
1.3模式圖
- 一個含有主碼和外碼依賴關係的數據庫模式可以用模式圖來表示。
1.4關係運算
- σ(選擇)返回輸入關係中滿足謂詞的行。
- Π(投影)對輸入關係的所有行輸出指定的屬性。從輸出中去除重複元組。
- ⋈(自然連接)從兩個輸入關係中輸出這樣的元組對:它們在具有相同名字的所有屬性上取值相同。
- ×(笛卡爾積)從兩個輸入關係中輸出所有的元組對(無論它們在共同屬性上的取值是什麼)。
- ∪ 輸出兩個輸入關係中元組的並。
1.5總結
- 關係數據模型建立在表的集合的基礎上。數據庫系統的用戶可以對這些表進行查詢,可以插入新元組、刪除元組以及更新元組。表達這些操作的語言有幾種。
- 關係的模式是指它的邏輯設計,而關係的實例是指它在特定時刻的內容。數據庫的模式和實例的定義類似的。關係的模式包括它的屬性,還可能包括屬性類型和管轄上的約束,比如主碼和外碼約束。
- 關係的超碼是一個或多個屬性的集合,這些屬性上的取值保證可以唯一的識別出關系中的元組,候選碼是一個最小的超碼,也就是說,它是一組構成超碼的屬性集,但這組屬性的任意子集都不是超碼。關係的一個候選碼被選作主碼。
- 在參照關係中的外碼是這樣的一個屬性集合:對於參照關係中的每個元組來說,它在外碼屬性上的取值肯定等於被參照關係中某個元組在主碼上的取值。
- 模式圖是數據庫中模式的圖形化表示,它顯示了數據庫中的關係,關係的屬性、數碼和外碼。
- 關係查詢語言定義了一組運算集,這些運算可作用於表上,並輸出表作爲結果這些運算可以組合成表達式,表達所需的查詢。
- 關係代數提供了一組運算,它們以一個或多個關係爲輸入,返回一個關係作爲輸出。諸如SQL這樣的實際查詢語言是基於關係代數的,但增加了一些有用的句法特性。
術語回顧
English | 中文 | English | 中文 |
---|---|---|---|
table | 表 | relation | 關係 |
tuple | 元組 | null value | 空值 |
datebase schema | 數據庫模式 | datebase instance | 數據庫實例 |
relation schema | 關係模式 | relation instance | 關係實例 |
key | 碼 | super key | 超碼 |
candidate key | 候選碼 | primary | 主碼 |
foreign key | 外碼 | referencing relation | 參照關係 |
referenced relation | 被參照關係 | attribute | 屬性 |
domain | 域 | atomic domain | 原子域 |
referential integrity constraint | 參照完整性約束 | schema diagram | 模式圖 |
query language | 查詢語言 | procedural language | 過程語言 |
nonprocedural language | 非過程化語言 | operational on relations | 關係運算 |
selection of tuples | 選擇元組 | selection of attributes | 選擇屬性 |
natural join | 自然連接 | Cartesian product | 笛卡爾積 |
set operations | 集合運算 | relational algebra | 關係代數 |