数据库设计

数据库,是用来存放数据的,我们需要设计合理的数据表,能够完成数据的存储,同时能够方便的提取应用系统所需的数据

数据库设计流程

数据库是为应用系统服务的,数据库存储什么样的数据也是由应用系统来决定的。当我们进行应用系统开发时,我们首先要明确应用系统的功能需求,也就是软件系统的需求分析

根据应用系统的功能,分析数据实体(实体,就是要存储的数据对象)

  • 电商系统:商品、用户、订单…
  • 教务管理系统:学生、课程、成绩…
  1. 提取实体的数据项(数据项,就是实体的属性)
    商品(商品名称、商品图片、商品描述…)
    用户(姓名、登录名、登录密码…
  2. 根据数据库设计三范式规范视图的数据项

检查实体的数据项是否满足数据库设计三范式
如果实体的数据项不满足三范式,可能会导致数据的冗余,从而引起数据维护困难、破坏数据一致性等问题

  1. 绘制E-R图 (实体关系图,直观的展示实体与实体之间的关系)
    矩形代表实体
    椭圆形代表属性
    菱形代表关系
    实线关联
  2. 数据库建模

○ 三线图进行数据表设计

○ PowerDesigner

○ PDManer

  1. 建库建表 编写SQL指令创建数据库、数据表
    添加测试数据,SQL测试

x18.2、数据库设计的三范式

第一范式:要求数据表中的字段(列)不可再分

以下表不满足第一范式(在数据库中创建不出不满足第一范式的表)

mysql 商用 价格 商城mysql数据库设计_数据库


将细分的列作为单独的一列:

mysql 商用 价格 商城mysql数据库设计_学习_02

第二范式:不存在非关键字段对关键字段的部分依赖

以下表不满足第二范式

mysql 商用 价格 商城mysql数据库设计_数据库_03

学号、课程编号,是这张表的联合主键,我们把学号、课程编号称为关键字段

除了关键字段之外的其他字段称为非关键字段

将每个关键字段列出来,关键字段的组合也列出来,依次检查每个非关键字段

mysql 商用 价格 商城mysql数据库设计_字段_04

第三范式:不存在非关键字段之间的传递依赖

以下数据表不满足第三范式

mysql 商用 价格 商城mysql数据库设计_字段_05

将关键字段和被依赖的非关键字段分别作为主键,依次检查所有的非关键字段的依赖关系

mysql 商用 价格 商城mysql数据库设计_mysql_06