声明:译自博客《What is Data Modelling? Conceptual, Logical, & Physical Data Models》
什么是数据建模?
数据建模(Data modeling)是为要存储在数据库中的数据创建数据模型的过程。数据建模在概念上包括以下3个部分:
- 数据对象(Data objects)
- 不同数据对象之间的关联(The associations between different data objects)
- 规则(The rules)
数据建模有助于数据的可视化和数据业务的实施。数据模型可确保命名约定、默认值、语义、安全性和一致性,同时确保数据质量。
数据模型强调的是数据的选择和数据的组织形式,不关注需要对数据执行的操作。数据模型就像是架构师设计的架构,它有助于为数据构建概念模型并且设置数据中不同项之间的关联。
数据建模技术有两种:
- 实体-关系模型(Entity Relationship Model, E-R Model)
- UML(Unified Modeling Language)
数据建模的目标
- 确保准确表示数据库所需要的所有数据对象。
- 数据模型有助于在概念、物理和逻辑层面设计数据库。
- 数据模型结构有助于定义关系表、主键和外键以及存储过程。
- 提供了基本数据的清晰图像,数据库开发人员可以使用它来创建物理数据库。
- 有助于识别缺失项和冗余数据。
- 虽然在开始阶段,数据建模费时费力,但从长远来看,可以是我们的基础架构易于升级和维护。
数据模型的类型
主要有三种不同类型的数据模型:概念模型、逻辑模型和物理模型。
概念模型
概念模型的主要目标是建立实体及其属性和实体之间的关系,不会涉及数据库结构的详细信息。
实体: 一个现实世界的东西
**属性:**实体的特征或属性
**关系:**两个实体之间的依赖关系
例如,客户和产品是两个实体,客户的编号和名称是它的属性,产品的名称和价格是产品的属性,销售是客户和产品之间的关系。那么概念模型可以设计如下:
概念数据模型具有如下特征:
- 模型所使用涵盖的元素(实体、属性、关系)都是业务概念;
- 为业务方(非技术人员也能看懂)设计和开发;
- 独立与硬件规范,如数据存储容量、位置或软件规范,建模的重点在于描述用户将在“现实世界”中看到的数据。
逻辑模型
逻辑数据结构将更多的信息添加到概念模型中,定义了元素的结构并设置了元素之间的关系。
还是上面的顾客-产品的例子,其逻辑数据模型如下:
与逻辑结构不一样的地方,一方面是属性有了它们各自的数据结构,另一方面是实体之间的关系改成了一个连接器(连接器上会有很多信息,此处省略了)。然而,逻辑结构仍然没有定义主键或外键等信息。
逻辑数据模型具有如下特征:
- 描述单个项目的数据需求,但可以根据项目范围与其他逻辑数据模型集成;
- 独立于数据库的设计和开发;
- 数据属性将具有精确精度和长度的数据类型;
- 通常将模型的标准化过程应用到第三范式。
物理模型
物理数据模型描述数据模型的数据库实现,提供了数据库的抽象,包含了丰富的信息。
继续上面的顾客-产品例子,其物理数据模型如下:
这种类型的数据模型还有助于可视化数据库结构。它有助于为数据库列建模键,约束,索引,触发器和其他RDBMS功能。
物理数据模型具有如下特征:
- 设计数据模型的主要目的是确保技术团队能提供数据对象的准确表示
- 数据模型应足够详细,以用于构建物理数据库
- 数据模型中的信息可用于定义表,主键和外键以及存储过程之间的关系。
- 数据模型可以帮助企业在组织内部和跨组织进行通信
- 数据模型有助于在ETL过程中记录数据映射
- 帮助识别正确的数据源以填充模型
结论
- 数据建模是为要存储在数据库中的数据开发数据模型的过程。
- 数据模型可确保命名约定,默认值,语义,安全性的一致性,同时确保数据质量。
- 数据模型结构有助于定义关系表,主键和外键以及存储过程。
- 数据建模的三种方式:概念模型、逻辑模型和物理模型
- 概念模型的主要目的是建立实体,它们的属性以及它们之间的关系。
- 逻辑数据模型定义数据元素的结构并设置它们之间的关系。
- 物理数据模型描述数据模型的数据库特定实现。
- 设计数据模型的主要目标是确保功能团队提供的数据对象准确表示。
- 最大的缺点是,即使是较小的结构变化也需要在整个应用中进行修改。