HOME»応用情報技術者試験掲示板»平成21年秋期  問30  DB
投稿する

[2036] 平成21年秋期  問30  DB

 ppさん(No.1) 
https://www.ap-siken.com/bunya.php?m=9&s=2&no=29

解説にある
在庫表({部品コード}, {仕入先コード}, 仕入日付, 仕入価格, 在庫数)
は、仕入れ日付も主キーにならないのでしょうか?
日付による在庫数の違いがあるため、部品コードと仕入先コードだけだと
一意に決まらない気がして・・・。
初心者なので間違ってるかもですが、どなたかご確認ください。
2020.06.16 10:35
タツオさん(No.2) 
部品テーブルの主キーは部品コードです。
部品コード→部品名が一意になる。
在庫表の主キーは部品コードと仕入れ先コードです。
仕入れ先表も同様。

エンティティ図はテーブルの関係性を示すものなので、
それぞれのテーブルの主キーはこの問題の解答とは関係がないです。


質問者さんがおっしゃるように、部品コードと部品名が定まっても
仕入れ日付が異なる場合があるので一意にならない。→部品と仕入れ先は多対多の関係。
同様に、仕入れ先コードと仕入れ先名が定まっても一意にならない。

では、在庫数ではどうでしょう?
在庫数が定まれば、部品、仕入れ先は一意になります。

これより、在庫と仕入れ先は多対1の関係。在庫と部品は多対1の関係ですね。
2020.06.16 14:41
助け人さん(No.3) 
AP ゴールドマイスター
横から失礼します。

ppさんのおっしゃる通りです。初心者とは思えません。

在庫表({部品コード}, {仕入先コード}, 仕入日付, 仕入価格, 在庫数)
ではなく、
在庫表({部品コード}, {仕入先コード}, {仕入日付}, 仕入価格, 在庫数)
ですね。

別スレッドで管理人様に問い合わせます。
2020.06.16 21:05
 ppさん(No.4) 
タツオさん、助け人さん、レスポンスありがとうございます!
タツオさんの「在庫数が定まれば、部品、仕入れ先は一意になります」
という点がうまく理解できていません…。
仕入日付ではなく在庫数が主キーになるということでしょうか?
2020.06.16 22:19
タツオさん(No.5) 
私の考えでは、部品在庫管理台帳とは
部品テーブル、仕入れ先テーブル、在庫テーブルがあり、それぞれを内部結合したものだと思っています。
なので主キーの議論では、どのテーブルがどのカラムを持っていて、どれが主キーなのかは厳密には
不明だと思うのですが、違いますか?

この問題を解くにあたっては、
データだけを見て解けばよいと思ってます。
>>在庫数が定まれば、部品、仕入れ先は一意になります
についてですが、
部品(001、R部品)に対して在庫数は1000と1500
すなわち○対多。
在庫(1000)に対して部品は001、R部品の1つのみ。
すなわち○対1。
この2つをそれぞれのどっちから見てるかを組み合わせれば
答えの1対多になると思います。
2020.06.17 10:11
 ppさん(No.6) 
答えの導き方に関しては理解できました。
ありがとうございます。

主キーに関しては
主キーが部品コードと仕入れ先コードだけでは在庫表が成り立たないけれども、
在庫表({部品コード}, {仕入先コード}, {仕入日付}, 仕入価格, 在庫数)
かもしれないし、
在庫表({部品コード}, {仕入先コード}, 仕入日付, 仕入価格, {在庫数})
かもしれない、もしかすると
在庫表({部品コード}, {仕入先コード}, 仕入日付, {仕入価格}, 在庫数)
かもしれない。
ただしこの問題文からは厳密には決められない。
という解釈であっていますか?
長くてすみません汗
2020.06.17 11:04
助け人さん(No.7) 
AP ゴールドマイスター
横から失礼します。

午前問題は、詳しく説明がされないので、どれが主キーかは、与えられた情報から一般的に判断するしかありません(しかし、この問題は、主キーを答えるものではありませんが)。

例えば、問題の管理台帳からは、
R部品をA商会から、ある日に1,500円で仕入れ、その在庫数が1,000
R部品をA商会から、別の日に1,500円で仕入れ、その在庫数が1,500
R部品をA商会から、別の日に1,400円で仕入れ、その在庫数が1,000
ということが考えられます。

そうなると、
①  在庫表({部品コード}, {仕入先コード}, {仕入日付}, 仕入価格, 在庫数)
②  在庫表({部品コード}, {仕入先コード}, 仕入日付, 仕入価格, {在庫数})
③  在庫表({部品コード}, {仕入先コード}, 仕入日付, {仕入価格}, 在庫数)
のうち、①が妥当であり、②と③は妥当ではない、となります。

ただし、もし、R部品をA商会から、同じ日に2回以上仕入れることがある場合、話がややこしくなります。
2020.06.17 18:20
 ppさん(No.8) 
助け人さんありがとうございます!
問題に直接関係ないにも関わらずここまでご説明頂き大変参考になりました!
2020.06.17 22:40

返信投稿用フォーム

スパム防止のためにスレッド作成日から30日経過したスレッドへの書込みはできません。
© 2010-2024 応用情報技術者試験ドットコム All Rights Reserved.

Pagetop