ER図で線を引く基準
主さん
(No.1)
勉強しはじめてまだ3日で、アホなことを言っていたらすみません。
ER図のリレーションを引く基準がいまいち理解できないです。
例えばR2年度午後1-1ですと、
「生産工場は、自社商品を店舗ごとに仕分けて配送する」
「配送明細は、配送番号と商品コードで識別し、」
というところから、補完されるリレーションが自社商品→配送明細「だけ」なのがよく理解できないです。
素朴な考えだと、配送は自社製品を参照しているので配送製品⇔配送 も含むのでは?というように
他にも、この同じ問題で「生産」「発注」といった行為のエンティティには自社商品とのリレーションが結ばれず、その「明細」エンティティが自社商品と結ばれたことに気づきましたが、これも同様の理由でよく分からず…
もっといえば、工場も店舗も自社製品とリレーションが引けるのでは?
リレーションの定義はどのサイトも「関係」とだけで済ませているので、なかなか疑問が解決しないです。どなたかお答えいただけると幸いです。
ER図のリレーションを引く基準がいまいち理解できないです。
例えばR2年度午後1-1ですと、
「生産工場は、自社商品を店舗ごとに仕分けて配送する」
「配送明細は、配送番号と商品コードで識別し、」
というところから、補完されるリレーションが自社商品→配送明細「だけ」なのがよく理解できないです。
素朴な考えだと、配送は自社製品を参照しているので配送製品⇔配送 も含むのでは?というように
他にも、この同じ問題で「生産」「発注」といった行為のエンティティには自社商品とのリレーションが結ばれず、その「明細」エンティティが自社商品と結ばれたことに気づきましたが、これも同様の理由でよく分からず…
もっといえば、工場も店舗も自社製品とリレーションが引けるのでは?
リレーションの定義はどのサイトも「関係」とだけで済ませているので、なかなか疑問が解決しないです。どなたかお答えいただけると幸いです。
2023.08.07 08:56
GinSanaさん
★DB ゴールドマイスター
(No.2)
>素朴な考えだと、配送は自社製品を参照しているので配送製品⇔配送 も含むのでは?というように
自社製品→配送ですか?
少なくとも、配送について触れてるのはP7の(3)の②ですけど、配送は自社製品を参照していることは書いてないですね。
配送は、配送番号で識別し(≒主キー)、配達完了予定日時(これは、P8の図2に既に記述されている)と配達先の拠点コード(これは、P8の図2に穴が空いている)を記録する
とあるわけなので、配達先とはP6の1.の(4)の③から店舗の主キーたる拠点コードが外部キーとして入るわけですが、配送のヘッダに自社製品の主キーたる商品コードが入るのはどこにも書いてないですね。というより、ヘッダは、明細を束ねるためにあるわけですから。
配送明細なら、その商品がどれだけあるって書くわけだから、P7の(3)の③で要求されているわけで、リレーションシップ(矢印)が引かれていますよね。
2023.08.07 13:05
logres_fanさん
★DB ブロンズマイスター
(No.3)
> 素朴な考えだと、配送は自社製品を参照しているので配送製品⇔配送 も含むのでは?
まず、主キーを意識してみるのはどうでしょう。配送と製品の関係性は次のように。
[配送]{配送},
[配送製品]{配送,製品},
[製品]{製品},
[配送製品]{配送,製品}ですが、出題文では[配送明細]{配送番号,商品コード}となります。[配送]→[配送明細]←[自社商品]。次に、関数従属性を意識してみて下さい。
[配送製品]{配送,製品}
製品を括弧の外に出すと、[配送]{配送},製品
配送を決めると、製品が1つに定まる。このような場合、[配送]←[製品]。配送を括弧の外に出すと、[製品]{製品},配送
製品を決めると、配送が1つに定まる。このような場合、[製品]←[配送]。記憶するのであれば、こちらを。
例1。
[社員]{社員},
[社員趣味]{社員,趣味},
[趣味]{趣味},
例2。
[部門]{部門},
[社員]{社員},部門,
> もっといえば、工場も店舗も自社製品とリレーションが引けるのでは?
社員趣味のように組み合わせを登録する場合や自社製品を決めると所属が一意に定まる場合など、必要があればです。例えば、工場は続きの問題で設定されています。
2023.08.08 00:44
主さん
(No.4)
皆様ありがとうございます。
だいぶわかってきました。
リレーション=関係とは、実質上の関係のことではなく、各テーブル同士が参照する/されるの関係のことですね。
その上で、
* 要件に書かれていない参照を書かない
* データベースの設計上必要な参照であればリレーションを書く
とまとめることができますでしょうか。
ありがとうございます。
だいぶわかってきました。
リレーション=関係とは、実質上の関係のことではなく、各テーブル同士が参照する/されるの関係のことですね。
その上で、
* 要件に書かれていない参照を書かない
* データベースの設計上必要な参照であればリレーションを書く
とまとめることができますでしょうか。
ありがとうございます。
2023.08.08 05:30
logres_fanさん
★DB ブロンズマイスター
(No.5)
チュートリアル的には、まず、フレンドとフレンドシップのように、リレーションとリレーションシップを使い分ける。これを意識しておくとお得です。
受験テクニックとしては、下記を参考に。
[0509] ER図で躓いてしまいます
https://www.db-siken.com/bbs/0509.html
実務では、貴方が所属する流派次第です。
>まとめることができますでしょうか。
受験テクニックとしては、下記を参考に。
[0509] ER図で躓いてしまいます
https://www.db-siken.com/bbs/0509.html
実務では、貴方が所属する流派次第です。
2023.08.08 10:09
返信投稿用フォーム
スパム防止のためにスレッド作成日から30日経過したスレッドへの投稿はできません。