数据仓库建模方法
数据仓库建模的使用教程

数据仓库建模的使用教程数据仓库建模是一种在企业中广泛使用的技术,用于将原始数据转化为可管理和分析的结构化数据。
它提供了一个强大的分析平台,使企业能够从大量的数据中提取有价值的信息,并做出更明智的决策。
本文将介绍数据仓库建模的基本概念、常用技术和最佳实践,以帮助您在构建数据仓库时取得成功。
一、数据仓库建模的基本概念1. 数据仓库建模的定义数据仓库建模是一种将企业数据转化为更易于理解和分析的结构的过程。
它通过将数据组织为主题、维度和事实表来提供高度灵活和可查询的数据结构。
数据仓库建模的目标是提供一种便于使用和可理解的数据模型,使用户能够轻松地执行复杂的查询和分析。
2. 主题和维度主题是数据仓库中的一个核心概念,它表示一种业务问题或主要关注点。
主题可以是销售、存货、客户等。
每个主题通常都有相应的维度,维度是用于描述主题的属性。
例如,在销售主题中,维度可以包括产品、客户、时间等。
3. 事实表事实表是数据仓库建模中的另一个重要概念,它包含描述业务度量或指标的数据。
事实表通常与主题和维度表相关联,并包含用于描述度量的外键连接。
例如,在销售主题中,事实表可以包含销售金额、销售数量等度量。
二、常用的数据仓库建模技术1. 星型模型星型模型是数据仓库建模中最常见和简单的模型。
它由一个中心的事实表和多个维度表组成,维度表通过外键与事实表关联。
星型模型具有简单的结构和易于理解的查询语句,适用于大多数业务需求。
2. 雪花模型雪花模型是星型模型的扩展,它在维度表之间建立了更多的关联关系。
这样做可以提高数据的粒度和准确性,但也增加了数据模型的复杂性和查询的复杂性。
雪花模型适用于需要更细粒度数据的复杂业务分析。
3. 星座模型星座模型是多个星型或雪花模型的组合,通过共享维度表来简化查询和数据加载。
星座模型适用于具有多个独立的主题和共享维度的复杂企业环境。
三、数据仓库建模的最佳实践1. 了解业务需求在构建数据仓库之前,首先需要深入了解业务需求。
数据仓库维度建模ppt课件

• 例如,零售营销事实表设计如下: POS 事务编号
销售量销售额
成本金额
.
毛利润金额
3.星形模型设计
(3) 维表的设计。 • 维表的属性必须具有以下特征:
– 可用文字描述; – 离散值; – 有规定的约束; – 在分析时可提供行标题。
.
3.星形模型设计
例:零售业营销分析的星型模型图。
时间维
时间键 星期几 月份 年份
.
3.星形模型设计
(2) 事实表的设计方法。
• 事实表是数据仓库中最大的表,在设计时,一定 注意使事实表尽可能的小,因为过大的事实表在 表的处理、备份和恢复、用户查询等方面要用较
长的时间。具体方法主要有:
– 减少列的数量;
日期关键字
– 降低每列的大小;
产品关键字
– 把历史数据存档;
商场关键字 促销关键字
• 在这种模式中,维度表除了具有星形模型中维度 表的功能外,还连接对事实表进行详细描述的详 细类别表,详细类别表通过对事实表在有关维上 的详细描述达到了缩小事实表和提高查询效率的 目的。
.
4.基本雪花模型设计
• 在该模型中,将地理层次国家、区域和分区域嵌 入到销售员维度,这样,公司的管理者想按照国 家、区域、分区域和分区域内的销售员的层次关 系来查看公司的销售情况。
商品维
商店键 商店标识号 商店名称 地址 地区 楼层类型
零售营销
时间键 产品键 商店键 客户键 促销键 销售额 成本金额
促销维
促销键 待定促销 属性
.
产品维
产品键 描述 品牌 类别 包装类型 尺寸
客户维
客户键 客户姓名 购买介绍 信用概况 统计类型 地址
4.雪花模型设计
数据仓库范式建模步骤

