数据仓库中广泛采用的数据库设计模型有两种:关系型和多维型。普遍认为在数据仓库的设计方法中关系模型是“Inmon”方法而多维模型是“Kimball”方法。
先来看下关系模型,关系型数据以一种称为“标准化”的形式存在。数据标准化是指数据库设计会使数据分解成非常低的粒度级,标准化数据以一种孤立模式 存在,这种情况下对数据表里的数据关系要求很严格。一般遵循3NF范式。采用关系型设计的数据库一般具有较强的灵活性和多功能性(可以支持数据的多种视 图)。
再来看下多维模型,多维模型一般有星型模式、雪花模式、混杂模式(又叫星系模式)。多维模型设计的最大优点在于访问的高效性。
两种模型的区别
作为数据仓库设计的基础,星形连接和关系型结构两者之间存在很多不同。最重要的区别是在灵活性和性能方面。关系模型具有高灵活性,但是对用户来说在性能方面却不是很理想的。多维模型在满足用户需求方面是非常高效的,但是灵活性不好。
另一重要区别在于设计的范围不同。必然地,多维设计只能在有限的范围内进行,也就是说,数据库设计只能在一组请求过程下得到最优化。如果所有不同组请求全部加入到设计当中,最优化变得毫无意义。
当使用关系模型时,在性能方面没有特别的优化方法。既然关系模型要求数据以最低粒度级存储,那么就可以无限制地添加新数据。很显然,添加数据到关系 模型永远也不会停止。正因为这样,关系模式适合大范围数据(如一个企业模型),而多维模型适用于小范围数据(如一个部门或甚至一个子部门)。
区别的起源:
关系环境是通过起源数据模型设计出来的。多维模型是根据最终用户的请求塑造的。换句话说,关系模型通过纯数据模型和其他模式设计,而多维模型通过处理请求塑造。
在适用性方面:由于关系模型通过抽象数据形成,所以模型自身非常灵活。但这种灵活性,对于直接数据访问的执行却不是最优化的。如果想得到一个高性能的关系模型,最佳方法是从模型中抽取出数据,并重新构造一种适合于快速访问的模式。
多维模型在直接访问数据方面是快速而高效的。从体系结构观点来看,在数据仓库设计基础方面关系模型是更好地支持数据仓库的模式,其原因是,数据仓库需要根 据不同的议程和多种观察数据的方式来支持许多不同的用户组。也就是说,数据仓库对于访问已给定的用户并不是最佳的。相反,数据仓库可以以多种方式支持多个 不同的用户。
关系模式,数据以最低粒度级和标准化形式存储;关系表间的关系已经定义好并且包含一个含有外键的关键字表;新表可以对关系表中的基本数据集定义新的 汇总和筛选标准;也就是说可以很简单以一种形式创建关系表,再以另一种形式重新塑造这些表,这样做对于数据仓库环境来说是非常理想的。
此外,关系模式支持将来未知的需求、支持适度变化的需求方面具有多维模型无法比拟的优势。
因此根据上面讨论过的原因可以看出:关系模型对数据仓库是理想的基础,而星形连接对于数据集市是最佳的。
独立集市和从属集市的区别:
独立集市是指直接通过历史应用创建的数据集市。建立独立数据集市不需要有“全局思想”考虑。
与独立数据集市相对应的是从属数据集市。从属数据集市是利用来自数据仓库的数据建立的。它的数据源不依赖与历史数据或操作型数据,只依赖于数据仓库。总之,从属数据集市要求有预先的计划、长期的观察、全局的分析和企业各不同部门对需求分析的合作与协调。
建立多个独立数据集市后,很快用户就会发现数据集市之间的信息不统一,也不同步,而且每增加一个数据集市就会出现不断增长的细节数据冗余的问题,需要大量的资源来建立接口程序,维护这些程序也变成了负担。因此独立数据集市不适合与解决企业中的信息问题。
当然,如果企业采用了从属数据集市,并在建立任何数据集市之前先创建了一个数据仓库,那么,独立数据集市固有的哪些体系结构方面的问题就不会出现了。
换句话说,独立数据集市表示的是不需要顾及全局及全景的一个短期的、有限范围的解决方法。另一方面,从属数据集市则要求一个长期和全局的展望。但是独立数据集市不能为企业信息提供一个坚实的基础,而从属数据集市确能为信息决策提供了一个真正的长期基础。
总结:数据仓库中数据库设计推荐采用关系模式设计方法,而数据集市推荐采用多维模型设计方法,其中数据集市推荐采用从属型的数据集市构建方法。