数据库设计
一、设计数据库
1.实体
软件开发过程中所涉及的事物,一类数据对象的个体
2.数据库设计
将实体和实体之间的关系进行规划和结构化的过程
3.数据库设计的原因
当数据库数据量大时,好的设计可以减少不必要的数据冗余,提高系统的性能
4.设计数据库
-
收集信息
确定客户需求,收集一切信息
-
标识实体
每个实体只描述一件事情,不能重复出现含义相同的实体
-
标识实体的详细属性
-
标识实体之间的关系
二、ER图
1.定义
Entity Relational(实体关系)
2.绘制ER图
- 矩形表示实体
- 椭圆表示实体属性
- 菱形表示实体关系,一般为动词
三、数据库模型图
1.关系模式
实体关系的描述,通常用二维表的形式表示。
Example:
学生(学号,姓名,年龄,所属班级)
班级(班级编号,班级名称)
2.关系模式转换为数据库模型图
-
利用navicat建立模型
-
实体转换为表,属性转换为列
-
标识每个表的主键列
-
表之间建立主外键关联关系
四、数据库三大范式
1.第一范式
最基本的范式,确保每列保持原子性,不可再分为多列。
2.第二范式
在第一范式的基础上,每张表的属性完全依赖于主键,每张表只描述一件事。
3.第三范式
在第二范式的基础上,每列都直接依赖于主键,没有间接依赖于主键,即不存在传递依赖。
-
注意:为了满足数据库性能需要,数据库的设计可能会打破三大范式的约束。
-
以空间换时间:为了提高查询效率,会在表中增加新的字段,此时会不满足三大范式。