問題 14★☆☆

会員番号・氏名・居住地・年齢・入会日の5列をもち、100行ある会員表に対して、 「居住地が東京都」という条件で選択を行った。 得られる結果として最も適切なものはどれか。

正解:エ

各選択肢の解説

  1. ア列は会員番号と居住地の2列になり、行は100行のまま残る。

    誤り。これは射影で会員番号と居住地の列を取り出したときの形です。選択と射影は どちらも「取り出す」操作なので混同しやすいですが、選択は行を、 射影は列を絞ります。条件で絞るのが選択と覚えると区別できます。

  2. イ列も行もそのままで、東京都以外の会員の値が空欄になる。

    誤り。条件に合わないデータを隠す、という表計算ソフトの感覚に引きずられた 誤解です。選択は条件に合う行だけで新しい結果の表を作るので、 合わない行は空欄で残るのではなく、結果に含まれません。

  3. ウ東京都の会員の行を取り出し、もとの表からはその行が消える。

    誤り。選択はデータを探して取り出す操作で、もとの表の中身は変わりません。 行を消すのは削除という別の更新操作です。何度選択を行っても、 会員表は100行のまま残ります。

  4. エ列は5列のまま、行は居住地が東京都の会員の行だけになる。

    正解。選択は条件に合う行を取り出す操作です。列には手を加えないので、 5列すべてを保ったまま、東京都に住む会員の行だけが結果になります。

理解を深めるために

選択は「条件で行をふるいにかける」

郵便物の束から、宛先が東京都のものだけを抜き出して別の箱に入れる場面を 想像してください。1通ごとに書かれている内容(宛名や差出人)は何も欠けず、 通数だけが減ります。もとの束を探しただけなので、郵便物がなくなるわけでも ありません。関係データベースの選択はこれと同じです。

結果はどういう形になるか

選択は、表の各行が条件を満たすかどうかを調べ、満たす行だけを集めた結果を返します。

  • 列 … 手を加えないので、会員番号・氏名・居住地・年齢・入会日の5列のまま
  • 行 … 居住地が東京都の行だけ(東京都の会員が30人なら30行)
  • もとの会員表 … 変わらず100行・5列

表を横向きにふるいにかけるイメージです。これに対して、列を縦に切り出すのが 射影です。「東京都の会員の氏名だけを知りたい」なら、選択で行を絞ったあと、 射影で氏名の列を取り出します。

混同しやすいものとの違い

操作 結果の行 結果の列 もとの表
選択 条件に合う行だけ そのまま 変わらない
射影 そのまま 指定した列だけ 変わらない
削除 ― ― 行が消える

試験では、結果の表の行数と列数のどちらが変わるかで、選択か射影かを見分けます。

前の問題へ次の問題へ