ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

数据库的三范式

2021-02-05 10:58:12  阅读:169  来源: 互联网

标签:范式 数据库 满足 主键 学院 电话号码 第二


在数据库设计的时候,为了使数据库简洁,清晰,而且在使用的时候不会出现一些异常情况,我们需要满足一些范式。

第一范式1NF

第一范式最重要的要求就是:字段不能分割,也就是原子性
怎么理解这句话呢?
举个例子,如果一个字段为电话号码,显然它还可以分为手机号码,固定电话号码,这就不满足字段不可分割原则。
这样就很容易造成异常情况,当需要拨打电话的时候如果这个电话号码是手机号码,可以直接拨打,但如果是固定电话号码,那就要加上区号。

第二范式2NF

第二范式是第一范式的子集
凡是满足第二范式的,一定满足第一范式。
相比第一范式,第二范式多了一个主键,其他字段都依赖于主键。
主键要具有唯一性,比如说姓名就不能作为主键,因为有很多重名的人,但身份证号码就可以作为主键,因为没有两个人的身份证号码是一样的。

第三范式3NF

第三范式是在第二范式基础上产生的,
满足第三范式的,一定满足第二范式。
第三范式(3NF)要求一个数据库表中不包含已在其它表中已包含的非主键字段,也就是要消除传递依赖,方便理解,可以看做是“消除冗余”。
因此,第三范式往往会将一张表拆成多张表。
举个例子,

姓名性别学号学院学院地址

按照第二范式,我们可以将学号作为主键。
那样,姓名、性别、学院都依赖于主键,但学院地址呢,就依赖学院(非主键),就不满足第三范式。
不妨将它拆成两个表:

姓名性别学号学院编号
学院编号学院学院地址

这里就消除了非主键之间的关系了。

标签:范式,数据库,满足,主键,学院,电话号码,第二
来源: https://blog.csdn.net/lijf2001/article/details/113680001

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有