数据库规范化词汇

时间:2010-08-05 07:51:47

标签: database normalization

database normalization和网络上的Steve's Class上有很多或者材料。但是,我似乎仍然缺乏解释规范化的非常明确的理由。

例如,对于一个简单的设计,例如带有Type字段的表Item,将Type作为单独的表是有意义的。我为此转发的原因是,如果将来需要添加属性到Type,那么使用单独的表已经存在会更容易。

是否有更多理由可以证明是显而易见的?

4 个答案:

答案 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介绍了规范化的概念。用他自己的话说:

  
      
  1. 从不受欢迎的插入,更新和删除依赖项中释放关系集合;
  2.   
  3. 随着新类型数据的引入,减少重建关系集合的需要,从而延长应用程序的使用寿命;
  4.   
  5. 使关系模型对用户更具信息性;
  6.   
  7. 使查询统计信息的关系集合中立,这些统计信息随着时间的推移可能会发生变化。

         

    - E.F. Codd,“数据库关系模型的进一步规范化”

  8.   

Wikipedia:Database normalization

逐字逐句采取