数据库设计范式的总结

一、1NF:原子性(不可再分)
1NF是指数据库表的每一列都是不可分割的基本数据项,同一列中不能有多个值,即实体中的某个属性不能有多个值或者不能有重复的属性。即表中每一个属性都具有原子性,表上面没有相同的列。1NF是关系模式的基本要求,数据库必须满足1NF


二、2NF:排他性(完全依赖)
在满足1NF的条件下,2NF要求实体的属性完全依赖于主关键字,不能存在仅依赖主关键字一部分的属性。即每个非主属性是由整个主键函数决定的,而不能由主键的一部分来决定。
例如博客积分表 Goals(ID,姓名,年龄,博客地址,积分),主键为符合关键字(ID,博客地址)
因为存在如下决定关系:
  (ID, 博客地址) → (姓名, 年龄, 博客地址, 积分)   
这个数据库表不满足第二范式,因为存在如下决定关系:   
(博客地址) → (积分)   
(ID) → (姓名, 年龄)
由于积分这一属性并不是由整个主键决定的,所以不满足2NF

三、3NF:消除间接依赖
3NF必须先满足2NF,其次非主属性之间不存在函数依赖。由于满足了第二范式,表示每个非主属性都函数依赖于主键。如果非主属性之间存在了函数依赖,就会存在传递依赖,这样就不满足3NF。
例如学生关系表为Student(ID, 姓名, 年龄, 宿舍, 宿舍电话),
关键字为单一关键字"ID",因为存在如下决定关系:   
(ID) → (姓名, 年龄, 宿舍, 宿舍电话)   
这个数据库是符合2NF的,但是不符合3NF,因为存在如下决定关系:  (ID) → (宿舍) → (宿舍电话)   
即存在非关键字段"宿舍电话"对关键字段"学号"的传递依赖。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值