1

トーナメントの勝者に関する最後の例に出くわしたとき、ウィキペディアでウィキペディアのデータベース正規化 2NF に関する記事を調べていました。そこには、テーブルに推移的な依存関係があるため、2NF ではなく、それを 3NF に復元してデータ破損の可能性を排除するために、さらなる最適化 (テーブルをさらに分割するなど) が必要であることが示されています。「同じ人が異なる記録で異なる生年月日で示されていることを示す」ために、どのような種類の「腐敗」が忍び寄る可能性があるか誰か教えてもらえますか?

4

1 に答える 1

3

この行を挿入すると想像してください。

 Indiana Invitational   1998    Al Fredrickson  21 July 1975

後でこれを挿入します(たとえば、誤って):

 Des Moines Masters     1999    Al Fredrickson  20 June 1985

ご覧のとおり、このテーブルには同じ人物の誕生日が 2 つあります。ウィキペディアの記事で述べられていることは、誕生日は主キーではない人に依存するということです。これは、人が繰り返す可能性があることを意味し、注意を払わないと、依存する属性 (生年月日など) が変わる可能性があります。

あなたがしなければならないことは、人の名前をプライマリ属性として別のテーブルを作成し、その依存データをそのテーブルに移動することです (人の生年月日など)。このようにして、冗長な(name, birthday)タプルを回避し、破損の可能性を防ぎます (メモリを節約します)。

于 2012-06-29T11:55:53.940 に答える