ITパスポート試験 / 令和5年度 ITパスポート試験 公開問題 / 問59
certification-simodake-work

令和5年度 ITパスポート試験 公開問題 問59 解説 関係データベースの正規化

設問図

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

選択肢図
  1. ア.
  2. イ.
  3. ウ.
  4. エ. ✓ 正答

解説

正規化された表を正しく導き出すためには、元の表の「どの項目が、どの項目を特定しているか」という依存関係を正しく読み取ることが鍵となります。

解き方の手順

  1. 問題文から主キーを特定する: 「会員番号を店舗ごとに付与する」という記述から、特定の会員を識別するには「会員番号」だけでは不十分であり、「店舗コード」と「会員番号」を組み合わせる必要があることがわかります。したがって、複合キー(店舗コード + 会員番号)が主キーとなります。
  2. 表から必要な項目を抽出する: 「会員」表には、会員自身を説明する「会員名」、および他の表(店舗表、会員種別表)と繋ぐための役割を持つ「店舗コード」と「会員種別コード」が含まれている必要があります。
  3. 選択肢を照合する: 主キーに「店舗コード」と「会員番号」の両方が含まれ、かつ必要なデータ項目が揃っている選択肢を選びます。

データベース正規化の考え方

正規化とは、データの重複をなくし、更新時の矛盾を防ぐための整理術です。元の「会員管理」表には、店舗情報や会員種別情報が重複して格納されています。これらを別々の表に切り出すことで、たとえば「会員種別名を変更したい」といった場合に、ひとつの場所を修正するだけで整合性が保たれるようになります。

この問題で「会員」表に「会員種別コード」を残している理由は、それが「会員種別」表との紐付け(リレーション)を行うための外部キーとなるためです。もしこのコードを除外してしまうと、どの会員がどの種別であるかという情報をどこにも持たなくなってしまうため、正規化によって情報を分割しても、元のデータ関係を復元できるようにしておく必要があります。

実務や試験での活用

データベース設計の現場では、この「正規化」の概念が非常に重要です。データの重複がある状態(非正規形)は、一度の更新で複数の箇所を書き換える必要が生じ、修正漏れなどのリスクを伴います。ITパスポート試験では、今回のように「主キーをどう設定するか」「どの情報をどの表に持たせるか」といった、データ整合性を意識した設計に関する知識が頻出します。特に、複数の項目を組み合わせて一意のデータを識別する「複合主キー」の考え方は、実務上のDB設計で必ず直面する壁ですので、しっかりと理解しておきましょう。

  • 第2正規形・第3正規形(データベーススペシャリスト試験等の基礎知識)

学習の記録にははてなブックマーク!

気づいたこと・覚えたことをコメントにメモしよう