この概念が出た関連問題

この試験の対策ガイド

基本情報技術者試験 対策ガイド

合格率・勉強法・参考書の選び方をまとめています

見る →
答えと解説を見る(先に解くのがおすすめ)

正解は ウ

解説

関数従属性と推移的関数従属性は、データベース設計における重要な概念です。関数従属性とは、あるデータ項目の値が決まると、別のデータ項目の値が一意に決まる関係を指します。例えば、社員番号が決まれば社員名が一意に決まるような関係です。推移的関数従属性は、「A→B かつ B→C ならば A→C が成立する」という性質を持ちます。つまり、A から B が決まり、B から C が決まるなら、必然的に A から C も一意に決まるという関係です。この問題では、注文コードから顧客コードが決まり、顧客コードから顧客住所が決まる関係が、真の推移的関数従属性を示しています。これは、注文コードが決まれば、必然的に顧客住所も一意に決まることを意味します。データベース正規化において、この推移的関数従属性の理解は、適切なテーブル設計を行う上で非常に重要です。

なぜ他の選択肢は違うのか

選択肢 ア
「仕入先コード→仕入担当者コード」の関係は必ずしも一意ではありません。一つの仕入先に対して複数の担当者が割り当てられる可能性があり、真の関数従属性が成立しない可能性があります。また、仕入担当者コードから仕入先住所への従属性も、担当者が複数の仕入先を担当する可能性があるため、確実な関数従属性とは言えません。
選択肢 イ
商品コードから仕入先コードへの関数従属性が成立しない可能性があります。同じ商品を複数の仕入先から仕入れることは一般的なビジネス慣行であり、商品コードだけでは仕入先を一意に特定できません。したがって、最初の関係自体が関数従属性を満たしていません。
選択肢 エ
注文コードから商品コードへの関数従属性が成立しません。一つの注文に複数の商品が含まれる可能性が高く、注文コードだけでは特定の商品コードを一意に決定できません。そのため、推移的関数従属性の前提条件を満たしていません。

解くときのポイント

推移的関数従属性を判断する際は、以下の3つのステップで考えましょう:1) 最初の関係(A→B)が本当に関数従属性を満たすか、2) 次の関係(B→C)も関数従属性を満たすか、3) その結果として、A→C が必然的に成立するか。特に、ビジネスの実態に照らして、一対多の関係がないかをチェックすることが重要です。また、主キーから始まる関係は、多くの場合、関数従属性を満たしやすいことを覚えておくと良いでしょう。