戦国IT - 情報処理技術者試験の過去問対策サイト
ブログお知らせお問い合わせ料金プラン

基本情報技術者 2016年 秋期 午前(科目A)27


問題文

6行だけから成る“配送”表において成立している関数従属はどれか。ここで、は、を関数的に決定することを表す。
基本情報技術者 2016年 秋期 午前(科目A) 問27の問題画像

選択肢

配送先 → 部品ID(正解)
配送日 → 部品ID
部署ID → 部品ID
部署名 → 配送先

配送【午前2 解説】

要点まとめ

  • 結論:答えは (配送先 → 部品ID)。各配送先の行を見れば必ず同一の部品IDになっているため成立します。
  • 根拠:関数従属は「同じの行は必ず同じを持つ」こと。図表で配送先ごとに部品IDが一意に決まっています。
  • 差がつくポイント:同じ部品IDが複数の配送先で使われていても問題ない点、逆に同じXでYが異なれば即×となる点を確実に確認すること。

正解の理由

正解は です。配送先ごとに対応する部品IDを表から確認すると次の対応になります:秋田事業所→1342、名古屋工場→2346、川崎事業所→1342。各配送先(X)が持つ部品ID(Y)はその配送先内で常に同一であるため、配送先→部品ID の関数従属が成立します。関数従属の定義に照らすと、任意の2行 t1, t2 に対して t1[配送先]=t2[配送先] ならば t1[部品ID]=t2[部品ID] が成り立っています。

よくある誤解

  • 同一の部品IDが複数の配送先に現れると「X→Y は成り立たない」と誤解する。X→Yは「同じXに対してYが一意か」が基準であり、Yが複数のXに割り当てられても問題ありません。
  • 重複行(完全に同一の行)があるときにそれを無視してしまい、反例を見落とすミス。重複は関数従属の成立・不成立には影響しませんが注意が必要です。
  • 「日付や部署IDがキーっぽい」見た目に惑わされ、必ずしもそれらがYを一意に決めるわけではない点を見落とすこと。

解法ステップ

  1. 関数従属の定義を確認する: とは「任意の2行で の値が等しければ の値も等しい」こと。
  2. 各選択肢の左辺(X)で同じ値を持つ行をグループ化する。
  3. グループ内で右辺(Y)の値がすべて一致するかを確認する。1グループでも不一致があればその選択肢は不成立。
  4. 全グループで一致する選択肢が関数従属として成立する(本問では配送先が該当)。

選択肢別の誤答解説

  • : 配送先 → 部品ID
    正解。配送先ごとに部品IDは一意(秋田事業所→1342、名古屋工場→2346、川崎事業所→1342)で、同一配送先で部品IDが変わる行はありません。
  • イ: 配送日 → 部品ID
    誤り。2016-08-30 の行(5行目と6行目)では部品IDが2346と1342で異なり、同一の配送日で部品IDが一意でないため不成立です。
  • ウ: 部署ID → 部品ID
    誤り。部署ID 500(5行目と6行目)で部品IDが2346と1342に分かれており、同一部署IDで部品IDが一意でないため不成立です。
  • エ: 部署名 → 配送先
    誤り。部署名「研究開発部」(5行目と6行目)は配送先が名古屋工場と川崎事業所に分かれており、一意性が保たれていません。

補足コラム

関数従属はリレーショナルデータベース設計で非常に重要な概念で、正規化(冗長性排除)や候補キーの判定の基礎になります。形式的には「任意のタプル t1,t2 に対して t1[X]=t2[X] ⇒ t1[Y]=t2[Y]」で表されます。X→Y が成立しても Y が複数の X に対応してよい(逆は問わない)点を押さえておきましょう。複合属性(複数列の組み合わせ)が必要になる場合もあるため、単独列での検証だけでなく組合せもチェックする訓練が有効です。

FAQ

Q1: 同じ行が複数あると関数従属の判定はどうなる?
A1: 完全に同一の行(重複行)があっても、判定には影響しません。重複行はXが同一ならYも同一なので成立を壊しません。
Q2: X→Y が成り立つなら Y→X も成り立つか?
A2: 必ずしも成り立ちません。逆が成り立つのは一方向が一意でかつ双方向の一意性がある場合(同値関係、つまり相互決定)だけです。
Q3: 複数列の組み合わせでも同様に判定できる?
A3: はい。X が複数列の組合せ(複合属性)でも同じルールで、同じ組み合わせの値を持つ行で Y が一意なら成立します。

関連キーワード: 関数従属、関係データモデル、正規化、候補キー、主キー、部分関数従属、関係代数、データ冗長性、決定子、属性依存性
← 前の問題へ次の問題へ →
戦国ITクイズ機能

\ せっかくなら /

基本情報技術者
クイズ形式で学習しませんか?

クイズ画面へ遷移する

すぐに利用可能!

©︎2026 情報処理技術者試験対策アプリ

このサイトについてブログプライバシーポリシー利用規約特商法表記開発者について