2.1. 概念设计

数据库设计分三个阶段进行:

  1. 概念设计;
  2. 逻辑设计;
  3. 物理设计。

概念设计阶段的目的是根据用户对主题领域的想法创建概念数据模型。为了实现它,执行了一系列顺序程序。实体(概念)模式的示例:

1. 实体及其文档的定义。为了识别实体,定义了独立于其他对象存在的对象。这些对象是实体。每个实体都有一个用户可以理解的有意义的名称。实体的名称和描述被输入到数据字典中。如果可能,设置每个实体的预期实例数。

2. 确定实体及其文档之间的关系。只定义满足数据库设计要求所必需的实体之间的关系。每个的类型都已设置。显示实体的成员类别。链接被赋予有意义的名称,由动词表达。每个连接的详细描述,表明其类型和参与连接的实体的所属类别,被输入数据字典。

3. 创建主题领域的 ER 模型。ER图用于表示实体和它们之间的关系。基于它们,创建了建模主题区域的单个视觉图像 - 主题区域的 ER 模型。

4. 属性的定义及其文档。显示描述所创建 ER 模型实体的所有属性。每个属性都被赋予了一个用户可以理解的有意义的名称。以下信息存储在每个属性的数据字典中:

  • 属性名称和描述;
  • 值的类型和维度;
  • 属性的默认值(如果有);
  • 属性是否可以有 NULL 值;
  • 该属性是否是复合属性,如果是,它由哪些简单属性组成。例如,属性“客户的全名”可以由简单属性“姓氏”、“名字”、“父名”组成,也可以很简单,包含单个值,例如“Sidorsky Evgeniy Mikhailovich”。如果用户不需要访问“名称”的各个元素,则该属性显示为简单;
  • 属性是否被计算,如果是,它的值是如何计算的。

5.属性值的定义及其文档。对于参与 ER 模型的实体的每个属性,确定一组有效值并为其分配一个名称。例如“账户类型”属性只能有“存款”、“活期”、“按需”、“卡账户”等值。与属性相关的数据字典条目用属性值集的名称更新。

6.实体及其文档的主键定义。此步骤以主键的定义为指导 - 作为允许唯一标识其实例的实体的属性或属性集。主键信息放在数据字典中。

7. 与最终用户讨论概念数据模型。概念数据模型由 ER 模型表示,附带的文档包含对开发的数据模型的描述。如果发现领域不一致,则对模型进行更改,直到用户确认他们提出的模型充分反映了他们的个人观点。

2.2 逻辑设计

逻辑设计阶段的目的是将基于所选数据模型的概念模型转化为独立于以后用于数据库物理实现的DBMS特性的逻辑模型。为了实现它,执行以下过程。

逻辑数据库模式的示例。

1. 选择数据模型。大多数情况下,由于数据表格表示的清晰度以及使用它们的便利性,选择关系数据模型。

2. 定义一组基于 ER 模型的表并记录它们。为 ER 模型的每个实体创建一个表。实体名称是表的名称。表之间的关系是通过主键和外键机制建立的。表的结构和它们之间建立的关系被记录下来。

3. 表的规范化。要正确执行规范化,设计人员必须深入了解数据的语义和使用模式。在这一步,他通过对它们应用规范化过程来检查在上一步中创建的表的结构的正确性。它包括将每个表至少带到 3rd NF。作为规范化的结果,获得了非常灵活的数据库设计,这使得对其进行必要的扩展变得容易。

4. 检查逻辑数据模型是否有可能执行用户提供的所有交易。事务是由单个用户或应用程序执行的一组操作,用于更改数据库的内容。因此,BANK 项目中的交易示例可以是将某个客户的账户管理权转让给另一个客户。在这种情况下,需要同时对数据库进行多项更改。如果计算机在交易过程中崩溃,数据库将处于不一致状态,因为一些更改已经进行,而另一些则没有。因此,必须撤消所有部分更改以使数据库返回到其先前的一致状态。

交易列表由主题区域中用户的操作决定。使用 ER 模型、数据字典以及已建立的主键和外键之间的关系,尝试手动执行所有必要的数据访问操作。如果任何手动操作失败,则编译后的逻辑数据模型不合适并且包含必须消除的错误。也许它们与实体、关系或属性模型中的差距有关。

5. 确定数据完整性支持要求及其文档。这些要求是为防止将冲突数据输入数据库而实施的限制。在此步骤中,涵盖了数据完整性问题,而不考虑其实施的具体方面。应考虑以下类型的限制:

  • 所需的数据。找出是否有不能有 NULL 值的属性;
  • 对属性值的限制。定义了属性的有效值;
  • 实体完整性。如果实体的主键不包含 NULL 值,则实现;
  • 参照完整性。据了解,外键值必须存在于父实体的表行之一的主键中;
  • 业务规则施加的限制。例如,在 BANK 项目的情况下,可能会采用禁止客户管理比方说三个以上帐户的规则。

有关所有已建立的数据完整性约束的信息都放在数据字典中。

6. 创建逻辑数据模型的最终版本并与用户讨论。此步骤准备 ER 模型的最终版本,它表示逻辑数据模型。模型本身和更新的文档,包括数据字典和关系表链接模式,供用户审查和分析,用户必须确保它准确地代表主题领域。

2.3. 物理设计

物理设计阶段的目的是描述位于计算机外部存储器中的数据库的具体实现。这是对数据存储结构和访问数据库数据的有效方法的描述。在逻辑设计中,他们回答了这个问题——需要做什么,而在物理设计中——选择了一种方法来做这件事。物理设计过程如下。

1. 使用选定的 DBMS 设计数据库表。选择关系 DBMS 以用于创建在机器介质上托管的数据库。它用于设计表格的功能已得到深入研究。然后进行了表的设计以及它们在DBMS环境中的连接方案。随附的文档中描述了准备好的数据库项目。

2. 在选定的 DBMS 环境中实施业务规则。更新表中的信息可能会受到业务规则的限制。它们的实现方式取决于所选的 DBMS。一些用于实现主题领域要求的系统提供更多的功能,其他的则更少。在某些系统中,根本不支持实施业务规则。在这种情况下,开发应用程序以实现其限制。

与域业务规则的实施相关的所有决策都在随附的文档中进行了详细描述。

3.设计数据库的物理组织。此步骤为表选择最佳文件组织。将在所设计的数据库中执行的事务已确定,其中最重要的事务已突出显示。分析交易吞吐量——在给定时间间隔内可以处理的交易数量,以及响应时间——完成一个交易所需的时间段。他们努力提高交易吞吐量并减少响应时间。

基于这些指标,可以通过在表中定义索引来加速从数据库中选择数据,或者通过降低对表规范化级别的要求来优化数据库的性能。估计容纳创建的数据库所需的磁盘空间。努力将其最小化。

对上述问题做出的决定已记录在案。

4. 制定数据库保护策略。数据库是宝贵的企业资源,受到高度重视。为此,设计人员必须全面清楚地了解所选 DBMS 提供的所有保护。

5. 组织数据库功能监控及调整。创建数据库的物理项目后,组织对其功能的持续监控。有关数据库性能级别的结果信息用于对其进行调整。为此,还涉及所选DBMS的手段。

对正在运行的数据库进行任何更改的决定都应该经过全面考虑和权衡。