關係運算
數學術語
關係的基本運算有兩類:一類是傳統的集合運算(並、差、交等),另一類是專門的關係運算(選擇、投影、連接、除法、外連接等),有些查詢需要幾個基本運算的組合,要經過若干步驟才能完成。
一、傳統的集合運算
1、並(UNION)設有兩個關係R和S,它們具有相同的結構。R和S的並是由屬於R或屬於S的元組組成的集合,運算符為∪。記為。
關係運算
3、交(INTERSECTION) R和S的交是由既屬於R又屬於S的元組組成的集合,運算符為∩。記為。 。
二、選擇運算
從關係中找出滿足給定條件的那些元組稱為選擇。其中的條件是以邏輯表達式給出的,值為真的元組將被選取。這種運算是從水平方向抽取元組。在FOXPRO中的短語FOR和WHILE均相當於選擇運算。
如:LIST FOR 出版單位='高等教育出版社' AND 單價
三、投影運算
從關係模式中挑選若干屬性組成新的關係稱為投影。這是從列的角度進行的運算,相當於對關係進行垂直分解。在FOXPRO中短語FIELDS相當於投影運算。如: LIST FIELDS 單位,姓名
四、連接運算
連接運算是從兩個關係的笛卡爾積中選擇屬性間滿足一定條件的元組。
五、除法運算
在關係代數中,除法運算可理解為笛卡爾積的逆運算。
設被除關係R為m元關係,除關係S為n元關係,那麼它們的商為元關係,記為。商的構成原則是:將被除關係R中的列,按其值分成若干組,檢查每一組的n列值的集合是否包含除關係S,若包含則取列的值作為商的一個元組,否則不取。
六、外連接運算
選擇和投影運算都是屬於一目運算,它們的操作對象只是一個關係。聯接運算是二目運算,需要兩個關係作為操作對象。
1、聯接 聯接是將兩個關係模式通過公共的屬性名拼接成一個更寬的關係模式,生成的新關係中包含滿足聯接條件的元組。運算過程是通過聯接條件來控制的,聯接條件中將出現兩個關係中的公共屬性名,或者具有相同語義、可比的屬性。聯接是對關係的結合。在FOXPRO中有單獨一條命令JOIN實現兩個關係的聯接運算。如:
SELE 1
USE 定單
SELE 2
USE 商品
JOIN WITH A TO XGX FOR AND
設關係R和S分別有m和n個元組,則R與S的聯接過程要訪問個元組。由此可見,涉及到聯接的查詢應當考慮優化,以便提高查詢效率。
2、自然聯接 自然聯接是去掉重複屬性的等值聯接。它屬於聯接運算的一個特例,是最常用的聯接運算,在關係運算中起著重要作用。
如果需要兩個以上的關係進行聯接,應當兩兩進行。利用關係的這三種專門運算可以方便地構造新的關係。
五、外關鍵字
如果一個關係中的屬性或屬性組並非該關係的關鍵字,但它們是另外一個關係的關鍵字,則稱為該關係的外關鍵字。
綜上所述,關係資料庫系統有如下特點:
(1)資料庫中的全部數據及其相互聯繫都被組織成關係,即二維表的形式。
(2)關係資料庫系統提供一種完備的高級關係運算,支持對資料庫的各種操作。
(3)關係模型有嚴格的數學理論,使資料庫的研究建立在比較堅實的數學基礎上。