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