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

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

設問図

一つの表で管理されていた受注データを,受注に関する情報と商品に関する情報に分割して,正規化を行った上で関係データベースの表で管理する。正規化を行った結果の表の組合せとして,最も適切なものはどれか。ここで,同一商品で単価が異なるときは商品番号も異なるものとする。また,発注者名には同姓同名はいないものとする。

選択肢図
  1. ✓ 正答

解説

この問題は、正規化の基本原則である「関連する情報を適切なグループに分けること」を理解していれば正解できます。判断の根拠は、テーブル内の項目が「何によって決まるか」という依存関係に注目することです。

具体的には、受注番号が決まれば決まる情報(発注者名、受注した商品番号と個数)と、商品番号が決まれば決まる情報(商品名、単価)に切り分けることで、データの重複を防ぎます。

正規化の考え方

正規化とは、データベースにおける情報の重複をなくし、データの整合性を保ちやすくするための設計手法です。今回の表を例にすると、以下の2つのグループに分けられます。

  1. 受注グループ: 受注番号ごとに一意に決まるもの
  2. 商品グループ: 商品番号ごとに一意に決まるもの

もし元の表のまま運用すると、同じ商品番号の商品が何度も注文されるたびに、商品名や単価をその都度入力しなければならず、データの重複が発生します。これがもし「商品名の変更」や「単価の改定」を行った場合、該当するすべてのレコードを修正しなければならず、修正漏れによる不整合(データの矛盾)のリスクが生じます。

思考プロセス

問題の表を分析すると、以下のようになります。

・受注に関する情報:受注番号、発注者名、商品番号、個数 ・商品に関する情報:商品番号、商品名、単価

この2つの情報を別々の表に分割します。

  • 受注テーブル:受注番号を主キーとし、誰がどの商品をいくつ買ったかを管理します。ここには「商品番号」を持たせることで、商品テーブルと紐付け(リレーション)が可能になります。
  • 商品テーブル:商品番号を主キーとし、商品の詳細(名前や単価)を管理します。

選択肢エは、これらが必要な項目を漏らさず、かつ適切に分類しているため、最も正確な正規化の結果といえます。

正規化が役立つ実務上の場面

正規化は、システムのメンテナンス性を飛躍的に高めるために不可欠です。例えば、ECサイトで「商品の価格を変更する」という操作を想像してください。

商品テーブルに単価を格納していれば、1か所を修正するだけで、過去の受注データに影響を与えずに(または過去のデータを参照しつつ)新しい価格を適用できます。もし正規化をしていないと、数百万件ある受注データの単価カラムをすべて検索・置換しなければなりません。これはシステムに非常に大きな負荷をかけ、非常に危険な作業となります。

「情報の重複を避け、更新時の影響範囲を最小限にする」。この考え方はITパスポート試験だけでなく、実際の業務システム開発におけるデータベース設計の基本の「き」です。

参考リンク

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

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