本文主要的主线就是回答下面三个问题:什么是数据模型,为什么需要数据模型,如何建设数据模型。数据模型是抽象描述现实世界的一种工具和方法,是通过抽象的实体及实体之间联系的形式,来表示现实世界中事务的相互关系的一种映射。在这里,数据模型表现的抽象的是实体和实体之间的关系,通过对实体和实体之间关系的定义和描述,来表达实际的业务中具体的业务关系。

在数据仓库的建设中,我们一再强调需要数据模型,那么数据模型究竟为什么这么重要呢?首先我们需要了解整个数据仓库的建设的发展史。数据仓库的发展大致经历了这样的三个过程:简单报表阶段、数据集市阶段和数据仓库阶段。在这三个阶段中,数据模型起到了非常重要的作用。

因此,在整个数据仓库的模型的设计和架构中,既涉及到业务知识,也涉及到了具体的技术,我们既需要了解丰富的行业经验,同时,也需要一定的信息技术来帮助我们实现我们的数据模型,最重要的是,我们还需要一个非常适用的方法论,来指导我们自己针对我们的业务进行抽象、处理、生成各个阶段的模型。

数据仓库阶段:在这个阶段,主要按照一定的数据模型对整个企业的数据进行采集、整理。同时,根据各个业务部门的需求提供跨部门的、完全一致的业务报表数据,这些数据能够通过数据仓库生成对业务具有指导性的数据,为领导决策提供全面的数据支持。

通过数据仓库建设的发展阶段,我们可以看出,数据仓库和数据集市的建设重要区别在于数据模型的支持。因此,数据模型的建设对于数据仓库建设具有决定性意义。一般来说,数据模型建设主要能帮助解决以下问题:

1. 进行全面的业务梳理,改进业务流程。在业务模型建设的阶段,可以帮助企业或管理机关对本单位的业务进行全面梳理。通过业务模型的建设,可以全面了解该单位的业务架构图和整个业务的运行情况,将业务按照特定规律分门别类和程序化,同时帮助改进业务流程,提高效率,指导业务部门生产。

2. 建立全方位的数据视角,消除信息孤岛和数据差异。通过数据仓库模型建设,为企业提供整体数据视角,不再是各部门关注自己的数据。通过模型建设,勾勒出部门间内在联系,消除信息孤岛问题。更重要的是,通过数据模型建设,保证企业数据的一致性,解决各部门间数据差异。

3. 解决业务变动和数据仓库灵活性。通过数据模型建设,能很好地分离底层技术实现和上层业务展现。当上层业务变化时,通过数据模型,底层技术实现可轻松完成业务变动,达到整个数据仓库系统的灵活性。

4. 帮助数据仓库系统本身的建设。通过数据仓库模型建设,开发人员和业务人员能容易达成系统建设范围界定及长期目标规划,从而使整个项目组明确任务,加快系统建设速度。

那么,如何建设数据模型呢?作为整个数据仓库建设中关键部分,我们需要解决如何创建适合自己的数据模型的问题。下面将详细介绍如何创建数据仓库数据模型架构。

首先,我们来看一下数据仓库的数据模型架构与整体架构的关系。从下图可以看到,整个数据模型架构分为5大部分,每个部分都有其独特的功能。

感谢您的信息。根据您提供的内容,数据仓库的数据模型可以分为大概 5 大部分:系统记录域、内部管理域、汇总域、分析域和反馈域。同时,数据仓库建模阶段划分为四个阶段:业务建模、领域概念建模、逻辑建模和物理建模。这些阶段的划分可以帮助您更好地了解整个数据仓库模型和数据建模的工作内容。

您好,数据仓库建模方法有很多种,其中比较流行的有范式建模法、维度建模法和实体建模法。范式建模法是一种基于关系的数仓模型设计方法,主要是由Inmon所提倡的,主要解决关系型数据库得数据存储利用的一种技术层面上的方法。目前,我们在关系型数据库中的建模方法,大部分采用的是三范式建模法。

维度建模法是从分析决策的需求出发构建模型,为分析需求服务。重点关注用户如何快速的完成数据分析,可以直观的反应业务模型中的业务问题,需要大量的数据预处理、数据冗余,有较好的大规模复杂查询的响应性能 。

实体建模法是将现实世界中的对象抽象成计算机中的对象,并将这些对象之间建立联系。它是一种面向对象的建模方法,可以更好地反映现实世界中的对象之间的关系。

