平成25年度 秋期 午前 問30
データベース
関係Xを求める関係演算
関係 R と関係 S に対して,関係 X を求める関係演算はどれか。
〔表〕関係 R
| ID | A | B |
|---|---|---|
| 0001 | a | 100 |
| 0002 | b | 200 |
| 0003 | d | 300 |
〔表〕関係 S
| ID | A | B |
|---|---|---|
| 0001 | a | 100 |
| 0002 | a | 200 |
〔表〕関係 X
| ID | A | B |
|---|---|---|
| 0001 | a | 100 |
| 0002 | a | 200 |
| 0002 | b | 200 |
| 0003 | d | 300 |
- アID で結合
- イ差
- ウ直積
- エ和
答えと解説を見る
✓ これが正解エ和
解説
R と S を重ね、同じ行を一つにまとめると X になります。
設問は、関係 R と関係 S から関係 X を得る関係演算を選ばせています。見る軸は二つで、結果の列が増えているかどうかと、結果が何行になるかです。X は ID、A、B の三列のままですから、列の増える演算はこの時点で外れます。次に行数を数えると、R が三行、S が二行、X が四行です。二つを足した五行から一行だけ減っているので、双方に共通する行を一つにまとめた形が疑われます。実際に並べてみると、ID が 0001 で A が a、B が 100 の行だけが R と S の両方にあり、これを一つにすると残りは四行になります。中身も並びも X と一行ずつ一致します。よって、求める演算は和です。
ほかの選択肢はなぜ違うのか
- アID で結合:ID が一致する行どうしをつなぐと、もとの二つの関係の列が横に並ぶため、結果は三列では収まりません。つながるのは共通する ID の二組だけなので、行数のほうも足りなくなります。
- イ差:一方にあって他方にない行だけを残す演算では、結果はもとの関係より小さくなります。R から S を引いても、S から R を引いても、四行そろうことはありません。
- ウ直積:すべての行の組合せを作る演算では、三行と二行から六行ができ、列も三列ずつが横に並んで六列になります。行の数も列の数も、示された結果の形とは合いません。
出典:平成25年度 秋期 応用情報技術者試験 午前 問30
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)