作用是减小表的冗余。
防止插入删除更新异常。
第一、第二、第三、第四、BC范式。并且不是越高越好。
第一范式:1NF的定义为:符合1NF的关系中的每个属性都不可再分。表1
所示的情况,就不符合1NF的要求。
表1
实际上,1NF是所有关系型数据库的最基本要求,你在关系型数据库管理系统(RDBMS),例如SQL Server,Oracle,MySQL中创建数据表的时候,如果数据表的设计不符合这个最基本的要求,那么操作一定是不能成功的。也就是说,只要在RDBMS中已经存在的数据表,一定是符合1NF的。如果我们要在RDBMS中表现表中的数据,就得设计为表2
的形式:
第二范式:非联合主键的每一个属性都和联合主键的每个键都有关系。消除了非主属性对码的部份依赖。
第三范式:属性不依赖于其他的非主属性。例如:学生关系表为:学号 姓名 年龄 所在学院 学院电话 。其中学院电话依赖于所在学院不满足第三范式。应该把学生表和学院表单独作为一个表,是一对多的关系。一对多的关系时需要加一个外键子表关联父表的主键。