从业务数据模型转向数据仓库模型时,同样也需要有数据仓库的域模型,即概念模型,同时也存在域模型的逻辑模型。这里,业务模型中的数据模型和数据仓库的模型稍微有一些不同。主要区别在于:

- 数据仓库的域模型应该包含企业数据模型的域模型之间的关系,以及各主题域定义。数据仓库的域模型的概念应该比业务系统的主题域模型范围更加广。

- 在数据仓库的逻辑模型需要从业务系统的数据模型中的逻辑模型中抽象实体,实体的属性,实体的子类,以及实体的关系等。

以笔者的观点来看,Inmon 的范式建模法的最大优点就是从关系型数据库的角度出发,结合了业务系统的数据模型,能够比较方便地实现数据仓库的建模。但其缺点也是明显的,由于建模方法限定在关系型数据库之上,在某些时候反而限制了整个数据仓库模型的灵活性、性能等。特别是考虑到数据仓库底层数据向数据集市数据进行汇总时需要进行一定变通才能满足相应需求。因此,笔者建议读者们在实际使用中参考使用这一建模方式。

维度建模法由Kimball提出。其最简单描述就是按照事实表、维表来构建数据仓库、数据集市。这种方法最被人广泛知晓名字就是星型模式(Star-schema)。星型模式之所以被广泛使用在于针对各个维作大量预处理如按维进行预先统计、分类、排序等。通过这些预处理能够极大提升数据仓库处理能力。特别是针对3NF建模方法星型模式在性能上占据明显优势。雪花模型也是维度建模中一种选择。雪花模型维表可以拥有其他维表虽然这种模型比星型模式更规范但是由于不太容易理解维护成本比较高并且性能方面需关联多层维表性能也比星型模式要低所以一般不常用。同时维度建模法另一个优点是维度建模非常直观紧紧围绕着业务模型可以直观反映出业务模型中业务问题不需要经过特别抽象处理即可完成维度建模这点也是维度建模优势所在但是维度建模法缺点也非常明显由于在构建星型模式之前需要进行大量数据预处理导致大量数据处理工作而且当业务发生变化需要重新进行维度定义时往往需要重新进行维度数据分析这过程中往往会导致大量冗余

另一个维度建模法的缺点在于,仅依靠单纯的维度建模无法确保数据来源的一致性和准确性。此外,在数据仓库的底层,这种方法并不特别适用。

因此,笔者认为维度建模主要适用于数据集市层,其最大作用是解决数据仓库建模中的性能问题。然而,维度建模很难提供一个完整地描述真实业务实体之间复杂关系的抽象方法。

实体建模法并非数据仓库建模中常见的方法,它源于哲学的一个流派。从哲学角度来看,客观世界应可细分为一个个实体及其关系。因此,在数据仓库建模过程中,我们可以引入这个抽象方法,将整个业务划分为实体及实体之间的关系。每个实体的关系及其说明就是数据建模所需工作。

实体建模法虽然看似抽象,但理解起来容易。可以将任何业务过程划分为三个部分:实体、事件和说明。例如,描述事实“小明开车去学校上学”,其中“小明”和“学校”为实体,“上学”为事件,而“开车去”则为事件“上学”的说明。

通过以上举例,我们可以了解到,抽象归纳方法非常简单。任何业务都可以看作三部分:实体(领域模型中的概念主体)、事件(概念主体之间的业务流程过程)和说明(针对实体和事件的特殊说明)。

实体建模法能轻松实现业务模型划分,因此在业务建模阶段和领域概念建模阶段具有广泛应用。在没有现成行业模型的情况下,可以采用实体建模法与客户一起理清业务模型,进行领域概念模型划分,提取具体业务概念,结合客户使用特点,创建符合需求的数据仓库模型。

然而,实体建模法也存在局限性。由于它只是一种抽象客观世界的方法,因此该建模方法仅限于业务建模和领域概念建模阶段。到了逻辑建模阶段和物理建模阶段,范式建模和维度建模发挥更大作用。

您好,以下是重构后的内容:

因此,笔者建议读者在创建自己的数据仓库模型的时候,可以参考使用上述的三种数据仓库得建模方法,在各个不同阶段采用不同的方法,从而能够保证整个数据仓库建模的质量。

四、 数据仓库建模样例

上面介绍得是一些抽象得建模方法和理论,可能理解起来相对有些难度,因此,笔者在这里举一个例子,读者可以跟着我们的这个样例,来初步了解整个数据仓库建模的大概过程。

