数据库范式到底是怎么个回事
作者:网络转载 发布时间:[ 2015/1/21 13:43:59 ] 推荐标签:数据库
三、第三范式(3NF)
官方的说法不写了,简单来说是,某一列除了完全依赖于主键外,不能依赖于别的非主键的列,否则不符合第三范式了。比如下面的表四:
表四

上表中,主键是学号,我们知道导师办公室依赖于主键学号,但是同时也依赖于导师ID,因此不符合第三范式。可以通过拆分成下面两个表:表五和表六,符合第三范式。
表五

表六

说明:(1)3NF和2NF有点儿类似,2NF要求不能依赖于主键的一部分,而3NF要求不能依赖于除主键以外的列。
(2)之所以是要符合第三范式,是为了避免太多重复的内容,例如对于导师ID为12的,该表里面有两条重复的,以后如果ID为12的导师更换办公地址,那么需要对表中ID为12的导师办公地点全部进行更新,虽然数据量少的时候update一下花不了多长时间,可是万一有好多好多条,更新起来,估计死的心都有了。
BCNF、第四范式、第五范式,实在不想说了,真的感觉没什么用,当然如果为了防止被某些学术权威唬住,倒是可以学习学习。
后祝愿大家在三大范式的指导下,建的一手好表。
本文内容不用于商业目的,如涉及知识产权问题,请权利人联系SPASVO小编(021-61079698-8054),我们将立即处理,马上删除。
相关推荐
在测试数据库性能时,需要注意哪些方面的内容?测试管理工具TC数据库报错的原因有哪些?怎么解决?数据库的三大范式以及五大约束编程常用的几种时间戳转换(java .net 数据库)优化mysql数据库的几个步骤数据库并行读取和写入之Python实现深入理解数据库(DB2)缓冲池(BufferPool)国内三大云数据库测试对比预警即预防:6大常见数据库安全漏洞数据库规划、设计与管理数据库-事务的概念SQL Server修改数据库物理文件存在位置使用PHP与SQL搭建可搜索的加密数据库用Python写一个NoSQL数据库详述 SQL 中的数据库操作详述 SQL 中的数据库操作Java面试准备:数据库MySQL性能优化

sales@spasvo.com