开发者社区> 郭璞> 正文

数据库设计原则之三大范式

简介: 首先声明,本文为笔记记录。可能不适合作为博客文章,所以如果看着不舒服,还望“另请高明”,(^__^) 嘻嘻…… 数据库设计的时候有三大范式,现简述如下: 第一范式(1NF): 原子性,数据不可再分 原则就是使得表列为原子性,每一个字段内容不能再分解。
+关注继续查看

首先声明,本文为笔记记录。可能不适合作为博客文章,所以如果看着不舒服,还望“另请高明”,(^__^) 嘻嘻……

数据库设计的时候有三大范式,现简述如下:

第一范式(1NF): 原子性,数据不可再分

原则就是使得表列为原子性,每一个字段内容不能再分解。

第二范式(2NF):唯一性,消除部分依赖

第二范式要求满足如下两个要求,

每一行数据具有唯一性

这一点,只要是有主键就可以实现。因为主键的存在使得每一行数据都具有唯一性。

消除数据之间的部分依赖

依赖的定义:主键确定了其他字段,其他字段依赖于主键而存在。

部分依赖: 某个字段值依赖于部分字段,则发生这种现象的前提是该表主键位置拥有多个字段。

完全依赖: 某个字段完全依赖与主键的所有字段。当一个表的主键仅有一个字段时,必然是完全依赖。

解决办法:

将部分依赖转换成完全依赖,拆表!

将原来存在部分依赖的表拆分,简单来说就是该表主键有几个字段,就拆成(几个+1)的表,前几个字段将分别作为其所在表的唯一主键,即成为完全依赖模式。最后一个表为之前的那几个字段并存的联合主键。用于维护表与表之间的关系。

第三范式(3NF):独立性,消除传递依赖

也就是说,有些字段的值能够使用现有的表列来计算得出,这样的字段就属于冗余字段,会产生传递依赖现象。

解决办法

将传递依赖部分提取出来,拆表!

将原来的表中存在传递依赖的字段提取出来,新建一个表。该新表的主键即为原表中被依赖的那个字段。此字段在原来的表中将作为外键而存在。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
数据库的设计规范(1)
数据库的设计规范(1)
52 0
数据库的设计模式之三大范式和反三范式
数据库的设计模式之三大范式和反三范式
84 0
数据库的三大范式
当你应聘后端岗位的时候,数据库的知识必不可少,今天给大家分享一下数据库三大范式的通俗理解
37 0
数据库技术-数据库范式介绍
数据库技术-数据库范式介绍
69 0
数据库“三大范式”及“事务性”详解
数据库“三大范式”及“事务性”详解
93 0
【数据库】数据库设计之数据库设计过程(二)
数据库设计之数据库设计过程(二)
59 0
数据库分库分表扫盲,不会用也得知道概念
分库分表故名思意是将一张表拆分成多个表,可能是一个库中的分表,也可能是分库又分表。分库分表主要解决的问题是数据库的性能瓶颈问题。即使建立索引,当数据量超过一定值时,查询效率就注定会降下来。通过分库分表,可以将原本的大数据拆分到多个表或者库中。
185 0
数据库软件架构设计些什么
缘起:受@萧田国 萧总邀请,上周五晚上在“高效运维1号群”内分享了《58同城数据库软件架构设计与实践》(这个topic今年在数据库大会上分享过),应组织方要求,发出纪要。
691 0
+关注
郭璞
一切就交给时间,它会给我答案。
文章
问答
文章排行榜
最热
最新
相关电子书
更多
阿里云瑶池数据库精要2022版
立即下载
分析性数据库2.0深入技术解析
立即下载
重新出发:阿里云数据库开源整体策略
立即下载