- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:また正規形について。)
正規形についての質問
このQ&Aのポイント
- 質問内容は、データベースの正規形についての疑問です。
- 具体的には、第二正規形に関して、関数従属関係についての疑問があります。
- また、第三正規形に関して、主キーと非候補キーの関数従属についても疑問があります。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
最初の第二正規形の問題ですが、商品番号001の商品は、業者Aの場合(受注番号12345,12346)と業者D(受注番号12347)の場合が有るようですので、納入業者は商品番号のみでは特定できず、主キーである受注番号と商品番号の組合せによってのみ特定される(主キーに完全関数従属している)様です。 したがって、第二正規形の条件は満たしているかと。 2つ目のボイス・コッド正規形の問題ですが、 > 主キーを【商品コード、仕入先コード】と決めたとき、非候補キーである担当者コードは・・・ 主キーを決定しても、他の候補キーが候補キーでなくなる訳ではないので、{ 商品コード, 担当者コード }も主キーでなくとも候補キーではある訳です。 したがって、第二正規形で、【仕入先コード、担当者コード】という表が分離されている必要は有りません。 それから、【商品コード、仕入先コード、担当者コード】の表には、下記の2つの関数従属性が含まれていますが、一つ目の関数従属性は全ての項目に関係していますので、表を分割すると、この情報は失われることになります。 {商品コード, 担当者コード} → 仕入先コード 仕入先コード → 担当者コード この様にボイス・コッド正規形では、関数従属性が保存されない場合があります。
お礼
ありがとうございます。 1つ目についてなのですが、言われて見ればそうですね。ご指摘ありがとうございます。 2つ目については「主キー」を決めてしまえばその他のキーは自動的に非候補キーになると勘違いしていました^^;主キーと候補キーは違うのですね、一緒に考えていたのが原因でした。詳しいご解説ありがとうございます。