您的位置:首页 > 数据库

数据库的第一、第二、第三范式、BCNF范式

2017-07-14 22:49 751 查看
参考资料:https://www.zhihu.com/question/24696366

第一范式:

数据库设计原则:

记录的每个属性只能包含一个值

关系中的每个记录必须包含相同数量的值

关系中的每个记录一定不能相同

        (1)可能出现重复学号的数据,大量冗余数据

        (2)每一行都非空,一些不确定的属性不能置null

        (3)删除学生数据,其它所有数据都不存在了

        (4)修改不方便,重复项太多

第二范式:避免了重复学号,但不同学号可能对应同样的姓名(重名)

引入了主键的概念,主键不可重复,凡是有主键的数据库都满足第二范式

图1主键:课名

图2主键:学号

使用了模式分解,修改映射关系

        (1)每一行都非空,一旦不确定学号,则无法添加数据

        (2)删除学生数据,其它所有数据都不存在了

第三范式:

满足第二范式,但是因为第二范式的“系主任”和“学号”直接没有依赖关系,“系主任”只和“系名”有依赖关系(出现了依赖传递),所以不满足第三范式,只有将表继续拆分。

凡是有主键、表中所有属性都和主键有直接依赖关系(没有依赖传递)的表都是第三范式

进一步模式分解,数据之间的依赖关系更加明确

BCDF范式

满足第三范式,且只能存在一种主键:学号、学生QQ号都可以做主键(都成为候选键),但要满足BCDF范式则必须去掉其中一个候选键,另外健表。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  数据库