問題本文
関係データベースの表を正規化することによって得られる効果として,適切なものはどれか。
選択肢
- ア.使用頻度の高いデータを同じ表にまとめて,更新時のディスクアクセス回数を減らすことができる。
- イ.データの重複を排除して,更新時におけるデータの不整合の発生を防止することができる。
- ウ.表の大きさを均等にすることで,主記憶の使用効率を向上させることができる。
- エ.表の数を減らすことで,問合せへの応答時間を短縮することができる。
正解
イ. データの重複を排除して,更新時におけるデータの不整合の発生を防止することができる。
解説
関係データベース(リレーショナルDB)の正規化は,データの重複を排除し,更新時の不整合(更新時異常・挿入時異常・削除時異常)の発生を防止することを目的とする設計手法である. 関数従属性や多値従属性を分析して表を分割し,主キー・外部キーで結合できるように整理するのが基本となる. 正規化の効果は「データの一貫性確保と保守性向上」であり,使用頻度の高いデータを同じ表にまとめる(逆方向),表の大きさを均等化する,表の数を減らす(逆方向)といった効果ではない. 「重複排除と更新時の不整合防止」が正規化の本質である.
選択肢ごとの解説
- ア.誤り. 「使用頻度の高いデータを同じ表にまとめてディスクアクセス回数を減らす」のは非正規化やデータレイアウト最適化の発想であり,正規化が目的とする効果ではない. むしろ正規化は重複排除のために表を分割する方向であり,アクセス回数削減を目的とするのは性能チューニングの領域となる.
- イ.正解. 正規化はデータの重複を排除し,更新時のデータ不整合の発生を防止する効果がある. 同じ情報が複数表に重複していると,更新時に片方だけ更新されて不整合が生じる. 正規化により情報を一意の場所に保持することで,更新時異常・挿入時異常・削除時異常を防げる. これが正規化の中核となる目的である.
- ウ.誤り. 「表の大きさを均等にして主記憶の使用効率を向上させる」のは性能チューニングやストレージ設計の発想であり,正規化の効果とは異なる. 正規化は論理設計上のデータ構造整備が目的で,主記憶の物理的な利用効率を直接の目的にはしていない. 論理設計と物理設計を区別する.
- エ.誤り. 「表の数を減らすことで問合せ応答時間を短縮する」のは非正規化やテーブル統合の発想で,正規化の効果とは正反対の方向. 正規化はむしろ重複排除のために表を分割する方向に働き,結合(JOIN)の回数は増える傾向にある. 性能と整合性のトレードオフを意識する.
ITパスポート 2014年 (平成26年 秋期) の過去問一覧へ戻る・問68