数据库设计概念总结
参考文章:https://www.cnblogs.com/aknife/p/11407809.html
目录
一.明确需求
二.设计表结构
1.1ER图的设计
1.2设计ER图的必要
三.规范数据库设计规范
规范化的必要性:
四.数据库三范式
1.第一范式(确保每列保持原子性)
2.第二范式(确保表中的每列都和主键相关)
3.第三范式(确保每列都和主键列直接相关,而不是间接相关)
五.总结:
一.明确需求
在我们设计数据库表的时候首先是对我们的需求进行分析,看我们的需求是什么样的的来进行数据库表的设计.
二.设计表结构
1.1ER图的设计
在数据库设计的流程上,我们通常根据需求,画出数据的ER图.然后在通过ER图生成数据库的建库脚本.ER图,所谓的ER图就是数据库关系图
1.2设计ER图的必要
- 可见即可得.使用ER图可以通过图形的方式展示表与表直接的关系
- 可以根据设置的数据库,方便生成不同的数据库的SQL建库脚本
- 可以快速的生成数据库文档
三.规范数据库设计规范
规范化的必要性:
规范化过程主要为克服数据库逻辑结构中的插入异常、删除异常以及冗余度大的缺陷。数据库规范化能够让数据库设计者更好地了解组织内部当前的数据结构,最终得到一系列的数据实体。数据库规范化通过对数据库表的设计,可以有效降低数据库冗余程度。
四.数据库三范式
根据我们的数据库三范式来设计我们的表结构
1**.第一范式(确保每列保持原子性)**
理解:确保标识的字段的原值性,字段的概念分得不能再分.
第一范式是最基本的范式.如果数据库表中的所有字段值都是不可分解的原子值,就说明该数据库表满足了第一范式.
2**.第二范式(确保表中的每列都和主键相关)**
理解:确保标识的字段与表有依赖的关系
第二范式在第一范式的基础之上更进一层。第二范式需要确保数据库表中的每一列都和主键相关,而不能只与主键的某一部分相关(主要针对联合主键而言)。也就是说在一个数据库表中,一个表中只能保存一种数据,不可以把多种数据保存在同一张数据库表中。
3**.第三范式(确保每列都和主键列直接相关,而不是间接相关)**
理解:数据不能存在传递关系,即每个属性都跟主键有直接关系而不是间接关系。像:a—>b—>c 属性之间含有这样的关系,是不符合第三范式的。
第三范式需要确保数据表中的每一列数据都和主键直接相关,而不能间接相关。
五.总结:
1. 数据库设计就是建立项目的表结构
2. 基于数据的复杂性,一般数据库数据库是先画ER图的。
3. 数据库设计的步骤是:标识表,标识字段,标识表与表之间关系
标识表,先标识实体表,在标识业务表
实体表(名词,没有行为)
业务表(包括业务动作,一般就是一个中间表)
标识字段,必须要求理解三大范式
为什么需要三大范式,避免数据的冗余,导致数据的异常。
数据库设计总体上要符合三大范式,但是基于业务需求和性能要求,有时候可以有少许的冗余
数据设计冗余,设计者必须要说明原因
标识表与表之间的关系
1. 有哪些表与表之间关系,一对多,多对一,一对一,多对多
2. 表与表之间的关系是由需求决定,讨论表之间的关系前,必须要先确定需求
3. 关系数据库是不能直接支持多对多的业务关系的,如果出现多对多必须要拆分一个中间表,原因是数据库里面的字段不能存储一个集合数据
还没有评论,来说两句吧...