​資料庫|傳統的集合運算

  • 2019 年 10 月 4 日
  • 筆記

歡迎點擊「演算法與編程之美」↑關注我們!

本文首發於微信公眾號:"演算法與編程之美",歡迎關注,及時了解更多此系列文章。

傳統的集合運算是二目運算,包括交、並、差、廣義笛卡爾積四種運算,如下圖所示:

1) 並(union)

關係R和關係5具有相同的目n(即兩個關係都有n個屬性),且相應的屬性取自同一個域,則關係R與關係S的並由屬於R或屬於S的元組組成,其結果關係仍為n目關係。

記作:

R ∪ S = { t | t ∈R ∨ t ∈s }

2)差(difference)

設關係R和關係S具有相同的目n,且相應的屬性取自同一個域,則關係R與關係s的差由屬於R而不屬於S的所有元組組成。其結果關係仍為n目關係。

記作:

3)交(intersection)

設關係R和關係S具有相同的目n,且相應的屬性取自同一個域,則關係R與關係的交由既屬於R又屬於S的元組組成,其結果關係仍為n目關係。

記作

R ∩ S= { t | t ∈ R ∨ t ∈ S }

4.廣義笛卡爾積(extended cartesian product)

兩個分別為n目和m目的關係R和S的廣義笛卡爾積是一個(n+m)列的元組的集合,元組的前n列是關係R的一個元組,後m列是關係S的一個元組。若R有k1個元組,S有k2個元組,則關係R和關係S的廣義笛卡爾積有k1*k2個元組。

記作:

R ∩ S= { t | t ∈ R ∧ t ∈ S }

傳統的集合運算不光會出現在高中的數學課本中,也會出現在資料庫的學習中。資料庫其實是一個二維的表,就相當於是一個數學的集合。有的時候需要兩個表進行運算,比如,找到兩個表中相同的部分,這個的運算機制就是傳統的集合運算中的「交」。有的時候需要表本身進行計算,比如,只需要顯示錶中某一列的數值,這個就是關係的專門運算「投影」。所以傳統的數學集合的關係運算與資料庫專有的關係運算密切相關。我們要先弄明白集合的運算才能更好的學習關係運算。

END

主 編 | 張禎悅

責 編 | 楊金月

where2go 團隊