数据仓库模型设计_数据仓库星型图模型设计_数据仓库模型种类
数据仓库模型设计
数据仓库是一种近年来出现的、发展迅速的技术,它将企业内各种跨平台的数据经过集成,为企业决策者进行市场分析并做出决策提供了有效的途径。数据仓库的开发是由数据模型驱动的,数据仓库的创建过程中数据建模是最关键的技术环节,它直接决定数据仓库的成败。因此,要成功地创建一个数据仓库,必须有一个合理的数据模型。
数据模型是对现实事物的反映和抽象,它可以帮助我们更加清晰地了解客观世界。数据仓库建模在业务需求分析之后开始,是数据仓库构造的正式开始。在创建数据仓库的数据模型时应考虑:
(1)满足不同层次不同用户的信息需求。
(2)兼顾查询效率与数据粒度的需求。数据粒度与查询效率往往是相互矛盾的,细小的粒度保证了信息查询的灵活性,但降低了查询的效率。因此,建模要提供足够的数据粒度,并保证查询的效率。
(3)适应需求的变化。用户的信息需求随着市场的变化,建模要考虑支持需求的变化。
(4)避免业务运营系统的性能影响。由于数据仓库系统中数据增长迅速,运行占用大量资源,建模要考虑尽量减少业务运营系统的性能的影响。
(5)提供可扩展性。数据模型的可扩展性决定了数据仓库对新的需求的适应能力,建模既要考虑眼前的信息需求,也要考虑未来的需求。
合理而完备的数据模型是用户业务需求的体现,是数据仓库成败的技术因素。因此,数据模型的创建能直接反映出业务需求,对系统的物理实施起着指导性的作用,是数据仓库的核心问题。
数据仓库星型图模型设计
中间层建模方法——星形图设计
高层数据模型建好后,下一步就是中间层建模(DIS,数据项集),对高层模型中标识的每个实体都要建一个中间层模型。数据仓库主要提供的是查询操作,而最便于执行查询操作的逻辑模型设计工具是星形图,因此可以利用星形图来设计数据仓库的逻辑模型。
星形图因其外观似五角星而得名,它支持以商务决策者的观点定义数据实体,满足面向主题数据仓库设计的需要,而信息包图又为星形图的设计提供了完备的概念基础。同信息包图中的3个对象对应,星形图拥有以下3个逻辑实体的定义。
定义指标实体。位于星形图中心的实体是指标实体,是用户最关心的基本实体和查询活动的中心,为用户的商务活动提供定量数据。使用每一个指标,同时确定是否存储经过计算的指标。
定义维度实体。位于星形图星角上的实体是维度实体,其作用是限制用户的查询结果,将数据过滤使得从指标实体查询返回较少的行,从而缩小访问范围。一个维度实体对应指标实体中多个指标。一个维度实体对应信息包图中的一个列。
定义详细类别实体。详细类别实体,对应现实世界的某一实体。一个维度内的每个单元就是一个类别,代表该维度内的一个单独层次,要求更加详细的信息才能满足用户的需要,与对应的事务数据库结构产生映射。
在星形图中,用户通过维度实体获得指标实体数据,其中指标实体与维度实体间的联系通过每个维度中的最低一层的详细类别实体连接。
当多个信息包图转换成星形图时,可能出现维度实体的交叉重叠,为了保证实体的一致性需要进行统一处理,确定它们是同一实体在不同层次上的数据反映,还是两个不同的实体。当多个维度实体相关并且存在共性时,可能需要将其合并为一个指标实体。
数据仓库模型种类
数据仓库的实现策略有多种, 面向主题的自顶而下的设计方法, 其实面向主题就是面向对象。数据仓库包含的对象可以是:客户、产品、策略等多维概念。终端用户通过各种维度来获取商业数据, 其中时间是最基本、最关键的维度。数据仓库的数据建模分为3个层次: 高层建模、中间层建模、底层建模, 其设计方法同传统的数据库设计一样经历了概念模型设计、逻辑模型设计和物理模型设计3 个阶段, 对于面向主题的数据仓库, 数据建模的具体方法有多种, 这里介绍的是信息包图设计、星型图模型设计和物理数据模型设计:
1.高层建模方法——信息包图
高层建模(ERD,实体关系层),其特点是实体和关系,属概念模型设计阶段,也就是通常所说的需求分析,在与用户交流的过程中,确定数据仓库所需要访问的信息,这些信息包括当前、将来以及与历史相关的数据。在需求分析阶段确定操作数据、数据源以及一些附加数据,设计容易理解的数据模型,有效地完成查询和数据之间的映射。
由于数据仓库的多维性,利用传统的数据流程图进行需求分析己不能满足需要。超立方体(hypercube)用超出三维的表示来描述一个对象,显然具备多维特性,完全可以满足数据仓库的多维特性。利用自上而下方法设计一个超立方体的步骤为:(1)确定模型中需要抓住的商业过程,例如销售活动或销售过程;(2)确定需要捕获的值,例如销售数量或成本,这些信息通常是一些数值;(3)确定数据的粒度,亦即需要捕获的最低一级的详细信息。
由于超立方体在表现上缺乏直观性,尤其当维度超出三维后,数据的采集和表示都比较困难,因此我们可以采用一种称为信息包图的方法在平面上展开超立方体,即用二维表格反映多维特征。
信息包图提供了一个多维空间建立用户信息模型的方法,它提供了超立方体的可视化表示。
信息包图集中在用户对信息包的需要,它定义主题内容和主要性能测试指标之间的关系,其目标就是满足用户需要。信息包图拥有3个重要对象:指标、维度和类别,而类别是在一个维度内为了提供详细分类而定义的,利用信息包图设计概念模型需要确定如下这3大内容:确定指标。指标表明在维度空间上衡量商务信息的一种方法,是访问数据仓库的关键所在,是用户最关心的信息。成功的信息包可以保证用户从信息包中获取需要的各个性能指标参数。
确定维度。维度提供了用户访问数据仓库信息的途径,对应超立方体的每一面,位于信息包图的第一行的每一个栏目中。
确定类别。类别表示一个维度包含的详细信息,其中的成员是为了辨别和区分特定数据而设,一个维度内最底层的可用的分类又称为详细类别。
对于复杂的商业要求进行需求分析时,有时一张信息包图不能反映所有情况,可能需要设计不同的信息包图来满足全部需求,此时应该保证多个信息包图中出现的维度信息和类别信息完全一致。
2.中间层建模方法——星形图设计
高层数据模型建好后,下一步就是中间层建模(DIS,数据项集),对高层模型中标识的每个实体都要建一个中间层模型。数据仓库主要提供的是查询操作,而最便于执行查询操作的逻辑模型设计工具是星形图,因此可以利用星形图来设计数据仓库的逻辑模型。
星形图因其外观似五角星而得名,它支持以商务决策者的观点定义数据实体,满足面向主题数据仓库设计的需要,而信息包图又为星形图的设计提供了完备的概念基础。同信息包图中的3个对象对应,星形图拥有以下3个逻辑实体的定义。
定义指标实体。位于星形图中心的实体是指标实体,是用户最关心的基本实体和查询活动的中心,为用户的商务活动提供定量数据。使用每一个指标,同时确定是否存储经过计算的指标。
定义维度实体。位于星形图星角上的实体是维度实体,其作用是限制用户的查询结果,将数据过滤使得从指标实体查询返回较少的行,从而缩小访问范围。一个维度实体对应指标实体中多个指标。一个维度实体对应信息包图中的一个列。
定义详细类别实体。详细类别实体,对应现实世界的某一实体。一个维度内的每个单元就是一个类别,代表该维度内的一个单独层次,要求更加详细的信息才能满足用户的需要,与对应的事务数据库结构产生映射。
在星形图中,用户通过维度实体获得指标实体数据,其中指标实体与维度实体间的联系通过每个维度中的最低一层的详细类别实体连接。
当多个信息包图转换成星形图时,可能出现维度实体的交叉重叠,为了保证实体的一致性需要进行统一处理,确定它们是同一实体在不同层次上的数据反映,还是两个不同的实体。当多个维度实体相关并且存在共性时,可能需要将其合并为一个指标实体。
3.底层建模方法——星形图转换为物理数据模型
底层建模(物理层),从逻辑模型转向物理模型设计,完全遵循传统的数据库设计方法。一般来说,星形图中的指标实体和详细类别实体通常转变为一个具体的物理数据库表,而维度实体则作为查询参考、过滤和聚合数据使用,因此通常并不直接转变为物理数据库表。在物理模型设计阶段,需要确定以下内容:定义数据标准。规范化数据仓库中的各种数据。
定义实体和实体特征。完整定义实体所具有的一切属性,决定数据的粒度与分割,当然要加入与每个数据单元相关的时间元。
定义规模。确定数据容量和更新频率。