ある開発チームがリレーショナルデータベースの正規化について学習している。正規化を実施した場合に得られる効果として正しいものを2つ選択してください。
- A. インデックスが不要になり、データベースのパフォーマンスが自動的に最大化される
- B. クエリの JOIN 数が減り、単純なクエリで全データを取得できるようになる
- C. データの重複が排除され、ストレージ使用量が削減される
- D. 全ユーザーに同一のアクセス権限が付与されセキュリティが均一化される
- E. あるデータを更新する際に1箇所だけ更新すればよくなり、更新異常が防止される
解答と解説を見る
正解: C, E
正規化の主な効果は、データの重複排除(選択肢C)と更新異常の防止(選択肢E)である。データを適切に分割して1箇所に持つことで、同じデータを複数箇所に保持しないためストレージが削減される。また、ある情報(例:顧客の住所)を1箇所だけ更新すれば全関連レコードに反映されるため、更新漏れによる不整合が防止される。正規化はテーブルを分割するため JOIN が増える傾向があり、クエリが単純化されるわけではない(選択肢Bは逆効果)。正規化はインデックス設計と無関係であり、パフォーマンスの自動最大化はしない(選択肢Aは誤り)。アクセス権限の制御は DCL(GRANT/REVOKE)の範疇であり正規化とは無関係(選択肢Dは誤り)。