1. 程式人生 > >資料庫-關係代數(型別、完整性約束、基本運算、擴充套件運算)

資料庫-關係代數(型別、完整性約束、基本運算、擴充套件運算)

(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來填充左側的關係屬性。

    全外連結:完成左外連結和右外連結的操作。