什么是数据库设计
数据库设计就是将数据库中的数据实体及这些数据实体之间的关系,进行规划和结构化的过程。
为什么需要规范的数据库设计
在实际的项目开发中,如果系统的数据存储量较大,设计的表比较多,表和表之间的关系比较复杂,就需要首先考虑规范的数据库设计。
糟糕的数据库设计表现在以下方面
- 数据冗余,存储空间浪费
- 内存空间浪费
- 数据更新和插入的异常
良好的数据库有以下优点:
- 节省数据的存储空间
- 能够保证数据的完整性
- 方便进行数据库应用系统的开发、
设计数据库的步骤
项目开发需要经过需求分析,概要设计,详细设计,代码编写,运行测试和部署上线几个阶段。
实体—关系模型
-
实体
所谓实体就是指现实世界中具有区分其他事物的特征或属性并与其他事物有联系的事物。
实体一般是名词,对应表中的一行数据。 -
属性
属性可以理解为实体的特性。属性对应表中的列。 -
联系
联系是两个或多个实体之间的关联关系 -
映射基数
映射基数表示通过联系与该实体关联的其他实体的个数。
进行数据库的系统分析时的步骤
- 收集信息:需要了解数据库需要存储哪些信息(数据),实现哪些功能。
- 标识实体:在收集需求信息后,必须标识数据库要管理的关键对象或实体。实体一般是名词,一个实体只描述一件事情,不能重复出现含义相同的实体。数据库中的每个不同的实体都拥有一个与其相对应的表。
- 标识每个实体需要存储的详细信息:将数据库中的主要实体标识为表的候选实体以后,就要标识每个实体存储的详细信息,也称为该实体的属性,这些属性将组成表中的列。简单地说,就是需要细分出每个实体中包含的子成员信息。
- 标识实体之间的关系:关系型数据库有一项非常强大的功能,即它能够关联中各个项目的相关信息。不同类型的信息可以单独存储,但是如果需要,数据库引擎还可以根据需要将数据组合起来。在设计过程中,要标识实体之间的关系,首先需要分析数据库表,确定这些表在逻辑上是如何相关的,然后添加关系列建立起表之间的连接。
E-R图
和机械行业需要械制图,建筑行业需要施工图一样,数据库设计也需要图形化的表达方式—E-R(entity-relationship)图,也可以称为实体—关系图。它包括一些具体特定含义的图形符号。
实体—关系模型
-
实体
所谓实体就是指现实世界中具有区分其他事物的特征或属性并与其他事物有联系的事物。
实体一般是名词,对应表中的一行数据。 -
属性
属性可以理解为实体的特性。属性对应表中的列。 -
联系
联系是两个或多个实体之间的关联关系 -
映射基数
映射基数表示通过联系与该实体关联的其他实体的个数。
实体关系图
矩形表示实体集
椭圆形表示属性
菱形表示联系集
直线用来连接属性和实体集,也用来连接实体集和联系集
范式
- 第一范式的目标是确保每列的原子性。
- 第二范式在第一范式的基础上更进一步,其目标是确保表中的每列都和主键相关,如果一个关系满足第一范式,并且除了主键以外的其他列都全部依赖于该主键,则满足第二范式。
- 第三范式在第二范式的基础上更进一层,第三范式的目标是确保每列都和主键列直接相关,而不是间接相关。如果一个关系满足第二范式,并且除了主键以外的其他列都只能依赖于主键列,列和列之间不存在相互依赖关系,则满足第三范式。