-1

属性カテゴリを持つテーブルがあります。たとえば、属性 Genre を持つ曲を保存するテーブル:

Songs(
ID (INT), 
Name (STRING), 
Genre: (STRING)
)

表は第 3 正規形ですか?

Genreつまり、別のテーブルに保存し、次のようなテーブル間に関係を持たせる方がよいことを知っています。

Songs(
ID (INT), 
Name (STRING), 
Genre_ID: (INT)
)

Genre(
ID (INT),
Name (String)
)

どこでSongs.Genre_ID = Genre.ID

しかし、最初のケース (テーブルが 1 つ) が第 3 正規形の規則に違反しているかどうかを判断することはできません!

そうですか?はいの場合、どちらですか?

ありがとう、マイク

4

2 に答える 2

2

私の後に繰り返して。

「ID番号は正規化とは何の関係もありません。ID番号は正規化とは何の関係もありません。ID番号は正規化とは何の関係もありません。」

目標が曲名ごとに 1 つのジャンルを格納することである場合、このテーブルは次のようになります。

song_name           genre
--
Toxic               Pop
Itsy Bitsy Spider   Children's

ここで、song_name は主キーで、5NF にあります。(そして 4NF、3NF など)。

于 2011-05-12T22:17:53.110 に答える
1

キーは何ですか?テーブルはどのような依存関係を満たす必要がありますか? これらは、あなたの質問に答えるために知っておくべきことです.

私の推測では、ID が唯一のキーであり、その ID->{Name,Genre} であり、重要でキー以外の依存関係は他にありません。それが正しければ、Songs は 3NF にあります。さらに重要なのは、BCNF と 5NF にあります。

文字列属性 Genre を整数の Genre_ID に置き換えることは、通常の形式とはまったく関係ありません。

于 2011-05-12T22:04:39.307 に答える