天天看點

資料庫_資料模型(六)

如何用關系代數的五個基本操作表示除法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)能表達查詢(非過程化,基于謂詞邏輯的表達)。