我了解一些数据库内部知识。事实上,我曾经实现过一个小型、简单的关系数据库引擎,使用了磁盘上的ISAM结构和BTree索引等等。那非常有趣,也非常有教育意义。现在我更加注意仔细设计数据库模式和编写查询,因为我对关系型数据库管理系统在底层是如何工作有一些了解。
但我对多维OLAP数据模型一无所知,并且在互联网上很难找到任何有用的信息。
信息是如何存储在磁盘上的?哪些数据结构组成了数据立方体?如果MOLAP模型不使用表、列和记录,那么......呢?特别是在高维度数据中,哪种数据结构使得MOLAP模型如此高效?MOLAP实现是否使用类似于关系型数据库管理系统索引的东西?
为什么OLAP服务器在处理自由查询时要好得多?在普通关系型数据库中可能需要几个小时才能完成的聚合,在OLTP立方体中可以在毫秒内完成。是什么样的模型机制使这成为可能?