如何用關系代數的五個基本操作表示除法A/B
想法:先找出A中不滿足條件的x值,再去掉這些x,剩下的就是滿足條件的x了。
不滿足除法條件的x(Disqualified x values):
π x ( ( π x ( A ) × B ) − A ) {\pi _x}\left( {\left( {{\pi _x}\left( A \right) \times B} \right) - A} \right) πx((πx(A)×B)−A)
A/B: π x ( A ) − a l l d i s q u a l i f i e d t u p l e s {\pi _x}\left( A \right){\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} - {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} all{\kern 1pt} {\kern 1pt} {\kern 1pt} disqualified{\kern 1pt} {\kern 1pt} {\kern 1pt} tuples πx(A)−alldisqualifiedtuples
即: π x ( A ) − π x ( ( π x ( A ) × B ) − A ) {\pi _x}\left( A \right){\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} - {\pi _x}\left( {\left( {{\pi _x}\left( A \right) \times B} \right) - A} \right) πx(A)−πx((πx(A)×B)−A)
外連接配接(Outer joins)
左外連接配接(*⋈):左邊關系的所有元組都保留,能比對的比對,不能比對的在右邊補空值。
右外連接配接(⋈ *):右邊關系的所有元組都保留,能比對的比對,不能比對的在左邊補空值。
全外連接配接:左右兩邊的關系的元組都保留,比對的比對,不能比對的在左邊補空值。
外并操作(Outer Unions)
- 外并操作能連接配接不滿足并相容條件的兩個關系
- 外并操作的結果屬性集為參與運算的兩個關系屬性的并;元組也是參與雲算的兩個關系的并(各元組新增的屬性補空值)
例 S 1 ∪ R 1 S1 \cup R1 S1∪R1
sid | sname | rating | age | bid | day |
---|---|---|---|---|---|
22 | dustin | 7 | 45.0 | null | null |
31 | Lubber | 7 | 45.0 | null | null |
58 | rusty | 10 | 35.0 | null | null |
22 | null | null | null | 101 | 10/10/96 |
58 | null | null | null | 103 | 11/12/96 |
除了關系代數外(過程化),還有關系演算(Relation Calculus)能表達查詢(非過程化,基于謂詞邏輯的表達)。