什么是规范化?为什么它在DBMS中使用?

时间:2015-08-18 15:18:42

标签: database computer-science normalization rdbms database-normalization

我想知道什么是规范化,那里有什么类型的普通形式。 还有为什么它在数据库中使用?

2 个答案:

答案 0 :(得分:1)

非常简单,规范化的目的是避免数据冗余,存储一次可以被许多人引用的每个不同信息,创建不同类型的数据关系,如一对一,一对多,多对多

答案 1 :(得分:1)

正常化

如果数据库设计不完美,它可能包含异常,这对任何数据库管理员来说都是一个糟糕的梦想。管理具有异常的数据库几乎是不可能的。以下是异常类型。

  1. 更新异常
  2. 删除异常
  3. 插入异常
  4. 更新异常: -

      If data items are scattered and are not linked to each other properly, 
    
    然后它可能导致奇怪的情况。例如,当我们尝试更新一个数据项,其副本分散在多个位置时,一些实例会正确更新,而其他几个实例会保留旧值。此类实例使数据库处于不一致状态。

    删除异常: -

    我们试图删除一条记录,但由于没有意识,部分内容未被删除,数据也会保存在其他地方。

    插入异常: -

    我们尝试在根本不存在的记录中插入数据。

    规范化是一种删除所有这些异常并使数据库处于一致状态的方法。

    第一范式

    第一范式在关系(表)本身的定义中定义。此规则定义关系中的所有属性必须具有原子域。原子域中的值是不可分割的单位。

    第二范式

    如果我们遵循第二范式,那么每个非素数属性应完全在功能上依赖于主键属性。也就是说,如果X→A成立,则不应该有任何适当的X子集Y,Y→A也适用于此。

    第三范式

    对于处于第三范式的关系,它必须是第二范式,并且以下必须满足 -

    * No non-prime attribute is transitively dependent on prime key attribute.
    
    * For any non-trivial functional dependency, X → A, then either −
    
           X is a superkey or,
    
           A is prime attribute.