我正在学习学校的数据库,并且有一项必须执行规范化的任务。我对这个问题有很好的理解。我有一个我正在研究的项目,我需要对几个表执行规范化。我能够在几张桌子上做到这一点,但其他人我无法想到任何部分或传递依赖。我的问题是,每个表/实体是否需要进行规范化?
提前感谢您的回复。
答案 0 :(得分:1)
作为一般建议,您应该初始化数据库的初始设计。这意味着通过分解Boyce-Codd Normal Form或Fourth Normal Form中有问题的依赖关系来消除冗余(除非你失去一些依赖,在这种情况下你应该选择第三范式)。
当然,如果由于传递或部分依赖关系或多值依赖关系没有问题,你不应该触及它们,因为它们已经被标准化了。
然后,但仅如果需要,通过查看查询的性能,您可以非规范化,例如将不同的关系放在一起,接受有限的冗余,或修改异常;或拆分已经规范化的关系。这是因为你必须为增加的程序复杂性和更多的不一致风险付出代价,所以只有在绝对必要时才付钱。
答案 1 :(得分:0)
简短回答:是的,我建议至少去3NF。
答案很长:不,可能存在某些特定于应用程序的要求,这意味着您无法正常化。
由于您是一名学生,您可能不了解视图,因此可以在您认为“我需要规范化但却非常有意义”的地方使用它们。