前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >系统设计之数据库范式

系统设计之数据库范式

作者头像
赵腰静
发布2018-03-09 15:03:48
1.2K0
发布2018-03-09 15:03:48
举报
文章被收录于专栏:程序猿程序猿

在设计数据库时,必须遵守一定的规则,在关系数据库中,就是范式。

字数虽少,信息量大。

什么是范式呢?(这个概念可忽略,说白了,就是个规则)是某一级别的关系模式的集合,在关系数据库中应该满足一定的要求,不同的范式对关系的属性值集合的函数以来不一样。

范式的有以下几种,第一范式(1NF),第二范式(2NF),第三范式(3NF),Boyce-Codd范式(BCNF),第四范式(4NF),第五范式(5NF),第六范式(6NF)。

规范化是从低一级的关系模式通过模式分解转化成高一级的关系模式。

第一范式是对关系模式的基本要求,不满足第一范式的数据库就不是关系型数据库。

第一范式通俗的讲所有非主码属性完全依赖与主码,完全依赖是什么意思的,就是函数里y=f(x)的关系。x决定y的值。非主码属性由主码推出来。

第二范式

第一范式到第二范式是消除了部分函数依赖。

部分函数依赖,故名肆意,在一张表中

主键

非主键1

非主键2

非主键组A

非主键组A

非主键A

注:(主键不一定是只有一个,只有一个的时候,会在表中进行unique关键字说明)

注:(消除部分函数依赖,表中存在非主码组或者非主键组,其中的依赖与主键或主码,其中的不依赖,这样的例子在生活中很多,消除其中的不依赖主码的非主码,就是消除部分函数依赖的过程,也就是从第一范式向第二范式过度)

第三范式

第二范式向第三范式转化,是消除非主码对主码的传递函数依赖,传递函数依赖,就是y=f(x),x=f(z);所以就是y=f(f(z));y最后依赖z,这就是传递依赖。

主码组

主码组

非主码2

非主码3

非主码4

身份证

你名字

你家

物业

物业电话

身份证是主键,在这里,你的身份证和你的名字去确定了唯一确定你,你的家这个属性依赖于你,你所在的物业,但是电话和地址是物业的属性,能推断出来,这存在传递函数依赖,消除之后便是第三范式的标准。

一般的关系型数据库符合第三范式就可以了。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2016-07-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据库SQL 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档