除運算是一種非傳統的集合運算,是廣義笛卡兒積的逆運算。設有兩個關係R和關係S,其元數分別為n和m(n>m>0),則R和S進行除法的結果記為P=R÷S,其中P是一個元組數最大為n-m(有重複需去掉重複項)的關係且滿足以下性質:P中的每個元組u與R中每個元組v所組成的元組(u,v)不在關係S中。
由於除法定義採用的是逆運算定義,通常逆運算的進行需要有相關條件保證運算的可施行性和非平凡性。實際上,關係R能被關係S除的充分必要條件是:
R中應有某些屬性不出現在S中。
基本介紹
- 中文名:除運算
- 外文名:Divison
- 屬於:關係運算
- 套用領域:資料庫
定義
像集
計算步驟
- 將被除關係R的屬性分像集屬性和結果屬性兩部分:與除關係S相同的屬性屬於像集屬性,不相同的屬性屬於結果屬性。
- 求出被除關係R中X的各個分量的象集Yx(將被除關係分組,結果屬性值X一樣的元組分為一組。);
- 在除關係S中,求出與被除關係相同的屬性(像集屬性)Y的投影,得到除目標數據集合ΠY(S);
- 逐一考察每個組,比較像集Yx和除目標數據集合ΠY(S),選取滿足ΠY(S)⊇Yx(像集屬性值包括除目標屬性集合),則對應的結果屬性值應該屬於該除法運算結果集。
性質
示例
A | B | C |
---|---|---|
a1 | b1 | c2 |
a2 | b3 | c7 |
a3 | b4 | c6 |
a1 | b2 | c3 |
a4 | b6 | c6 |
a2 | b2 | c3 |
a1 | b2 | c1 |
B | C | D |
---|---|---|
b1 | c2 | d1 |
b2 | c1 | d1 |
b2 | c3 | d2 |
A |
---|
a1 |
套用
學號Sno | 課程號Cno | 成績Grade |
---|---|---|
201215121 | 1 | 92 |
201215121 | 2 | 85 |
201215121 | 3 | 88 |
201215122 | 2 | 90 |
201215122 | 3 | 80 |
課程號Cno |
---|
1 |
3 |