数据建模是业务和IT的共同责任。一个常见的误解是,它主要是开发应用程序的必要技术步骤,是IT专业人员的任务。事实是,只有与业务部门的各自专家紧密合作才能产生支持业务目标的数据驱动应用程序。数据模型是实现该目标的沟通工具。
领域驱动数据建模是一种现代方法,包含企业概念数据模型和数据模型治理等主要元素。该方法结构化且实用,以业务价值最高的领域为指导。
一、数据建模的作用
数据模型是人们之间的沟通工具,尤其是业务部门和IT部门之间的沟通工具,也是构建以数据为中心的应用程序的蓝图。人们对数据模型的广泛期望表明,数据建模是一项基本活动。然而,实际上,它往往被低估和忽视。在项目中,人们往往更关注数据建模的语法和技术方面,而不是受其业务价值的驱动。从业务目标中获得的数据开发会带来市场竞争优势。
数据建模的好处多种多样,总结如:
1.数据建模支持战略。良好的数据建模实践可使数据结构更具适应性,并在实施战略变革时提高效率。数据透明度有助于制定并购战略。
2.了解和改进业务流程。数据建模迫使公司阐明其业务和流程。如果不知道业务如何运作,就不可能定义数据的结构和动态。
3.不同功能和部门之间的协作,尤其是业务和IT之间的协作,通过技术中立的通信数据模型来促进,但仍然具有足够的细节以创建物理数据结构。
4.缩短价值实现时间并提高效率。通过数据建模,业务用户可以直接定义核心业务规则,这意味着实施时需要的修订更少。这提高了效率并降低了成本。
5.提高性能并降低成本。在现代数据存储解决方案中,最昂贵的组件不是存储而是计算。一般来说,良好的数据模型将降低查询成本,并减少代码的复杂性,从而提高应用程序速度并减少实施和维护工作。
6.提高数据质量。数据建模有助于识别数据中的错误和不一致性,从而提高数据的整体质量。
近年来,数据建模变得越来越复杂。数据架构格局的复杂性和动态性不断增加、数据量呈指数级增长,以及AI/ML领域的新技术趋势和进步是最突出的因素。结合不断变化的业务需求,数据建模必须以结构化的方式执行才能有效。
好消息是,根据用例构建数据模型的想法变得容易得多。关于数据建模模式和行业特定标准的资源有很多。此外,还有一些工具可以根据提供的数据建议物理数据模型结构,而GenAI能够根据提供的需求生成数据模型的各个部分。然而,所有这些都不能取代对数据建模者的需求。数据建模作为一种活动的需求仍然存在。创建数据模型不仅具有纯粹的需求和技术视角,而且是业务和IT相关利益相关者之间达成协议和共同理解的产物。
二、如何以整体方式实施和管理数据模型
企业数据分布在各种数据存储中,由集中或单独的分散单位管理。企业范围的分析要求能够以所需的方式集成和组合来自不同来源的基础数据。为了实现这一点,需要一个通用的数据模型,代表对业务实体、关系和规则的整体理解,从而实现整体接受。
企业数据模型(EDM)
就是这样一种总体通用数据模型,它是企业不同层级和单位共同努力的结果。它是一个整体的基于层的模型,其层代表企业、主题领域和应用程序层,此外还对应于概念、逻辑或物理数据模型类型。EDM提供通用词汇表,并通过提供相应的映射来协调对同一业务实体的不同理解之间的差异。例如,中央部门中的实体客户可能是某个分散单位中的客户。
顶部的企业概念数据模型是唯一集中管理的组件。主题领域概念数据模型(CDM)以及下方相应的逻辑(LDM)和物理数据模型(PDM)由组织的各个职能领域(例如财务或营销)管理。
主题领域模型使相应业务领域能够自主处理其数据,同时遵守更广泛的组织标准。它们不是独立的构件,而是相互关联的,从而实现企业范围的集成。
这种领域驱动设计也融入了数据网格方法,这是一种分散的社会技术数据架构,强化了数据作为各个领域产物的概念。
数据模型治理负责管理确保组织内有效和高效使用数据建模的政策、程序、标准和指标。它侧重于对数据建模工作的监督和监管,是整体数据治理功能的一部分。数据模型治理的领域之一是内部数据建模指南的设置,涵盖数据建模符号、命名约定、设计标准和文档要求等方面。定期质量控制是另一个关键方面,在审查数据模型时会应用数据模型记分卡等指标。
三、 数据建模的指导原则
从总体来看,建议在数据建模方法中遵循以下指导原则:
1.确保企业中的相关主题专家(SME)以及IT专家共同协作创建或调整概念和逻辑数据模型。
2.使用行业中的通用数据建模模板或使用AI创建的模板作为灵感和清单,而不是作为数据模型的初稿。
3.EDM本身并不包含公司中存在的所有可能的数据模型,而是侧重于企业核心数据。
4.每次敏捷迭代之后保持企业数据模型各组件彼此一致。
5.创建企业数据模型不是学术活动,而是一项常识性和实践性的工作。务实并保持收益和努力的平衡。首先从快速见效的领域开始——具有最高商业价值的领域。
组织的数据建模能力是一个旅程,通常以相应能力成熟度模型中的级别为特征。成熟度评估可以评估当前状态并显示前进的路线图。从最初的临时努力开始,组织通常通过建立标准和随后的治理政策、引入更先进的工具和持续改进实践来发展。
四、 数据建模的好处
俗话说“数据是新石油”,世界各地的公司收集大量数据的主要目的是利用这些数据获取更多利润。然而,收集的数据往往是非结构化的和肮脏的。这些原始数据对收集它的公司没有多大帮助,除非对其进行清理和分析,以获得可操作的见解来推动基于数据的决策。
数据建模提供了一个机会来定义如何组织、存储、检索和呈现数据。它基本上允许利益相关者了解他们的数据,反过来,利益相关者从一开始就对数据管理做出正确的选择。
数据建模有几个好处,包括:
改进数据理解:数据建模有助于理解数据集内的结构、关系和依赖关系。它提供了数据实体、属性及其关联的可视化表示,使人们更容易理解复杂数据。
增强数据质量:通过定义数据实体、属性和关系,数据建模有助于识别和纠正数据质量问题。它支持数据验证、标准化和一致性,从而提高数据的准确性和可靠性。
高效的数据库设计,显著减少错误:数据建模有助于设计和开发高效的数据库。它有助于将数据组织到表中,定义主键和外键关系,并优化数据存储和检索,从而提高数据库性能。
整个组织的一致沟通:数据模型是业务利益相关者、数据分析师和开发人员之间的通用语言。它们提供数据需求的可视化表示,使参与数据相关项目的不同团队之间能够进行有效的沟通和协作。
可扩展性和灵活性:数据建模允许设计可扩展并适应不断变化的业务需求的数据库。它允许添加或修改数据实体和属性,而不会破坏现有数据结构,从而确保灵活性和面向未来性。
决策支持:数据模型可用于分析和模拟不同的场景,从而实现更好的决策。通过表示数据元素之间的关系和依赖关系,模型有助于识别支持明智业务决策的模式、趋势和见解。
数据治理与合规性:数据建模通过提供数据分类、数据沿袭和数据安全的框架来支持数据治理计划。它有助于确保遵守监管要求和数据隐私标准。
五 、三种类型的数据模型。
在数据设计阶段,分析师和利益相关者通常会创建多种类型的数据模型,以概念上和在他们选择的技术背景下表示数据。
以下是三种主要类型的数据模型:
概念模型
概念数据模型是数据库主要概念及其相互联系的直观表示。它侧重于诸如数据库不同部分的名称、它们可以做什么以及它们如何相互关联等内容。它不会涉及所有技术细节,而是清晰地概述数据的重要方面。
逻辑模型
逻辑数据模型通过定义数据实体之间的关系和约束,进一步定义了数据实体的结构以及它们之间的关系。它通常用于特定项目,因为其目的是创建规则和数据结构的技术蓝图。
物理数据模型
物理模型主要设计数据库内部的外观和工作方式。其主要目标是根据计划和规范实际创建和组织数据库。它提供构建数据库并使其正常运行所需的具体细节。
六 、数据建模技术
数据建模技术是一种以清晰、有条理的方式组织和表示数据的方法。它通过使用图表和符号帮助人们理解和设计数据库或数据结构。
这些技术使得传达和记录数据要求变得更加容易,其中包括:
实体关系 (ER) 建模:此技术专注于识别不同的事物(实体)以及它们之间的关系。它帮助我们了解实体之间的结构和联系,一个很好的例子是在有客户、产品和订单的电子商务环境中。
UML(统一建模语言):UML 提供了一种绘制表示系统中的数据结构、关系和行为的图表的标准化方法。它广泛用于软件开发中,以对复杂系统进行建模。
层次化建模:该技术以层次化结构组织数据,类似于家谱,存在父子关系,每个父级可以有多个子级,但每个子级只有一个父级。层次化建模通常用于文件系统和 XML 结构。
维度建模:该技术通常用于数据仓库。它将数据组织成维度(描述性属性)和事实(可测量数据)。这简化了报告和分析数据,使趋势和模式更容易理解。
面向对象建模:该技术将数据视为具有自身属性和行为的对象。它强调封装、继承和多态等面向对象概念。面向对象建模通常用于支持面向对象编程的 Java 和 C++ 等编程语言。
数据流图 (DFD):通过显示输入、输出和数据转换来说明系统内数据从一个过程到另一个过程的流动。
网络建模:网络建模使用类似网络的结构来表示数据,其中数据实体通过关系连接。它允许多对多关系,并可以灵活地表示复杂的数据关系。
数据仓库建模:该技术用于在数据工程中构建可扩展且灵活的数据仓库,主要重点是捕获历史数据并通过使用集线器、链接和卫星来保持可追溯性。
七 、数据建模的步骤
数据建模的步骤通常包括以下步骤:
需求收集:了解数据建模项目的业务需求和目标。确定主要利益相关者并收集他们的意见,以确保模型符合他们的需求。
概念数据建模:创建一个高级概念模型,表示数据中的主要实体、属性和关系。该模型侧重于整体结构,并提供数据的全景视图。
逻辑数据建模:将概念模型细化为更详细的逻辑模型。使用适当的符号或图表定义实体、属性、关系和约束。该模型将作为设计数据库的蓝图。
物理数据建模:将逻辑模型转换为物理模型,表示数据将如何存储在特定的数据库系统中。指定数据类型、索引、键和其他实现细节。该模型指导数据库的实际实现。
验证和迭代:与利益相关者一起审查和验证数据模型,以确保它准确地代表初始要求,然后根据业务需求中可能出现的反馈和变化不断迭代和完善模型。
文档:记录数据模型,包括其目的、假设和所做的任何设计决策。此文档将作为未来开发、维护和进一步了解数据模型的参考。
实施:使用数据模型创建数据库结构、表和关系。使用实际数据填充数据库,确保其与定义模型中的规范相符。
维护和发展:随着业务需求的发展或新数据需求的出现,持续监控和更新数据模型。根据性能和可扩展性的考虑,定期审查和优化数据库结构。
八 、数据建模工具
有多种可用于数据建模的工具可以帮助创建、可视化和管理数据模型。一些流行的数据建模工具包括:
Lucidchart:Lucidchart 是一款基于云的图表工具,包含数据建模功能。它提供了一个拖放界面,用于创建实体关系图、UML 图和其他类型的数据模型。它还支持与其他工具的协作和集成。
Draw.io:Draw.io是一款用于创建流程图、UML 图等图表的 Web 工具。它易于使用,具有拖放功能和大量形状可供选择。您可以实时与他人协作并在线或离线保存您的图表。它是免费的,不需要任何安装或注册。
ER/Studio:ER/Studio 是一款全面的数据建模工具,支持概念和物理数据建模。它提供创建实体关系图、生成 SQL 脚本以及与团队成员协作的功能。
PowerDesigner:PowerDesigner 是一款功能强大的数据建模和元数据管理工具。它支持各种建模技术,包括实体关系、维度和面向对象建模。它还提供影响分析、数据沿袭和数据治理功能。
ERwin Data Modeler:ERwin Data Modeler 是一种广泛使用的数据建模工具,支持逻辑和物理数据建模。它提供了一个用户友好的界面,用于创建和管理数据模型、生成 DDL 脚本以及与其他数据管理工具集成。
Oracle SQL Developer Data Modeler:Oracle SQL Developer Data Modeler 是 Oracle 提供的免费数据建模工具。它允许用户使用图形界面创建、修改和记录数据模型。它还支持对现有数据库进行逆向工程和生成 DDL 脚本。
Visual Paradigm:Visual Paradigm 是一款全面的建模工具,支持各种建模技术,包括数据建模。它提供创建实体关系图、UML 图和数据流图的功能。它还支持与其他开发工具的协作和集成。
Sparx Systems Enterprise Architect:Enterprise Architect 是一款多功能建模工具,支持数据建模以及其他建模学科。它提供创建和管理数据模型、生成 SQL 脚本以及与其他开发工具集成的功能。
九 、小结
数据建模是一个关键过程,可帮助组织了解和有效组织其数据。通过创建概念、逻辑和物理模型,数据建模使利益相关者能够直观地看到其数据中存在的结构、关系和属性。
这可以提高数据的整体质量、正确的数据库设计和明智的决策。通过利用可用的数据建模技术和工具,组织可以利用数据的力量,适应不断变化的业务需求,并在当今数据驱动的世界中取得竞争优势,从而证明“数据是新石油”的说法。