關係模型

beanlam發表於2017-06-19

基本概念

在關係型資料庫中,關係模型中的概念與資料庫層面上的概念的對應關係如下:

  • 關係(relation)指關係型資料庫中的一張表

  • 元組(tuple)指表中的一行資料

  • 屬性(attribute)指表的列

關係在這裡僅僅是一個抽象的概念,關係更偏向一種設計,而關係 + 元組則組成了一個具體的關係例項。關係是邏輯存在的概念,而關係例項是某一個時刻,該關係中資料的一個快照。與此類似的還有資料庫模式(database schema)和資料庫例項(database instance),前者是資料庫的邏輯設計,後者是某個時刻,資料庫中的資料的一個快照。

鍵(key)用來唯一標識一個關係中的不同元組。一個關係有不同的鍵

  • 超鍵(super key):在關係中能唯一標識元組的屬性集稱為關係模式的超鍵

  • 候選鍵(candidate key):不含有多餘屬性的超鍵稱為候選鍵

  • 主鍵(primary key):選作元組標識的一個候選鍵稱為主鍵

  • 外來鍵(foreign key):屬性不是本關係的主鍵,而是另一個關係的主鍵

假設有這樣兩個個關係
學生(學號,身份證號,名字,性別,身高,體重,教師編號)
教師(編號,名字)
在現實生活中,同一個學校裡,我們可以通過學號來唯一確定一個學生,也可以通過身份證號來確定一個學生。
由超鍵的定義可知,學生表中含有學號或者身份證號的任意組合都為此表的超鍵。如:(學號)、(學號,姓名)、(身份證號,性別)等。候選鍵屬於超鍵,它是最小的超鍵,就是說如果再去掉候選鍵中的任何一個屬性它就不再是超鍵了。學生表中的候選鍵為:(學號)、(身份證號)。 主鍵就是候選鍵裡面的一個,是人為規定的,例如學生表中,我們通常會讓“學號”做主鍵。學生表中的外來鍵就是“教師編號”。外來鍵主要是用來描述兩個關係的相互引用。

關係代數

關係代數是一種抽象的查詢語言,用對關係的運算來表達查詢,關係代數運算的物件是關係,運算結果亦是關係。 關係代數的基本關係包括:並、交、差、笛卡爾積、選擇、投影、連線、除法運算。

  • 選擇 δ
    選擇是根據某些條件對關係做水平切割,例如 δ salary > `10000`(R),返回關係例項中滿足響應謂詞的元組

  • 投影 π
    投影與選擇正好相反,是對關係的一種垂直切割,消去某列,並重新安排列的順序。投影用(π)表示。例如:π id,name(R),返回關係 R 中所有元組的 id 和 name 屬性。

  • 笛卡爾積 X
    計算兩個關係 R 和 S 的笛卡爾積,R 的元數為 r ,S 的元數為 s,則 R×S 是一個(r+s)元的元組集合

  • 連線 ⋈
    從兩個關係的笛卡爾積中選取屬性間滿足一定條件的元組,用(R ⋈ S)表示,連線分為兩種,一種是等值連線,另一種是自然連線。等值連線必須要有等值的條件,當條件不同時連線的結果也不相同,兩個關係可以沒有相同的屬性列,自然連線必須要有相同的屬性列才能進行,即等值連線之後要去除相同的屬性列。

  • 除法 ÷
    除運算是同時從關係的水平方向和垂直方向進行運算。給定關係 R(X,Y) 和 S(Y,Z),X、Y、Z 為屬性組。R ÷ S應當滿足元組在 X 上的分量值 x 的象集 Yx 包含關係 S 在屬性組 Y 上投影的集合。

相關文章