开发者社区> 郭璞> 正文

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

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

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

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

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

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

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

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

每一行数据具有唯一性

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

消除数据之间的部分依赖

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

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

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

解决办法:

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

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

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

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

解决办法

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

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

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

相关文章
【数据库】02——关系模型是什么东东
【数据库】02——关系模型是什么东东
12 0
架构设计:数据库三范式
作为领域模型设计,最重要的就是数据库设计了,而我们往往遵循的就是三范式了,虽然有很多人已有了解,但作为非常重要的知识点之一,这里我们可以再回顾一下。
19 0
数据库的设计规范(1)
数据库的设计规范(1)
138 0
数据库的设计模式之三大范式和反三范式
数据库的设计模式之三大范式和反三范式
127 0
数据库的三大范式
当你应聘后端岗位的时候,数据库的知识必不可少,今天给大家分享一下数据库三大范式的通俗理解
48 0
数据库技术-数据库范式介绍
数据库技术-数据库范式介绍
105 0
数据库“三大范式”及“事务性”详解
数据库“三大范式”及“事务性”详解
117 0
【数据库】数据库设计之数据库设计过程(二)
数据库设计之数据库设计过程(二)
68 0
数据库分库分表扫盲,不会用也得知道概念
分库分表故名思意是将一张表拆分成多个表,可能是一个库中的分表,也可能是分库又分表。分库分表主要解决的问题是数据库的性能瓶颈问题。即使建立索引,当数据量超过一定值时,查询效率就注定会降下来。通过分库分表,可以将原本的大数据拆分到多个表或者库中。
198 0
+关注
郭璞
一切就交给时间,它会给我答案。
文章
问答
视频
文章排行榜
最热
最新
相关电子书
更多
数据库2025 V3
立即下载
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载