数据仓库建模
2005-03-26 10:37
369 查看
关系数据库的关键之处在于关系的分解,在数据库中只定义了数据之间的两两关系,与应用相关的更复杂的数据关系需要在运行时通过动态join来构造出来,即这些关系储存在程序中而不是数据库中。实际上,关系数据库的一个隐含的假定是数据之间很少关联,而在实际应用中单表和主从表也正是最常出现的情况。当一个应用频繁需要大量表的连接操作的时候,往往意味着关系数据模型的失效,此时我们将不得不放弃数据的无冗余性,需要通过预连接来构造实例化视图(Material View),将数据之间的复杂关系固化并明确定义出来。 在数据仓库里,抽象的讨论star schema和snowflake schema哪个更优越是一个毫无意义的问题。 应该聚合到什么程度,需要根据数据应用的具体情况而定。
关系数据库本身定义的是数据之间的两两关系,缺乏一些全局数据访问手段。而数据仓库的一个基本概念是数据空间,即可以通过全局坐标来直接访问数据,而不是通过两两连接来访问数据。在数据仓库中最重要的就是时间维度,因为这是所有数据所共享的一个坐标维度。我们可以将两个发生在同一时间点上的数据直接并列在一起,而无论它们之间是否定义了关联(relation)。
关系数据库的基本数据访问模式如下:
select 属性列表
from 表A, 表B
where 表A.data_id = 表B.id
and 表B.attr = 'A'
在数据仓库中 " from 表A, 表B where 表A.data_id = 表B.id "这一部分将多个多个数据表和表之间的关联条件放在一起定义为所谓的主题。
而 表B.attr = 'A' 这一部分就从where子句中分离出来作为坐标条件。
在数据仓库中建立时间坐标有两种方式,对于发生在时间点上的事件我们直接建立点坐标,通过his_date字段来表示,而对于延续一段时间的状态数据,我们可以建立区间坐标,通过from_date和to_date两个字段来表示。
关系数据库本身定义的是数据之间的两两关系,缺乏一些全局数据访问手段。而数据仓库的一个基本概念是数据空间,即可以通过全局坐标来直接访问数据,而不是通过两两连接来访问数据。在数据仓库中最重要的就是时间维度,因为这是所有数据所共享的一个坐标维度。我们可以将两个发生在同一时间点上的数据直接并列在一起,而无论它们之间是否定义了关联(relation)。
关系数据库的基本数据访问模式如下:
select 属性列表
from 表A, 表B
where 表A.data_id = 表B.id
and 表B.attr = 'A'
在数据仓库中 " from 表A, 表B where 表A.data_id = 表B.id "这一部分将多个多个数据表和表之间的关联条件放在一起定义为所谓的主题。
而 表B.attr = 'A' 这一部分就从where子句中分离出来作为坐标条件。
在数据仓库中建立时间坐标有两种方式,对于发生在时间点上的事件我们直接建立点坐标,通过his_date字段来表示,而对于延续一段时间的状态数据,我们可以建立区间坐标,通过from_date和to_date两个字段来表示。
相关文章推荐
- 数据仓库建模--不同聚合方式(聚合函数示例)
- 数据仓库建模与ETL实践技巧
- 数据仓库建模与ETL的实践技巧(转载)
- 正确的理解四类数据仓库建模方法
- 【读书笔记】数据仓库工具箱 维度建模指南
- 快速了解数据仓库及数据建模的常用新术语
- 数据仓库建模-维度建模基础知识
- 浅谈数据仓库建设中的数据建模方法
- 深入探讨数据仓库建模与ETL的实践技巧
- 数据仓库专题(22):总线架构和维度建模优势-杂项
- 浅谈数据仓库建设中的数据建模方法
- 读《数据仓库工具箱:维度建模的完全指南》之第三章数据仓库总线矩阵
- 数据仓库专题(7)-维度建模10大基本原则
- 数据仓库逻辑建模
- 数据仓库专题(7)-维度建模10大基本原则
- 企业级数据仓库建模思想在BI领域的应用
- 零售营销-数据仓库建模
- 数据仓库与数据集市建模
- 正确理解SQL Server四类数据仓库建模方法
- 数据仓库建模与ETL实践技巧