平成22年度 春期 午前Ⅱ 問12
データ操作
直積に関する問題
次の関係 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 の表。行は“;”で区切った。
- アB:a / C:y
- イB:b / C:x
- ウB:a / C:y−x;B:b / C:x;B:b / C:y
- エB:a / C:y−x;B:−c / C:−z
答えと解説を見る
✓ これが正解アB:a / C:y
解説
直積と商で(a,x)(a,y)が残り、U を引くと(a,y)だけになります。
演算は左から順に、R×S、÷T、−U と進めます。R×S は R の 5 行に S の x と y を組み合わせた 10 行の関係(A,B,C)です。これを T で割る商は、T のすべての A の値、つまり 1 と 3 の両方と組になって現れる(B,C)を取り出します。B が a の組は A が 1、3、4 と組になっているので(a,x)と(a,y)が残り、B が b の組は A が 2 と 3 としか組にならず 1 が欠けるので残りません。商の結果は(a,x)と(a,y)の 2 行で、ここから U の(a,x)を引くと(a,y)の 1 行が残ります。商は割る側のすべての値とそろって組になっているものだけを残す演算だと押さえると計算できます。
ほかの選択肢はなぜ違うのか
- イB:b / C:x:(b,x)は、R×S では A が 2 と 3 の行にしか現れません。T の A の値 1 と組になる行がないので、商の段階で取り除かれます。差をとる前に、すでに結果に含まれない組です。
- ウB:a / C:y−x;B:b / C:…:y−x のような値は、R、S、T、U のどの関係にも現れません。差演算は組を単位として取り除く演算で、値どうしを引き算するものではないので、こうした値が結果に入ることはありません。(b,x)(b,y)も商の段階で除かれます。
- エB:a / C:y−x;B:−c / C…:y−x や −c、−z のような値は、どの関係の組にも現れません。差演算は、U に含まれる組を結果から取り除くだけの演算で、値に負の符号を付けたり引き算したりして新しい組を作るものではありません。
出典:平成22年度 春期 データベーススペシャリスト試験 午前Ⅱ 問12
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)