为什么要学习“范式”? 在设计数据库时,数据库开发人员的经验非常重要! 设计数据库时,有两个不争的事实: 冗余的数据需要额外的维护,并且容易导致 上述异常可以看作是“数据冗余”的“并发症”;如何检测和消除表中的冗余数据呢?数据库规范化; 规范化是通过最小化数据冗余来提升数据库设计质量的过程,规范化是基于函数依赖以及一系列范式定义的,最为常用的是 在一个数据表中,字段A的值能够唯一确定字段B的值,那么字段B函数依赖于字段A。 第一范式:如果一张表内同类字段不重复出现,该表就满足第一范式的要求。 一张表在满足第一范式的基础上,每一个非主属性完全函数依赖于主码,那么该表满足第二范式的要求。 “非主属性” 姓名、性别不仅函数依赖于联合主键(学号和课程号),而且还函数依赖于学号。 第三范式:如果一张表满足第二范式的要求,并且不存在“非主属性”字段函数依赖于任何其他“非主属性”字段,那么该表满足第三范式的要求。 见以往文章:
什么是“范式”?范式
但是全凭经验会导致人为的不确定因素剧增。
如何将数据库设计的过程上升到一定的 “理论高度”呢?
数据库开发人员有必要制定一套数据库设计的“质量标准”。——范式评价数据库表设计的质量
使用规范化减少数据冗余
“数据不一致”
、“插入异常”
以及“删除异常”
等问题的发生。
场景一:插入异常
场景二:修改复杂
场景三:删除异常
第一范式(1NF)
、第二范式(2NF)
和第三范式(3NF)
。**函数依赖:**
一张表内两个字段值之间的一一对应关系称为函数依赖。第一范式
第二范式
第二范式需要确保数据库表中的每一列都和主键相关,而不能只与主键的某一部分相关(主要针对联合主键而言),也就是说在一个数据库表中,一个表中只能保存一种数据,不可以把多种数据保存在同一张数据库表中。
同样,“非主属性”课程名不仅函数依赖于联合主键(学号和课程号),而且还函数依赖于课程号。
第三范式
第三范式需要确保数据表中的每一列数据都和主键直接相关,而不能间接相关。
如:“非主属性”邮编函数依赖于“非主属性”居住地;
第三范式需要确保数据表中的每一列数据都和主键直接相关,而不能间接相关。
MySQL数据库实验(四):E-R图实例讲解
MySQL数据库实验(三):表记录的检索
MySQL数据库实验(二):表的操作
MySQL数据库实验(一):数据库备份
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算