数据库设计
数据库,是用来存放数据的,我们需要设计合理的数据表,能够完成数据的存储,同时能够方便的提取应用系统所需的数据
数据库设计流程
数据库是为应用系统服务的,数据库存储什么样的数据也是由应用系统来决定的。当我们进行应用系统开发时,我们首先要明确应用系统的功能需求,也就是软件系统的需求分析
根据应用系统的功能,分析数据实体(实体,就是要存储的数据对象)
- 电商系统:商品、用户、订单…
- 教务管理系统:学生、课程、成绩…
- 提取实体的数据项(数据项,就是实体的属性)
商品(商品名称、商品图片、商品描述…)
用户(姓名、登录名、登录密码… - 根据数据库设计三范式规范视图的数据项
检查实体的数据项是否满足数据库设计三范式
如果实体的数据项不满足三范式,可能会导致数据的冗余,从而引起数据维护困难、破坏数据一致性等问题
- 绘制E-R图 (实体关系图,直观的展示实体与实体之间的关系)
矩形代表实体
椭圆形代表属性
菱形代表关系
实线关联 - 数据库建模
○ 三线图进行数据表设计
○ PowerDesigner
○ PDManer
- 建库建表 编写SQL指令创建数据库、数据表
添加测试数据,SQL测试
x18.2、数据库设计的三范式
第一范式:要求数据表中的字段(列)不可再分
以下表不满足第一范式(在数据库中创建不出不满足第一范式的表)
将细分的列作为单独的一列:
第二范式:不存在非关键字段对关键字段的部分依赖
以下表不满足第二范式
学号、课程编号,是这张表的联合主键,我们把学号、课程编号称为关键字段
除了关键字段之外的其他字段称为非关键字段
将每个关键字段列出来,关键字段的组合也列出来,依次检查每个非关键字段
第三范式:不存在非关键字段之间的传递依赖
以下数据表不满足第三范式
将关键字段和被依赖的非关键字段分别作为主键,依次检查所有的非关键字段的依赖关系