數據庫關系代數運算


轉自數據庫-關系代數(類型、完整性約束、基本運算、擴展運算)

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

    全外鏈接:完成左外鏈接和右外鏈接的操作。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM