日期:2014-05-16  浏览次数:20403 次

简述数据库三范式

一、1NF:字段不可分;
二、2NF:有主键,主键与非主键间不存在部分函数依赖;

三、3NF:非主键字段间不存在传递依赖;

?

解释:

一、表:字段1, 字段2(字段2.1, 字段2.2), 字段3 ......

dbms设计不出这样的表

?

二、指的是联合主键的情况。非主键字段不能仅依赖联合主键的一部分。即所有非主键字段要完全依赖于一组联合主键。

不满足第二范式会出现的问题:

?

表:项目名 项目经理 --> 项目描述 框架结构 电话 家庭住址

?

数据冗余:如果一个项目经理可以同时带多个项目,每条记录都含有相同的项目经理的信息;
删除异常:删除所有项目,同时项目经理信息也没了;
插入异常:没有项目,无法记录项目经理信息;
更新异常:调整项目经理信息,所有行都调整。

?

解决办法:

将部分依赖的主键和非主键元素提出来单独成立一张表,在多的那方加外键。如果为多对多可以加入一张关系表。

?

注:所有但关键字表都满足第二范式

?

三、不能存在关键字段 → 非关键字段x → 非关键字段y
问题同第二范式