1

我有下表,应该将其转换为 2NF。

将表格转换为 2NF

在我去过的地方,我有一个答案:

技能:员工,技能

地点:员工,当前工作地点

我有一种感觉我错了这个^上面^虽然。

也有人可以解释1NF,2NF和3NF之间的区别。我知道 1 是第一位的,你必须把它分解成更小的表格,但想要一个非常好的描述来帮助我更好地理解。谢谢

4

2 回答 2

0

我是学习 2NF 的新手,但我已经解决了这样的答案。让我知道这是否正确,以便我可以理解我的错误并进行更多练习。

在此处输入图像描述 只有两张桌子。谢谢

于 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 回答