将表转换为第三范式

时间:2015-05-27 00:00:57

标签: sql database database-design data-modeling database-normalization

我正在攻读考试,我需要一手彻底了解如何将表格转换为3NF。我从Unormalised到1NF了解到,我被困在1NF到2NF。我从教程中得到了这个例子。

filmNo   |   fTitle   |  dirNo   |   director     |  actorNo |    aName      |    role       |   timeOnScreen

F1100    | Happy Days |  D101    |  Jim Alan      |  A1020   | Sheila Toner  | Jean Simpson  |  15.45
         |            |  D101    |  Jim Alan      |  A1222   | Peter Watt    | Tom Kinder    |  25.38
         |            |  D101    |  Jim Alan      |  A1020   | Sheila Toner  | Silvia Simpson|  22.56
F1109    | Snake Bite |  D076    |  Sue Ramsay    |  A1567   | Steve Mcdonald| Tim Rosey     |  19.56
         |            |  D076    |  Sue Ramsay    |  A1222   | Peter Watt    | Archie Bold   |  10.44

所以这个表到1NF非常容易,但它正在达到我正在努力的2NF和3NF。我在确定列的依赖关系时迷路了。我是否正确地说角色和timeOnScreen依赖于演员,还有电影?如何转换为2NF。我想从2NF我可以去3NF。但我真的很想通过这些步骤来完成这项工作,所以我可以完全理解我的考试。

1 个答案:

答案 0 :(得分:2)

“我在确定列的依赖关系时迷路了。”

首先,关系模式中“列”之间的依赖关系应该来自业务规则给定。从数据样本中确定依赖关系只是一种猜谜游戏,总是容易犯错,永远不会被依赖。如果你的练习要求你这样做,试着尽力而为,但是一旦你的考试结束就忘了这个方法。

功能依赖(如果没有超出3NF的目标,则需要考虑的唯一依赖类型)是规则“AB-> CD”,其效果是对于我们的关系模式的任何有效值, IF 您对该关系值的{ABCD}进行关系投影,然后得到的关系值将是{AB}值的任何组合最多出现一次的关系值。这就是名称“功能”依赖性来源于:“AB-> CD”表示C和D值都是AB值组合的数学函数。相反,它表示AB组合是寻找单个C和D值的决定因素。将其应用于您的样本应该可以让您找到一些合理的FD,您的练习错误地期望您猜测。