<数据库原理>DB3 数据库设计

本文最后更新于:2024年4月3日 晚上

DB3 数据库设计

在数据库领域,通常把使用了数据库的信息系统称为 数据库应用系统。好的数据库应用系统有以下表现:

  • 数据访问效率高
  • 减少数据冗余,节省存储空间,便于系统扩展
  • 使应用程序开发容易

数据库设计应遵循以下原则:

  • 使用索引

    创建索引的目的有两个:维护索引列取值的唯一性;加快数据访问速度

    大型数据库有两种索引:簇索引(数据按簇索引顺序存储);非簇索引(数据添加在表尾)

  • 保证数据的一致性和完整性

    通过主键、外键,增加表间关联,以保证数据一致性和完整性。

    但表间关联会增加系统开销。为了缩短响应时间,保留合理的数据冗余是必要的。此时可以通过 **规则(Rule)**和 **约束(Check)**来防止误输入。

  • 正确理解范式,合理遵循范式

    在理解范式的基础上,有时为了提高运行效率,可以降低范式标准,适当保留数据冗余。

  • 合理选择数据类型

  • 信息隐藏

    利用 DBMS 触发器、存储过程、函数等,将数据库无法简化的复杂表关系隐藏,以提高数据安全性。

  • 结构设计与行为设计分离

    结构设计:数据库的模式结构设计。包括概念结构,逻辑结构,物理结构。

    行为设计:应用程序设计。包括功能组织,流程控制等方面的设计。

    软件过程更注重处理过程设计,而数据库设计更注重数据结构的设计。

DB3.1 数据库系统的生存周期

数据库系统的生存周期:数据库系统从开始规划、设计、实现、维护,直至被新系统取代而停止使用的整个期间。

数据库系统的生存周期分为七个阶段:

  1. 系统规划

    该阶段分为三个步骤:

    1. 系统规划。对需求进行调查,发现其存在的问题。
    2. 可行性分析。根据上一步发现的问题,从技术、经济、效益等方面进行可行性分析,生成 可行性分析研究报告,并组织专家讨论。
    3. 确定数据库系统的总目标,对需求方工作流程进行优化,指定项目开发计划,生成 项目可行性研究报告。

    有时,数据库设计可以不包括该阶段。该阶段生成可行性研究报告。

  2. 需求分析

    设计方与需求方全面沟通,收集数据库所有用户的信息内容和处理要求。注意确保用户目标的一致性。

    该阶段获取用户信息要求。

  3. 概念结构设计

    将需求分析阶段获得的用户信息要求,通过用户理解的语言,统一规划到一个整体逻辑结构中。

    该阶段产生一个整体的概念模型。

  4. 逻辑结构设计

    将概念模型转化为某个 DBMS 支持的数据模型,并对其进行优化。

    该阶段产生逻辑结构模型。

  5. 物理结构设计

    为逻辑结构模型选取最适合应用环境的物理结构。

  6. 系统实现

    根据物理设计的结果产生具体的数据库应用程序,并加载初始数据。

  7. 系统运行和维护

    收集、记录系统运行情况,根据用户需求变化对数据库进行修改和扩展。

DB3.2 需求分析

需求分析采用自顶向下的策略。主要由四步构成:

  1. 分析用户活动,产生 业务流程图

    了解用户组织机构、部门职能、业务流程,并据此画出用户的业务流程图

    (DB3_2_业务流程图)

  2. 确定系统范围,产生 系统功能图

    确定系统的范围,明确用户业务流程中,哪些部分由计算机完成,哪些部分由人来完成

    把客户提到的需求逐个转化为具体功能,给出系统功能图。该功能图就是人机界面,每个界面完成一个功能

    (DB3_2_系统功能图)

  3. 分析用户业务活动涉及的数据,产生 数据流程图

    深入分析每个功能需求,用数据流图(Data Flow Diagram,DFD)表示出数据的流向,以及对数据进行的加工

    (DB3_2_数据流图)

  4. 分析系统数据,产生 数据字典

    数据字典以特定格式记录系统中各数据名称、结构、意义、约束条件等

    (DB3_2_数据字典图)

#数据字典

数据字典是需求分析阶段获得的重要成果,是概念设计阶段最详细的资料来源,也是系统验收的重要依据

