関係データベースの正規化は何を整えるのか
ITパスポート試験 平成31年度春期 問92 / データベース › データベース設計
過去問にチャレンジ
関係データベースを構築する際にデータの正規化を行う目的として,適切なものはどれか。
- ア
データに冗長性をもたせて,データ誤りを検出する。
- イ
データの矛盾や重複を排除して,データの維持管理を容易にする。
- ウ
データの文字コードを統一して,データの信頼性と格納効率を向上させる。
- エ
データを可逆圧縮して,アクセス効率を向上させる。
会話形式の解説
講師この問題では、正規化によって表の何を整理するのかに注目します。
受験者正規化という名前から、文字コードを統一することかと思いました。
講師ここでいう正規化は、表の構造を整理して、同じデータの重複を減らす処理です。文字コードの統一は文字の扱いに関する話です。
受験者同じ情報が複数の場所にあると、何が困るのですか。
講師更新時に一部だけ値が変わると、データが食い違うおそれがあります。重複や矛盾を減らして維持管理を容易にする説明が正解です。
受験者では、冗長性をもたせて誤りを検出するという説明は、重複を減らす方向と逆ですね。
講師そのとおりです。正規化の目的は、冗長性をもたせることではありません。
受験者可逆圧縮でアクセス効率を上げるという説明も、表の整理とは違いますか。
講師違います。可逆圧縮はデータを圧縮して元に戻せるようにする処理で、正規化とは別です。
受験者正規化は、表の中で同じ情報をどう管理するかという観点で判断すればよいのですね。
講師はい。重複を減らせば更新時の食い違いを防ぎやすくなり、維持管理もしやすくなります。
まとめ
正規化は、関係データベースの表の構造を整理し、データの重複を減らす処理です。同じ情報を複数の場所で管理すると、更新時に値が食い違うおそれがあります。重複や矛盾を減らして維持管理を容易にする説明が正解です。文字コードの統一や可逆圧縮は、正規化とは別の処理です。
解答・解説
正解はイです
この問題のテーマ
関係データベースで正規化を行う目的を問う問題です。
解き方の考え方
正規化は、表の構造を整理してデータの重複を減らす処理です。同じ情報を複数の場所で管理すると、更新時に値が食い違うおそれがあります。重複や矛盾を減らし、維持管理を容易にする説明を選びます。
選択肢ごとの解説
- ×ア データに冗長性をもたせて,データ誤りを検出する。アの「冗長性をもたせる」という説明は、正規化の方向と逆です。正規化では表の構造を整理し、重複するデータを減らします。
- ○イ データの矛盾や重複を排除して,データの維持管理を容易にする。イの「矛盾や重複を排除して維持管理を容易にする」という説明が、正規化の目的に合っています。重複を減らせば、同じ情報を複数箇所で更新することによる食い違いを防ぎやすくなります。
- ×ウ データの文字コードを統一して,データの信頼性と格納効率を向上させる。ウの文字コードの統一は、文字の扱いに関する話です。表の構造を整理して重複や不整合を減らす正規化の目的とは異なります。
- ×エ データを可逆圧縮して,アクセス効率を向上させる。エの可逆圧縮は、データを圧縮して元に戻せるようにする処理です。表の構造を整理する正規化とは別の処理です。
補足
「正規化」を文字コードの統一やデータ圧縮と結び付けないことが大切です。表の中で同じ情報をどう管理するか、という観点で判断します。
POINT
- 正規化は関係データベースの表の構造を整理する処理です。
- 正規化によってデータの重複を減らします。
- 重複を減らすと、更新時のデータの食い違いを防ぎやすくなります。
- 正規化の目的は、データの維持管理を容易にすることです。
