HOME»データベーススペシャリスト掲示板»2021(R3)年AMⅡ 問3
投稿する
2021(R3)年AMⅡ 問3 [0269]
まつおかさん(No.1)
関係R(A,B,C」の候補キーが{A,B}と{A,C}であり、{A,B}→C及びC→Bの関数従属性があると、なぜ第3正規形を満たすと言えるのでしょうか?
たまたま第3正規形を選んで正解しましたがしっくりきません。
むしろA→C→Bという推移的関数従属がある第2正規形にすら思えるので深みにはまっています。
たまたま第3正規形を選んで正解しましたがしっくりきません。
むしろA→C→Bという推移的関数従属がある第2正規形にすら思えるので深みにはまっています。
2021.10.22 02:58
ぽちさん(No.2)
この投稿は投稿者により削除されました。(2021.10.22 14:55)
2021.10.22 14:55
ココアさん(No.3)
非キー属性の定義が間違ってますよ。
非キー属性とは「主キーに含まれない属性」ではなく、「いずれの候補キーにも含まれない属性」です。
さらに、正規化の過程において、どの候補キーが主キーかどうかは全く関係ありません。
正規化では以下の処理をします。
・1 -> 2
非キー属性に対して、部分関数従属を排除する
・2 -> 3
非キー属性に対して、推移的関数従属を排除する
・3 -> BCNF
候補キー内部属性に対して、部分関数従属かつ推移的関数従属を排除する
R(A,B,C)で、{A,B},{A,C}が候補キーですから、非キー属性はありませんので、自然と第3正規形までは満たします。
しかし、C->Bという、候補キー内部属性Bに対して候補キー{A,C}においての部分関数従属がありますから、BCNFは満たしていません。
結果、答えは第3正規形になります。
非キー属性とは「主キーに含まれない属性」ではなく、「いずれの候補キーにも含まれない属性」です。
さらに、正規化の過程において、どの候補キーが主キーかどうかは全く関係ありません。
正規化では以下の処理をします。
・1 -> 2
非キー属性に対して、部分関数従属を排除する
・2 -> 3
非キー属性に対して、推移的関数従属を排除する
・3 -> BCNF
候補キー内部属性に対して、部分関数従属かつ推移的関数従属を排除する
R(A,B,C)で、{A,B},{A,C}が候補キーですから、非キー属性はありませんので、自然と第3正規形までは満たします。
しかし、C->Bという、候補キー内部属性Bに対して候補キー{A,C}においての部分関数従属がありますから、BCNFは満たしていません。
結果、答えは第3正規形になります。
2021.10.22 10:31
ぽちさん(No.4)
この投稿は投稿者により削除されました。(2021.10.22 14:55)
2021.10.22 14:55
ぽちさん(No.5)
ココアさん
ご教示ありがとうございます。大変勉強になりました。
非キー属性の定義も正規化の処理も理解できておらず、No.2でひどい投稿して申し訳ありません。
削除致しました。一から勉強し直します。
申し訳ありませんでした。
ご教示ありがとうございます。大変勉強になりました。
非キー属性の定義も正規化の処理も理解できておらず、No.2でひどい投稿して申し訳ありません。
削除致しました。一から勉強し直します。
申し訳ありませんでした。
2021.10.22 14:57
まつおかさん(No.6)
ココアさん
ご回答ありがとうございます。私に至っては、第2正規形と第3正規形とボイスコッド正規形の違いすらわかっていない状況だと認識できました。
この手の問題は午後試験にも直結するのに、十分に理解できてないまま試験に臨んでおり、不合格かなーという根拠が明確になりました。
次回に受験するときまでに理解しておこうと思います。
ご回答ありがとうございます。私に至っては、第2正規形と第3正規形とボイスコッド正規形の違いすらわかっていない状況だと認識できました。
この手の問題は午後試験にも直結するのに、十分に理解できてないまま試験に臨んでおり、不合格かなーという根拠が明確になりました。
次回に受験するときまでに理解しておこうと思います。
2021.10.22 17:24