数据库表设计之范式解析

来源:互联网 发布:国民女团网络电影下载 编辑:程序博客网 时间:2024/05/24 07:18
数据库表设计(3 Nomal Format )
1:概述
范式:Nomal Format 是一种离散数学中的知识,是为了解决数据的存储于优化的问题,保存数据的存储之后,凡是能够通过关系寻找出来的数据,坚决不再重复存储,作用是为了减少数据的冗余
目前关系数据库有六种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、巴斯-科德范式(BCNF)、第四范式(4NF)和第五范式(5NF,又称完美范式)。满足最低要求的范式是第一范式(1NF)。在第一范式的基础上进一步满足更多规范要求的称为第二范式(2NF),其余范式以次类推。一般说来,数据库只需满足第三范式(3NF)就行了。
2:范式的分类(1NF-2NF-3NF)
1:第一范式
1NF是对属性的原子性约束,要求属性(列)具有原子性,不可再分解;(只要是关系型数据库都满足1NF) 只有数据库是关系型数据库(mysql/oracle/db2/informix/sysbase/sql server),只要设计的是二维表就自动的满足1NF
2:第二范式
2NF是对记录的惟一性约束,要求记录有惟一标识,即实体的惟一性; 通常设置一个主键(id,不含业务逻辑)满足表的记录是唯一的
3:第三范式
1:3NF是对字段冗余性的约束,它要求字段没有冗余。 没有冗余的数据库设计可以做到。
2:但是,没有冗余的数据库未必是最好的数据库,有时为了提高运行效率,就必须降低范式标准,适当保留冗余数据。具体做法是: 在概念数据模型设计时遵守第三范式,降低范式标准的工作放到物理数据模型设计时考虑。降低范式就是增加字段,允许冗余。
3:如果能够被推导出来,就不应该单独的设计一个字段来存放. 比如下面的设计就是不满足3NF:

4:反三范式
没有冗余的数据库未必是最好的数据库,有时为了提高运行效率,就必须降低范式标准,适当保留冗余数据。具体做法是: 在概念数据模型设计时遵守第三范式,降低范式标准的工作放到物理数据模型设计时考虑。降低范式就是增加字段,允许冗余。

原创粉丝点击