数据仓库范式建模步骤1.确定业务需求:首先需要明确数据仓库的目标和业务需求,了解业务流程和数据处理的要求。
与业务专家和决策者沟通,确保对业务需求的准确理解和全面把握。
2.数据准备:数据仓库建模需要使用到的数据通常来自于多个源系统,包括关系数据库、大数据平台、文件系统等。
需要对这些数据进行收集、清洗、整合和转换,以便于后续的分析和建模工作。
3.反范式化:在数据仓库建模中,通常会采用反范式化的处理方式,即将多个实体和关系整合到一个宽表中,以减少数据的冗余和规范化带来的性能问题。
反范式化需要综合考虑查询需求与数据冗余的权衡,保证数据的一致性和完整性。
4.确定实体和属性:根据业务需求,确定数据仓库中的实体和属性。
实体是指数据仓库中描述的具体事物,属性是实体的特征或描述。
通过对业务流程和数据需求的分析,确定需要建模的实体和对应的属性。
6.设计关系模式:根据上述实体和关系的定义,设计数据仓库中的关系模式。
关系模式是由表和字段组成的数据结构,用于存储具体的数据。
关系模式的设计需要根据实际业务需求和查询性能要求,考虑表的分解和数据的组织方式。
7.确定索引和分区:为了提高查询性能和数据访问效率,需要对关系模式中的字段进行索引和分区。
索引是对字段的检索结构,用于加快查询的速度,分区是将数据按照一定的规则进行划分,以便于并行处理和管理。
8.数据装载:在设计完关系模式后,需要将数据装入数据仓库中。
数据装载是将源系统中的数据抽取、清洗和转换后加载到数据仓库中的过程。
数据装载的过程需要考虑数据的一致性和完整性,以保证数据的质量和准确性。
9.数据验证和测试:在数据装载后,需要对数据进行验证和测试,以确保数据的准确性和一致性。
验证和测试的方式包括数据对比、查询分析和性能测试等,通过这些方式可以发现数据质量问题和性能瓶颈,并进行优化和修正。
10.数据维护和更新:数据仓库建模是一个持续的过程,随着业务需求的变化和数据的更新,需要对数据仓库进行维护和更新。
4种数据仓库建模方法

引言概述在数字化时代,数据成为企业运营和决策的重要驱动力。
为了更好地管理和利用企业数据,很多企业采用数据仓库来集成和存储数据。
数据仓库建模是数据仓库设计的核心环节,它决定了数据在仓库中的组织结构和查询方式。
本文将介绍四种常见的数据仓库建模方法,包括维度建模、实体关系模型、标准化模型以及主题建模。
维度建模维度建模是一种以事实表和维度表作为核心的建模方法。
事实表是存储数值型数据的表,维度表则存储描述性属性的表。
在维度建模中,事实表和维度表通过共享主键来建立关联。
小点详细阐述:1.事实表的设计:事实表应选择合适的粒度,并包含与业务流程相关的度量。
例如,销售事实表可以包含销售额、销售数量等度量。
2.维度表的设计:维度表应包含与业务流程相关的描述性属性,例如时间、产品、地理位置等。
维度应具有层次结构,以便支持多维分析。
3.关系型数据库实现:维度建模通常使用关系型数据库来实现,它通过表和关联键来表示维度和事实之间的关系。
实体关系模型实体关系模型是一种基于关系代数和数据库范式的建模方法。
它通过实体、属性和关系来描述数据的结构。
实体关系模型适用于较复杂的数据仓库场景,其中数据具有多层级和复杂的关系。
小点详细阐述:1.实体的建模:实体是数据仓库中的核心对象,它代表了业务流程中的实际对象。
实体的属性描述了实体的特征。
2.关系的建模:关系描述了实体间的关联和依赖关系。
在实体关系模型中,关系通过外键建立。
3.数据库范式:实体关系模型追求高度的数据规范化,以减少数据冗余和不一致性。
标准化模型标准化模型是一种以消除冗余数据为核心的建模方法。
在标准化模型中,数据被拆分为多个表,并通过关系建立关联。
小点详细阐述:1.数据拆分:标准化模型通过将数据拆分为多个表,将重复的数据存储在一个地方,并通过外键建立关联。
2.数据插入和查询:标准化模型在数据插入和查询时需要进行多表关联操作,对性能有一定影响。
3.适用场景:标准化模型适用于事务性场景,如订单管理、库存管理等。
数据仓库建模方法总结

