平成22年度 秋期 ITパスポート試験 問63 解説 データの正規化
関係データベースを構築するに当たり,データの正規化を行う目的はどれか。
- ア データにチェックサムを付与してデータベースの異常を検出する。
- イ データの冗長性を排除して保守性を高める。 ✓ 正答
- ウ データの文字コードを統一してほかのデータベースと連携しやすくする。
- エ データを暗号化してセキュリティを確保する。
解説
データの正規化に関する問題です。正規化のキーワードである「冗長性の排除」と「整合性の維持」が選択肢のイと一致するため、これが正解となります。
なぜ正規化を行うのか
正規化とは、データベースを設計する際に、データの重複をなくし、矛盾が生じないように整理する手法のことです。
例えば、ある顧客が注文をするたびに、氏名や住所を注文テーブルにすべて記録しているとします。この場合、同じ顧客が何度も注文をすると、同じ住所や氏名がデータベース内に何度も書き込まれることになります。これが「冗長性がある」状態です。
冗長性が残っていると、顧客が引越をした際に、過去のすべての注文履歴にある住所を書き直さなければなりません。一つでも修正を忘れると、顧客のデータに矛盾が生じます。正規化を行うと、顧客情報は「顧客テーブル」に一つだけ存在するように整理されるため、住所変更の際はそのテーブルを一度修正するだけで済みます。これにより、データ管理の保守性が大幅に向上します。
問題の読み解き方
ITパスポートの試験において、正規化という言葉が出てきたら、まずは「重複をなくす」「整合性を保つ」という二つの言葉を思い浮かべてください。
選択肢を検討する際、以下の観点でふるいにかけるのが効率的です。
- ア:チェックサムはデータの破壊や改ざんを検知する技術であり、データの構造化(正規化)とは目的が異なります。
- イ:これが正規化の定義そのものです。冗長性を排除することで、データの修正漏れを防ぎ、保守性を高めます。
- ウ:文字コードの統一はシステム間連携の要件ですが、データベース内部の構造を最適化する正規化の定義とは別物です。
- エ:暗号化はセキュリティ対策であり、構造の最適化とは目的が異なります。
データベース設計における役割
正規化は実務において、データベースが巨大化しても壊れにくく、かつ開発者が扱いやすい状態を保つために必須のプロセスです。
エンジニアがシステムを構築する際は、第1正規化から第3正規化まで段階的に進めていくのが一般的です。正規化を徹底することで、データがバラバラに更新されることによる「更新時異常」や、一部のデータだけが消えてしまう「削除時異常」などのトラブルを未然に防ぐことができます。ITパスポートでは、正規化が具体的にどのような工程かというより、正規化を行うことで「どのようなメリットがあるか(保守性の向上)」という結果の部分を問う問題が頻出します。