博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mysql 三大范式【转载】
阅读量:5909 次
发布时间:2019-06-19

本文共 786 字,大约阅读时间需要 2 分钟。

第一范式(1NF,normal format):字段不能再分。

这是字段的原子性。例如:字段“学期时间”:2014-9-1,2015-1-15。 这个字段“学期时间”可以再分为“学期开始时间”,2014-9-1;和“学期结束时间”,2015-1-15。
 
第二范式(2NF):范式是递增的,要满足第二范式,必须满足第一范式!2NF要求字段对主键没有部分依赖!
 
先说部分,有部分说明主键是复合主键。来个彻底的解决办法就是,让主键不是复合主键,即让主键是一个字段!
 
再说依赖,依赖是通过一个字段能确定另一字段,我们就说被确定的字段对确定它的字段有依赖。比如:知道了“名字”字段,便能确定“性别”字段。我们就说“性别”字段对“名字”字段有依赖。 
 
最后连起来解释部分依赖,记录中某些字段的值只是被复合主键中的某个值确定了,我们就说字段对主键有部分依赖。
 
做法:只要给表一个“id”字段,并设置自动增长,便可。其实就是取消掉复合主键。通过另一个单一字段的主键来代替。一句话,没有复合主键,就没有部分依赖。
写法为:id int unsigned primary key auto_inrement
 
 
第三范式(3NF):满足第二范式,并取消传递依赖。要满足第三范式,不能在一张表上操作了,需要把原表拆分成几个表。当然如果不用拆分了,说明已经满足了。
 
A->B->C C依赖于B,B依赖于A。这就是传递依赖。
 
做法:每个实体建立一个表,为每个表建立一个主键id。
 
 
总结: 应该说,一条记录里面任何两个数据之间都不能有依赖,除了和主键。主键和任何一个数据之间都存在依赖。
 
转载地址:http://blog.sina.com.cn/s/blog_9d7221820102v8lw.html

转载于:https://www.cnblogs.com/wxl-dede/p/5022343.html

你可能感兴趣的文章
phantomjs-循环输出输入参数
查看>>
ListBox自绘,列表显示一系列图片
查看>>
控件名称不可修改
查看>>
综述:人工智能、数据科学、机器学习
查看>>
机器学习之k近邻算法
查看>>
远程桌面dos开启
查看>>
SQL
查看>>
c# 下载网页图片
查看>>
执行Windows PowerShell脚本
查看>>
SQL Server 2014 新特性——内存数据库
查看>>
腾讯2017秋招笔试编程题--游戏任务标记 java 实现+ c 实现
查看>>
Visual Studio调试之断点基础篇
查看>>
Red hat storage
查看>>
jetty continuation的用法、实现、分析
查看>>
rsh 的开启与使用
查看>>
学习AOP基本步骤
查看>>
蓝鲸“配置平台”正式开源
查看>>
javaweb之监听器详解
查看>>
理解和使用SQL Server中的并行
查看>>
Linux服务器前台常出现的错误提示及含义
查看>>