什么是数据建模?
数据建模是创建可视化表示或定义任何组织的信息收集与管理系统的蓝图的过程。这个蓝图或数据模型帮助数据分析师、科学家和工程师等不同的利益相关者创建组织数据的统一视图。该模型概述了企业收集的数据、不同数据集之间的关系以及将用于存储和分析数据的方法。
为什么数据建模如此重要?
如今,各组织都在通过诸多不同的来源收集大量数据。但是,原始数据仍然不足。您需要通过数据分析获取可行性见解,为您做出盈利性业务决策提供指南。准确的数据分析需要高效的数据收集、存储和处理。数据库技术和数据处理工具种类繁多,要实现高效分析,不同的数据集需要使用不同的工具。
数据建模可以让您清晰地了解自己的数据,并为存储和管理这些数据选择适用的技术。就像建筑师在建造房屋之前会设计蓝图一样,业务利益相关者在为其组织开发数据库解决方案前也会设计一个数据模型。
数据建模具有以下优势:
- 减少数据库软件开发中的错误
- 提高数据库设计和创建的速度及效率
- 在整个组织内打造数据文档和系统设计的一致性
- 加强数据工程师和商业智能团队之间的沟通
数据建模有哪些类型?
数据建模通常先从概念上表示数据,然后再通过选择的技术表示数据。分析师和利益相关者会在数据设计阶段创建几种不同类型的数据模型。以下是三种主要的数据模型类型:
概念数据模型
概念数据模型可全局概览数据。这类模型会说明以下内容:
- 系统包含的数据
- 数据属性以及针对数据的条件或约束
- 与数据相关的业务规则
- 数据的最佳组织方式
- 安全性和数据完整性要求
业务利益相关者和分析师通常会创建概念模型。它只是一个简单的图形表示,不遵循正式的数据建模规则。它的作用在于帮助技术和非技术利益相关者分享共同愿景,并就数据项目的目的、范围和设计达成一致。
概念数据模型示例
例如,汽车经销商的概念数据模型可能会显示如下数据实体:
- “展厅”实体,表示经销商旗下各门店的信息
- “汽车”实体,表示经销商目前库存的多辆汽车
- “客户”实体,表示在经销商处购买汽车的所有客户
- “销售”实体,表示关于实际销售的信息
- “销售人员”实体,表示经销商处所有销售人员的信息
此概念模型还包括业务需求,例如以下信息:
- 每辆汽车必须属于一个特定的展厅。
- 每笔销售都必须至少有一名销售人员和一名与之关联的客户。
- 每辆汽车都必须具有品牌名称和产品编号。
- 每位客户都必须提供他们的电话号码和电子邮件地址。
因此,概念模型充当了业务规则与基础物理数据库管理系统(DBMS)之间的桥梁。概念数据模型也称作域模型。
逻辑数据模型
逻辑数据模型将概念数据类映射至技术数据结构。对于概念数据模型中确定的数据概念和复杂数据关系,它们给予了更详细地描述,例如:
- 各种属性的数据类型(例如,字符串或数字)
- 数据实体之间的关系
- 数据中的主要属性或关键字段
数据架构师和分析师共同协作,创建逻辑模型。他们在多个正式数据建模系统中选择一个,遵循该系统创建表示。有时候,敏捷型团队可能会选择跳过这一步,直接从概念模型转向物理模型。不过,这些模型对于设计大型数据库(称作数据仓库)和设计自动报告系统非常有帮助。
逻辑数据模型示例
在我们的汽车经销商示例中,逻辑数据模型对概念模型进行扩展并更深入了解数据类,如下所示:
- “展厅”实体具有名称和位置等字段,这些是文本数据,而电话号码则为数字数据。
- “客户”实体具有一个电子邮件地址字段,格式为 xxx@example.com 或 xxx@example.com.yy。字段名称不得超过 100 个字符。
- “销售”实体具有客户姓名和销售人员姓名字段,销售日期采用日期数据类型,金额则采用十进制数据类型。
因此,逻辑模型充当了概念数据模型与开发人员用以创建数据库的基础技术和数据库语言之间的桥梁。但是,它们不依赖任何技术,您可以使用任何数据库语言进行实施。数据工程师和利益相关者通常会在创建逻辑数据模型后再做出技术决策。
物理数据模型
物理数据模型将逻辑数据模型映射到特定的 DBMS 技术并使用软件术语。例如,它们展现以下详细信息:
- DBMS 中表示的数据字段类型
- DBMS 中表示的数据关系
- 性能优化等其他详细信息
数据工程师会先创建物理模型,然后再进行最终设计实施。他们仍然会遵循正式的数据建模技术,以确保考虑到设计的各方各面。
物理数据模型示例
假设汽车经销商决定在 Amazon S3 Glacier Flexible Retrieval 中创建一个数据存档。他们的物理数据模型描述了以下具体信息:
- 在“销售”中,销售金额为浮点数据类型,销售日期为时间戳数据类型。
- 在“客户”中,客户姓名为字符串数据类型。
- 在 S3 Glacier Flexible Retrieval 术语中,Vault 是数据的地理位置。
您的物理数据模型还包括其他详细信息,例如您创建文件库时所在的 AWS 区域。 因此,物理数据模型充当了逻辑数据模型和最终技术实施之间的桥梁。
数据建模技术包含哪些类型?
数据建模技术是指创建不同数据模型的各种方法。由于数据库概念和数据治理的创新,这些方法也会随之不断变化。以下是数据建模的主要类型:
分层数据建模
在分层数据建模中,您可以用树状格式来表示各种数据元素之间的关系。分层数据模型表示一对多关系,其中父数据类或根数据类会映射到多个子数据类。
在汽车经销商示例中,父类展厅拥有子类实体车辆和销售人员,因为一个展厅中会停放多辆汽车并配备销售人员。
图形数据建模
分层数据建模会逐渐演变为图形数据建模。图形数据模型表示平等对待实体的数据关系。无需任何父或子概念,实体即可以一对多或多对多关系相互链接。
例如,一个展厅可以配备多名销售人员,如果他们按地点排班,则一名销售人员也可以在多个展厅工作。
关系数据建模
关系数据建模是一种热门的建模方法,它将数据类可视化为表格。它使用代表现实实体关系的键将不同的数据表连接或关联起来。您可以使用关系数据库技术来存储结构化数据,并使用关系数据模型来表示关系数据库结构。
例如,汽车经销商具有表示“销售人员”表和“汽车”表的关系数据模型,如下所示:
销售人员 ID | 姓名 |
1 | Jane |
2 | John |
汽车 ID | 汽车品牌 |
C1 | XYZ |
C2 | ABC |
销售人员 ID 和汽车 ID 是唯一标识各个现实实体的主键。在展厅表中,将这些主键作为关联数据段的外键。
展厅 ID | 展厅名称 | 销售人员 ID | 汽车 ID |
S1 | NY 展厅 | 1 | C1 |
在关系数据库中,同时使用主键和外键,来显示数据关系。上表显示,展厅可以具有销售人员和汽车。
实体关系数据建模
实体关系(ER)数据建模使用示意图来表示数据库中实体间的关系。数据架构师使用多种 ER 建模工具来表示数据。
面向对象的数据建模
面向对象的编程使用数据结构(称作“对象”)来存储数据。这些数据对象是使用软件抽象化的现实实体。例如,在面向对象的数据模型中,汽车经销商拥有客户等数据对象,包括姓名、地址和电话号码等属性。您将存储客户数据,以便将每个现实客户表示为客户数据对象。
面向对象的数据模型摒除了关系数据模型的许多限制,在多媒体数据库中应用广泛。
维度数据建模
现代企业计算使用数据仓库技术存储大量数据进行数据分析。您可以通过维度数据建模项目从数据仓库中进行高速数据存储和检索。维度模型使用重复或冗余数据,它会优先考虑性能,而不是使用更少的数据存储空间。
例如,在维度数据模型中,汽车经销商具有“汽车”、“展厅”和“时间”等维度。“汽车”维度具有名称和品牌等属性,而“展厅”维度则具有州、城市、街道名称和展厅名称等层次结构。
数据建模流程包括哪些步骤?
数据建模过程会遵循一系列步骤,您必须一直重复执行这些步骤,直到创建完成一个全面的数据模型。在任何组织中,不同的利益相关者通过共同协作创建一个完整的数据视图。尽管步骤会因数据建模的类型而有所差异,但通常大体如下所示。
第 1 步:确定实体及其属性
确定您数据模型中的所有实体。每个实体的逻辑应该都与所有其他实体不同,可以表示人、地点、事物、概念或事件。各个实体各不相同,因为每个实体都具有一个或多个独特的属性。您可以将实体视作数据模型中的名词,将属性视作数据模型中的形容词。
第 2 步:确定实体间的数据关系
不同实体间的关系是数据建模的核心。业务规则先在概念级定义这些关系。您可以将关系视作数据模型中的动词。例如,销售人员销售多辆汽车,或者展厅雇佣了大量销售人员。
第 3 步:确定数据建模技术
了解了实体及其关系的概念后,您就可以确定最适合您使用案例的数据建模技术了。例如,您可以在结构化数据中使用关系数据建模,在非结构化数据中使用维度数据建模。
第 4 步:优化和迭代
您可以进一步优化数据模型,以符合技术和性能要求。例如,如果您计划使用 Amazon Aurora 和结构化查询语言(SQL),则会直接将实体放入表中并使用外键指定关系。相反,如果您选择使用 Amazon DynamoDB,则需在建模表之前考虑访问模式。因为 DynamoDB 优先考虑速度,因此您首先要确定访问数据的形式,然后以这种形式对您的数据进行建模。
由于您的技术和需求会不断发生变化,因此您通常会反复重新审视这些步骤。
AWS 如何为数据建模提供帮助?
此外,您还可以使用 AWS Amplify DataStore 更快、更轻松地进行数据建模,来构建移动和 Web 应用程序。它提供了一个基于代码的可视化界面,可用以定义您的数据模型与关系,这将加速应用程序开发。
立即创建免费账户,开始在 AWS 上使用数据建模。