平成28年度 秋期 午前 問27
データベース
関数従属に関する問題
6行だけから成る“配送”表において成立している関数従属はどれか。ここで,X → Y は,X は Y を関数的に決定することを表す。
配送(原典は表):
| 配送日 | 部署ID | 部署名 | 配送先 | 部品ID | 数量 |
|---|---|---|---|---|---|
| 2016-08-21 | 300 | 第二生産部 | 秋田事業所 | 1342 | 300 |
| 2016-08-21 | 300 | 第二生産部 | 秋田事業所 | 1342 | 300 |
| 2016-08-25 | 400 | 第一生産部 | 名古屋工場 | 2346 | 300 |
| 2016-08-25 | 400 | 第一生産部 | 名古屋工場 | 2346 | 1,000 |
| 2016-08-30 | 500 | 研究開発部 | 名古屋工場 | 2346 | 30 |
| 2016-08-30 | 500 | 研究開発部 | 川崎事業所 | 1342 | 30 |
- ア配送先 → 部品ID
- イ配送日 → 部品ID
- ウ部署ID → 部品ID
- エ部署名 → 配送先
答えと解説を見る
✓ これが正解ア配送先 → 部品ID
解説
配送先が決まれば部品IDが一つに定まっています。
関数従属は、左側の値が決まると右側の値が必ず一つに決まる、という関係です。表の上で確かめるには、左側が同じ値になっている行を集めて、その行の右側がすべて同じかどうかを見ます。一つでも食い違う組があれば、その従属は成り立ちません。この表は6行しかないので、全部を手で当てられます。配送先で行を集めてみます。秋田事業所の2行はどちらも部品IDが1342、名古屋工場の3行はどれも2346、川崎事業所の1行は1342でした。どの配送先をとっても部品IDが一つに定まっているので、この従属はこの表の中で成り立っています。だからこの肢が正解でした。気をつけたいのは、成り立つことを示すには全部の行を見る必要がある一方、成り立たないことを示すには食い違う組を一つ見つければ足りる、という非対称です。残る三つは、同じやり方で当てると、左側が同じなのに右側が二通りに割れる組が見つかります。いずれも8月30日の2行が反例になっていました。
ほかの選択肢はなぜ違うのか
- イ配送日 → 部品ID:8月30日の行が二つあり、一方の部品IDは2346、もう一方は1342でした。日付が同じなのに部品IDが二通りに分かれているので、日付から部品IDが一つに決まるとは言えません。反例が表の中にあります。
- ウ部署ID → 部品ID:部署IDが500の行が二つあり、部品IDは2346と1342に割れています。同じ部署IDでも部品IDがそろわないため、この向きの結びつきは表の上で成り立っていませんでした。左側が同じで右側が違う組があります。
- エ部署名 → 配送先:研究開発部の行が二つあり、配送先は名古屋工場と川崎事業所で違っています。部署名が同じでも届け先が一つに絞れないので、この組合せも反例をもっていました。左側だけでは右側を決められません。
出典:平成28年度 秋期 基本情報技術者試験 午前 問27
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)