什么是数据建模
数据建模是创建整个信息系统或部分的可视化的表示的过程,以便在数据节点和结构之间建立通信连接。目的是阐明系统中数据的使用与存储类型,这些数据类型之间的关系,数据分组与组织的方法,以及它们的格式和属性。
数据模型是一个围绕着业务需要而构建的。规则和需求是构建在业务需求方的反馈上的,所以它们可以合并到新系统的设计中,或者用于已经存在的系统的迭代中。
数据可以在不同的抽象级别上建模。这个过程首先从业务方和最终用户收集相关需求信息开始。这些业务规则随后被翻译成数据结构,用于制订一个具体的数据库设计。可以将数据模型想像成路线图、一个建筑师的蓝图或者任何形式的图表,以促进对所设计的内容更深入的理解。
数据建模使用标准化模式和格式化的技术。它为跨组织定义和管理数据资源,提供了一个通用的、一致的以及可预测的方法。
理想上,数据模型是随着业务需求的改变而进化的。它们在支撑业务流得程和规划IT体系结构与策略方面扮演着很重要的角色。数据模型可以在供应商、合作伙伴之间共享。
数据模型的类型
概念数据模型
它也被称为领域模型,通常会以一张大图的方式体现,主要描述系统都包含哪些内容、如何组织所涉及到的业务规划。概念模型通常用于收集初始项目需求。通常,它包括实体类(也就是DDD中的领域类)、它们的特征与约束条件、这些实体之间的联系,以及相关的安全性与数据完整性的要求等。如图:

逻辑数据模型
它不是那么抽象,并且对所研究的领域中的概念与关系进行了更加详细的说明。它们指出了数据的属性,如数据类型及它们相应的长度,并且展示各实体间的关系。逻辑数据模型不指定任何技术相关的系统要求。这个过程在敏捷开发或DevOps实践中常常被忽略。逻辑数据模型在高度过程化的实现环境中,或者本质上是面向数据的项目中都是很有用的。比如数据仓库的设计。

物理数据模型
它们提供了数据如何存储到数据库中的模式。它们最不抽象的。它们提供了可以通过一种关系型数据库实现的最终设计。包括用于说明实体关系的关联表、以及用于维护这些关系的主键、外键。物理数据模型可以包含数据库管理系统的特定属性,包括性能优化。

数据建模的过程
作为一门学科,数据建模是邀请业务方细致入微的评估数据处理与存储的过程。数据建模技术有不同的约定,哪些符号用于代表数据,模型如何布局,业务需求是如何传达的。所有的方法都提供了形式化的工作流,包括以迭代方式提供的任务序列,这些工作流通常是这样的:
1、确定实体
数据建模的过程是从识别数据集(要被建模的)中表示的事物、事件或者概念开始的。每一个实体都应该具有内聚性并且逻辑上独立于其他实体。
2、确定每一个实体的关键属性
每一个实体类型都是可以与其他实体区分开的,因为每一个实体都有一个或更多的唯一属性。例如,一个叫做消费者的实体可能拥有一些属性,像姓名、电话号码、收货地址等等。
3、确定这些实体之间的关系
一个数据模型的早期草稿将指定每一个实体与其他实体之间的关系的本质。在上面的例子中,每一个消费者都“位于”某个地址。如果模型扩展一个名叫“订单”的实体,每一个订单都将被运送到这个地址。这些关系常常通过统一建模语言(Unified Modeling Language——UML)进行文档化。
4、将属性完成映射到实体
这将反映业务将如何使用这些数据。几种形式的数据建模模式得到很广泛的使用。面向对象的开发者经常提供分析模式或设计模式,当遇到其他业务领域的业务方的时候可能会切换其他模式。
5、根据需要进行数据标准化
数据标准化是一种组织数据模型的技术(及它们所代表的数据库)。将实体映射到数据库的关系中(表、字段与关联关系)。将实体映射成表并且为该实体分配主键,并制订主键的生成原则。举个例子,如果为每一个消费者分配一个主键,这个主键就可以链接到他们的地址和订单历史,这个信息和表中的其他消费者是不能重复的。数据标准化需要减少数据冗余与性能之间达到平衡。
6、验证数据模型
数据建模是一个迭代的过程,根据业务需求的变更进行不断的重复与改进。
数据建模的类型
数据建模是随着数据库管理系统的发展而发展的,随着业务数据存储需求的增长,模型类型的复杂度也越来越大。
层次数据模型
层次数据模型使用树型结构来表现1对多的关系。在这个类型的模型中,每一条记录都有一个单独的根节点或父节点,映射为一张或多张子表。这个模型在IBM信息管理系统(IM)中得到实现,1966年引入后得到了广泛的应用,尤其是银行业。它也广泛的应用于可扩展标记语言(Extensible Markup Language—XML)系统和地理信息系统(Geographic Information Systems—GISs)。
关系数据模型
关系数据模型不需要详细了解所使用的数据存储的物理特性。它使用表将数据段显示的连接起来,以降低数据库的复杂度。
1、实体关系数据模型
Entity-relationship(ER)data models
实体关系数据模型使用格式化的图表来显示数据库中的实体间的关系。数据设计师通过几种ER模型工具创建传达数据库设计目标的可视化映射。
2、面向对象数据模型
Object-oriented data models
对象是对现实世界的抽象。对象按类分组,内有相同的特征。面向对象的数据库可以合并表,但是也支持更加复杂的数据关系。
3、维度数据模型
Dimensional data models
维度数据模型旨在优化数据仓库中以分析为目的数据的检索速度。关系和ER模型强调高效存储,然则维度模型增加了冗余,为了使数据更容易的查询与取回。这个模型常常跨OLAP系统使用。