数据仓库建模方法总结数据仓库建模是数据仓库构建过程中的重要环节,它决定了数据仓库的数据结构和查询性能。
本文将总结几种常见的数据仓库建模方法,包括维度建模、事实建模和标准化建模,并比较它们的优缺点。
1. 维度建模维度建模是一种常见的数据仓库建模方法,它基于维度表和事实表的概念。
维度表包含描述业务过程的属性,如时间、地点、产品等,而事实表包含与业务过程相关的度量。
维度表和事实表通过共同的键连接起来,形成星型或雪花型的模型。
优点:1) 简单直观:维度建模易于理解和使用,可以快速设计和构建数据仓库。
2) 查询性能高:维度建模的星型结构简化了查询的关联操作,提高了查询性能。
缺点:1) 一对一关系:维度表和事实表之间是一对多的关系,无法处理多对多的关系。
2) 数据冗余:维度表中的属性可能存在冗余,造成数据冗余和一致性问题。
2. 事实建模事实建模是基于主题的数据仓库建模方法,它以业务过程为核心构建事实表,包括维度键和度量。
事实表记录了业务过程发生的事实信息,维度键用于连接事实表和维度表,度量用于度量业务过程的指标。
优点:1) 灵活性高:事实建模能够适应复杂的业务逻辑和多对多的关系。
2) 数据粒度控制:事实表可以根据需要控制数据的粒度,提供灵活的查询和分析能力。
缺点:1) 设计复杂:事实建模的设计复杂度较高,需要考虑多对多的关系和度量的粒度控制。
2) 查询性能相对低:事实建模需要进行多表关联操作,查询性能相对较低。
3. 标准化建模标准化建模是一种将数据仓库模型与关系数据库模型类似的建模方法。
它将数据存储在标准化的表中,通过复杂的关联操作来查询和分析数据。
标准化建模与维度建模和事实建模相比,更适用于小型数据仓库和查询较少的情况。
优点:1) 数据一致性:标准化建模减少了数据冗余,提高了数据一致性。
2) 灵活可扩展:标准化建模可以适应不同的查询需求,支持灵活的查询和分析。
缺点:1) 查询复杂:标准化建模需要进行多表关联和聚合操作,查询复杂度较高。
数据仓库建模

数据仓库建模一、概述数据仓库建模是指根据业务需求,将原始数据进行整理、转换和存储,以便于数据分析和决策支持。
本文将详细介绍数据仓库建模的标准格式,包括数据仓库架构、维度建模和事实表设计等方面的内容。
二、数据仓库架构1. 数据仓库层次结构数据仓库通常由三层构成:操作型数据层、数据仓库层和数据展示层。
操作型数据层用于存储原始数据,数据仓库层用于存储经过整理和转换的数据,数据展示层用于展示数据分析结果。
2. 数据仓库模型数据仓库模型采用星型模型或者雪花模型。
星型模型由一个中心的事实表和多个维度表组成,每一个维度表与事实表通过外键关联。
雪花模型在星型模型的基础上,将维度表进一步规范化,形成多个层次的维度表。
三、维度建模1. 维度表设计维度表包含业务过程中的维度属性,如时间、地点、产品等。
每一个维度表应包含一个主键和多个属性列,属性列用于描述维度的特征。
主键与事实表进行关联。
2. 事实表设计事实表包含业务过程中的度量指标,如销售额、订购数量等。
每一个事实表应包含一个主键和多个度量列,度量列用于存储度量指标的数值。
主键与维度表进行关联。
3. 维度建模技巧维度建模过程中,需要注意以下几点:- 维度表应具备高度可重用性,便于在不同的事实表中使用。
- 维度表的属性列应具备高度一致性和完整性,便于数据分析和查询。
- 维度表的属性列应具备高度可扩展性,便于根据业务需求进行扩展。
四、事实表设计1. 事实表类型事实表分为事务型事实表和积累型事实表。
事务型事实表记录每一个业务事件的详细信息,积累型事实表记录业务事件的累计值。
2. 事实表度量粒度事实表度量粒度应根据业务需求进行确定。
普通情况下,度量粒度应尽可能细化,以便于进行更详细的数据分析。
但也需要考虑数据存储和查询效率的问题。
3. 事实表的度量指标事实表的度量指标应根据业务需求进行确定。
度量指标应具备可度量性、可加性和可分解性等特性,便于进行数据分析和计算。
五、数据仓库建模工具数据仓库建模过程中,可以使用一些建模工具辅助设计和管理数据仓库,如PowerDesigner、ERwin等。
数据仓库设计与构建中的维度建模方法探究

