ITパスポート試験

問59

ITパスポート過去問 令和5年度(2023年)問59

関係データベースで管理された“会員管理”表を正規化して,“店舗”表,“会員種別”表及び“会員”表に分割した。“会員”表として,適切なものはどれか。ここで,表中の下線は主キーを表し,一人の会員が複数の店舗に登録した場合は,会員番号を店舗ごとに付与するものとする。

選択肢

正解と解き方・学習ポイント(AI解説)

正解:
あなたの回答:未回答

会員番号は「店舗ごとに付与」されるため、会員番号だけでは一意になりません。このため、“会員”表の主キーは店舗コードと会員番号の複合主キーにします。また、店舗名と会員種別名は別表に分割済みなので、“会員”表には会員名と、会員種別表を参照するための会員種別コードを保持します。

不正解

店舗コードがないため、店舗ごとに会員番号が付与される条件では行を一意に特定できません。また、会員種別コードがないため会員種別表とも関連付けできません。

不正解

会員種別コードはありますが、店舗コードがないため、店舗ごとに会員番号が付与される条件では行を一意に特定できません。

不正解

会員番号と店舗コードを主キーにしている点は適切ですが、会員種別コードがありません。会員種別表と関連付けできず、会員の種別を表せないため不適切です。

正解

会員番号と店舗コードの組合せを主キーとしており、店舗ごとに会員番号を付与する条件を満たします。さらに会員名と会員種別コードを持ち、会員種別表と関連付けできるため適切です。

Point

この問題は、正規化後に“会員”表へ残す属性と、主キーの決め方を確認する問題です。特に、「会員番号を店舗ごとに付与する」という条件から、会員番号の一意性が店舗単位であることを読み取り、店舗コードを含む複合主キーが必要である点を理解することがねらいです。

解くために必要な知識

用語の整理

用語 意味
関係データベース 表でデータを管理し、主キーで行を一意に識別するデータベースです。
正規化 重複や更新時の不整合を減らすため、表を分割してキーで関連付けることです。
主キー 表の1行を一意に識別する列、または列の組です。
複合主キー 複数列の組で1行を一意に識別する主キーです。
外部キー 別表の主キーを参照し、表同士の関連を表す列です。

図表の読み取り方

主キーの確認

  • 下線が引かれた列が主キーです。

  • 条件文で「店舗ごと」などの範囲が示されている場合、単一列で一意になるかを確認します。

正規化で分離される列の扱い

  • 名称(店舗名、会員種別名など)はマスタ表へ分離されることが一般的です。

  • 分離後の表では、名称ではなくコード(店舗コード、会員種別コード)を保持し、外部キーとして参照します。

問題の解法手順

問題の注目点は、「会員番号を店舗ごとに付与する」という条件と、分割後に既に別表へ移る項目です。

図表の読み取り

会員管理表から分かること

  • 店舗コードが違えば、会員番号が同じでも別会員として扱われます。

  • 店舗コードが同じなら、会員番号で会員を区別できます。

このため、会員を一意に識別するには「店舗コード」と「会員番号」の組合せが必要です。

解く手順

1. 主キーを決める

  • 会員番号は店舗ごとに重複し得るため、「会員番号」単独では一意になりません。

  • よって主キーは複合主キーの「店舗コード+会員番号」です。

2. 分割された表にある項目を除く

  • “店舗”表に店舗名があるため、“会員”表に店舗名は入れません。

  • “会員種別”表に会員種別名があるため、“会員”表に会員種別名は入れません。

3. 会員表に残す項目を決める

“会員”表に必要な項目は次のとおりです。

  • 主キーである「店舗コード」「会員番号」

  • 会員の属性である「会員名」

  • “会員種別”表を参照するための「会員種別コード」

4. 選択肢を照合する

上記を満たすのは、複合主キー(店舗コード+会員番号)を持ち、会員名と会員種別コードを含む「エ」です。

選択肢ごとの解説

不正解

店舗コードがないため、店舗ごとに会員番号が付与される条件では行を一意に特定できません。また、会員種別コードがないため会員種別表とも関連付けできません。

不正解

会員種別コードはありますが、店舗コードがないため、店舗ごとに会員番号が付与される条件では行を一意に特定できません。

不正解

会員番号と店舗コードを主キーにしている点は適切ですが、会員種別コードがありません。会員種別表と関連付けできず、会員の種別を表せないため不適切です。

正解

会員番号と店舗コードの組合せを主キーとしており、店舗ごとに会員番号を付与する条件を満たします。さらに会員名と会員種別コードを持ち、会員種別表と関連付けできるため適切です。

まとめ

会員番号は「店舗ごとに付与」されるため、会員番号だけでは一意になりません。このため、“会員”表の主キーは店舗コードと会員番号の複合主キーにします。また、店舗名と会員種別名は別表に分割済みなので、“会員”表には会員名と、会員種別表を参照するための会員種別コードを保持します。

テクノロジ系 > 技術要素 > データベース