第3正規形|情報処理安全確保支援士 シラバス準拠予想問題Ⅰ 問21
出典:データベース:小分類2|データベース設計
分野:データベース / トランザクション処理
データベース設計における第3正規形の説明として,最も適切なものはどれか。
- ア:検索性能を高めるために,複数の表に分かれたデータをあえて一つの表にまとめ,結合処理の回数を減らす設計である。
- イ:表に索引を設定し,検索条件に指定される列の値を効率的に探索できるようにする設計である。
- ウ:主キー以外の属性が,主キーではない属性に従属しないように表を分割し,データの重複や更新異常を防ぐ設計である。
- エ:外部キーによって関連する表の間の整合性を保ち,存在しない参照先をもつ行の登録や更新を制限する設計である。
TSUNAGARU-ADVICE
まず押さえたいこと
第3正規形は、表の中で主キー以外の属性が、主キーではない属性に従属しないように整理した状態です。これにより、同じ情報の重複を減らし、更新・追加・削除のときに矛盾が起きる更新異常を防ぐことができます。
迷ったときの判断軸
複数の表をあえて一つにまとめるのは非正規化、索引を設定して検索を速くするのはインデックス設計、外部キーで表同士の整合性を保つのは参照整合性制約です。第3正規形は、主キー以外の属性同士の従属関係をなくす設計と判断しましょう。
科目Bにつなげるために
科目Bでは、社員表・部門表・商品表・注文表などを例に、同じ部門名や商品情報が何度も保存されていないかを読み取る問題が出ることがあります。正規化では、検索性能よりもまず、データの重複を減らし、更新時の不整合を防ぐ視点を持ちましょう。※DB関連試験向け
第3正規形は、表の中で主キー以外の属性が、主キーではない属性に従属しないようにする正規形です。
例えば、主キーから決まる属性の中に、さらに別の非キー属性から決まる属性が含まれていると、同じ情報が複数行に重複したり、更新時に不整合が起きたりしやすくなります。第3正規形では、このような推移的な従属関係を取り除くために表を分割します。
したがって、ウが適切です。
❌他選択肢が誤りの理由ア:検索性能を高めるために,複数の表に分かれたデータをあえて一つの表にまとめ,結合処理の回数を減らす設計である。
⇒非正規化の説明です。非正規化は、検索性能や処理効率を高める目的で、あえてデータの重複を許容する設計です。第3正規形は、重複や更新異常を防ぐために表を適切に分割する考え方です。
イ:表に索引を設定し,検索条件に指定される列の値を効率的に探索できるようにする設計である。
⇒インデックス設計の説明です。インデックスは検索性能を高めるための仕組みであり、属性間の従属関係を整理して重複や更新異常を防ぐ第3正規形とは目的が異なります。
エ:外部キーによって関連する表の間の整合性を保ち,存在しない参照先をもつ行の登録や更新を制限する設計である。
⇒参照整合性制約の説明です。外部キーを使って表間の整合性を保つ仕組みであり、主キー以外の属性同士の従属関係を取り除く第3正規形の説明ではありません。