Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database design 有多维数据库模型吗?_Database Design_Relational Database_Rdbms_Database - Fatal编程技术网

Database design 有多维数据库模型吗?

Database design 有多维数据库模型吗?,database-design,relational-database,rdbms,database,Database Design,Relational Database,Rdbms,Database,关系数据库和多维数据库之间的本质区别是什么 我就是不明白。我在互联网上找到的论点对我来说并不清楚,事实上它们大多毫无意义。以下是一些例子: 关系模型通常比较复杂;多维模型比较简单 关系模型是平面的,即表是二维的;多维模型可以有两个以上的维度 关系模型通常是规范化的;多维模型高度非规范化 关系模型将数据存储在表中;多维模型将数据存储在多维数据集中 等等 大多数文本试图解释多维数据库如何优于关系数据库(在性能、易用性和维护性等方面),但没有解释它们之间真正的形式差异。澄清: 关系数据库实现了关系

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

我就是不明白。我在互联网上找到的论点对我来说并不清楚,事实上它们大多毫无意义。以下是一些例子:

  • 关系模型通常比较复杂;多维模型比较简单
  • 关系模型是平面的,即表是二维的;多维模型可以有两个以上的维度
  • 关系模型通常是规范化的;多维模型高度非规范化
  • 关系模型将数据存储在表中;多维模型将数据存储在多维数据集中
  • 等等
大多数文本试图解释多维数据库如何优于关系数据库(在性能、易用性和维护性等方面),但没有解释它们之间真正的形式差异。澄清:

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

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


请告诉我。

您询问的是在线事务处理数据库(又名OLTP,如SQL Server、My SQL)和在线分析处理数据库(又名OLAP,如Essbase、SQL Server Analysys Services SSAS)之间的区别

它们有着截然不同的目的。对于通常应用程序(网站、桌面订单处理等)的数据存储,您必须使用OLTP db,因为它针对事务进行了优化:基本上是CRUD操作和一些报告。相比之下,OLAP db在CRUD方面非常糟糕(实际上,在我所知道的任何OLAP db中都无法使用CRUD),但在报告方面却非常出色。这两个人一起工作

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

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


但是,请记住,您不能将OLAP数据库用于简单的CRUD操作,OLAP数据库将有额外的许可成本、管理问题和更新时间问题:用户将以极快的速度获取数据,但数据将过时一段时间,并为此付出额外的成本。而且,它们可能很难维护。

你能举个例子说明什么是“多维数据库”吗?就像关系数据库是SQL Server或MySQL等等@Simonatrl:我没有用过,但似乎是一个。请解释一下“多维数据库”是什么意思。您自己的链接将文本“多维建模”链接到wiki OLAP文章。这反过来又表示OLAP“包含关系”。请通过帖子编辑而非评论进行澄清。请将您的问题所需的所有内容作为文本包含在您的问题中,并提供链接以获取更多详细信息。你的问题因为关系上的误解而变得复杂。关系/表是多维的——每列都是一个维度/轴。关系/表格的图片为“平面”和“二维”。“维度建模”是OLAP(通常是关系型)的一部分。没有理由离开RM(关系型模型)来进行OLTP或OLAP。大多数OLAP(包括“维度建模”)演示和产品没有充分纳入RM,甚至错误地说RM不适用。非常粗略地说,多维建模是OLAP&多维数据库的讨论只是不理解RM。对不起,但不,这不是我要问的。基本上,我的问题是:多维数据库实现什么模型?我不是在问它们有什么好处或坏处,或者应该如何使用它们。例如,当您谈论规范化时,您通常谈论的是关系数据库,因为规范化应用于关系。多维数据库的规范化是不同的,除非多维数据库实际上是关系数据库。但是,对于一个多维的数据库来说,这意味着什么呢?好的,但是你的问题是这样的,我认为这就是你想要的。据我所知,OLAP数据库没有一个统一的模型,关系模型是以数学为基础的,尽管有许多不同的实现。寻找星型模式和雪花模式,并获得一些关于OLAP处理的技术书籍——尽管它们非常复杂,作为一个普通的开发人员,而不是一个计算机科学家,你不需要这样的书籍。因此,这些数据库没有正式的模型。这很令人伤心,但好吧,我接受这个答案