数据库三范式的一些定义及理解

认识范式

范式是数据库的理论基础,也是设计数据库结构过程中要遵循的规则和指导方法,基本范式有:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、巴斯-科德范式(3.5范式或BCNF)、第四范式(4NF)

第一范式(1NF)

第一范式的数据表必须是二维数据表,每一列都是不可再分割的基础数据,强调列的原子性,某一属性不能拥有几个值;同一列的类型相同,行的上下关系互不影响。
举🌰:

姓名ID生日职业
张三0011996/2/14职业规划师
李四0021997/2/16自由职业者、画家
王五0031996/3/15数据分析师

*李四职业同时有两个不符合第一范式

第二范式(2NF)

第二范式建立在第一范式的基础上,要求数据表每一个实例或者行必须被唯一标识。除满足第一范式外还有两个条件:一是表必须有一个主键;二是没有包含在主键中的列必须完全依赖于主键,而不能只依赖于主键的一部分。

非主属性与主属性:在关系中,由一组属性决定另一组属性,即为超键。候选健集合中的属性为主属性,非候选键集合中的属性为非主属性。
比如,身份证号和姓名可以决定性别,(姓名,身份证号}为超键;其中身份证号这一单一属性即可决定性别,则姓名为多余属性,{身份证号}为候选键,主属性。
完全依赖与部分依赖:完全依赖是指不能存在仅依赖于主关键字一部分的属性,如果存在,则该属性与主关键字的这一部分应该分离出来形成一个新的实体,新实体与原实体之间是一对多的关系。

简单来说,就是要消除非主属性对主属性的部分依赖

举🌰:

姓名性别生日职业城市id城市城市人数
张三1996/2/14职业规划师001北京2600
李四1997/2/16画家002上海2500
王五1996/3/15数据分析师002上海2500

城市人数(非主属性)部分依赖于姓名(主属性)
城市id城市都可以决定城市人数

*拆分为以下即可

姓名性别生日职业
张三1996/2/14职业规划师
李四1997/2/16画家
王五1996/3/15数据分析师

城市id城市城市人数
001北京2600
002上海2500

第三范式(3NF)

第三范式在第二范式的基础上,要求消除非主属性对候选键的传递依赖

举🌰:

学号姓名所在系系地址
001张三计算机地址1
002李四自动化地址2
003王五自动化地址2

主属性
学号
非主属性
姓名、所在系、系地址

*通过学号可以得出系地址
学号得出所在系所在系得出系地址

拆分为以下即可:

学号姓名所在系
001张三计算机
002李四自动化
003王五自动化
所在系系地址
计算机地址1
自动化地址2

总结
1NF:列的原子性,保证表的每一列都不可再分割
2NF:在1NF的基础上,非关键字段必须依赖唯一的主键
3NF:在2NF的基础上,表中的每一列键都和主键直接相关,不能存在传递依赖

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值