1

以下の表があり、2NFに変換することになっています。

テーブルを2NFに変換します

私が行ったところ、これに対する答えがあります:

スキル:従業員、スキル

場所:従業員、現在の勤務地

私はこれが^上記^で間違っていると感じています。

また、誰かが1NF、2NF、3NFの違いを説明できますか。私は1が最初に来ることを知っています、そしてあなたはそれをすべて小さなテーブルに分割しなければなりません、しかし私がよりよく理解するのを助けるために本当に良い説明が欲しいです。ありがとう

4

2 に答える 2

0

私は2NFを学ぶのは初めてですが、このような答えを解決しました。私の間違いを理解してもっと練習できるように、これが正しいかどうか教えてください。

ここに画像の説明を入力してください 2つのテーブルのみ。ありがとう

于 2015-02-08T07:21:47.080 に答える
-2
Employee Table

EmployeeID  |   Name
1       |   Jones
2       |   Bravo
3       |   Ellis
4       |   Harrison


Skills Table

SkillId     |   Skill
1       |   Typing
2       |   Shorthand
3       |   Whittling
4       |   Light Cleaning
5       |   Alchemy
6       |   Juggling

Location Table

LocationId  |   Name
1       |   114 Main Street
2       |   73 Industrial Way

EmployeeSkill Table

EmployeeId  |   LocationId  |   SkillId |   SkillName
1       |   1       |   1   |   Typing
1       |   1       |   2   |   Shorthand
1       |   1       |   3   |   Whittling
2       |   2       |   4   |   Light Cleaning
3       |   2       |   5   |   Alchemy
3       |   2       |   6   |   Juggling
4       |   2       |   4   |   Light Cleaning

EmployeeSkillテーブルでは、主キーはEmployeeId + LocationIdになります。これにより、その場所でのスキルが得られます。この例では、SkillName列を含めると3NFに違反します。この方法は、結合を減らして、一般的に一緒に使用されるデータの読み取りパフォーマンスを向上させるために、データベース設計で実際に使用されることがあります(「非正規化」と呼ばれます)。
通常、これはレポートに使用されるテーブルでのみ実行されます。

于 2011-06-17T15:27:05.547 に答える