熟悉社保行业的读者可以知道,目前我们国家的社保主要分为养老、失业、工伤、生育、医疗保险和劳动力市场这6大块主要业务领域。在这6大业务领域中,目前的状况养老和事业的系统已经基本完善,已经有一部分数据开始联网检测。而对于工伤、生育、医疗和劳动力市场这一块业务,有些地方发展的比较成熟,而有些地方还不够成熟。

1.业务建模阶段

基于以上的背景介绍,我们在业务建模阶段就很容易来划分相应的业务。因此,在业务建模阶段,我们基本上确定了本次数据仓库建设的目标、建设的方法以及长远规划等。如下图所示:

图8. 业务建模阶段

在这里,我们将整个业务很清楚地划分成了几个大的业务主线,例如:养老、失业、工伤、生育、医疗、劳动力等几个大的部分。然后我们可以根据这些大的模块在每个业务主线内考虑具体的业务主题。因此,业务建模阶段其实是一次和业务人员梳理业务的过程。在这个过程中不仅能帮助技术人员更好地理解业务另一方面也能够发现业务流程中的一些不合理环节加以改善和改进。同时业务建模阶段的另一个重要工作就是确定数据建模的范围例如在某些数据准备不够充分的业务模块内可以考虑先不建设相应的数据模型等到条件充分成熟的情况下再考虑数据建模的问题。

2.领域概念建模阶段

领域概念建模阶段是数据仓库数据建模的一个重要阶段由于我们在业务建模阶段已经完全理清相应

整个抽象过程可以从图上分为四个层次:抽象方法层、领域概念层、具体业务层和业务主线层。其中,抽象方法层是整个数据模型的核心方法,通过这种抽象方法实现领域概念建模的实体划分。领域概念层是数据模型的核心部分,不同程度的抽象方法决定了领域概念的不同。具体业务层主要解决具体的业务问题,而业务主线层则是用于划分大的业务领域。

在完成领域概念建模后,我们需要进行逻辑建模阶段。在这个阶段,我们需要实例化每一个抽象的实体,并找出抽象实体间的联系。例如,在实例化“人”和“公司”等抽象实体时,我们需要考虑它们的属性,如年龄、性别、受教育程度等;而在找出抽象实体间的联系时,则需要考虑像“养老金征缴”和“失业劳动者培训”这样的事件属性。通过这个过程,我们可以构建出一个完整的数据仓库模型框架。

在数据仓库建模过程中,我们可以分为四个主要的阶段:概念构建、逻辑建模、物理建模和使用与维护。

1. 概念构建阶段

在这个阶段,我们需要根据业务需求和分析来确定数据仓库的主题域以及维度。主题域是指业务过程中涉及的主要对象,而维度则是描述这些对象的关键属性。例如,一个销售数据仓库可能包括客户、产品、时间等主题域,以及地区、价格、销售数量等维度。

2. 逻辑建模阶段

在逻辑建模阶段,我们主要是对抽象事件的关系进行说明。这包括考虑事件中的地域、时间等因素,以便更好地理解业务过程。在这个阶段,我们主要关注的是抽象实体的一些细致属性,通过逻辑建模将整个概念模型完整地串联成一个有机的实体,从而表达出业务之间的关联性。建议参考 3NF 的建模方法来表达实体的属性以及实体与实体之间的联系。例如,可以使用 ERWIN 等建模工具来构建符合 3NF 的关系型数据模型。

3. 物理建模阶段

物理建模阶段是整个数据建模的最后一个过程,即将前面的逻辑数据模型落地。根据不同的数据仓库平台,物理建模过程可能会有所不同。在这个阶段,我们需要生成创建表的脚本,针对不同的数据仓库平台进行相应的优化工作(如 DB2 数据仓库的 MQT 表),按照维度建模的方式生成事实表、维表等工作,以及为数据仓库的 ETL 车和元数据管理生成日志表等。经过物理建模阶段,整个数据仓库的模型已经全部完成,我们可以根据自己的设计来创建满足需求的数据模型。

4. 使用与维护阶段

在使用和维护数据仓库的过程中,我们需要定期对数据模型进行更新和优化,以适应业务的发展和变化。这包括对新的业务需求进行分析,添加新的主题域和维度,以及调整现有实体之间的关系等。同时,还需要关注数据的安全性和完整性,确保数据仓库中存储的数据是准确、可靠的。

总之,在数据仓库建模过程中,我们需要遵循以下步骤:概念构建、逻辑建模、物理建模和使用与维护。通过这个过程,我们可以构建出一个符合业务需求、易于理解和使用的高效数据仓库模型。在实际应用中,要根据业务实际需求和自身对抽象能力的把握来创建适合自己的数据模型。