数据库三范式

第一范式:有主键,原子性。

在阐述第二范式之前先阐述一下我对依赖的理解,依赖即一个属性值可以由另一个的值决定,因为主键可以唯一的标识一条记录,因此一条记录中任何非主键属性都由依赖于主键(由主键的设计定义即可得知这种关系),即主键一定,属性值也都定了,但是属性与属性之间也可能出现依赖现象,因此便有了传递依赖以及部分依赖,而第二范式,第三范式就是为了解决这种现象。

第二范式:避免部份依赖。多对多关系冗余在一张表中,为了满足第一范式出现了复合主键,会出现部分依赖情况。解决方案:三张表,A表、B表、关系表。

一个学生有多名老师,一名老师有多位学生。这个表中复合主键是学生ID+教师ID,主键出现决定了元组每个属性的值,但是学生姓名其实是由主键的组成部分学生ID决定的,教师姓名其实是由主键的组成部分教师ID决定的,产生了部分依赖。

第三范式:满足前两个范式的条件下,避免传递依赖。出现在多对一关系。解决方案:两张表,多加外键。(一间教室包含多名同学,同学就是多的那方,在其表中加外键)

一名学生对应一个教室,一间教师对应多名同学。此时主键不是复合主键因此不存在部分依赖,因此满足1第二范式,但是一年一班依赖于班级编号,班级编号依赖于学生编号,即传递依赖。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值