1. 程式人生 > >資料庫_資料模型(五)

資料庫_資料模型(五)

笛卡爾乘積(cross-product)×

例:
R1

sid bid day
22 101 10/10/96
58 103 11/12/96

S1

sid sname rating age
22 dustin 7 45.0
31 lubber 8 55.5
58 rusty 10 35.0

R1和S1作笛卡爾乘積的結果是,R1和S1中的各個元組做兩兩拼接,即笛卡爾乘積的結果有2 * 3 = 6 條元組:

(sid) sname rating age (sid) bid day
22 dustin 7 45.0 22 101 10/10/96
22 dustin 7 45.0 22 103 11/12/96
31 lubber 8 55.5 22 101 10/10/96
31 lubber 8 55.5 22 103 11/12/96
58 rusty 10 35.0 22 101 10/10/96
58 rusty 10 35.0 22 103 11/12/96

注:1. 這兩張表裡都有sid這個屬性。在同一張表裡,不能有兩個屬性同名,這裡存在一個衝突。在關係代數中,提供了Renaming operator:
ρ ( C ( 1 s i d 1 , 5 s i d 2 ) ) , S 1 × S 2 \rho \left( {C\left( {1 \to {\rm{sid}}1,{\kern 1pt} 5 \to sid2} \right)} \right),S1 \times S2
上式中,1表示笛卡爾乘積結果中的第一個屬性,5表示第五個屬性。將第一個屬性重新命名為sid1,第5個屬性重新命名為sid2.
2. 笛卡爾乘積的結果常常拼接出很多沒有意義的元組。我們更多時候要的是連線操作。

連線(Joins)

條件連線(Conditon Join):⋈這個雲算符在mathtype裡面怎麼打啊? 打不出來 求路過的大佬指點。