database normalization和网络上的Steve's Class上有很多或者材料。但是,我似乎仍然缺乏解释规范化的非常明确的理由。
例如,对于一个简单的设计,例如带有Type字段的表Item,将Type作为单独的表是有意义的。我为此转发的原因是,如果将来需要添加属性到Type,那么使用单独的表已经存在会更容易。
是否有更多理由可以证明是显而易见的?
答案 0 :(得分:1)
检查这些:
答案 1 :(得分:0)
This文章说它比我更好:
规范化过程有两个目标:消除冗余数据(例如,将相同数据存储在多个表中)并确保数据依赖性有意义(仅将相关数据存储在表中)。这两个都是有价值的目标,因为它们减少了数据库消耗的空间量并确保数据以逻辑方式存储。
答案 2 :(得分:0)
规范化是在数据库中组织数据的过程。这包括根据设计的规则创建表并在这些表之间建立关系,以保护数据并通过消除冗余和不一致的依赖性使数据库更加灵活。
冗余数据会浪费磁盘空间并产生维护问题。如果必须更改存在于多个位置的数据,则必须在所有位置以完全相同的方式更改数据。如果该数据仅存储在Customers表中而数据库中没有其他地方存储,则更容易实现客户地址更改。
什么是“不一致的依赖”?虽然用户可以直观地在Customers表中查找特定客户的地址,但在那里寻找呼叫该客户的员工的薪水可能没有意义。员工的工资与员工相关或依赖于员工,因此应移至员工表。不一致的依赖关系会使数据难以访问,因为查找数据的路径可能会丢失或损坏。
以下链接非常有用:
http://support.microsoft.com/kb/283878
http://neerajtripathi.wordpress.com/2010/01/12/normalization-of-data-base/
答案 3 :(得分:0)
关系模型的发明者Edgar F. Codd介绍了规范化的概念。用他自己的话说:
逐字逐句采取
- 从不受欢迎的插入,更新和删除依赖项中释放关系集合;
- 随着新类型数据的引入,减少重建关系集合的需要,从而延长应用程序的使用寿命;
- 使关系模型对用户更具信息性;
- 醇>
使查询统计信息的关系集合中立,这些统计信息随着时间的推移可能会发生变化。
- E.F. Codd,“数据库关系模型的进一步规范化”