1

私は以下の表を持っており、それを2NFに変換することになっています。テーブルを2NFに変換する - 奇妙なテーブルを変換するには?

スキルを::従業員、スキル

LOCATION:従業員、現在の仕事 場所

I

Convert table to 2NF

私が行っているこの答えを持っています私はこれで間違っていると感じている^上記^。

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

+0

NFの違い:http://stackoverflow.com/questions/723998/can-someone-please-give-an-example-of-1nf-2nf-and-3nf-in-plain-english – BlackICE

+0

@デビッド感謝あなたは私が上記のものと正しかったかどうかを教えてくれますか? – maclunian

+0

投稿にあるものから3NFのように見えます。それは必ずしもそれがあなたが欲しいものをやることを意味するものではありません:) – BlackICE

答えて

-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 

プライマリキーが社員+ LocationIdだろう、これはあなたに彼らがその場所に持っているスキルを提供します。この例では、SkillName列を含めて3NFに違反しています。 この習慣は、実際に一緒に使用されるパフォーマンスの読み込みデータを増やすために結合を減らすために、実際にはデータベース設計(および "非正規化")で時々使用されます。
これは、通常、レポート作成に使用されるテーブルでのみ行われます。

+1

あなたは保証されたユニークなキーを導入しています。一般的には練習するが割り当てには関係なく、SkillIdの割り当てが必要であることは明らかではない。私はまた、一対一の関係と一対多の関係の両方を具現化しているテーブルを結合することも好きではありません。 –

+0

はい、最終フォーマットがどんなものかを正確に伝えるのは難しいですか、場所に依存するスキルですか? – BlackICE

+3

-1。宿題と教育の文脈では、学生は授業のコラムで作業することが期待されます。彼らは新しい列を導入することはできません。 1つのリスクは、数字の壁が実際に起こっていることを隠すことです。もう1つは、ID番号の新しい列を導入することは、「正規化」が「文字列のID番号を代用する」ことを意味することを示唆しているようです。 OPに指定されていない –

0

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

enter image description here 2つのテーブルのみ。おかげ

関連する問題