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

Database 什么是规范化?为什么在DBMS中使用它?,database,computer-science,normalization,rdbms,database-normalization,Database,Computer Science,Normalization,Rdbms,Database Normalization,我想知道什么是规范化,有什么样的范式。 这也是为什么在datbase中使用它?非常简单,规范化的目的是避免数据冗余,只存储一次可以被许多人引用的不同信息,创建不同类型的数据关系,如一对一、一对多、多对多。规范化 如果数据库设计不完美,它可能包含异常,这对于任何数据库管理员来说都是一个噩梦。管理异常数据库几乎是不可能的。以下是异常的类型 更新异常 删除异常 插入异常 更新异常:- If data items are scattered and are not linked to each ot

我想知道什么是规范化,有什么样的范式。
这也是为什么在datbase中使用它?

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

规范化

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

  • 更新异常
  • 删除异常
  • 插入异常
  • 更新异常:-

      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.
    

    这是一个广泛的问题,有许多可供解释的来源。你可以从这里开始,例如:这是一个重复的问题。