数据仓库设计与构建中的维度建模方法探究维度建模是数据仓库设计和构建中的重要环节,它能够帮助企业将海量的数据组织成更易于理解和查询的结构,并提供有力的决策支持。
本文将探讨维度建模的方法,包括星型模型和雪花模型,并比较它们的优缺点。
1. 星型模型:星型模型是最常用的维度建模方法之一。
它的结构简单明了,由一个事实表和多个维度表组成。
事实表包含数值和度量,描述了业务过程中的事实,例如销售额、订单数量等。
维度表则描述了与事实表相关的维度,例如日期、地点、产品等。
星型模型的优点有以下几点:首先,它易于理解和查询,因为维度表之间的关系非常清晰。
可以通过连接事实表和维度表进行直接的查询,无需复杂的关联操作。
其次,它适用于大部分业务场景,特别是针对较为简单的分析需求,如基于某个维度进行的查询和分析。
再次,星型模型的扩展性强,可以轻松地添加新的维度表或事实表。
此外,它也适用于冗余数据较少的场景。
然而,星型模型也存在一些缺点:首先,它可能会导致数据冗余。
由于维度表只与一个事实表关联,如果多个事实表需要共享相同的维度信息,就需要在每个事实表中复制这些维度数据,导致数据冗余。
其次,查询复杂度较高。
对于需要关联多个维度表的复杂查询,需要进行多次连接操作,降低了查询效率。
最后,星型模型对于更复杂的业务场景可能不够灵活。
如果业务需求中存在多级维度之间的层次关系,星型模型无法直接表示这种层次结构。
2. 雪花模型:雪花模型是相对于星型模型的一个改进。
它通过将某些维度表的属性拆分成更小的维度表,形成维度表的层次结构,进一步减少了数据冗余。
雪花模型可以看作是星型模型的一种扩展。
雪花模型的优点有以下几点:首先,它减少了数据冗余。
将维度表进行拆分,可以更好地组织和管理维度数据,提高数据仓库的性能和灵活性。
其次,它支持更复杂的层次结构。
雪花模型可以更好地表示维度之间的层次关系,如产品分类之间的多级层次。
再次,它适用于需要更灵活的查询需求。
雪花模型可以通过多级连接操作实现更细致的数据查询和分析。
数据仓库建模

