数据库范式理解

来源:互联网 发布:ipad软件助手 编辑:程序博客网 时间:2024/04/29 11:54

1、第一范式

     列不可再分,在关系型数据库设计的最低标准。2层意思,一是列不再分;二是列不能重复;

2、第二范式
    在一范式的基础上,非主属性对主属性要完全依赖,不允许部分依赖。其实可以用唯一性约束来理解,就是主键唯一决定了其它非主属性。 如果不能唯一决定的,如成绩表(学生、课程、得分、教材),教材被课程部分决定。那就违反第2范式。多个学生选课就会重复多次,没学生选课,你就不知道这门课用的哪个教材。

3、第三范式

    在二范式的基础上,非主属性间不无传递依赖。如学生(学生号,身高、体重、院系,院地址,院电话)

    其中院系决定了地址和电话。这就是传递依赖了。

4、BC范式

    在三范式基础上,主属性间无依赖。如库存(物品id,仓库,数量,仓库管理员)其中在一个仓库中物品id唯一。则仓库id和物品id是主键,一个仓库一个仓库管理员,仓库管理员和物品id也是主键,但是仓库id决定了仓库管理员。所以不符合BC范式。

    完全考虑范式来设计出来的数据库是不能用的,但是不了解范式设计出来的数据库更糟,现实中我们是权衡利弊来处理的。

原创粉丝点击