关系数据库设计的方法之一就是满足适当范式的模式,通常可以通过判断分解后的模式达到几范式来评价规范化的程度。这样,不仅有助于对数据库进行相应的存取操作,还可以极大简化应用程序中的其他内容(查询、窗体、报表、代码等)。
范式:英文名称是 Normal Form,它是英国人 E.F.Codd(关系数据库的老祖宗)在上个世纪70年代提出关系数据库模型后总结出来的,范式是关系数据库理论的基础,也是我们在设计数据库结构过程中所要遵循的规则和指导方法。目前有迹可寻的共有8种范式,依次是:1NF,2NF,3NF,BCNF,4NF,5NF,DKNF,6NF。通常所用到的只是前三个范式,即:第一范式(1NF),第二范式(2NF),第三范式(3NF)。下面就简单介绍下这三个范式。
1NF(第一范式)
第一范式是指数据库表中的每一列都是不可分割的基本数据项,同一列中不能有多个值,即实体中的某个属性不能有多个值或者不能有重复的属性。
如果出现重复的属性,就可能需要定义一个新的实体,新的实体由重复的属性构成,新实体与原实体之间为一对多关系。第一范式的模式要求属于值不可分裂成更小部分,即属性项不能是属于组合或是由一组属性构成。
1NF的限定条件如下:
1.每个列必须有一个唯一的名称
2.行和列的次序无关紧要
3.每一行都必须有单个数据类型
4.不允许包含相同值的两行
5.每一列都必须包含一个单值(一个列不能保存多个数据值)
6.列不能包含重复的组
第一范式会存在更新、删除和插入异常
2NF(第二范式)
第二范式(2NF)是在第一范式(1NF)的基础上建立起来的,即满足第二范式(2NF)必须先满足第一范式(1NF)。第二范式(2NF)要求数据库表中的每个实例或行必须可以被唯一地区分。为实现区分通常需要为表加厚桑一列,以存储各个实例的唯一标识。
如果关系模型R为第一范式,并且R中的每一个非属性完全函数依赖于R的某个候选键,则称R为第二范式模式(如果A是是关系模式R的候选键的一个属性,则称A是R的主属性,否则称A是R的非主属性)。
2NF的限定条件如下:
1.它符合第一范式
2.所有的非键值字段均依赖于所有的键值字段
第二范式也会存在更新、删除和插入异常。
3NF(第三范式)
如果关系模型R是第二范式,且每个非主属性都不传递依赖于R的候选键,则称R是第三范式的模式。
3NF的限定条件如下:
1. 符合2NF
2. 不包含传递相关性(即,一个非键值字段的值依赖于另一个非键值字段的值)。
第二范式(2NF)和第三范式(3NF)的概念容易混淆,区分它们的关键点在于,2NF:非主键列是否完全依赖于主键,还是依赖于主键的一部分;3NF:非主键列是直接依赖于主键,还是直接依赖于非主键列。
¥29.90
¥199.00
¥199.00
¥48.00¥180.00
¥798.00
¥48.00¥180.00