資料庫-關係代數(型別、完整性約束、基本運算、擴充套件運算)
(1)基本概念
① 屬性和域:
每個事物有很多屬性,每個屬性對應的取值範圍叫做域,所有對域都是原子資料(第一正規化)
② 相關名詞
n元關係:R(D1,D2,D3...Dn)是n元關係,其中關係屬性的個數稱為“元數”,元組的個數稱為“基 數”,也就是記錄值。
候選碼:若關係中某一個屬性或者屬性組的值可以唯一的標識一個元組,則稱為候選碼
主碼:可以選擇任意一個候選碼作為主碼
主屬性:包含在任何候選碼中的屬性叫作主屬性
全碼:關係模型中所有屬性都是這個關係模型的候選碼,稱為全碼
外碼:關係模式中的屬性非該關係的碼,則稱為外碼
③ 三種類型:
基本表:實際存在的表
查詢表:查詢結果對應的表
視圖表:由基本表和其他視圖表匯出的表,不是實際存在資料庫中
④ 完整性約束:
實體完整性:主屬性A不能為空值
參照完整性:用實體之間的關係來描述,若F是關係R的外碼,則F或者是空值,或者是某個元組的 主碼值
使用者定義完整性:根據具體關係資料的約束條件,比如資料範圍等
(2)關係五種基本運算
① 並:
R,S具有相同的關係模式(元素相同,結構相同),記為R U S,返回由R或者S元組構成的集合組成
② 差:
R,S具有相同的關係模式(元素相同,結構相同),記為R-S,右屬於R但不屬於S的元組組成
③ 廣義笛卡爾積:
R×S由n目和m目的關係R,S組成一個(n+m)列的元組集合,若R有K1個元組,S有K2個元組,則R×S有K1*K2個元 組
④ 投影(π) :
從關係的垂直方向開始運算,選擇關係中的若干列組成新的列。
⑤ 選擇(σ):
選擇從關係的水平方向進行元算,選擇滿足給定條件的元組組成新的關係。
(3)擴充套件的關係代數運算
① 交:
R∩S=R-(R-S),R,S具有相同的關係模式
② 連結:
連結分為θ連結,等值連結和自然連結
θ連結:從R,S的笛卡爾積中選擇滿足一定條件的元組
等值連結:當θ為“=”時為等值連結
自然連結:是一種特殊的等值連結,比較的分量必須是相同的屬性組,並在結果集中去掉重複列,如果沒有重複列,自然連結就轉換為笛卡爾積
③ 除:
同時從水平方向和垂直方向進行運算,給定關係R(X,Y)和S(Y,Z),X,Y,Z為屬性組,R÷S應當滿足在X上的分量值x的像集Yx包含關係S在屬性組Y上的投影集合:
例如:
R是:
A |
B |
C |
D |
a |
b |
c |
d |
a |
b |
e |
f |
a |
b |
h |
k |
b |
d |
e |
f |
b |
d |
d |
l |
c |
k |
c |
d |
c |
k |
e |
f |
S是:
C |
D |
c |
d |
e |
f |
則R÷S:
A |
B |
a |
b |
c |
k |
④ 廣義投影:
廣義投影運算容許在投影列表中使用演算法運算,實現對投影運算的擴充,投影出的列不一定是原來的列,可以是通過計算出來的列。
⑤ 外連線:
由於自然連結會丟失一些資訊,而外連結可以處理由於連結運算而缺失的資訊,外連結分為左外連結、右外連結、全外連結。
左外連結:取出左側關係中所有與右側關係中任一元素都不匹配的元組,用null來填充右側的關係 屬性。
右外連結:取出右側關係中所有與右側關係中任一元素都不匹配的元組,用null來填充左側的關係屬性。
全外連結:完成左外連結和右外連結的操作。