ITパスポート 2019年 春期 問92
問題文
関係データベースを構築する際にデータの正規化を行う目的として、適切なものはどれか。
選択肢
ア:データに冗長性をもたせて、データ誤りを検出する。
イ:データの矛盾や重複を排除して、データの維持管理を容易にする。(正解)
ウ:データの文字コードを統一して、データの信頼性と格納効率を向上させる。
エ:データを可逆圧縮して、アクセス効率を向上させる。
🔒 解説は解答すると表示されます
データの正規化の目的【ITパスポート 解説】
正解の理由
関係データベース(リレーショナルデータベース:表形式でデータを管理する仕組み)で「正規化(データを整理して重複や矛盾を減らす手続き)」を行う主目的は、データの矛盾や重複を排除して、データの維持管理を容易にすることです。したがって、選択肢イが正しい理由は次の通りです。
- 正規化は同じ情報を複数の場所に置かないように表を分けます。これにより、ある値を変更するときに複数箇所を更新しなければならない手間やミス(更新異常)を防げます。
- 重複が減るとデータの一貫性(整合性)が保てます。結果として保守や運用が楽になります。
以上から「データの矛盾や重複を排除して、データの維持管理を容易にする」が正解です。
解法ステップ
- キーワードを確認:正規化=重複・矛盾を減らす、関係データベース=表(テーブル)で管理する仕組み。
- 各選択肢が「重複・矛盾を減らす」目的に合っているかを考える。
- 「冗長性をもたせる(ア)」は正反対。除外。
- 「文字コード統一(ウ)」や「可逆圧縮(エ)」は格納形式や圧縮の話。正規化の目的とは別。除外。
- 残った「矛盾や重複を排除して維持管理を容易にする(イ)」を選ぶ。
短く言えば、「正規化 = 重複と矛盾を減らして管理しやすくする」と覚えれば解けます。
選択肢別の誤答解説
-
ア: データに冗長性をもたせて、データ誤りを検出する。
誤り。冗長性(余分な重複)は正規化で取り除く対象です。冗長性を intentionally 増やすと更新ミスや不整合が起きやすくなります。誤り検出のために冗長情報を持つ技術はありますが、それは正規化の目的ではありません。 -
イ: データの矛盾や重複を排除して、データの維持管理を容易にする。
正解。正規化は表の分割やキー設計で冗長を減らし、更新/挿入/削除の異常(アノマリー)を防ぎます。 -
ウ: データの文字コードを統一して、データの信頼性と格納効率を向上させる。
誤り。文字コード(例:UTF-8、Shift_JIS)はデータの表現方法や互換性の問題で、正規化の話題とは別です。文字コード統一はシステム設計上重要ですが、正規化の目的ではありません。 -
エ: データを可逆圧縮して、アクセス効率を向上させる。
誤り。圧縮は保存容量や転送効率の話です。可逆圧縮(元に戻せる圧縮)は格納方法の話で、正規化とは関係がありません。むしろ正規化後の多数のテーブルを結合することでアクセス回数が増え、場合によってはアクセス効率が下がることもあります(この場合は別の手法で対処します)。
よくある誤解
-
正規化は「データを圧縮する」ことだと思う。
- 正しくは「データの構造を整理する」ことです。物理的な保存サイズや圧縮とは別です。
-
正規化すると必ず検索が速くなる。
- 必ずしもそうではありません。テーブルを細かく分けると結合(JOIN)が増え、検索が遅くなる場合があります。速度改善はインデックスやキャッシュ、場合によっては部分的な非正規化で対処します。
-
正規化はやりすぎても問題ない。
- 過度に分割すると設計が複雑になり運用が難しくなることがあります。設計はバランスが大切です。
補足コラム
- 正規化には段階(正規形)があり、代表的なものに第1正規形(1NF)、第2正規形(2NF)、第3正規形(3NF)があります。簡単に言うと:
- 1NF:表の各列が単一の値を持つ(繰り返しのグループをなくす)。
- 2NF:主キーの一部に依存する列を分ける(部分依存を排除)。
- 3NF:非キー同士の依存を排除し、データをより独立させる。
- 実務では、まず3NF程度まで正規化してデータの整合性を確保し、性能問題が出たら必要な部分だけ非正規化(あえて冗長にする)やインデックス追加で調整します。
- 例:受注管理システムで「顧客名」を受注明細の各行に繰り返し持つと、顧客名が変わったときにすべて更新しなければならずミスが起きる。正規化では「顧客テーブル」に顧客名を置き、受注テーブルは顧客IDだけ参照します。
FAQ
Q. 正規化を学ぶべき理由は?
A. データの一貫性を保ち、将来の変更や保守を楽にするためです。バグや運用コストの低減につながります。
A. データの一貫性を保ち、将来の変更や保守を楽にするためです。バグや運用コストの低減につながります。
Q. 正規化とインデックスはどちらを優先するべき?
A. 目的が違います。正規化はデータ構造(整合性)を整える設計、インデックスは検索速度を上げる手段です。両方を状況に応じて使います。
A. 目的が違います。正規化はデータ構造(整合性)を整える設計、インデックスは検索速度を上げる手段です。両方を状況に応じて使います。
Q. 実務で全部正規化すべき?
A. 多くは3NF程度で十分ですが、性能や運用面を考慮して部分的に非正規化することもあります。設計は要件に応じたトレードオフです。
A. 多くは3NF程度で十分ですが、性能や運用面を考慮して部分的に非正規化することもあります。設計は要件に応じたトレードオフです。
関連キーワード: 正規化、関係データベース、冗長性、データ整合性、正規形、更新異常、非正規化、インデックス、テーブル設計

\ せっかくなら /
ITパスポートを
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

