现在的位置: 首页 > 综合 > 正文

数据仓库(八):数据仓库中数据库设计的基本模型对比–Inmon

2018年02月17日 ⁄ 综合 ⁄ 共 2867字 ⁄ 字号 评论关闭

注:本文参考Inmon的著作,Inmon支持关系模型,因此下面的观点基本都是支持关系模型的。关于多维模型的内容可参考Kimball的著作《数据仓库工具箱:维度建模的完全指南》等。

广泛采用的数据库设计模型有两种:关系型和多维型。在数据仓库的设计方法中关系模型是“Inmon”方法,多维模型是“Kimball”方法。在建立数据仓库过程中,对于数据库设计而言,建立关系型数据库是最佳的长期的方法;多维模型利于短期数据仓库,但这种方法适用的数据仓库的范围有限。

1 关系模型

数据库设计的关系型方法始于20世纪70年代,如IBM的DB2,Oracle,Teradata等,关系模型通过关键字和外键在不同行的数据间建立关联。关系模型自带一种结构化查询语言(SQL),作为程序和数据间的接口语言。

关系型数据以一种称为“标准化”的形式(即,通常所说的范式)存在。数据标准化是指数据库设计会使数据分解成非常低的粒度级。标准化的数据以一种孤立模式存在,这种情况下对数据表里的数据关系要求很严格。当进行标准化的时候,表中的数据只能与这张表里的其他数据关联。标准化基本分为三级:第一级标准形式(第一范式,1NF),第二级标准格式(第二范式,2NF),第三级标准格式(第三范式,3NF)。

关系模型的优点是灵活性多功能性

2 多维模型

多维模型方法也叫做星形连接。星形连接的中心是一张事实表,事实表是包含大量数据值的一种结构。事实表的周围是维表,用来描述事实表的某个重要方面。事实表包含的是那些多次出现的数据,维表包含相关的但独立的信息,维表表示一些与事实表相关的重要的但起辅助作用的信息。事实表与维表通过存在的公共数据单元相关联。

通常,星形连接只包含一张事实表。雪花结构中,不同的事实表通过共享一个或多个公共维表连接起来。有时称这些共享的维表为一致维表

多维模型设计的最大优点在于访问的高效性。因为星形连接是根据用户的需求设计的。

3 关系模型和多维模型的区别

作为数据仓库设计的基础,星形连接和关系型结构两者之间存在很多不同。最重要的区别在灵活性和性能方面。关系模型具有高灵活性,但是对用户来说在性能方面却不理想。多维模型在满足用户需求方面是非常高效的,但灵活性不好。

另一重要区别在于设计的范围不同。多维设计通过请求过程(可理解为用户需求)建立模型,当收集到很多请求过程时设计会被中断,也就是说,多维设计只能在一组请求过程下得到最优化。关系模型要求数据以最低粒度级存储,那么就可以无限制地添加新数据。因此,关系模型适合大范围数据(如一个企业模型),而多维模型适合小范围数据(如一个部门)。

3.1 区别的由来

(1)二者在设计模式上的区别:关系模型由企业数据模型设计而来,星形连接或多维模型则是根据最终用户的请求(可理解为需求)塑造的。

这种区别导致两方面的差异:第一是适用性方面。关系模型通过抽象数据形成,所以模型非常灵活。第二,多维模型支持直接访问数据。而关系模型支持间接数据访问(这导致其数据读取性能不高,但可通过数据重建(参见3.2)提高数据访问性能)。

(2)而或则在起源上的第二点细微差别是关系模型隐含的数据模型有着非常高的抽象级,而多维模型包含的处理模型却不是抽象的。因为关系模型所处的抽象级,它可以支持很多用户。多维模型有非常明确的处理请求,所以,它只能支持一些特定的需求。但是,如果多维模型设计优良,还是能够很好地支持处理请求的。

3.2 重建关系型数据

关系模型中的基本数据能够根据需要以各种形式构造和重建。

