2

对不起,如果这似乎是一个新手问题,但我是数据仓库和商业智能世界的新手。

从我读过的内容可以看出,由于关系模型的限制,需要一个多维数据库。您需要对多维数据库做的任何事情都可以在具有非常复杂的查询和性能缓慢的联接和聚合操作的普通关系数据库上完成。

问题是当我们谈论对象数据库的商业智能时,我们是否需要相同的概念(多维数据库 - 数据仓库等)?对象数据库没有连接,因为对象之间的关系是由直接引用维护的。

4

2 回答 2

1

多维性是数据仓库的基本特征。

不是关系模型限制的“解决方法”。这是建模数据的最佳方式,您需要对多个非平凡维度的事实进行任意“切片和切块”分析。

星型模式查询不是很复杂。它们实际上非常简单,因为它们几乎总是采用SELECT SUM(MEASURE) FROM FACT JOIN DIM1 ON ... JOIN DIM2 ON ... WHERE....

连接操作——通常——很慢。但是,可以在面向对象的代码而不是 SQL 仓库中完成连接。

在许多情况下,大多数维度实际上都相当小并且完全适合内存。分析查询可以转移到所有事实的简单获取,然后是维度属性的内存查找。

在其余情况下,我们有一个雪花模式,其中一个维度(通常是客户、患者或成员维度)几乎与相关事实表一样大。在这种情况下,数据库中的关系连接很有帮助。

“对象数据库没有连接,因为对象之间的关系是由直接引用维护的。”

不完全正确。对象数据库具有从对象到对象的导航。如果您检索一组对象及其相关对象,则实际上将执行连接操作。

“问题是当我们谈论对象数据库的商业智能时,我们是否需要相同的概念(多维数据库 - 数据仓库等)?”

是的。多维性是必不可少的。绝对地。对象数据库将与关系数据库一样(或可能更好)代表这一点。然而,任何一种模型都必须代表度量及其维度的基本真理。

于 2009-09-08T00:27:33.217 回答
0

也许您可能会很好地查看所谓的文档数据库。CouchDB流行、开源(免费获取和剖析)且易于理解。CouchDB 将所有数据存储为JSON (易于解析的 JavaScript 对象表示法)文档,并仅使用REST(如果您是新手,只需使用 HTTP)与外界通信。更有趣的 CouchDB 功能之一是您可以使用 MapReduce 范例选择数据来处理和聚合数据。

查看 CouchDB 可能会让您了解非关系型数据库的一些可能性。知道 CouchDB 主要关注存储数据文档而不是整个对象。一些数据库是真正的对象数据库,因为它们将给定对象的状态存储在程序中。比较db4o

于 2009-09-08T00:38:26.700 回答