美文网首页
MySQL三大范式示例

MySQL三大范式示例

作者: lhsjohn | 来源:发表于2019-06-01 14:01 被阅读0次

第一范式:确保每列的原子性.

如果每列(或者每个属性)都是不可再分的最小数据单元(也称为最小的原子单元),则满足第一范式.
例如:顾客表(姓名、编号、地址、……)其中"地址"列还可以细分为国家、省、市、区等。需要拆分成两个表:

顾客表
姓名、编号、地址ID

地址表
主键、国家、省份、市区

第二范式:在第一范式的基础上更进一层,目标是确保表中的每列都和主键相关.

如果一个关系满足第一范式,并且除了主键以外的其它列,都依赖于该主键,则满足第二范式.
例如:订单表(订单编号、产品编号、定购日期、价格、……),"订单编号"为主键,"产品编号"和主键列没有直接的关系,即"产品编号"列不依赖于主键列,应删除该列。应该这样设计:

产品表
产品ID、产品名称、订单ID

订单表
主键、订单编号、定购日期、价格

第三范式:在第二范式的基础上更进一层,目标是确保非主键字段不能相互依赖

意思是除主键外,每列都与主键有直接关系,其他列相互之间不存在传递依赖

例如
学号、姓名、年龄、所在学院,、学院地点、学院电话,关键字为单一关键字"学号";

存在依赖传递: (学号) → (所在学院) → (学院地点, 学院电话)
说明:所在学院依赖学号(主键),而学院联系电话又依赖所在学院(非主键)

存在问题:
数据冗余:有重复值;
更新异常:有重复的冗余信息,修改时需要同时修改多条记录,否则会出现数据不一致的情况

修正:
学生:(学号, 姓名, 年龄, 所在学院);
学院:(学院, 地点, 电话)。

相关文章

  • MySQL三大范式示例

    第一范式:确保每列的原子性. 如果每列(或者每个属性)都是不可再分的最小数据单元(也称为最小的原子单元),则满足第...

  • SQL 时间查询

    范式 示例

  • MySQL三大范式和反范式

    MySQL三大范式和反范式 第一范式 第二范式 第三范式 反范式

  • 数据库设计三范式与反范式

    MySql设计与优化系列笔记:一、数据库设计三范式与反范式二、MySql表设计与优化 第一范式: 1、数据库的所有...

  • MySQL-范式

    MySQL-范式 、 MySQL-范式是一种分层结构的规范,分为6层,每一次层都比上一层更加严格范式只为解决空间问...

  • 【Mysql优化分析】之InnoDB索引类型及原理、字段范式/逆

    Mysql优化的部分有很多,本文主要介绍Mysql执行过程、索引类型及原理、字段范式/逆范式设计、索引设计及使用。...

  • Mysql三范式?你想要的在这里!!

    这篇文章主要介绍了Mysql数据库设计三范式实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定...

  • MySQL范式

    这里主要是记录一些学习数据库的笔记,其他的部分,在CSDN博客里,这里是链接https://blog.csdn.n...

  • MySQL范式

    范式介绍 目前关系型数据库有6种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、巴德斯科范式(B...

  • MySql表设计与优化

    MySql设计与优化系列笔记:一、数据库设计三范式与反范式二、MySql表设计与优化 1、实体关系分析 实体关系需...

网友评论

      本文标题:MySQL三大范式示例

      本文链接:https://www.haomeiwen.com/subject/axtatctx.html