定義
假設集合A={a,b},集合B={0,1,2},則兩個集合的笛卡爾積為{(a,0),(a,1),(a,2),(b,0),(b,1),(b,2)}。類似的例子有,如果A表示某學校學生的集合,B表示該學校所有課程的集合,則A與B的笛卡爾積表示所有可能的選課情況。將其元素由集合形式拓展為關係形式,則為廣義笛卡爾積。
設R是n目關係,S是m目關係,R和S的廣義笛卡兒積定義為:
RxS是一個(m+n)目關係,前n列是關係R的屬性,後n列是關係S的屬性。每個元組的前n個屬性是關係R的一個元組,後m個屬性是關係S的一個元組。若關係R有p個元組,關係S有q個元組,關係RxS有pxq個元組,且每個元組的屬性為(m+n)。兩隊游泳運動對均有3名隊員組成。現做循環比賽,賽事表可看成是兩對名單的廣義笛卡兒積。
套用示例
現有關係R和關係S,如下表所示。
A | B | C |
a1 | b1 | c1 |
a1 | b2 | c2 |
a2 | b2 | c1 |
A | B | C |
a1 | b2 | c2 |
a1 | b3 | c2 |
a2 | b2 | c1 |
先求關係R和關係S的廣義笛卡兒積RxS。
R.A | R.B | R.C | S.A | S.B | S.C |
a1 | b1 | c1 | a1 | b2 | c2 |
a1 | b1 | c1 | a1 | b3 | c2 |
a1 | b1 | c1 | a2 | b2 | c1 |
a1 | b2 | c2 | a1 | b2 | c2 |
a1 | b2 | c2 | a1 | b3 | c2 |
a1 | b2 | c2 | a2 | b2 | c1 |
a2 | b2 | c1 | a1 | b2 | c2 |
a2 | b2 | c1 | a1 | b3 | c2 |
a2 | b2 | c1 | a2 | b2 | c1 |
觀察上關係可以看出是6=3+3目的關係,前3列是關係R屬性,後3列是關係S的屬性,每個元組的前3個屬性是關係R的一個元組,後3個屬性是關係S的一個元組。關係RxS=3x3=9個元組。