美文网首页
数据库的设计范式

数据库的设计范式

作者: RwatitFahsa | 来源:发表于2019-01-20 15:09 被阅读4次

我们都知道在建立数据表中需要遵循一定的规则,在运用关系型数据库中的这种规则就称为范式,所以要建立合理的数据表就需要遵循这些规则。

首先先来说说数据库设计中存在哪些设计范式:最多使用的是3NF,除此之外还有针对多值依赖的第四范式,连接依赖的第五范式,DK范式和第六范式。

好了,废话不多说了,今天重点介绍下数据库设计中的三大范式:

第一范式

1NF 属性的原子性

举个例子:

ID  学号  姓名  地址  出生年月日    这个还可以 将 地址 和  出生年月日进行拆分  不符合第一范式 

ID  学号  姓名  省份 市区 县区    年 月  日    字段不能再拆分    这就是符合第一范式   

第一范式作为数据库中最基本的范式,要求数据表中所有的字段都是不可分割的基本数据项,也就是原子性的特征,比如上例中的地址可以再拆分为 省 市 县区。

第二范式

2NF 实体唯一性

同样也是来个例子:

学号  课程号  姓名  学分      这里边  学号 依赖于姓名    学分 依赖于 课程号 

​ 问题:

​ 1.每行会存在相同信息 

​ 2.删除 成绩容易把课程信息干掉

3.如果学生没选课程  数据库中就不存在该学生的姓名 

​ 4.调整学分  所有的行都得更新 

正确的做法  Student (学号  姓名)

Course(课程号 学分  )

​       选课表(学号  课程号  成绩  )

第二范式首先遵循 第一范式    记录要有唯一的标识 实体唯一性  不存在部分依赖。也就是说一个数据库表中,一个表只能保存一种数据,不能将同一种数据保存在同一张表中

第三范式

3NF 不存在传递依赖

哈哈,还是以例子来说明吧:

学号  姓名  年龄  学院  学院电话 

  学号 ->学生姓名  ->所在学院 ->学院电话 

正确的做法 是   

​ 学生 (学号 姓名  年龄 所在学院)

​ 学院  (学院名称  学院电话)

第三范式就是任何字段不能由其他字段派生出来 也就是说 不存在传递依赖

再举另外一个例子说明:

比如在设计一张订单数据表的时候,可以将商品的编号和订单的编号建立相应的关系,而不是将商品的信息和订单的信息放在同一张表中进行存储。

当然可以进行反范式的设计:为了提高查询  更新效率  可以适当增加冗余字段 以 空间  换时间

范式和非范式的区别:

范式 

减少数据的冗余 

更新 快  表 体积小 

范式 比反范式 更新起来快 

缺点:

​ 查询  表关联 

​ 索引优化 难度 大 

反范式

减少表关联   

索引优化 比 范式优化方便 

缺点

数据冗余   

更新数据 成本大       

如果 表  读的多  适当反范式设计    以空间 换时间    如果更新的 多  那么 遵循第三范式     

从性能上讲,范式有更好的写性能,饭范式有更好的读性能。

相关文章

  • 数据库设计范式

    数据库设计三大范式 数据库设计范式 什么是范式:简言之就是,数据库设计对数据的存储性能,还有开发人员对数据的操作都...

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

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

  • mysql的优化总结(一)

    一。数据库设计方面 1)遵循数据库设计三大范式 ,适当的进行反范式设计 第一范式:1NF 原子性 字段不能再拆分 ...

  • python学习笔记-数据库07_高级操作_数据库设计

    数据库设计之三范式 范式:对设计数据库提出的一些规范,目前有迹可循的共有8中范式,一般遵循3范式即可。第一范式(1...

  • 数据库设计-三大范式

    讲到数据库设计,就需要先说一下数据库设计的三大范式(Normal Form)。 三大范式 第一范式(1NF):列属...

  • SQL范式

    范式(数据库设计范式,数据库的设计范式)是符合某一种级别的关系模式的集合。构造数据库必须遵循一定的规则。在关系数据...

  • 范式

    范式(数据库设计范式,数据库的设计范式)是符合某一种级别的关系模式的集合。构造数据库必须遵循一定的规则。在关系数据...

  • (系列7)数据库

    MySQL 数据库概念 范式 范式是数据库设计规范,范式越高则数据库冗余越小,但查询也更复杂,一般只需满足第三范式...

  • 数据库设计范式

    数据库设计范式 整理参考资料[1]参考资料[2] 数据库范式 设计关系数据库时,遵从不同的规范要求,设计出合理的关...

  • 57、【数据库技术】【MySQL】数据库范式

    1、概述 数据库范式是关系型数据库理论中比较重要的概念。“范式”可以理解成是“规则”、“规范”,数据库范式就是设计...

网友评论

      本文标题:数据库的设计范式

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