很抱歉,如果这似乎是一个新手问题,但我是数据仓库和商业智能世界的新手。
根据我的阅读,我可以看到由于关系模型的限制,需要一个多维数据库。您需要对多维数据库执行的任何操作都可以在普通的关系数据库上完成,该数据库具有非常复杂的查询和低性能的连接和聚合操作。
问题是,当我们讨论对象数据库的商业智能时,我们是否需要相同的概念(多维数据库 - 数据仓库等)?对象数据库没有连接,因为对象之间的关系由直接引用维护。
答案 0 :(得分:1)
多维度是数据仓库的基本特征。
对于关系模型的限制,不是“解决方法”。这是建模数据的最佳方式,您需要根据多个非平凡维度对事实进行任意“切片和骰子”分析。
星型模式查询不是很复杂。它们实际上非常简单,因为它们几乎总是SELECT SUM(MEASURE) FROM FACT JOIN DIM1 ON ... JOIN DIM2 ON ... WHERE...
形式。
加入操作 - 通常 - 很慢。但是,连接可以在面向对象的代码中完成,而不是在SQL仓库中完成。
在许多情况下,大多数尺寸实际上都很小,完全适合记忆。分析查询可以转换为所有事实的简单提取,然后是内存中的维度属性查找。
在其余情况下,我们有一个雪花模式,其中维度(通常是客户,患者或成员维度)几乎与相关事实表一样大。在这种情况下,数据库中的关系连接很有用。
“对象数据库没有连接,因为对象之间的关系由直接引用维护。”
不完全正确。对象数据库具有从对象到对象的导航。如果您检索一组对象及其相关对象,则实际上已经执行了连接操作。
“当我们谈论对象数据库的商业智能时,问题是我们是否需要相同的概念(多维数据库 - 数据仓库等)?”
是。多维度是必不可少的。绝对。对象数据库将表示这一点(或者可能更好),而不是关系数据库。但是,这两种模型都必须代表措施及其维度的基本事实。
答案 1 :(得分:0)
也许您可以查看所谓的文档数据库。 CouchDB是受欢迎的,开源的(免费获取和发布)并且易于理解。 CouchDB将所有数据存储为JSON(易于解析的JavaScript对象表示法)文档,并仅使用REST与外界通信(如果您是新手,则只需HTTP)。 CouchDB更有趣的功能之一是您可以使用MapReduce范例选择数据来处理和聚合数据。
查看CouchDB可能会让您了解非关系数据库的一些可能性。知道CouchDB主要关注的是存储数据文档而不是整个对象。一些数据库是真正的对象数据库,因为它们将给定对象的状态存储在程序中。比较db4o。
答案 2 :(得分:0)