問92
頻出度★★★
関係データベースを構築する際にデータの正規化を行う目的として, 適切なものはどれか。
この問題の解説と、これまでの解答の記録です。
関係データベースを構築する際にデータの正規化を行う目的として, 適切なものはどれか。
「冗長性をもたせて誤りを検出する」のは、パリティビットやチェックディジットなど誤り検出・訂正符号の考え方であり、むしろ冗長を「加える」方向です。正規化は逆に冗長性を「排除」するので目的が正反対です。
正解 正規化とは、関係データベースの表を分割・整理し、同じデータが複数箇所に重複して持たれる状態 (冗長性) を排除する設計手法です。冗長があると、ある値を更新したとき片方だけ直し忘れて「矛盾」が生じますが、正規化で一つの事実を一箇所だけに持たせれば、その更新時異常を防げ、データの維持管理が容易になります。よって「データの矛盾や重複を排除して、データの維持管理を容易にする」とする「イ」が正しい目的です。
文字コードの統一は文字化け防止やデータ交換のための取り決め (文字コード設計) の話で、表の構造を整理する正規化とは別問題です。正規化は文字コードには関与しません。
可逆圧縮によるアクセス効率向上はデータ圧縮技術の目的です。正規化はデータを圧縮する手法ではなく、冗長・矛盾を排除する論理設計の手法なので該当しません。