blog.Toby

  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  130 随笔 :: 2 文章 :: 150 评论 :: 0 Trackbacks

维模式

数据库由一个或多个表组成,数据库中所有表之间的关系统称为数据库模式。虽然有许多不同的模式设计,但是用于查询历史数据的数据库通常被设置为具有维模式设计(通常是星型模式或雪花模式)。采用维模式既有许多历史方面的原因也有许多实践方面的原因,但是,它们在决策支持关系数据库方面的应用的增长是由两项主要的益处推动的:

  • 能够形成用来应答业务问题的查询。通常,查询根据若干个业务维计算某些业绩量度。
  • 在大部分 RDBMS 供应商使用的 SQL 语言中形成这些查询必需维模式。

维模式在物理上将用于量化业务的量度(也称为事实)与用于描述业务和对业务进行分类的描述性元素(也称为)分隔开。DB2 Alphablox 多维体要求底层数据库使用维模式;即,在物理上必须将事实数据与维数据分隔开(至少位于不同的列中)。通常,维模式具有星型模式形式、雪花模式形式或者这两种模式的某种混合形式。尽管不是常见的情况,但维模式也可以具有单个表的形式,即事实和维仅仅是位于表的不同的列中。

注:
如果数据库不符合维模式,则可以在数据库中创建视图以创建一个“虚拟的”维模式以便与 DB2 Alphablox 多维体配合使用。

本节描述星型模式和雪花模式以及在这些模式中表示业务层次结构的方式。包括下列各节:

要彻底了解维模式设计及其所有分支的背景信息,请阅读由 Ralph Kimball 编著并由 John Wiley and Sons, Inc. 出版的 The Data Warehouse Toolkit

星型模式和雪花模式

星型模式和雪花模式设计是用来将事实和维分隔到不同的表中的机制。雪花模式将层次结构的不同级别进一步分隔到不同的表中。在任何一种模式设计中,每个表都通过主键/外键关系与另一表相关。在关系数据库中,使用主键/外键关系来定义各个表之间的多对一关系。

主键

主键是表中的一个列或一组列,它们的值唯一地标识表中的一行。关系数据库设计成通过仅允许表中的一行具有给定的主键值来强制实施主键的唯一性。

外键

外键是表中的一个列或一组列,它们的值与另一个表中的主键值相对应。为了添加具有给定外键值的行,在相关的表中必须存在具有相同主键值的行。

在星型模式或雪花模式中,表之间的主键/外键关系(有时称为多对一关系)表示 RDBMS 中将相关的表连接到一起的路径。这些连接路径是形成对历史数据执行的查询的基础。要了解有关多对一关系的更多信息,请参阅多对一关系

事实表

事实表是星型模式或雪花模式中的一个表,它存储用于量度业务(如销售量、商品成本或利润)的事实。事实表还包含指向维表的外键。这些外键使事实表中的每个数据行与其对应的维和级别相关。

维表

维表是星型模式或雪花模式中的一个表,它存储用来描述维的各个方面的属性。例如,时间表存储时间的各个方面,如年份、季度、月份和天。事实表的外键引用多对一关系中的维表的主键。

星型模式

下图显示了具有单个事实表和 4 个维表的星型模式。星型模式可以具有任意数目的维表。用于连接表的链接末尾的分叉指示了事实表与每个维表之间的多对一关系。

此图显示了一个星型模式,在此模式的中央有单个事实表,该事实表带有指向周围的多个维表的链接。从事实表到维表的链接末尾的分叉指示多对一关系。

雪花模式

下图显示了具有两个维的雪花模式,其中,每个维都具有 3 个级别。雪花模式可以具有任意数目的维,并且每个维可以具有任意数目的级别。

要了解有关维的不同级别如何形成层次结构的详细信息,请参阅层次结构

层次结构

层次结构是一组相互之间具有多对一关系的级别,并且这一组级别共同构成维。在关系数据库中,层次结构的不同级别既可以存储在单个表中(如在星型模式中),也可以存储在不同的表中(如在雪花模式中)。

多对一关系

多对一关系是指一个实体(通常是一个列或一组列)包含的值引用另一个具有唯一值的实体(一个列或一组列)。在关系数据库中,这些多对一关系通常是由外键/主键关系强制实施的,并且,这些关系通常是事实表与维表之间以及层次结构中的级别之间的关系。此关系通常用来描述分类或分组。例如,在具有表 RegionStateCity 的地理模式中,在给定的地区有许多州,但没有任何州同时位于两个地区。同样,对于城市,一座城市仅位于一个州(同名但位于多个州的城市的处理方式必须略有不同)。关键在于每座城市都刚好位于一个州,但一个州可以有许多城市,因而符合“多对一”这个术语。

层次结构的不同元素(即级别)在子代级别与父代级别之间必须具有多对一关系,而无论该层次结构在物理上是以星型模式还是以雪花模式表示的;即,数据必须遵守这些关系。强制实施多对一关系所需的干净数据是维模式的一项重要特征。此外,这些关系使得有可能根据关系数据创建 DB2 Alphablox 多维体。

http://publib.boulder.ibm.com/db2blox/82/zh_cn/cube/cube13.htm

posted on 2009-06-28 15:09 渠上月 阅读(223) 评论(0)  编辑  收藏 所属分类: 数据仓库

只有注册用户登录后才能发表评论。


网站导航: