HOME»データベーススペシャリスト掲示板»H25 午後2 問1 設問3(1)
投稿する
部品と工場部品の関係は1対多だと思います。
まず、現行システムでは工場ごとにシステムが分かれていると問題に記述されています。
そして、納入LTなどは工場ごとに設定されているとも書かれています。
それを踏まえて考えると、現行システムではシステムが工場ごとに分かれていたので、部品テーブルが工場を識別する必要はなかったのですが、システムが統合されることによって工場を識別する必要が出てきたと分かると思います。
そして、工場番号をそのまま主キーの一部にしてしまうと、部品名などが主キーの一部の部品番号に部分関数従属する形(つまり第二正規形を満たさない形)になってしまいます。
つまり、そのまま部品テーブルに工場番号を持たせてしまうと、商品名や主要補充区分が複数レコードに同じ値で入ることになるので、この冗長性を排除するという問題になるかと思います。
H25 午後2 問1 設問3(1) [0837]
gpさん(No.1)
冗長性を排除するため対応がよくわかりません。
新たなテーブル「工場部品」を定義し主キーを「部品番号+工場番号」にしているようですが、
結果、部品と工場部品は1対1になるのでは?と考えています。
どこが冗長性排除されているのかがわからなく。
部品に工場番号を主キーとして持たせればよく、
わざわざテーブル分割する必要あるのでしょうか
新たなテーブル「工場部品」を定義し主キーを「部品番号+工場番号」にしているようですが、
結果、部品と工場部品は1対1になるのでは?と考えています。
どこが冗長性排除されているのかがわからなく。
部品に工場番号を主キーとして持たせればよく、
わざわざテーブル分割する必要あるのでしょうか
2024.10.19 01:28
gpさん(No.2)
すみません、タイトル間違いです。
正しくは以下になります。
設問3(3)
正しくは以下になります。
設問3(3)
2024.10.19 01:30
awesamさん(No.3)
> 結果、部品と工場部品は1対1になるのでは?と考えています。
部品と工場部品の関係は1対多だと思います。
まず、現行システムでは工場ごとにシステムが分かれていると問題に記述されています。
そして、納入LTなどは工場ごとに設定されているとも書かれています。
それを踏まえて考えると、現行システムではシステムが工場ごとに分かれていたので、部品テーブルが工場を識別する必要はなかったのですが、システムが統合されることによって工場を識別する必要が出てきたと分かると思います。
そして、工場番号をそのまま主キーの一部にしてしまうと、部品名などが主キーの一部の部品番号に部分関数従属する形(つまり第二正規形を満たさない形)になってしまいます。
つまり、そのまま部品テーブルに工場番号を持たせてしまうと、商品名や主要補充区分が複数レコードに同じ値で入ることになるので、この冗長性を排除するという問題になるかと思います。
2024.10.23 09:33
awesamさん(No.4)
各関係の多重度を考える時は、〇〇ごととか〇〇別とかのワードをよく見るようにすると良いかと思います。
2024.10.23 10:01
gonta1さん(No.5)
awesamさん
ありがとうございます!理解しました!
あと部品テーブルについては統合直後で、以下のように考えていました。
部品番号は元々全社で一意だから、工場番号を主キーに追加したしたところで重複はない。
部品番号は全社で一意の制約なので、主キーに工場番号を追加してしまうと、部品番号が工場違いで重複を許すことになるので、この考えは間違いですね。
ありがとうございます!理解しました!
工場番号をそのまま主キーの一部にしてしまうと、部品名などが主キーの一部の部品番号に部分関数従属する形(つまり第二正規形を満たさない形)になってしまいます。
完全にこの基礎的なことが抜けていました。あと部品テーブルについては統合直後で、以下のように考えていました。
部品番号は元々全社で一意だから、工場番号を主キーに追加したしたところで重複はない。
部品番号は全社で一意の制約なので、主キーに工場番号を追加してしまうと、部品番号が工場違いで重複を許すことになるので、この考えは間違いですね。
2024.10.25 00:34