一 、 数据库设计的概念
1.1 数据库设计的流程
在数据库设计的流程上,我们通常根据需求,画出数据的ER图.然后在通过ER图生成数据库的建库脚本。
ER图,所谓的ER图就是数据库关系图
1.2 为什么我们使用ER图来实现数据库设计的设计呢?
-
可见即可得.使用ER图可以通过图形的方式展示表与表直接的关系
-
可以根据设置的数据库,方便生成不同的数据库的SQL建库脚本
-
可以快速的生成数据库文档
二 、 数据库设计的基础理论
2.1 数据库设计的步骤
数据库设计师根据需求进行设计的
第一步:标识表的设计
第二步:表字段的设计
第三布:表与表之间的设计
2.2 标识表的注意事项
表分为实体表以及业务表
-
实体表:记录中描述一个对象的表,就是名词,例如用户、商品、订单等
-
业务表:就是需求中一个行为,关注、收藏等(大部分是中间表)
-
但我们通常在标识表时会先标识实体表,再标识业务表.
-
因为业务表一般是用于标识实体表与另一个实体的多对多的关系的.
2.3 标识字段要符合数据库三大范式
-
第一范式:确保标识的字段的原值性,字段的概念分得不能再分。如:姓名可以分为姓和名。
-
第二范式:确保标识的字段与表有依赖的关系,在用户表定义一个商品价格
-
第三方范式:确保标识的字段与表有直接依赖的关系,用户表,用户类型的名称
1.第一范式(确保每列保持原子性)
第一范式是最基本的范式。如果数据库表中的所有字段值都是不可分解的原子值,就说明该数据库表满足了第一范式。
2.第二范式(确保表中的每列都和主键相关)
第二范式在第一范式的基础之上更进一层。第二范式需要确保数据库表中的每一列都和主键相关,而不能只与主键的某一部分相关(主要针对联合主键而言)。也就是说在一个数据库表中,一个表中只能保存一种数据,不可以把多种数据保存在同一张数据库表中。
3.第三范式(确保每列都和主键列直接相关,而不是间接相关)
第三范式需要确保数据表中的每一列数据都和主键直接相关,而不能间接相关。
三大范式解决了什么问题呢?
使用三大范式的原则标识的数据库字段,保证了字段在数据库表中的唯一性.从而避免了数据库的数据的冗余.
三 、 总结
1. 数据库设计就是建立项目的表结构
2. 基于数据的复杂性,一般数据库数据库是先画ER图的。
3. 数据库设计的步骤是:标识表,标识字段,标识表与表之间关系
标识表,先标识实体表,在标识业务表
实体表(名词,没有行为)
业务表(包括业务动作,一般就是一个中间表)
标识字段,必须要求理解三大范式
为什么需要三大范式,避免数据的冗余,导致数据的异常。
数据库设计总体上要符合三大范式,但是基于业务需求和性能要求,有时候可以有少许的冗余
数据设计冗余,设计者必须要说明原因
标识表与表之间的关系
1. 有哪些表与表之间关系,一对多,多对一,一对一,多对多
2. 表与表之间的关系是由需求决定,讨论表之间的关系前,必须要先确定需求
3. 关系数据库是不能直接支持多对多的业务关系的,如果出现多对多必须要拆分一个中间表,原因是数据库里面的字段不能存储一个集合数据。