数据仓库设计中关系模型和多维模型设计
标签:
it |
分类: 数据仓库 |
专业数据仓库面临的一个问题是数据仓库中数据数据库设计的基本模型选取问题。广泛采用的数据库设计模型有两种,关系型和多维型。普遍认为在数据仓库的设计方法中关系模型是“Inmon”方法而多维型是“Kimball”方法。
本文主要介绍这两种方法的区别和在数据仓库中的应用。这两种方法都有各自的优缺点,本文中将进行讨论。
一、关系模型
数据库设计的关系型方法始于20世纪70年代,并通过关系型执行技术(如IBM的DB2,Oracle的Oracle DBMS产品,Teradata的DBMS产品等),得以广泛地得到应用和建立。关系模型通过使用关键字和外键在不同行的数据间建立关联。关系模型自带一种结构化查询语言(SQL),这种语言作为程序和数据间的接口语言标准而得到广泛应用。
如图表示了一个标准的关系型数据库设计。
如上图所示,有几种不同的数据表,通过一系列外键关键字相互关联。外健关健字关联是指在两张数据表中存在同一数据单元的基本关联。
通过这个相同的数据单元。将两行以上更多行的数据联系起来。例如,假设有两行数据的同一列上都有值“Bill Inmon"。这两行就通过这个公共值关联起来。
关系型数据以一种称为“标准化”的形式存在,数据标准化是指数据库设计会使数据分解成非常低的粒度级,标准化的数据以一种孤立模式存在,
这种情况想下对数据表里的数据关系要求很严格,当进行标准化的时候,表中的数据只能与这张表里的数据关系要求很严格。当进行标准化的时候,表中的数据只能与这张表里的其他数据关联。
数据仓库的数据库设计的关系模型的取值是有规律的,并且涵义明确,只使用标准化数据的细节级数据。也就是说,通过关系模型产生的数据仓库的设计是很灵活的。基于设计的数据库起初可以是一种方式,当根据关系模型设计后又形式另一种形式。数据元可以以多种方式重新赋值。灵活性是关系模型最大的优势。其次是多功能性。因为细节数据需要被收集到一起并且能够结合,因此基于关系模型的数据仓库的设计可以支持数据的多种视图。
二、多维模型
建立数据仓库的另一种数据库设计方法通常认为是多维模型方法。多维模型方法也叫做星形连接。多维模型方法的支持者是Ralph Kimball博士。数据库设计多维模型方法的中心是星形连接,如下图所示。
之所以称为星形连接是因为它的表示方法是以一颗“星”为中心,周围围绕这其他数据结构。
星形连接包含多种不同成分,如下图表明在星形连接的中心是一张事实表。事实表是包含大量数据值的一种结构。事实表的周围是维表,用来描述事实表的某个重要方面。维表里的数据量要比事实表里的少。
三、雪花结构
通常,星形连接只包含一张事实表。但是在数据库设计中要创建一种雪花结构的、复合结构需要多张事实表结合。如下图描绘了一个雪花结构。
四、两种模型的区别
这两种数据库设计方法的另一重要区别在于设计的范围不同。必然地,多维设计只能在有限的范围内进行。在这种方法中,是通过请求过程建立模型,当收集到很多请求过程时设计会被中断。也就是说,数据库设计只能在一组请求过程下得到最优化。如果所有不同组请求全部加人到设计当中,最优化变得毫无意义。因此,从性能上优化数据库设计只有一种方法。
1、区别的起源
关系环境是通过企业数据模型设计出来的。星形连接或多维模型是根据最终用户的请求塑造的。换句话说,关系模型通过纯数据模型和其他模型设计,而多维模型通过处理请求塑造。
http://s1/mw690/81941c83td7cf44d0e0c0&690
2、适用性区别
由于关系模型通过抽象数据形成,所以模型自身非常灵活。但是关系模型的这种灵活性,对于直接数据访问的执行却不是最优化的。如果想得到一个高性能的关系模型,最佳的方法是从模型中抽取出数据,并重新构造一种适合于快速访问的模式。尽管关系模型的性能有限,但是既然他支持数据重建,那么也有利于数据的非直接访问。
3、数据访问
多维模型在直接访问数据方面是快速而高效的。与关系模型支持非直接数据存取想法,多维模式支持直接数据存取。
直接数据访问和间接数据访问之间的区别看起来似乎不重要,但并非如此。从体系结构观点来看,在数据仓库设计基础方面关系模型是更好地支持数据仓库的模式。其原因是,数据仓库需要根据不同的议程和多种观察数据的方式来支持许多不同的用户组。也就是说,数据仓库对于访问已给定的用户并不是最佳的。相反,数据仓库可以以多种方式支持多个不同用户。
5、重建关系型数据
关系模型是如何支持构造和重建的多种形式的数据的呢?如图给出了一个关系型数据的基本结构。
在这个数据结构中,根据关系数据库中的基本数据创建新文件。关系型数据实质上是指非冗余的,以最简单的形式组织起来的基本数据。因为可以在关系型文件中找到的细节粒度级的数据,所以从其他相关的关系表中抽取数据并创建一张用户表就是很简单了。用户表是根据一组用户的特定需求创建。一旦设计并创建后,就可以对用户表进行高效访问。
如果还需要另一张用户表,就需再次访问关系表并创建一张新的用户表。同一张关系表可以多次重复用来创建不同的用户表。
结合多张关系表来创建新的关系表是很简单的,原因如下:
6、
在支持将来未知的需求和用户方面,多维模型也存在问题。关系模型中存放的粒度级数据好比原子,原子可以组合出许多不同的物质。原子的奥秘在于其粒度级。由于原子有如此好的特性,可以在近乎无穷的方法中使用。类似地,关系模型中的粒度级数据也可以用于支持未来未知信息的需求。如图表明了这种能力。
作为数据仓库的基础,关系模型的另一有点就是具有适度变化的能力。关系模型设计以间接方式使用。也就是说,数据仓库的直接用户访问的是由关系模型转化而来的数据而不是关系模型本身的数据。当发生变化的时候,因为不同的数据仓库的用户访问不同的数据库,所以影响是最小的。
例如当用户A想要改变数据,那么这种改变在支持A需求的数据库上进行。也许根本没有涉及关系模型。当对用户A做改动时,影响用户B、用户C和用户D的几率是非常小的,如图表明了这种影响。
星形连接即多维方法却不具有适度变化的能力这一特征。多维数据库设计是很脆弱的,很多处理请求聚集在一起的结果。当处理请求变化时,多维数据库的设计未必能够适度地变化。数据一旦以多维数据库形式建立,要想再改动它就很难了。图13-13表明一旦设计完成,多维型数据就会被固定住。
根据上面讨论过的原因可以看出,关系模型是数据仓库设计的最佳基础。如图表明了这点。
五、小结
在建立数据仓库过程中,对于数据库设计而言,建立关系型数据库是最佳的长期的方法,并且这种情况需要真正的企业方法。多维模型利于短期数据仓库,但这种方法适用的数据仓库的范围有限。
说明:
(1)有关关系型模型和关系数据库设计的权威著作请参看Ted Codd和chris Date的书籍和文章。
(2)关于多维型数据库设计Kimball方法更详细的内容请参看Kimball博士的相关书记和文章。

加载中…