ITパスポート 2014年 秋期 問68
問題文
関係データベースの表を正規化することによって得られる効果として、適切なものはどれか。
選択肢
ア:使用頻度の高いデータを同じ表にまとめて、更新時のディスクアクセス回数を減らすことができる。
イ:データの重複を排除して、更新時におけるデータの不整合の発生を防止することができる。(正解)
ウ:表の大きさを均等にすることで、主記憶の使用効率を向上させることができる。
エ:表の数を減らすことで、問合せへの応答時間を短縮することができる。
🔒 解説は解答すると表示されます
関係データベースの表を正規化することによって得られる効果【ITパスポート 解説】
正解の理由
関係データベースの正規化(正規化:Normalization(英)=データの重複を減らし、矛盾を防ぐための設計手法)は、データの重複を排除してデータの一貫性(整合性)を保つことが主な目的です。したがって、更新(データを書き換える操作)時に起こる「データの不整合」を防げる点が正しい効果です。選択肢の中では イ がこれに該当します。
具体的には、同じ情報が複数の場所にあると、ある場所だけ更新忘れが起きて矛盾(例:住所が古いまま)になります。正規化でその情報を1か所にまとめれば、そのような不整合(更新異常)を防げます。
解法ステップ
- 「正規化」の目的を思い出す
- 正規化は「データの重複を減らす」「更新・削除・挿入時の異常を防ぐ」ことが目的です。
- 各選択肢が正規化の目的に合致するかを照合する
- ア:アクセス回数削減 → 正規化の目的ではなく、むしろ逆(冗長化)で達成することが多い。
- イ:重複を排除して更新時の不整合を防ぐ → 正規化の目的に合致。
- ウ:表の大きさを均等にして主記憶(主記憶:コンピュータの作業用記憶装置、一般にRAM)を効率化 → 正規化の直接の目的ではない。
- エ:表の数を減らして応答時間短縮 → 正規化は表を増やすことが多く、必ずしも応答時間短縮にならない。
- 正しい選択肢を特定する
- 上記より イ を選ぶ。
選択肢別の誤答解説
- ア: 使用頻度の高いデータを同じ表にまとめて、更新時のディスクアクセス回数を減らすことができる。
- 誤り。頻繁に使うデータを一緒にまとめるのは「冗長化(denormalization:正規化を意図的に崩して性能を上げる手法)」に近く、正規化の目的ではありません。正規化は重複をなくすため、むしろ表を分割することが多いです。
- イ: データの重複を排除して、更新時におけるデータの不整合の発生を防止することができる。
- 正しい。正規化により同じデータを一箇所に集約でき、更新漏れによる不整合(更新異常)を防げます。
- ウ: 表の大きさを均等にすることで、主記憶の使用効率を向上させることができる。
- 誤り。正規化は表の「均等化」を目的にしません。表の分割は行われますが、主記憶(RAM)の使用効率の直接改善が目的ではありません。むしろ分割で結合(JOIN)が増え、実行時のメモリや処理が増えることもあります。
- エ: 表の数を減らすことで、問合せへの応答時間を短縮することができる。
- 誤り。正規化では表の数が増えることが多く、問い合わせ時に複数表を結合する必要が出てきて応答時間が長くなる場合があります。応答時間短縮が必要なら、逆に表をまとめる(非正規化)やインデックスを付けるなどの手法を検討します。
よくある誤解
- 正規化すれば必ず検索や処理が速くなる
- 誤解です。正規化はデータ整合性を高めますが、検索時に複数の表を結合する必要があるため、場合によっては遅くなることがあります。性能改善は別途インデックスやキャッシュ、非正規化を検討します。
- 正規化=データを小さくすること
- 誤解です。正規化は重複を減らして無駄なデータをなくす目的がありますが、キーや参照制約のためにオーバーヘッドが増えることもあり、必ずしも総容量が大幅に減るとは限りません。
- 正規化は常に最上位の正規形(3NFなど)まで行うべき
- 誤解です。理論上は高い正規形が望ましいですが、実際のシステムでは整合性と性能のバランスを見て適切な段階で止め、必要なら部分的に非正規化します。
補足コラム
- 用語:更新異常(update anomaly)
- 同じデータが複数レコードにあると、あるレコードだけ更新し忘れて矛盾が生じる問題です。例えば「顧客住所」を受注テーブルに毎回書いていると、住所変更時に複数行を更新する必要があり、どれかを更新し忘れると矛盾します。
- 正規化の基本的な考え方(簡潔)
- 1NF(第一正規形):各列が単一の値であること。
- 2NF(第二正規形):部分関数従属を排除する(複合キーがある場合)。
- 3NF(第三正規形):推移的従属を排除する。
- これらは「同じデータは1か所にまとめる」ことを段階的に実現するルールです。
- 実務上の対応例
- トランザクション系(銀行・受注など)は整合性重視で正規化を優先。ログ分析や集計表示が多いシステムは読み取り性能重視で非正規化や専用のデータ構造を使うことがあります。
FAQ
Q1: 正規化すると必ずテーブル数が増えますか?
A1: 多くの場合は増えます。データを別のエンティティ(例えば顧客情報)に分けるためです。ただし設計次第で変わります。
A1: 多くの場合は増えます。データを別のエンティティ(例えば顧客情報)に分けるためです。ただし設計次第で変わります。
Q2: 正規化とインデックスはどちらが重要ですか?
A2: 目的が違います。正規化はデータ整合性のため、インデックスは検索速度向上のためです。両方を適切に組み合わせるのが良い設計です。
A2: 目的が違います。正規化はデータ整合性のため、インデックスは検索速度向上のためです。両方を適切に組み合わせるのが良い設計です。
Q3: どの段階まで正規化すれば良いですか?
A3: 一般的には3NF(第三正規形)を目安にして、性能問題が出たら部分的に非正規化する、というのが実務的な考え方です。
A3: 一般的には3NF(第三正規形)を目安にして、性能問題が出たら部分的に非正規化する、というのが実務的な考え方です。
関連キーワード: 関係データベース、正規化、データ冗長、更新異常、データ整合性、正規形、非正規化、主キー、外部キー、結合(JOIN)

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

