数据库设计/数据建模
数据建模是数据库设计过程的第一步。此步骤有时被认为是高级和抽象的设计阶段,也称为概念设计。此阶段的目的是描述
- 数据库中包含的数据(例如,实体:学生、讲师、课程、科目)
- 数据项之间的关系(例如,学生由讲师监督;讲师教授课程)
- 数据的约束(例如,学号正好有八位数字;科目只有四或六个学分)
在第二步中,数据项、关系和约束都使用高级数据模型提供的概念来表达。由于这些概念不包括实现细节,因此数据建模过程的结果是数据库结构的(半)正式表示。这个结果很容易理解,因此它被用作参考以确保满足所有用户的需求。
第三步是数据库设计。在此步骤中,我们可能有两个子步骤:一个称为数据库逻辑设计,它在特定 DBMS 的数据模型中定义数据库,另一个称为数据库物理设计,它定义内部数据库存储结构、文件组织或索引技术。这两个子步骤是数据库实现和操作/用户界面构建步骤。
在数据库设计阶段,数据使用特定的数据模型来表示。数据模型是用于描述数据、数据关系、数据语义和数据约束的概念或符号的集合。大多数数据模型还包括一组用于操作数据库中数据的基本操作。
在本节中,我们将从特异性的角度来看数据库设计过程。就像任何设计都从高层开始,并逐步进入越来越详细的层次一样,数据库设计也是如此。例如,在建造房屋时,您首先要考虑房屋有多少卧室和浴室,是单层还是多层等。下一步是请建筑师从更结构化的角度设计房屋。这个级别在实际房间大小、房屋的布线方式、水管装置的位置等方面变得更加详细。最后一步是雇用承包商来建造房屋。这就是从高层次抽象到越来越详细的设计水平。
数据库设计非常类似。它从用户识别业务规则开始;然后数据库设计人员和分析人员创建数据库设计;然后数据库管理员使用 DBMS 实现设计。
以下小节按抽象级别递减的顺序总结了模型。
- 表示用户对数据库的视图
- 包含多个不同的外部视图
- 与每个用户感知的现实世界密切相关
- 提供灵活的数据结构能力
- 呈现“社区视图”:整个数据库的逻辑结构
- 包含存储在数据库中的数据
- 显示数据之间的关系,包括
- 约束
- 语义信息(例如,业务规则)
- 安全性和完整性信息
- 将数据库视为各种类型的实体(对象)的集合
- 是主要数据对象的识别和高级描述的基础;它们避免细节
- 与您将使用的数据库无关
这类模型中最著名的三个是关系数据模型、网络数据模型和层次数据模型。这些内部模型
- 将数据库视为固定大小记录的集合
- 更接近物理级别或文件结构
- 是 DBMS 看待数据库的表示。
- 要求设计人员将概念模型的特性和约束与所选实现模型的特性和约束相匹配
- 涉及将概念模型中的实体映射到关系模型中的表
- 是数据库的物理表示
- 具有最低的抽象级别
- 是数据的存储方式;它们处理
- 运行时性能
- 存储利用率和压缩
- 文件组织和访问方法
- 数据加密
- 是物理级别 - 由操作系统 (OS) 管理
- 提供描述数据如何在计算机内存中存储的细节的概念
从图示的角度来看,您可以看到不同的模型是如何协同工作的。让我们从最高级别,外部模型,来看这一点。
外部模型是最终用户对数据的视图。通常,数据库是一个企业系统,它满足多个部门的需求。但是,一个部门并不关心看到其他部门的数据(例如,人力资源 (HR) 部门不关心查看销售部门的数据)。因此,一个用户视图将不同于另一个用户视图。
外部模型要求设计人员将一组需求和约束细分为可在其外部模型框架内检查的功能模块(例如,人力资源与销售)。
作为数据设计人员,您需要了解所有数据,以便构建企业范围的数据库。根据各个部门的需求,概念模型是第一个创建的模型。
在此阶段,概念模型独立于软件和硬件。它不依赖于用于实现模型的 DBMS 软件。它不依赖于用于实现模型的硬件。硬件或 DBMS 软件的更改不会影响概念级别的数据库设计。
一旦选择了一个 DBMS,您就可以实现它。这就是内部模型。在这里,您创建所有表、约束、键、规则等。这通常被称为逻辑设计。
物理模型只是数据在磁盘上的存储方式。每个数据库供应商都有自己的数据存储方式。
图 5.1. 数据抽象层。
模式是数据库的总体描述,通常用实体关系图 (ERD) 表示。有许多子模式代表外部模型,因此显示数据的外部视图。以下是数据库设计过程中需要考虑的一些事项。
- 外部模式:有多个
- 多个子模式:这些显示数据的多个外部视图
- 概念模式:只有一个。此模式包括数据项、关系和约束,所有这些都用 ERD 表示。
- 物理模式:只有一个
数据独立性是指用户应用程序不受数据定义和组织更改影响的能力。数据抽象仅公开对用户重要或相关的项。复杂性对数据库用户隐藏。
数据独立性和操作独立性共同构成数据抽象的特征。数据独立性有两种类型:逻辑和物理。
逻辑模式是对数据库进行的概念性设计,在纸上或白板上完成,就像房屋的建筑图纸一样。能够在不改变外部模式或用户视图的情况下改变逻辑模式的能力被称为逻辑数据独立性。例如,在该概念模式中添加或删除新实体、属性或关系应该可以在不改变现有外部模式或重写现有应用程序的情况下实现。
换句话说,对逻辑模式的更改(例如,对数据库结构的修改,如添加列或其他表)不应该影响应用程序(外部视图)的功能。
物理数据独立性是指内部模型不受物理模型更改的影响。即使对文件组织或存储结构、存储设备或索引策略进行了更改,逻辑模式也保持不变。
物理数据独立性处理的是从用户应用程序中隐藏存储结构的细节。应用程序不应该涉及这些问题,因为对数据的操作没有区别。
- 概念模型
- 整个数据库的逻辑结构
- 概念模式
- 逻辑模式的另一个术语
- 数据独立性
- 用户应用程序不受数据定义和组织更改的影响
- 数据模型
- 描述数据、数据关系、数据语义和数据约束的概念或符号的集合
- 数据建模
- 数据库设计过程中的第一步
- 数据库逻辑设计
- 在特定数据库管理系统的数据库模型中定义数据库
- 数据库物理设计
- 定义内部数据库存储结构、文件组织或索引技术
- 实体关系图 (ERD)
- 描述数据库的数据模型,显示表、属性和关系
- 外部模型
- 表示用户对数据库的视图
- 外部模式
- 用户视图
- 内部模型
- 从 DBMS 角度来看数据库的表示
- 逻辑数据独立性
- 在不改变外部模式的情况下更改逻辑模式的能力
- 逻辑设计
- 创建所有表、约束、键、规则等的地方
- 逻辑模式
- 对数据库进行的概念性设计,在纸上或白板上完成,就像房屋的建筑图纸一样
- 操作系统 (OS)
- 管理物理模型的物理级别
- 物理数据独立性
- 内部模型不受物理模型更改的影响
- 物理模型
- 数据库的物理表示
- 模式
- 对数据库的总体描述
- 描述概念设计的目的。
- 概念设计与逻辑设计有何不同?
- 什么是外部模型?
- 什么是概念模型?
- 什么是内部模型?
- 什么是物理模型?
- 数据库管理员使用哪个模型?
- 最终用户使用哪个模型?
- 什么是逻辑数据独立性?
- 什么是物理数据独立性?
另见附录 A:大学注册数据模型示例
本《数据库设计》章节是 Nguyen Kim Anh 编写的《数据库系统概念》的衍生作品,该作品根据知识共享署名许可 3.0 许可证获得许可
以下材料由 Adrienne Watt 撰写
- 部分或全部介绍、数据抽象程度、数据抽象层
- 关键术语
- 练习