数据库三大范式

数据库设计三大范式

为了建立冗余较小、结构合理的数据库,设计数据库时必须遵循一定的规则。在关系型数据库中这种规则就称为范式。范式是符合某一种设计要求的总结。要想设计一个结构合理的关系型数据库,必须满足一定的范式。

最常用的有三大范式 1NF 2NF 3NF

一.第一范式(确保每列保持原子性)

属性为原子性,不可拆分 或 无重复的列(通俗的说就是列不能再次划分) ,简单的表都属于第一范式。

二 .第二范式(属性完全依赖于主键)确保一个表只说明一个事物

函数依赖和完全依赖

所谓完全依赖是指不能存在仅依赖主关键字一部分的属性(设有函数依赖

W→A,若存在XW,有X→A成立,那么称W→A是局部依赖,否则就称

W→A是完全函数依赖)。如果存在,那么这个属性和主关键字的这一部

分应该分离出来形成一个新的实体,新实体与原实体之间是一对多的关

系。

部分函数依赖,就是多个属性决定另一个属性,但事实上,这多个属性是

有冗余的。例如,(学号,班级)->姓名,事实上,只需要学号就能决定

姓名,因此班级是冗余的,应该去掉。

重点详例:判断条件:

表:学号、课程号、姓名、学分;

这个表明显说明了两个事务:学生信息, 课程信息;由于非主键字段必须依赖

主键,这里学分依赖课程号,姓名依赖与学号,所以不符合二范式

满足第二范式的数据库设计必须先满足第一范式。

因此第二范式的目标就是消除函数依赖关系中左边存在的冗余属性。

三 .重点内容第三范式(非主键字段不能相互依赖)每列都与主键有直接关系,不存在传递的依赖

第三范式需要确保数据表中的每一列数据都和主键直接相关,而不能间接相关

也就是,数据库中的属性依赖仅能依赖于主属性,不存在于其他非主属性的关联。

重点详例:例如,图书,图书室的关系。图书包括编号、出版商、页码等信息,图书

室包括图书室编号、所存图书(外键)。其中,图书室的表中不应该存储

任何图书的具体信息(例如,出版商。。),而只能通过主键图书编号来

获得对应图书的信息。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值