關係代數基本運算子


關係代數是一種過程化查詢語言,它用於在對多個關係進行運算後提供單個表/關係作為輸出。這裡將討論一些基本關係。

在我們的學習過程中,我們將使用三個關係(表):

表 1:課程

課程ID名稱
1計算機科學
2資訊科技
3機械工程

表 2:學生

學號名稱地址年齡
1Ram德里18
2Raju海德拉巴20
4Faiz德里22
5Salman海德拉巴20

表 3:宿舍

宿舍號名稱地址年齡
1Ram德里18
2Akash海德拉巴20
3NehaJhansi21

我們將對這些關係進行一些操作,以根據執行的操作建立新的關係。

  • 選擇運算子 (σ) - 選擇運算子用 sigma σ 表示,用於根據某些條件選擇關係的元組。只有滿足特定條件的元組才會被選中。

語法

σ(condition)(relation_name)

示例

Select the student with course id 1.
σ(course_id = 1)(student)

結果

學號名稱地址年齡
4Faiz德里22
  • 投影運算子 (∏) 投影運算子用 ∏ 表示,用於從特定關係中選擇列。只選擇特定的列。

語法

∏(column1 , column2 , … , columnn)(relation_name)

示例

Let’s select all students's name and no who are in hostel.
∏( st. No. , name)(hostel)

結果

宿舍號名稱
1Ram
2Akash
3Neha

在投影中,行總是不同的,即如果存在另一個名為 Panjak 的學生,則另一個將被移除。

  • 笛卡爾積 (X) - 笛卡爾積用 X 符號表示,用於查詢兩個變數連線的值。在笛卡爾積中,關係 1 的每個元組與關係 2 的每個元組交叉。這使得輸出關係的階數為 nXm,其中 n 是關係 1 中元組的數量,m 是關係 2 中元組的數量。

語法

relation1 X relation2

示例

讓我們查詢課程表和宿舍表的笛卡爾積。

student X course


宿舍號名稱地址年齡課程ID名稱
1Ram德里181計算機科學
1Ram德里182資訊科技
1Ram德里183機械工程
2Akash海德拉巴201計算機科學
2Akash海德拉巴202資訊科技
2Akash海德拉巴203機械工程
3NehaJhansi211計算機科學
3NehaJhansi212資訊科技
3NehaJhansi213機械工程
  • 並集 (U) - 兩個關係關係 1 和關係 2 的並集將給出存在於關係 1 或關係 2 中的元組,但同時存在於關係 1 和關係 2 中的元組只考慮一次。

    為了找到它們的並集,這兩個關係也必須具有相同的域。

語法

relation1 U relation2

示例

讓我們查詢學生和宿舍的並集。

student U hostel


學號名稱地址年齡
1Ram德里18
2Raju海德拉巴20
4Faiz德里22
5Salman海德拉巴20
2Akash海德拉巴20
3NehaJhansi21
  • 差運算子 (-) - 差運算子用 - 符號表示。關係 1 - 關係 2 將導致一個關係,其中存在於關係 1 中但不存在於關係 2 中的元組。為了計算差集,關係必須是並集相容的。

語法

relation1 - relation2

示例

讓我們查詢學生 - 宿舍的操作。

student - hostel


學號名稱地址年齡
2Raju海德拉巴20
4Faiz德里22
5Salman海德拉巴20
  • 重新命名 (ρ) - 重新命名運算子用 ρ 表示,用於將給定的關係重新命名為另一個給定的名稱。

語法

ρ(new_name , old_name)

更新於:2019年11月22日

4K+ 次瀏覽

啟動你的職業生涯

完成課程獲得認證

開始學習
廣告