有多维数据库模型吗?

时间:2014-01-14 13:23:03

标签: database-design relational-database rdbms database

关系数据库和多维数据库之间的本质区别是什么?

我只是不明白。我在互联网上找到的论点并没有让我清楚,事实上它们根本没有任何意义。以下是一些例子:

  • 关系模型通常很复杂;多维模型很简单
  • 关系模型是平的,即。表是二维的;多维模型可以有两个以上的维度
  • 关系模型通常是标准化的;多维模型是高度非规范化的
  • 关系模型将数据存储在表中;多维模型以多维数据集存储数据
  • 等...

大多数文本尝试解释多维数据库更好的关系数据库(在性能,易用性和维护等方面),但它们没有解释确实是。澄清:

关系数据库实现关系模型;如果多维数据库真的与关系数据库不同,那么它们必须实现不同的(非关系)模型,否则它们仍然是关系型的,对吧?所以我的问题是:

多维数据库真的有不同的模型吗?如果是这样,它是否正式定义,我在哪里可以找到它的文本?如果不是这样, 的区别是什么?

请赐教。

1 个答案:

答案 0 :(得分:1)

您在询问OnLine事务处理数据库(也称为OLTP,例如SQL Server,My SQL)和联机分析处理数据库(也称为OLAP,例如Essbase,Sql Server Analysys Services SSAS)之间的差异。

他们有着截然不同的目的。对于通常应用程序(网站,桌面订单处理等)的数据存储,您必须使用OLTP数据库,因为它针对事务进行了优化:基本上是CRUD操作和一些报告。相比之下,OLAP数据库在CRUD上很可怕(你实际上不能在我知道的任何OLAP数据库中做CRUD),但在报告方面却很棒。两人一起工作。

通常,您的OLTP数据库是主力。在某个时间间隔(每天,每周,更频繁,更少),您可以将整个OLTP数据库或新位提取到OLAP数据库中进行报告。

两者的内部结构完全不同。 OLTP应该具有规范化的表及其代码(实际的服务器代码,而不是我们的代码)针对混合的读/写进行了优化。 OLAP db非常非规范化(因此在某些方面在概念上更简单)并且针对读取进行了优化。这样做的好处是,我用于报告的OLTP数据库每天都会运行多个查询,每个查询需要45分钟。当我们将每日提取添加到OLAP数据库时,这些报告在不到5秒的时间内就会运行。

但是,请记住,您不能将OLAP数据库用于简单的CRUD操作,并且OLAP数据库将有额外的许可成本,管理问题和更新时间问题:用户将获得超快的数据,但它一段时间后会过时并且会花费额外的费用。而且,它们很难维护。