令和5年度 科目A6テクノロジ系

基本情報 令和5年度 科目A 問6:テクノロジ系に関する問題

次の関数従属を満足するとき,成立する推移的関数従属はどれか。ここで,“A→ B ”はB がA に関数従属していることを表し,“A→{B,C }”は,“A→B ”かつ“A→ C ”が成立することを表す。 〔関数従属〕 {注文コード,商品コード}→{顧客注文数量,注文金額} 注文コード →{注文日,顧客コード,注文担当者コード} 商品コード →{商品名,仕入先コード,商品販売価格} 仕入先コード →{仕入先名,仕入先住所,仕入担当者コード} 顧客コード →{顧客名,顧客住所}

  • a仕入先コード → 仕入担当者コード → 仕入先住所
  • b商品コード → 仕入先コード → 商品販売価格
  • c注文コード → 顧客コード → 顧客住所正答
  • d注文コード → 商品コード → 顧客注文数量 - 5 -
正答:C注文コード → 顧客コード → 顧客住所

AI解説(初心者・標準・上級)

理解度に合わせて3レベルの解説を無料で読めます。

初心者向けまずはここから。やさしく要点を解説

答えは c「注文コード → 顧客コード → 顧客住所」 です。

「A→B」は“Aが決まればBが1つに決まる”という意味。たとえば「学籍番号が決まれば名前が決まる」みたいな感じ。

この問題では3段つなぎ(A→B→C)で“最初のAから最後のCまで間接的に決まる”ペアを探します。

  • 注文コードが決まると → 顧客コードが分かる(誰の注文か)
  • 顧客コードが決まると → 顧客住所が分かる
  • だから 注文コード → 顧客住所 が成り立つ✓

👉 覚え方:“間にいる人を経由して最終ゴールまで決まればOK”

ほかの選択肢:a・b・dは途中の矢印が問題文にないので、つなげても成立しない(“勝手に追加”はダメ)。

標準試験対策の基準レベル

なぜこれが正解か

正解は c。推移的関数従属とは、A→B かつ B→C が成り立ち、A自身が候補キーでないBを経由して A→C が間接的に成立する関係。問題文より「注文コード→顧客コード」「顧客コード→顧客名,顧客住所」が与えられているため、注文コード→顧客コード→顧客住所 が推移的従属として成立する。

各選択肢の解説

  • a:仕入先コード→仕入担当者コードは成立するが、仕入担当者コード→仕入先住所は与えられていないため不成立。
  • b:商品コード→仕入先コードは成立するが、仕入先コード→商品販売価格は与えられていない(商品販売価格は商品コードから直接決まる)。
  • d:注文コード→商品コードは与えられていない(注文コードと商品コードの組合せがキー)。

覚え方・ひっかけ注意

「与えられた関数従属だけを使う」が鉄則。勝手に矢印を補完しないこと。第3正規形(3NF)では推移的従属を排除するため、本問のc型の関係を見つけたら別表に切り出すのが定石。

上級誤答論破・背景理論まで深掘り

理論的背景

推移的関数従属(transitive functional dependency)は、関係スキーマR上で属性集合X,Y,Zについて X→Y, Y→Z かつ Y↛X(YがXに従属しない)が成り立つとき、X→Z を推移的従属と呼ぶ。Armstrongの公理系では推移律(X→Y, Y→Z ⇒ X→Z)として定式化される。

正規化での扱い

第3正規形(3NF)は、非キー属性が候補キーに推移的従属しないことを要求する。本問のc「注文コード→顧客コード→顧客住所」では、顧客住所は注文コードに推移的に従属しており、3NF違反。対処は『注文』表と『顧客』表に分割し、注文表は顧客コードを外部キーとして持つ形にする。これにより更新時異常(同一顧客が複数注文を持つ場合、住所変更で複数レコード修正が必要)を防げる。

試験での位置づけ

DB分野の超頻出。基本情報技術者試験では「正規形の判定」「分解後のスキーマ選択」「BCNFと3NFの差異」まで踏み込んで問われる。BCNF(Boyce-Codd正規形)は3NFをさらに強化し、すべての関数従属の左辺がスーパーキーであることを要求する。

選択肢の発展補足

  • 本問の主キーは{注文コード,商品コード}の複合キー。注文金額・顧客注文数量はこの組合せに完全関数従属。
  • aの「仕入先コード→仕入担当者コード」のように、非キー属性間で関数従属が現れた場合も3NF違反候補(部分従属または推移的従属)として疑うべき。
  • 実務ではER図段階で外部キー関係として現れる推移的従属を意識的に分離することで、後の正規化作業を簡略化できる。SQLパフォーマンス上は意図的に非正規化(denormalization)してJOINを減らすケースもあるが、その場合はトリガや制約で整合性を担保する設計が必要。
出典・引用について

出典:IPA(情報処理推進機構)公式 基本情報技術者試験 令和5年度 科目A6/ 公的機関配布資料につき出典明記の上引用。解説は合格ナビによる独自AI解説です。

テクノロジ系の他の過去問

1
テクノロジ系
2
テクノロジ系
3
テクノロジ系
4
テクノロジ系
5
テクノロジ系

あなたの弱点を診断して、合格までの最短ルートを

この分野を連続演習し、AIがあなたの弱点を分析。合格ナビなら基本情報の過去問を解きながら学べます。