DA-S29|情報Ⅰ 対策問題
「生徒表(生徒番号, 氏名, 部活動番号)」と「部活動表(部活動番号, 部活動名)」の2つの表から「氏名と部活動名の一覧」を作りたい。必要なデータベース操作はどれか。
解答・解説を見る
正解: 1
正答
1
この問題のポイント
結合と射影の組み合わせ(外部キーの活用) を問う問題です。関係データベースの基本3操作を整理します。
解説
関係データベースの表の操作には、選択(条件に合う行を取り出す)、射影(必要な列を取り出す)、結合(共通の項目で2つの表をつなぐ)の3つの基本があります。「行なら選択、列なら射影、表と表なら結合」と対で覚えましょう。
この問題では、氏名は生徒表に、部活動名は部活動表にあり、1つの表だけでは一覧を作れません。2つの表をつなぐ鍵が「部活動番号」です。部活動表では各行を識別する主キー、生徒表ではそれを参照する外部キーとして働きます。解く手順は、(1)欲しい項目(氏名・部活動名)がどの表にあるかを確認する、(2)共通項目(部活動番号)で結合して1つの表にする、(3)必要な2列(氏名・部活動名)を射影で取り出す、です。
そもそもなぜ表を2つに分けるのでしょうか。生徒表に部活動名を直接書くと、同じ部活動名が何十行にも重複し、名称変更のときに修正漏れ(一部の行だけ古い名前が残る)が起きます。表を分けて番号で参照し、必要なときに結合する設計が、重複と矛盾を防ぐデータベースの基本思想です。
共通テストでは、2つの表を示して「この一覧を作るための操作はどれか」と、選択・射影・結合の組み合わせを答えさせる形で問われます。
選択肢の確認
1.○ 共通項目の部活動番号で結合し、氏名と部活動名の2列を射影する正しい手順。
2.× 選択は行を取り出す操作。生徒表だけを何度見ても部活動名の列はない。
3.× 列構成の異なる表を上下に連結しても意味のある表にならない。
4.× 部活動表を消せば部活動名の情報そのものが失われる。
ここだけは覚えよう
行は選択・列は射影・表どうしは結合 — 外部キー(共通の番号)でつないでから必要な列を取り出す。