数据仓库建模数据仓库建模是指将原始数据整理和组织,以便于分析和决策支持的过程。
它是数据仓库项目中的重要环节,决定了数据仓库的结构和性能。
本文将介绍数据仓库建模的概念、常用方法和最佳实践。
一、概述数据仓库建模是将各种不同来源的数据进行抽取、清洗、转换和加载,最终形成适用于商业智能分析的结构化模型。
它可以帮助企业从大量的数据中发现隐藏的商业价值,为管理层提供决策依据。
二、数据仓库建模方法1. 维度建模维度建模是数据仓库建模的一种常见方法。
它以事实表为中心,围绕着维度表来组织数据。
事实表是包含了业务度量(如销售额、利润等)的表,而维度表则包含了事实表所描述的业务维度(如时间、地点、产品等)的具体信息。
维度建模具有简单、易于理解和维护的特点,广泛应用于数据仓库项目中。
2. 规范化建模规范化建模是将数据仓库中的数据按照规范化的数据库设计原则进行建模。
它将数据分散存储在多个表中,以减少数据冗余和提高数据一致性。
规范化建模适用于对数据一致性要求较高,但性能要求相对较低的场景。
3. 星型模型和雪花模型星型模型是维度建模的一种具体实现方式,它以一个事实表和多个维度表组成星型结构。
星型模型简单、易于理解和查询,适合于业务分析和报表查询。
而雪花模型是在星型模型基础上,将维度表进一步规范化,减少了数据冗余,提高了灵活性和数据一致性。
4. 声明式建模声明式建模是一种使用元数据描述数据仓库模型的方法。
它通过定义元数据中的核心概念和规则,自动生成数据仓库中的数据模型和代码。
声明式建模提高了开发效率和模型的一致性,但对于复杂的业务场景需要谨慎使用。
三、最佳实践1. 理清需求在进行数据仓库建模之前,需要充分了解业务需求,理清分析和报表查询的目标。
只有明确需求,才能设计出合适的模型结构。
2. 引入业务专家数据仓库建模需要与业务专家密切合作,理解业务领域,并将其转化为可操作的维度和度量。
只有深入理解业务,才能构建出有用的数据仓库。
3. 划分合适的粒度数据仓库的数据粒度应该根据具体业务需求来确定,既要保留足够的详细信息以满足分析需求,又要避免数据量过大导致性能下降。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据仓库建模方法每个行业有自己的模型,但是不同行业的数据模型,在数据建模的方法上,却都有着共通的基本特点。
什么是数据模型数据模型是抽象描述现实世界的一种工具和方法,是通过抽象的实体及实体之间联系的形式,来表示现实世界中事务的相互关系的一种映射。
在这里,数据模型表现的抽象的是实体和实体之间的关系,通过对实体和实体之间关系的定义和描述,来表达实际的业务中具体的业务关系。
数据仓库模型是数据模型中针对特定的数据仓库应用系统的一种特定的数据模型,一般的来说,我们数据仓库模型分为几下几个层次。
图 2. 数据仓库模型通过上面的图形,我们能够很容易的看出在整个数据仓库得建模过程中,我们需要经历一般四个过程: ?业务建模,生成业务模型,主要解决业务层面的分解和程序化。
?领域建模,生成领域模型,主要是对业务模型进行抽象处理,生成领域概念模型。
?逻辑建模,生成逻辑模型,主要是将领域模型的概念实体以及实体之间的关系进行数据库层次的逻辑化。
?物理建模,生成物理模型,主要解决,逻辑模型针对不同关系型数据库的物理化以及性能等一些具体的技术问题。
因此,在整个数据仓库的模型的设计和架构中,既涉及到业务知识,也涉及到了具体的技术,我们既需要了解丰富的行业经验,同时,也需要一定的信息技术来帮助我们实现我们的数据模型,最重要的是,我们还需要一个非常适用的方法论,来指导我们自己针对我们的业务进行抽象,处理,生成各个阶段的模型。
为什么需要数据模型在数据仓库的建设中,我们一再强调需要数据模型,那么数据模型究竟为什么这么重要呢?首先我们需要了解整个数据仓库的建设的发展史。
数据仓库的发展大致经历了这样的三个过程:?简单报表阶段:这个阶段,系统的主要目标是解决一些日常的工作中业务人员需要的报表,?以及生成一些简单的能够帮助领导进行决策所需要的汇总数据。
这个阶段的大部分表现形式为数据库和前端报表工具。
?数据集市阶段:这个阶段,主要是根据某个业务部门的需要,进行一定的数据的采集,整理,按照业务人员的需要,进行多维报表的展现,能够提供对特定业务指导的数据,并且能够提供特定的领导决策数据。
?数据仓库阶段:这个阶段,主要是按照一定的数据模型,对整个企业的数据进行采集,整理,并且能够按照各个业务部门的需要,提供跨部门的,完全一致的业务报表数据,能够通过数据仓库生成对对业务具有指导性的数据,同时,为领导决策提供全面的数据支持。
通过数据仓库建设的发展阶段,我们能够看出,数据仓库的建设和数据集市的建设的重要区别就在于数据模型的支持。
因此,数据模型的建设,对于我们数据仓库的建设,有着决定性的意义。
一般来说,数据模型的建设主要能够帮助我们解决以下的一些问题:?进行全面的业务梳理,改进业务流程。
在业务模型建设的阶段,能够帮助我们的企业或者是管理机关对本单位的业务进行全面的梳理。
通过业务模型的建设,我们应该能够全面了解该单位的业务架构图和整个业务的运行情况,能够将业务按照特定的规律进行分门别类和程序化,同时,帮助我们进一步的改进业务的流程,提高业务效率,指导我们的业务部门的生产。
?建立全方位的数据视角,消灭信息孤岛和数据差异。
通过数据仓库的模型建设,能够为企业提供一个整体的数据视角,不再是各个部门只是关注自己的数据,而且通过模型的建设,勾勒出了部门之间内在的联系,帮助消灭各个部门之间的信息孤岛的问题,更为重要的是,通过数据模型的建设,能够保证整个企业的数据的一致性,各个部门之间数据的差异将会得到有效解决。
?解决业务的变动和数据仓库的灵活性。
通过数据模型的建设,能够很好的分离出底层技术的实现和上层业务的展现。
当上层业务发生变化时,通过数据模型,底层的技术实现可以非常轻松的完成业务的变动,从而达到整个数据仓库系统的灵活性。
?帮助数据仓库系统本身的建设。
通过数据仓库的模型建设,开发人员和业务人员能够很容易的达成系统建设范围的界定,以及长期目标的规划,从而能够使整个项目组明确当前的任务,加快整个系统建设的速度。
如何建设数据模型建设数据模型既然是整个数据仓库建设中一个非常重要的关键部分,那么,怎么建设我们的数据仓库模型就是我们需要解决的一个问题。
这里我们将要详细介绍如何创建适合自己的数据模型。
数据仓库数据模型架构数据仓库的数据模型的架构和数据仓库的整体架构是紧密关联在一起的,我们首先来了解一下整个数据仓库的数据模型应该包含的几个部分。
从下图我们可以很清楚地看到,整个数据模型的架构分成 5 大部分,每个部分其实都有其独特的功能。
图 3. 数据仓库数据模型架构从上图我们可以看出,整个数据仓库的数据模型可以分为大概 5 大部分: ?系统记录域(System of Record):这部分是主要的数据仓库业务数据存储区,数据模型在这里保证了数据的一致性。
?内部管理域(Housekeeping):这部分主要存储数据仓库用于内部管理的元数据,数据模型在这里能够帮助进行统一的元数据的管理。
?汇总域(Summary of Area):这部分数据来自于系统记录域的汇总,数据模型在这里保证了分析域的主题分析的性能,满足了部分的报表查询。
?分析域(Analysis Area):这部分数据模型主要用于各个业务部分的具体的主题业务分析。
这部分数据模型可以单独存储在相应的数据集市中。
?反馈域(Feedback Area):可选项,这部分数据模型主要用于相应前端的反馈数据,数据仓库可以视业务的需要设置这一区域。
通过对整个数据仓库模型的数据区域的划分,我们可以了解到,一个好的数据模型,不仅仅是对业务进行抽象划分,而且对实现技术也进行具体的指导,它应该涵盖了从业务到实现技术的各个部分。
数据仓库建模阶段划分我们前面介绍了数据仓库模型的几个层次,下面我们讲一下,针对这几个层次的不同阶段的数据建模的工作的主要内容:图 4. 数据仓库建模阶段划分从上图我们可以清楚地看出,数据仓库的数据建模大致分为四个阶段:业务建模,这部分建模工作,主要包含以下几个部分:?划分整个单位的业务,一般按照业务部门的划分,进行各个部分之间业务工作的界定,理清各业务部门之间的关系。
?深入了解各个业务部门的内具体业务流程并将其程序化。
?提出修改和改进业务部门工作流程的方法并程序化。
?数据建模的范围界定,整个数据仓库项目的目标和阶段划分。
领域概念建模,这部分得建模工作,主要包含以下几个部分:?抽取关键业务概念,并将之抽象化。
?将业务概念分组,按照业务主线聚合类似的分组概念。
?细化分组概念,理清分组概念内的业务流程并抽象化。
?理清分组概念之间的关联,形成完整的领域概念模型。
逻辑建模,这部分的建模工作,主要包含以下几个部分:?业务概念实体化,并考虑其具体的属性?事件实体化,并考虑其属性内容?说明实体化,并考虑其属性内容物理建模,这部分得建模工作,主要包含以下几个部分:?针对特定物理化平台,做出相应的技术调整?针对模型的性能考虑,对特定平台作出相应的调整?针对管理的需要,结合特定的平台,做出相应的调整?生成最后的执行脚本,并完善之。
从我们上面对数据仓库的数据建模阶段的各个阶段的划分,我们能够了解到整个数据仓库建模的主要工作和工作量,希望能够对我们在实际的项目建设能够有所帮助。
数据仓库建模方法大千世界,表面看五彩缤纷,实质上,万物都遵循其自有的法则。
数据仓库得建模方法同样也有很多种,每一种建模方法其实代表了哲学上的一个观点,代表了一种归纳,概括世界的一种方法。
目前业界较为流行的数据仓库的建模方法非常多,这里主要介绍范式建模法,维度建模法,实体建模法等几种方法,每种方法其实从本质上讲就是从不同的角度看我们业务中的问题,不管从技术层面还是业务层面,其实代表的是哲学上的一种世界观。
我们下面给大家详细介绍一下这些建模方法。
1. 范式建模法(Third Normal Form,3NF)范式建模法其实是我们在构建数据模型常用的一个方法,该方法的主要由Inmon 所提倡,主要解决关系型数据库得数据存储,利用的一种技术层面上的方法。
目前,我们在关系型数据库中的建模方法,大部分采用的是三范式建模法。
范式是数据库逻辑模型设计的基本理论,一个关系模型可以从第一范式到第五范式进行无损分解,这个过程也可称为规范化。
在数据仓库的模型设计中目前一般采用第三范式,它有着严格的数学定义。
从其表达的含义来看,一个符合第三范式的关系必须具有以下三个条件: ?每个属性值唯一,不具有多义性;?每个非主属性必须完全依赖于整个主键,而非主键的一部分;?每个非主属性不能依赖于其他关系中的属性,因为这样的话,这种属性应该归到其他关系中去。
由于范式是基于整个关系型数据库的理论基础之上发展而来的,因此,本人在这里不多做介绍,有兴趣的读者可以通过阅读相应的材料来获得这方面的知识。
根据Inmon 的观点,数据仓库模型得建设方法和业务系统的企业数据模型类似。
在业务系统中,企业数据模型决定了数据的来源,而企业数据模型也分为两个层次,即主题域模型和逻辑模型。
同样,主题域模型可以看成是业务模型的概念模型,而逻辑模型则是域模型在关系型数据库上的实例话。
图 5. 范式建模法从业务数据模型转向数据仓库模型时,同样也需要有数据仓库的域模型,即概念模型,同时也存在域模型的逻辑模型。
这里,业务模型中的数据模型和数据仓库的模型稍微有一些不同。
主要区别在于:?数据仓库的域模型应该包含企业数据模型得域模型之间的关系,以及各主题域定义。
数据仓库的域模型的概念应该比业务系统的主题域模型范围更加广。
?在数据仓库的逻辑模型需要从业务系统的数据模型中的逻辑模型中抽象实体,实体的属性,实体的子类,以及实体的关系等。
以笔者的观点来看,Inmon 的范式建模法的最大优点就是从关系型数据库的角度出发,结合了业务系统的数据模型,能够比较方便的实现数据仓库的建模。
但其缺点也是明显的,由于建模方法限定在关系型数据库之上,在某些时候反而限制了整个数据仓库模型的灵活性,性能等,特别是考虑到数据仓库的底层数据向数据集市的数据进行汇总时,需要进行一定的变通才能满足相应的需求。
因此,笔者建议读者们在实际的使用中,参考使用这一建模方式。
2. 维度建模法维度建模法,Kimball 最先提出这一概念。
其最简单的描述就是,按照事实表,维表来构建数据仓库,数据集市。
这种方法的最被人广泛知晓的名字就是星型模式(Star-schema)。
图 6. 维度建模法上图的这个架构中是典型的星型架构。
星型模式之所以广泛被使用,在于针对各个维作了大量的预处理,如按照维进行预先的统计、分类、排序等。
通过这些预处理,能够极大的提升数据仓库的处理能力。
特别是针对3NF 的建模方法,星型模式在性能上占据明显的优势。
同时,维度建模法的另外一个优点是,维度建模非常直观,紧紧围绕着业务模型,可以直观的反映出业务模型中的业务问题。