面试总结:关于数据库范式的一点理解

72 篇文章 0 订阅
14 篇文章 0 订阅

关于数据库范式的一点浅显的理解

因为看不懂复杂的定义和概念,只能写几个小例子记录下来。作者纯小白,如果有错误还请指正~

  • 1NF 原子项,不可再分
  • 2NF 非主键要绝对依赖主键,消除部分依赖
  • 3NF 不包含其它表中的非主键信息

1 NF

每一个属性都是原子项,不能再分割。下面这个例子中,联系方式可再分为email和tel,所以不满足1NF

ID姓名年龄联系方式
1asdf18email:111@qq.com; tel:183000
2qwerty24email:222@qq.com; tel:183111

2 NF

非主键要依赖于主键。下面举个反例

ID教师名课程教材
1asdfjava《java从入门到放弃》
2qwertypython《python实战》
3zxcv树莓派《树莓派蓝图权威宝典》

在这个表中,主键是ID,但是教材不依赖于主键,而是依赖与课程。也就是说,主键ID不能唯一地决定教材,所以说教材部分依赖于主键。2NF就是要消除这个部分依赖。

应当把课程和教材拿出来单独成立一个表

课程教材
java《java从入门到放弃》
python《python实战》
树莓派《树莓派蓝图权威宝典》

3 NF

数据表中不能包含其它表的非主键信息。

表1:

部门ID部门名部门简介


表2:

员工ID部门ID部门名部门简介

表2中,就包含了表1中的非主键信息:部门名、部门简介。

这里写图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值