3.3 数据的直接访问和间接访问

星形连接(也即多维方法)适用于只对一组用户做最优化的数据访问。星形连接无法同时满足多组用户的需求。

3.4 可扩展性(支持将来未知的需求)

关系模型中的粒度级数据可以支持位置需求。

3.5 支持适度变化的需求

关系模型的另一优点是具有适度变化的能力。数据仓库用户访问的是由关系模型转换而来的数据而不是关系模型本身的数据。

星形连接即多维方法不具有适度变化的能力。多维数据库设计是很脆弱的,是很多处理请求聚集在一起的结果。当处理请求变化时,多维数据库的设计未必能够适度地变化。数据一旦以多维方法建立,数据就被固定住,难以适应新需求。

因此,关系模型对数据仓库设计的最佳基础,而星形连接对于数据集市时最佳选择

上面是Inmon对于二者的比较和结论。而Kimball在其著作中基本上是针对这些言论给予了反驳。其著作中介绍了对于维度模型的五个重大误解

(1)维度模型与数据中心都只是应用于概要性数据的(即不包含细节数据)。

(2)维度模型与数据中心是针对部门而不是针对企业的解决方案。

(3)维度模型与数据中心是不可升级的。

(4)维度模型与数据中心仅当存在可预见的使用模式时才适合。即,维度模型对于不断变化的业务需求无能为力。

(5)维度模型与数据中心是不能集成的,从而只能形成直通的解决方案。

Kimball在其著作中对上述五点重要的误解一一反驳。

4 独立数据集市

独立数据集市:直接通过历史操作型数据创建的数据集市。它不需要“全局考虑”。多维方法建立的就是独立数据集市这是Inmon的观点,Kimball认为多维方法也适用于建立数据仓库)。

从属数据集市:利用来自数据仓库的数据创建的数据集市。它的数据源不依赖于历史数据或操作型数据,只依赖于数据仓库。它需要“全局考虑”,要求有预先的计划、长期的观察、全局的分析和企业各不同部门对需求分析的合作和协调。

独立数据集市存在以下问题:

  • 不提供数据重用平台
  • 不提供数据一致性的基础
  • 不提供单一历史接口程序基础
  • 需要每个独立数据集市建立自己的细节数据集,而其他的独立数据集市也会建立大量冗余数据

从属数据集市克服了独立数据集市存在的体系结构问题。

5 总结

下面列出了上述三种数据仓库体系结构的简要对比,如下表,具体可查阅资料[6]。

三种数据仓库体系结构的比较
体系结构 提倡者 其他称谓 描述 维度设计的角色
企业信息化工厂 Bill Inmon
  • 原子数据仓库
  • 企业数据仓库
  • 是原子数据的一种集成仓库
  • 不能被直接访问
  • 数据集市为部门使用/分析而重新组织数据
维度设计只应用于数据集市
维度数据仓库 Ralph Kimball
  • 企业数据仓库
  • 总线体系结构
  • 结构化数据集市
  • 虚拟数据集市
  • 是原子数据的一种集成仓库
  • 可以被直接访问
  • 维度数据仓库中的主题区域有时称为数据集市
  • 数据集市不要求是独立的数据库
所有数据按维度组织
独立型数据集市 无倡导者但很常见
  • 数据集市
  • 竖井式
  • 烟筒型
  • 孤岛型
  • 主题区域的实现不需要企业环境
可以使用维度设计

参考资料:

[1]Inmon《Building the Data Warehouse》(Fourth Edition)(荫蒙《数据仓库》(第四版))

[2]关系模型和关系数据库设计权威著作可参考Ted Codd和Chris Date的书籍和文章

[3]关于多维数据库设计Kimball方法可参看Kimball的相关书籍和文章

[4]Kimball《数据仓库工具箱:维度建模的完全指南》

[5]王珊《数据仓库技术与联机分析处理》

[6]Star Schema完全参考手册——数据仓库维度设计权威指南

抱歉!评论已关闭.