【问题标题】:Database Normalization Vocabulary数据库规范化词汇
【发布时间】:2023-03-31 05:40:02
【问题描述】:

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

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

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

【问题讨论】:

  • 你从答案中得到了你想要的吗?

标签: database normalization


【解决方案1】:

【讨论】:

  • 第二个链接很棒,谢谢! (第一个链接坏了。)
【解决方案2】:

This 文章说得比我好:

规范化过程有两个目标:消除冗余数据(例如,将相同的数据存储在多个表中)和确保数据依赖关系有意义(仅将相关数据存储在一个表中)。这两个都是有价值的目标,因为它们减少了数据库消耗的空间量并确保数据的逻辑存储。

【讨论】:

    【解决方案3】:

    规范化是在数据库中组织数据的过程。这包括根据旨在保护数据和通过消除冗余和不一致的依赖性使数据库更加灵活的规则创建表并在这些表之间建立关系。

    冗余数据会浪费磁盘空间并造成维护问题。如果必须更改存在于多个位置的数据,则必须在所有位置以完全相同的方式更改数据。如果该数据仅存储在客户表中而不存储在数据库中的其他位置,则客户地址更改更容易实现。

    什么是“不一致的依赖”?虽然用户可以直观地在“客户”表中查找特定客户的地址,但在该表中查找拜访该客户的员工的工资可能没有意义。员工的工资与员工相关或依赖于员工,因此应移至员工表。不一致的依赖关系会使数据难以访问,因为查找数据的路径可能丢失或损坏。

    以下链接可能很有用:

    http://support.microsoft.com/kb/283878

    http://neerajtripathi.wordpress.com/2010/01/12/normalization-of-data-base/

    【讨论】:

      【解决方案4】:

      关系模型的发明者 Edgar F. Codd 引入了规范化的概念。用他自己的话说:

      1. 将关系集合从不需要的插入、更新和删除依赖项中解放出来;
      2. 随着新类型数据的引入,减少重新构建关系集合的需要,从而延长应用程序的生命周期;
      3. 使关系模型为用户提供更多信息;
      4. 为了使关系集合对查询统计信息保持中立,这些统计信息可能会随着时间的推移而发生变化。

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

      逐字逐句取自Wikipedia:Database normalization

      【讨论】:

        猜你喜欢
        • 2012-10-08
        • 2012-06-21
        • 2013-01-18
        相关资源
        最近更新 更多