平成24年度 春期 午前Ⅱ 問10
データ操作
関係代数に関する問題
次の関係 R,S,T,U において,関係代数表現 R×S÷T−U の演算結果はどれか。ここで,×は直積,÷は商,−は差の演算を表す。
関係 R
| A | B |
|---|---|
| 1 | a |
| 2 | b |
| 3 | a |
| 3 | b |
| 4 | a |
関係 S
| C |
|---|
| x |
| y |
関係 T
| A |
|---|
| 1 |
| 3 |
関係 U
| B | C |
|---|---|
| a | x |
| c | z |
選択肢は原典では列 B,C の表。各肢は行を上から順に「/」で区切って書いた(1 行の中は B,C の順)。
- アa,y
- イb,x
- ウa,y−x / b,x / b,y
- エa,y−x / −c,−z
答えと解説を見る
✓ これが正解アa,y
解説
商で (a,x)・(a,y) が残り、U を引くと (a,y) です。
左から順に計算します。R×S は、R の5行と S の2行のすべての組合せで、属性 A、B、C の10行になります。これを T で割ると、結果の属性は B、C で、T の A の値1と3のどちらとも組になって現れる (B,C) だけが残ります。R で A=1 の B は a だけ、A=3 の B は a と b なので、両方に共通する B は a です。C は x と y のどちらとも組になるので、商は (a,x) と (a,y) の2行です。最後に U を引くと、U にある (a,x) が除かれ、(a,y) の1行が残ります。直積、商、差を一つずつ表に書き出してから次へ進むと、取り違えずに計算できます。
ほかの選択肢はなぜ違うのか
- イb,x:(b,x) は、B=b が A=3 としか組になっていないので商に残りません。T の A の値1と3の両方と組になる B は a だけです。
- ウa,y−x / b,x / b,y:b を含む行は、A=1 と組になっていないので商の段階で除かれます。また、関係代数の差は行の集合から行を取り除く演算で、値どうしを引き算するものではありません。
- エa,y−x / −c,−z:差を値の引き算のように扱い、U にしかない (c,z) を負の値として残しています。差は左の関係にある行のうち右の関係にも現れる行を除くだけで、右側にしか無い行は結果に入りません。
出典:平成24年度 春期 データベーススペシャリスト試験 午前Ⅱ 問10
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)