数据仓库几种模型详解

三种常见的数据仓库和与之相关的设计方法,有关系数据模型、多维数据模型以及Data Vault模型。关系模型、多维模型已经有很长的历史,而Data Vault模型相对比较新。它们都是流行的数据仓库建模方式,但又有各自的特点和适用场景。
1.关系数据模型
关系数据模型中的结构有关系、属性、属性域、元组等。关系是由行和列构成的二维结构,对应数据库中的表。表的物理结构可以是堆文件、索引文件、哈希文件等。堆文件是一个无序的数据集合。索引文件中表数据的物理存储顺序和逻辑顺序保持一致。哈希文件成为直接存取文件,通过预定定义好的哈希函数确认数据的物理存储位置。属性对应关系数据库中表的列,属性可以任何顺序出现,而关系保持不变。属性域是属性取值范围,每一个属性都有一个预定义的值的范围。元组是关系中的一条记录,对应关系数据库中的一个表行。
关系数据模型中最常见的就是关系数据库,关系数据库是一系列规范化的表的集合。在关系数据库中。实体对应表,记录对应行,字段对应属性。在关系表的属性中,每个表唯一名称、一个表唯一列名、一个列的值来自相同属性域,列无序、行无序。关系数据库语言是结构化查询语言,简称SQL,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。
2.多维数据模型
多维数据模型将数据看作数据立方体形式,满足用户从多角度多层次进行数据查询和分析的需要而建立起来的基于事实和维的数据库模型。传统操作型数据库采用E-R模型建模,但对OLAP不适用。多维数据模型其数据组织采用多维结构文件进行数据存储,并有索引及相应的元数据管理文件与数据相对应。
多维数据模型建模过程通常以一种为称为星型模式的方式构建。所谓星型模型,就是以一个事实表为中心,周围围绕多个维度表。还有一种模式叫做雪花模式,是对维度做进一步规范化后形成的。一般使用下面的过程构建多维数据模型:选择业务流程、声明粒度、确认维度、确认事实。选择业务流程是确认哪些业务处理流程是数据仓库应该覆盖的,是维度方法的基础。建模第一步骤是描述需要建模的业务流程。为了描述业务流程、可以使用文本将相关内容记录下来。或者使用业务流程建模标注BOMN方法,也可以使用统一建模语言UML或其他类似方法。声明粒度是确认业务流程,下一步是声明维度模型的粒度。用于确定事实中表示的是什么,在一个事实所对应的所有维度设计中强制实行粒度一致性是保证数据仓库应用性能和易用性的关键。确认维度是维度粒度必须与第二步声明的粒度保持一致。维度表是事实表的基础。典型的维度都是名词。维度表存储了某一维度的所有相关数据。确认事实这一步识别数字化的度量,构成事实表的记录。
星形模式的基本结构雪花模式的基本结构
3. Data Vault模型
Data Vault是一种数据仓库建模方法,用来存储来自多个操作型系统的完整的历史数据。Data Vault方法需要跟踪所有数据的来源,因此其中每个数据行都要包含数据来源和装载时间属性, 用以审计和跟踪数据值所对应的源系统。Data Vault不区分数据在业务层面的正确与错误, 它保留操作型系统的所有时间的所有数据, 装载数据时不做数据验证、清洗等工作, 这点明显有别于其他数据仓库建模方法。Data Vault建模方法显式地将结构信息和属性信息分离,能够还原业务环境的变化。Data Vault允许并行数据装载,不需要重新设计就可以实现扩展。Data Vault是面向细节的,可追踪历史的,一组有连接关系的规范化的表的集合。 这些表可以支持一个或多个业务功能。它是一种综合了第三范式(3NF)和星型模型优点的建模方法。其设计理念是要满足企业对灵活性、 可扩展性、 一致性和对需求的适应性要求,是一种专为企业级数据仓库量身定制的建模方式。
Data Vault主要分为3种类型的表:中心表、链接表、卫星表。对于构建Data Vault模型,首要之事就是构建中心表,中心表示DV模型中的核心。如果设计得当,将可以兼容整合各种数据源。链接表的目的是为了灵活性和易扩展,通过链接表可以在不改变原有的构架和转载条件下进行扩展。在Data Vault模型中所有的关系和事件都是通过链接表来表示。在DV模型中,中心表没有外键,对于中心表间的连接是通过链接表。所以链接表至少要有两个父中心表。卫星表表示所有的原始数据系统,在这个表中也捕获数据的变化,所以这种表有点像维度模型中的渐变维度表。一个附属表总有一个且唯一一个外键引用到中心表或链接表。


版权声明:本文为weixin_44562654原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。