Qraft(クラフト) 資格・学習クイズアプリ

基本情報技術者試験 練習問題 3:正規化の目的と段階

データベースの正規化について述べた文として、正しいものはどれか。

  1. 第1正規形はすべての属性が原子的(分割不可能)でなければならないという制約を要求する。
  2. 第2正規形は第1正規形の条件に加えて、候補キー以外のすべての属性が候補キーに完全関数従属する条件を要求する。
  3. 第3正規形は第2正規形の条件に加えて、候補キー以外のすべての属性が候補キーに推移関数従属しない条件を要求する。
  4. 正規化を進めるほどデータベースの性能が向上するため、すべてのテーブルはボイス・コッド正規形まで正規化すべきである。
  5. 正規化によって異常が完全に排除されるため、アプリケーション側でのエラー処理は不要になる。
正解と解説を見る
正解:第3正規形は第2正規形の条件に加えて、候補キー以外のすべての属性が候補キーに推移関数従属しない条件を要求する。

データベースの正規化は、データの異常(挿入異常、削除異常、更新異常)を排除し、データの一貫性を保つためのプロセスです。

第1正規形(1NF):すべての属性が原子的(分割不可能)である。複数値属性や繰り返し属性がない状態。

第2正規形(2NF):第1正規形に加えて、非キー属性が候補キーに完全関数従属している。部分関数従属(複合キーの一部のみに従属)がない。

第3正規形(3NF):第2正規形に加えて、非キー属性が候補キーに推移関数従属しない。非キー属性間の関数従属がない。例えば「学生→学科ID」「学科ID→学科名」という推移関数従属があれば、学科情報を別テーブルに分離します。

正しいのは「第3正規形は第2正規形の条件に加えて、候補キー以外のすべての属性が候補キーに推移関数従属しない条件を要求する」です。

正規化が進むほどテーブル数が増え、JOIN操作が必要になるため性能が低下する場合もあります。実務では要件に応じて適切な正規化レベルを判断します。

← 前の問題問題一覧次の問題 →
アプリで解いてレーティングを上げる(無料・登録不要)