本文へスキップ

平成24年度 春期 ITパスポート試験 問79

この問題の解説と、これまでの解答の記録です。

問79
頻出度★★★

関係データベースのデータを正規化する目的として, 適切なものはどれか。

出典 平成24年度 春期 ITパスポート試験 問79
解説

問 79

  • 不正解ア

    圧縮率の向上は正規化の目的ではない。重複が減る結果として格納量が小さくなる副次効果はありうるが、それは符号化によってデータ量を縮める「データ圧縮」とは別物であり、正規化はむしろ表を分割するぶん結合 (join) の処理負荷が増えるという副作用も伴う。正規化はあくまでデータの整合性を守るための論理設計であって、容量削減を狙う技術ではない。

  • イ

    正解 正規化とは、関係データベースの表を関数従属 (ある項目が決まれば別の項目が一意に決まる関係) に着目して分割し、同じ事実が複数の場所に重複して格納される状態をなくす設計技法である。例えば受注表の中に得意先名や住所まで抱えていると、同じ得意先の行が何十件もでき、住所が変わったときに全行を直さないと表の中で新旧の住所が混在してしまう。得意先の情報を得意先表に切り出して受注表からは得意先コードで参照する形にすれば、住所は1か所を直すだけで済み、矛盾は起こりえない。このように重複をなくして更新時異状 (更新もれ・挿入時や削除時の不整合) を防ぎ、データの矛盾を生じさせないことが正規化の目的なので、「データの一貫性を保つ」とするイが適切である。

  • 不正解ウ

    漏えい防止を担うのはアクセス権の設定 (利用者ごとに参照・更新できる表や列を限定する)、暗号化、認証、ログ監査といったセキュリティ対策であり、正規化とは無関係である。正規化しても、権限設定が甘ければ同じように情報は漏れる。表を分割すること自体には情報を秘匿する働きはない。

  • 不正解エ

    複数の利用者が同時にデータを扱えるようにするのは、排他制御 (ロック) やトランザクションの同時実行制御、コミット・ロールバックといった DBMS の機能の役割である。正規化は表の構造をどう設計するかという話で、同時アクセスの可否を左右するものではない。

ここがポイント
  • 正規化 = 関数従属に基づいて表を分割し、データの重複格納をなくす論理設計。目的は更新時異状 (更新もれ・挿入時や削除時の不整合) を防ぎ、データの一貫性・整合性を保つことである。
  • 紛らわしい他機能との担当分けを押さえる: 容量削減はデータ圧縮、漏えい防止はアクセス権設定・暗号化、同時アクセスの制御は排他制御 (ロック) とトランザクション管理が受け持つ。
用語

解答の記録