基本情報 平成27年度 春期 問27:テクノロジ系に関する問題
関係 “注文記録" の属性間に ① < ⑥⑯ の関数従属性があり, それに基づいて第 3 正規形まで正規化を行って, "商品, "顧客', 注文, 注文明細" の各関係に分解 した。 関係 “注文明細” として, 適切なかものはどれか。ここで, (馬, 也) は, 属性 と 也の組みを表し, ダー也は, え が 也を関数的に決定することを表す。 また, 実 線の下線は主キーを表す。 注文記録 (注文番号, 注文日, 顧客番号, 顧客名, 商品番号, 商品名, 数量, 販売単価) [関数従属性] ① 注文番号 一 注文日 ② 注文番号 つ 顧客番号 ③ 顧客番号 一 顧客名 ④ (注文番号, 商品番号)つ 数量 ⑧⑥ (注文番号, 商品番号) つ 販売単価 ⑥ 商品番号 -つ 商品名
- a注文明細 (注文番号, 数量, 販売単価)
- b注文明細 (注文番号, 顧客番号, 数量, 販売単価)
- c注文明細 (注文番号, 顧客番号, 商品番号, 願客名, 数量, 販売単価)
- d注文明細 (注文番号, 商品番号, 数量, 販売単価)正答
AI解説(初心者・標準・上級)
理解度に合わせて3レベルの解説を無料で読めます。
答えは d「注文明細(注文番号, 商品番号, 数量, 販売単価)」です。
第3正規形は「重複データを徹底的に消す」整理術。
注文明細は「どの注文の、どの商品が、何個、いくらで」を表すだけでいい。顧客名や商品名は別の表(顧客テーブル・商品テーブル)に置きます。
👉 覚え方:明細は「注文×商品」の交差ポイントのみ。名前は親テーブル参照で十分。
ほかの選択肢:a 商品番号がない=何の商品か分からない/b 顧客番号は注文テーブルにあるべき/c 顧客名や顧客番号まで持つと重複だらけ。
なぜこれが正解か
正解は d。関数従属性④⑤より(注文番号, 商品番号)→ 数量, 販売単価が成立する。注文明細関係は「ある注文のある商品ごとの情報」を表すため、主キーは複合キー(注文番号, 商品番号)、非キー属性は数量・販売単価のみ。
各選択肢の解説
- a 誤り:商品番号がないため、どの商品の数量か特定できない。
- b 誤り:顧客番号は「注文」関係(注文番号→顧客番号)に属する。明細に持つと冗長。
- c 誤り:顧客番号・顧客名は注文・顧客関係にあるべきで、明細に含めると第3正規形違反(推移的関数従属が発生)。
覚え方・ひっかけ注意
第3正規形の判定:「すべての非キー属性が主キーのみに直接依存」。推移的関数従属(A→B→Cの形)があれば分解。明細表の主キーは「親テーブル2つの組み合わせ(多対多の解消)」と覚える。商品名・顧客名のような「子に流れがちな属性」は親テーブル管理に留める。
理論的背景
正規化(Normalization)はE.F.Coddが提唱した関係データベース設計理論。第1正規形(1NF:原子値)・第2正規形(2NF:1NF+部分関数従属の除去)・第3正規形(3NF:2NF+推移的関数従属の除去)・ボイス・コッド正規形(BCNF:3NF+全関数従属の決定項が候補キー)・第4正規形(4NF:多値従属の除去)・第5正規形(5NF:結合従属の除去)と段階化される。本問は3NFまでの典型例。
実務での使われ方
OLTP(オンライントランザクション処理)系DBは3NF〜BCNFを目指す(更新異常防止・整合性確保)。一方、OLAP(オンライン分析処理)・データウェアハウスではスタースキーマ・スノーフレークスキーマで意図的に非正規化し、クエリ性能を優先する。NoSQLでは「埋め込みドキュメント」によりJOIN削減を行う場合も多い。
試験での位置づけ
データベース分野の最頻出論点。基本情報・応用情報・データベーススペシャリストで毎期出題。関数従属性・候補キー・主キー・正規形判定の手順は完全暗記必須。E-Rモデルからの正規化変換、SQL DDLでの実装まで問われる。
選択肢の発展補足
- 注文明細の主キー(注文番号, 商品番号)は典型的な「連関エンティティ(Associative Entity)」で、多対多関係を解消するための中間表として頻出。
- 「販売単価」が(注文番号, 商品番号)に従属するのは「単価が注文時点で変動する」モデルだから。もし「単価は商品マスタで固定」なら、販売単価は商品テーブル側に属する別設計となる(業務要件で正規化結果が変わる典型例)。
- 非正規化の判断基準:(1) 読み取り性能要件、(2) 更新頻度、(3) 整合性確保コスト。マテリアライズドビューやCDC(Change Data Capture)併用が現代的解。
出典:IPA(情報処理推進機構)公式 基本情報技術者試験 平成27年度 春期 問27/ 公的機関配布資料につき出典明記の上引用。解説は合格ナビによる独自AI解説です。