数据字典包括五个部分:

  • 数据项

    数据项描述={数据项名,语义说明,数据类型,长度,取值范围,其他约束或关联}
  • 数据结构

    数据结构反映了数据间的组合关系。一个数据结构可由若干数据项或数据结构组成

    数据结构={数据结构名称,含义说明,组成说明}
  • 数据流

    数据流是数据结构在系统内传输的路径

    数据流={数据流名称,语义说明,数据流来源,数据流去向,组成说明,平均流量,高峰期流量}
  • 数据存储(文件)

    数据流程图中数据结构停留或保存的地方。

    数据存储={数据存储名,说明,编号,流入数据流,流出数据流,组成:{数据结构},数据量,存取方式}
  • 处理过程

    数据流程图中,功能模块的说明。数据字典中只记录说明性信息

DB3.3 概念结构设计

概念设计的策略是自底向上。其主要分为三步:

  1. 进行数据抽象,设计局部概念模型

    按功能模块化,从单一需求出发,建立相应局部概念模型。过程中,对需求分析结果进行细化、补充和修改

  2. 将局部概念模型综合为全局概念模型

    将各功能模块的局部概念模型综合起来,得到反映所有用户需求的全局概念模型。

  3. 评审

#E-R 模型

**E-R 模型(实体-联系模型,Entity-Relationship Model)**提供了一种描述现实世界中数据组织和关联的图形化方法。

(DB3_3_E-R_图)

E-R 模型的基本元素包括:

  • 实体(Entity):问题域中存在的客观事物在逻辑层面的数据抽象,如人、事、物、地点等。在 E-R 图中用矩形框表示。

  • 属性(Attribute):用于描述实体的特征的数据项,每个实体都具有一个或多个属性。在 E-R 图中以椭圆框表示。

  • 标识符(Identifier):用于标识不同实体实例的属性,可以是单个属性或多个属性的组合。

    标识符与主键的区别在于,标识符是一个逻辑概念,而主键是一个物理概念。

  • 联系(Relationship):实体之间的联系。在E-R图中用菱形框表示。

    联系的类型包括一对一、一对多、多对多等,在联系中关联的实体数目称为联系度数。

DB3.4 逻辑结构设计

逻辑结构设计的任务,是把概念结构设计阶段获得的整体 E-R 模型,转变为具体的 DBMS 支持的数据模型。

以关系数据库为例。关系模型的逻辑是一组关系的集合,而 E-R 模型由 实体、属性、联系 组成。将 E-R 模型转变成关系模型,就是把 实体、属性、联系 转变为关系模式。

转换规则如下:

  • 对于 E-R 图中的实体

    每个实体类型转换为关系模型中的一个关系模式。实体的属性即关系模式的属性,实体的标识符即关系模式的关键码。

  • 对于 E-R 图中的联系

    E-R 图中的联系分为:一元联系、二元联系、多元联系。

    其中,二元联系又分为:一对一联系、一对多联系、多对多联系。

    • 一对多联系(1:n1:n

      11 端关键码,加入到 nn 端关系模式中,作为外键。

    • 多对多联系(m:nm:n

      将该联系类型转化为一个关系模式,其属性为两侧的实体关键码。也就是将该联系转化为了 1个实体 + 2个一对多联系

    • 一对一联系(1:11:1

      在一个关系模式中添加另一关系模式的键即可

    处理三元及以上关系时,参照上述二元关系处理方法即可

DB3.5 物理结构设计

通常分为两步:

  1. 确定数据库物理结构

    在关系数据库中,主要指存储结构和存取方法

  2. 对数据库物理结构进行评价

    主要评价时间和空间效率

DB3.6 数据库实施、运行和维护

数据库的实施包括两项工作:数据的载入;前台应用程序的编码和调试

所有功能模块经过调试后,要将他们联合起来进行调试,该阶段就是数据库的试运行。该阶段是数据库生命周期的第二个用户磨合期。

试运行取得满意后,数据库应用系统开发工作完成,可以投入正式运行。此后,系统进入维护阶段。维护阶段的工作为:

  • 数据库性能监测、分析和改进
  • 数据库的转储和恢复
  • 数据库的完整性和安全性
  • 二次修改问题

<数据库原理>DB3 数据库设计
https://i-melody.github.io/2024/04/03/数据库原理/DB3 数据库设计/
作者
Melody
发布于
2024年4月3日
许可协议