• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

轻松理解数据库三范式

mysql 搞代码 4年前 (2022-01-09) 22次浏览 已收录 0个评论

轻松理解数据库三范式 官方定义:第一范式(1NF):数据库表中的字段都是单一属性的,不可再分。 我的理解:第一范式这个不用說了,只要是关系数据库都满足第一范式 官方定义:第二范式(2NF):数据库表中不存在非关键字段对任一候选关键字段的部分函数依赖

轻松理解数据库三范式

官方定义:第一范式(1NF):数据库表中的字段都是单一属性的,不可再分。

我的理解:第一范式这个不用說了,只要是关系数据库都满足第一范式

官方定义:第二范式(2NF):数据库表中不存在非关键字段对任一候选关键字段的部分函数依赖

我的理解:在第二范式中组合主键(AB)【注明:也叫做复合主键】里面的A或者B 与其他字段不能存在组合重复,为解决这个问题,通常的做法是咱们不用组合主键,添加一个ID,做为单一主键即可满足第二范式。如果不想添加ID,请满足组合主键(AB)里面的A或者B 与其他字段不能存在组合重复。

如:不满足第二范式,复合主键中的A与字段C组合重复

+————+———–+——————-+

pk pk row

+————+———–+——————-+

A B C

+————+———–+——————-+

A D C

+————+———–+——————-+

A E C

+————+———–+——————-+

改为这样满足第二范式(但是不满足第三范式,字段A与字段C是组合重复):

+———+————+———–+——————-+

pk row row row

+———+————+———–+——————-+

1 A B C

+———+————+———–+——————-+

2 A D C

+———+————+———–+——————-+

3 A E C

+———+————+———–+——————-+

官方定义:第三范式(3NF):在第二范式的基础上,数据表中如果不存在非关键字段对任一候选关键字段的传递函数依赖则符合第三 范式。

我的理解:在第三范式中字段与字段之间不能存在组合重复

如:不满足第三范式,字段A与字段C组合重复

+———+————+———–+——————-+—————+

pk row row row row

+———+————+———–+——————-+—————+

1 A B C F

+———+————+———–+——————-+—————+

2 A D C G

+———+————+———–+——————-+—————+

3 A E C

本文来源gaodai^.ma#com搞#代!码网

K

+———+————+———–+——————-+—————+

改为这样满足第三范式:

表1

+———+————+———–+

pk row row

+———+————+———–+

1 A B

+———+————+———–+

2 A D

+———+————+———–+

3 A E

+———+————+———–+

和表2

+———+——————-+————+

pk row row

+———+——————-+————+

1 C F

+———+——————-+————+

2 C G

+———+——————-+————+

3 C K

+———+——————-+————+

原则:当出现字段与字段的组合重复,如上的A和C的组合重复,首先要考虑的就是把他们拆分为2个表,具体是C拆到表1, 还是A拆到表1,看情况而定.

关键要理解定义这种范式标准的主要目的是为了减少数据冗余,数据冗余产生的本质就是在一个表中存在字段与字段之间的一对多,或者多对多关系。解决这个几对几的关系问题,就能轻易实现满足第三范式的数据库设计。


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:轻松理解数据库三范式

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址