我正在攻读考试,我需要一手彻底了解如何将表格转换为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。但我真的很想通过这些步骤来完成这项工作,所以我可以完全理解我的考试。
答案 0 :(得分:2)
“我在确定列的依赖关系时迷路了。”
首先,关系模式中“列”之间的依赖关系应该来自业务规则,给定。从数据样本中确定依赖关系只是一种猜谜游戏,总是容易犯错,永远不会被依赖。如果你的练习要求你这样做,试着尽力而为,但是一旦你的考试结束就忘了这个方法。
功能依赖(如果没有超出3NF的目标,则需要考虑的唯一依赖类型)是规则“AB-> CD”,其效果是对于我们的关系模式的任何有效值, IF 您对该关系值的{ABCD}进行关系投影,然后得到的关系值将是{AB}值的任何组合最多出现一次的关系值。这就是名称“功能”依赖性来源于:“AB-> CD”表示C和D值都是AB值组合的数学函数。相反,它表示AB组合是寻找单个C和D值的决定因素。将其应用于您的样本应该可以让您找到一些合理的FD,您的练习错误地期望您猜测。