推移的関数従属に関して
初心者さん
(No.1)
推移的関数従属に関してどなたか教えていただけないでしょうか。
H28年度の午後I 問1 設問1の(1)の推移的関数従属性を答える問題に関して疑問があります。
推移的関数従属(X→Y→Z)のXにあたる属性(今回であれば施設ID)は、候補キーでないといけないと勝手に思っていました。そのため、この設問では推移的関数従属性はないと回答しました。
この考えは間違いなのでしょうか?
一方で、第3正規型の定義としては、
関係Rが第3正規形であるとは、次の二つの条件を満たすときをいう:
(1)Rは第2正規形である
(2)Rのすべての非キー属性はRのいかなる候補キーにも推移的に関数従属しない
と候補キーとの推移的関数従属性に関して書いてあります。
この設問では第3正規型などは一切関係なく、単純にテーブルの中に推移的関数従属があるかないかだけを答えろということなのでしょうか。
どなたか教えていただけないでしょうか。
よろしくお願いします。
H28年度の午後I 問1 設問1の(1)の推移的関数従属性を答える問題に関して疑問があります。
推移的関数従属(X→Y→Z)のXにあたる属性(今回であれば施設ID)は、候補キーでないといけないと勝手に思っていました。そのため、この設問では推移的関数従属性はないと回答しました。
この考えは間違いなのでしょうか?
一方で、第3正規型の定義としては、
関係Rが第3正規形であるとは、次の二つの条件を満たすときをいう:
(1)Rは第2正規形である
(2)Rのすべての非キー属性はRのいかなる候補キーにも推移的に関数従属しない
と候補キーとの推移的関数従属性に関して書いてあります。
この設問では第3正規型などは一切関係なく、単純にテーブルの中に推移的関数従属があるかないかだけを答えろということなのでしょうか。
どなたか教えていただけないでしょうか。
よろしくお願いします。
2021.08.21 11:06
GinSanaさん
★DB ゴールドマイスター
(No.2)
この投稿は投稿者により削除されました。(2021.08.21 12:00)
2021.08.21 12:00
GinSanaさん
★DB ゴールドマイスター
(No.3)
>推移的関数従属(X→Y→Z)のXにあたる属性(今回であれば施設ID)は、候補キーでないといけないと勝手に思っていました。
まず第3正規形の定義が
DBSP教科書 情報処理教科書 データベーススペシャリスト 2020年版
と
リレーショナルデータベース入門―データモデル・SQL・管理システム・NoSQL (Information & Computing) [第3版]
で同じですが
[第3正規形の定義]
リレーション R が次の二つの条件を満たす。
(1) 第2正規形であること
(2) すべての非キー属性は、いかなる候補キーにも推移的関数従属していない
で裏を返せば、リレーション R が次の二つの条件を満たす。
(1) 第2正規形であること
(2) すべての非キー属性は、いかなる候補キーにも推移的関数従属していない
なんらかの非キー属性がある候補キーに推移的関数従属している
状態の場合は第2正規形になるってわけで、Xは候補キーでないといけませんね。Yは非キー項目で、Yに非キー項目Zが関数従属したらそうなるわけですよ。
>そのため、この設問では推移的関数従属性はないと回答しました。
>この考えは間違いなのでしょうか?
そのための理由がすごい跳躍に感じるんですが、純粋に非キー項目同士で関数従属してるかしてないかの問題ですよね。
この手のってとりあえずいったんまず関数従属性を全部出して、それから候補キーを出して、非キー項目同士で関数従属してないかを出して、ってやるんですよ。誰かに縄をくくりつけたカウボーイに縄をくくりつけて引っ張ったらもともとくくりつけてたやつも引っ張られるのと同じで。
>この設問では第3正規型などは一切関係なく、単純にテーブルの中に推移的関数従属があるかないかだけを答えろということなのでしょうか。
平成25年以前だったら、そのエンティティがまずいま時点で第○正規形か?を答えさせて、その理由を答えさせてましたね。第1なら、属性が全て単一値で非キー項目である○○が候補キー{○○、××}に部分関数従属するため、とか書いて、第2なら属性が全て単一値で非キーが候補キーに完全関数従属して候補キーの何が非キー項目の何に推移関数従属するため、とかシュッとでてくるんですが。
で、この質問の回答としては、単純にテーブルの中に推移的関数従属が見いだせるならそれを書いてなければなしと書く、です。当然自力で候補キー洗い出してから書くんですけどね。
2021.08.21 12:00
返信投稿用フォーム
スパム防止のためにスレッド作成日から30日経過したスレッドへの投稿はできません。