企业数据模型转换到数据
仓库数据模型的步骤
企业数据模型
企业数据模型是指从整个企业业务的视角,
对企业业务活动相关数据采用数据建模方
法构造的模型。
企业数据模型是对企业业务的核心数据的
抽象,它不是信息化系统实施所需的全部
细节数据的数据模型。
企业数据模型不随企业职能域的改变而变
化,它独立于企业的应用,是企业信息化
应用建设的基础 。
数据仓库
数据仓库是一个面向主题的、集成的、非
易失的,随时间变化的用来支持管理人员
决策的数据集合。
数据仓库的特点
面向主题性
数据以所代表的业务内容划分,而不是以
应用划分。
集成
数据仓库中的数据从多个不同的数据源传
送来。
数据仓库的特点
非易失性
数据仓库的数据通常以批量方式载入与访
问,但在数据仓库环境中并不进行数据更
新,只允许加载和查询操作。
随时间变化
数据仓库中的每个数据单元只是在某一时
间是准确的,有些情况下记录中加有时间
戳,而在另外一些情况下记录则包含一个
事务的时间。
企业数据模型转换到数据仓库数据模型的步骤
选择感兴趣的数据选择感兴趣的数据
在键中增加时间在键中增加时间
增加派生数据增加派生数据
确定粒度级别确定粒度级别
汇总数据汇总数据
合并实体合并实体
建立数组建立数组
分离数据分离数据
选择有兴趣的数据
主要原因
把数据仓库项目的目的和企业目标作为前
景,在涉及数据仓库建模的所有决定中都
考虑了企业目标和目的。
把数据仓库模型的范围限定为刚好满足项
目的需要。
选择有兴趣的数据
在操作系统中,数据元素分三组
肯定需要的元素
肯定不需要的元素
可能需要的元素
选择有兴趣的数据
选择处理过程考虑三方面的因素
使用数据元素生成派生字段
划分事务型数据和参照型数据
源数据结构
使用数据元素生成派生字段
通常的规则通常的规则
用于计算派生字段的每个元素都应该包含在数据用于计算派生字段的每个元素都应该包含在数据
仓库中。仓库中。
原因原因
用于计算所需要的数据元素的算法可能会改变,用于计算所需要的数据元素的算法可能会改变,
并且通过保留这些独立的元素,派生字段可以根并且通过保留这些独立的元素,派生字段可以根
据当前视图和历史视图的需要重新进行计算。据当前视图和历史视图的需要重新进行计算。
当企业用户分析结果时,尤其是派生元素的值是当企业用户分析结果时,尤其是派生元素的值是
一个意想不到的值的时候,他们已经钻研用于计一个意想不到的值的时候,他们已经钻研用于计
算某个所需字段的数据。算某个所需字段的数据。
划分事务型数据和参照型数据
通常的规则
对于事务型数据,如果我们无法确定,就
应该引入它。
对于参照型数据,如果对是否要包括一个
数据元素有异议,通常倾向于排除它。
源数据结构
如果一个源数据表中的绝大部分列都需要,
那么应该考虑包括进所有的元素。
如果仅仅需要一个源数据表中很少的几列,
那么应该倾向于排除其他的列。
企业数据模型转换到数据仓库数据模型的步骤
选择感兴趣的数据选择感兴趣的数据
在键中增加时间在键中增加时间
增加派生数据增加派生数据
确定粒度级别确定粒度级别
汇总数据汇总数据
合并实体合并实体
建立数组建立数组
分离数据分离数据
在键中增加时间
企业数据模型是一种企业数据模型是一种““时间点时间点””模型,这种模型模型,这种模型
实时地描述业务。实时地描述业务。
数据仓库数据模型是一种数据仓库数据模型是一种““时间段时间段””模型,它用模型,它用
历史视图来描述一个企业。历史视图来描述一个企业。
在数据模型中为每个实体增加时间成分(日期、在数据模型中为每个实体增加时间成分(日期、
时间)以提供历史视角。由于对每个实体的键都时间)以提供历史视角。由于对每个实体的键都
要求加入时间成分,因此所包括的历史数据中的要求加入时间成分,因此所包括的历史数据中的
一些一对多的联系也变成了多对多的联系。一些一对多的联系也变成了多对多的联系。
在键中增加时间
实体的时间成分只能采用两种形式中的一种实体的时间成分只能采用两种形式中的一种
对于快照数据,加入到键中的是一个时间点,如对于快照数据,加入到键中的是一个时间点,如
日期。日期。
对于属于一段时间的数据,加入到键中的就是时对于属于一段时间的数据,加入到键中的就是时
间段。间段。
尽管在理论上建议时间成分应该加入到每个实体尽管在理论上建议时间成分应该加入到每个实体
键中,但是如果数据从来不改变,就不可能有任键中,但是如果数据从来不改变,就不可能有任
何历史数据,因而也就有了例外。何历史数据,因而也就有了例外。
收集历史数据的方法
生成一个双外键。生成一个双外键。
收集历史数据的方法
为每个实例在父亲实为每个实例在父亲实
体中生成一个顺序键,体中生成一个顺序键,
并在父亲实体内将该并在父亲实体内将该
实例的标识符和时间实例的标识符和时间
成分作为非键属性存成分作为非键属性存
储。储。
收集历史数据的方法
有计划地实施参照完有计划地实施参照完
整性,而不是使用整性,而不是使用
DBMSDBMS来实施它,并且来实施它,并且
针对标识符实施参照针对标识符实施参照
完整性。完整性。
收集历史数据的方法
将数据分离为一个包将数据分离为一个包
含历史数据的实体和含历史数据的实体和
一个只包含当前数据一个只包含当前数据
的实体。的实体。
收集历史数据的方法
维护基本实体,基本维护基本实体,基本
实体内的数据元素从实体内的数据元素从
不改变,并且为随时不改变,并且为随时
间变化的属性创建一间变化的属性创建一
个属性的实体。个属性的实体。
收集历史联系
联系也会随着时间而改变。这些改变的结
果是创建多对多的联系。在第三范式模型
内,可预测的层次结构是通过一系列的实
体来体现的,这些实体具有连续的一对多
联系。
收集历史联系
这种情况可以用两种方法来处理
插入一个关联型实体来解决多对多的联系
从父亲实体到子实体的日期级联得到父亲
节点数据的改变和联系的改变
方法依赖于两个主要因素
层次结构的层次数。
实体型数据与联系型数据的相对稳定性。
关于多维模型的考虑
在E-R模型中,可以收集到每一个有意义
的历史事件,并且这些事件很容易与相关
的业务项联系起来。在多维模型中,对历
史数据的处理依赖于其是否与事务有关或
者与参照型数据有关。在一个由维表覆盖
的层次结构中,对数据或联系的任何有意
义的变化都要求设置另外的入口项,并创
建一个缓变维 。
企业数据模型转换到数据仓库数据模型的步骤
选择感兴趣的数据选择感兴趣的数据
在键中增加时间在键中增加时间
增加派生数据增加派生数据
确定粒度级别确定粒度级别
汇总数据汇总数据
合并实体合并实体
建立数组建立数组
分离数据分离数据
增加派生数据
派生数据是对一个或多个其他的数据元素
进行数学运算而产生的数据。
派生数据并入到数据仓库模型中有两个主
要原因 :
保证一致性
提高数据交付性能
企业数据模型转换到数据仓库数据模型的步骤
选择感兴趣的数据选择感兴趣的数据
在键中增加时间在键中增加时间
增加派生数据增加派生数据
确定粒度级别确定粒度级别
汇总数据汇总数据
合并实体合并实体
建立数组建立数组
分离数据分离数据
确定粒度级别
从业务观点来看,它规定了数据仓库潜在的能力和灵活性,从业务观点来看,它规定了数据仓库潜在的能力和灵活性,
而不考虑初次部署的功能。如果没有以后粒度级别的变化,而不考虑初次部署的功能。如果没有以后粒度级别的变化,
数据仓库将永远不能回答需要低于所采用细节级的问题。数据仓库将永远不能回答需要低于所采用细节级的问题。
从技术观点来看,粒度级别是数据仓库建模的主要决定因从技术观点来看,粒度级别是数据仓库建模的主要决定因
素之一,因此对操作的开销及性能都有显著影响。素之一,因此对操作的开销及性能都有显著影响。
从项目观点来看,粒度级别影响着项目组创建数据仓库的从项目观点来看,粒度级别影响着项目组创建数据仓库的
工作量,因为随着粒度级别进入越来越高的细节级,项目工作量,因为随着粒度级别进入越来越高的细节级,项目
组需要处理更多的数据属性和它们之间的关系。另外,如组需要处理更多的数据属性和它们之间的关系。另外,如
果粒度级别充分增加,一个相对小型的数据仓库也会变得果粒度级别充分增加,一个相对小型的数据仓库也会变得
非常巨大,这要求有额外的技术上的考虑。非常巨大,这要求有额外的技术上的考虑。
影响数据仓库的粒度级别的因素
当前的业务需求当前的业务需求
期望的业务需求期望的业务需求
扩展的业务需求扩展的业务需求
数据挖掘需求数据挖掘需求
派生数据需求派生数据需求
操作型系统粒度操作型系统粒度
数据获取性能数据获取性能
存储开销存储开销
管理管理
企业数据模型转换到数据仓库数据模型的步骤
选择感兴趣的数据选择感兴趣的数据
在键中增加时间在键中增加时间
增加派生数据增加派生数据
确定粒度级别确定粒度级别
汇总数据汇总数据
合并实体合并实体
建立数组建立数组
分离数据分离数据
汇总数据
创建汇总数据也许不会节省磁盘空间,因
为用于创建汇总地细节可能会被继续保留。
然而,这种能够改善数据交付处理的性能。
五种汇总类型
简单积累(simlpe cumulation)
卷动汇总(rolling summary)
简单直接文件(simple direct file)
连续文件(continuous file)
垂直汇总(vertical summary)
时间段数据的汇总
简单累积和卷动汇总应用于属于一段时间
的数据。
简单累积表示对数据的一个属性上的数据
求和,比如时间。
卷动汇总提供一致的时间段内的销售信息。
例如,按周的卷动汇总提供上一周每天结
束时的销售信息。
快照数据的汇总
简单直接汇总和连续汇总应用于快照数据、
短暂数据或属于一个时间点的数据。
简单直接文件提供了固定时间间隔内的数
据的值。
连续文件只有当一个值发生变化时生成一
个新记录。
垂直汇总
垂直汇总可以同时应用于时间点和时间段
上的数据。尽管时间点上和时间段上的数
据不应该在数据仓库中被混合到一个垂直
汇总的实体中,但是在数据集市中允许把
数据归并到一个事实表中。
企业数据模型转换到数据仓库数据模型的步骤
选择感兴趣的数据选择感兴趣的数据
在键中增加时间在键中增加时间
增加派生数据增加派生数据
确定粒度级别确定粒度级别
汇总数据汇总数据
合并实体合并实体
建立数组建立数组
分离数据分离数据
合并实体
合并实体是将两个或更多的实体合并成一
个。原始的实体仍然可以保留。合并实体
通过减少连接操作的数量,提高了数据交
付处理的性能,并且可以增强一致性。
合并实体
在决定合并实体前应有如下的标准:实体应共享在决定合并实体前应有如下的标准:实体应共享
一个公共键,来自合并实体的数据经常被一起使一个公共键,来自合并实体的数据经常被一起使
用,而且插入模式也相似。用,而且插入模式也相似。
三个条件三个条件
如果数据不能用相同的键联系起来,那它不能合如果数据不能用相同的键联系起来,那它不能合
并到一个公共实体中。并到一个公共实体中。
若只使用在同一个实体中的数据,则在将数据交若只使用在同一个实体中的数据,则在将数据交
付到数据集市期间,可以避免连接操作。付到数据集市期间,可以避免连接操作。
装载性能和存储。当数据合并到一个实体中时,装载性能和存储。当数据合并到一个实体中时,
任何时候任何属性发生变化都将产生新的一行。任何时候任何属性发生变化都将产生新的一行。
企业数据模型转换到数据仓库数据模型的步骤
选择感兴趣的数据选择感兴趣的数据
在键中增加时间在键中增加时间
增加派生数据增加派生数据
确定粒度级别确定粒度级别
汇总数据汇总数据
合并实体合并实体
建立数组建立数组
分离数据分离数据
建立数组
建立数组这一步很少使用,但是当需要时,
它能显著地改进数据集市的数量。
由于数组用来满足数据仓库的目的是提高
数据交付性能,所以,只有在数据集市包
含一个数组时,这种方法才是有意义的。
建立数组的情况
实例的数量相对较小
实例经常频繁地在一起使用
实例的数量是可预测的
插入和删除的模式是固定的
企业数据模型转换到数据仓库数据模型的步骤
选择感兴趣的数据选择感兴趣的数据
在键中增加时间在键中增加时间
增加派生数据增加派生数据
确定粒度级别确定粒度级别
汇总数据汇总数据
合并实体合并实体
建立数组建立数组
分离数据分离数据
分离数据
分离数据是根据稳定性和用法来分离的。
操作型系统和企业数据模型一般不保留数
据的历史视图,但是数据仓库可以保留。
这意味着每当一个实体的任何属性值发生
变化时,就会产生一个新的行。
分离数据
操作型环境中的数据在不同的时间发生变
化,因此将一组数据分组为基本插入模式
的数据集。这种方法最大程度的提高数据
获取处理的效率。