关系数据库规范化(范式)


layout: post

title: 关系数据库规范化(范式)

categories: JAVA

description: 关系数据库规范化(范式)

keywords: JAVA


定义:规范化是为了解决数据库中数据的插入、删除、修改异常等问题的一组规则。

如果一个关系模式的所有属性都是不可分的基本数据项,则R∈1NF。简单的说,就是每一个列(属性),不能再分割成多个列(属性)。
第一范式(First Normal Form,1st NF)就是指在同一表中没有重复项出现,如果有则应将重复项去掉。这个去掉重复项的过程称为规范化处理。按规范化建立的指标体系和表的过程,都自动保证所有表都满足1st NF。

第二范式(Second Normal Form,2nd NF)是指每个表必须有一个(而且仅有一个)数据元素为主关键字(Primary key),其他数据元素与主关键字一一对应。通常称这种关系为函数依赖(Functional dependence)关系,即表中其他数据元素都依赖于主关键字,或称该数据元素惟一地被主关键字所标识。第二范式是数据库规范化中所使用的一种正规形式。它的规则是要求数据表里的所有非主属性都要和该数据表的主键有完全依赖关系;如果有哪些非主属性只和主键的一部份有关的话,它就不符合第二范式。同时可以得出:如果一个数据表的主键只有单一一个字段的话,它就一定符合第二范式(前提是该数据表符合第一范式)

第三范式(Third Normal Form,3rd NF)就是指表中的所有数据元素不但要能惟一地被主关键字所标识,而且它们之间还必须相互独立,不存在其他的函数关系。也就是说,对于一个满足2nd NF 的数据结构来说,表中有可能存在某些数据元素依赖于其他非关键字数据元素的现象,必须消除。

你可能感兴趣的:(关系数据库规范化(范式))