0
点赞
收藏
分享

微信扫一扫

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

洲行 2022-08-23 阅读 72


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

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

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

1 NF

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

ID

姓名

年龄

联系方式

1

asdf

18

email:111@qq.com; tel:183000

2

qwerty

24

email:222@qq.com; tel:183111

2 NF

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

ID

教师名

课程

教材

1

asdf

java

《java从入门到放弃》

2

qwerty

python

《python实战》

3

zxcv

树莓派

《树莓派蓝图权威宝典》

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

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

课程

教材

java

《java从入门到放弃》

python

《python实战》

树莓派

《树莓派蓝图权威宝典》

3 NF

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

表1:

部门ID

部门名

部门简介





表2:

员工ID

部门ID

部门名

部门简介





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


举报

相关推荐

0 条评论