多模型数据库

多模型数据库 (Multi-model database), 是下一代新型数据库,与传统的数据库系统只支持单一数据模型不同,多模型数据库是一种在统一、综合的平台下同时支持多种不同的数据模型的数据库[1],这些数据模型可包括传统的关系模型和NoSQL数据模型 (文档模型,键值模型,图模型),一个重要的特性是,多模型数据库拥有自己的一种或多种查询语言,可以非常灵活的方式访问多种不同数据模型,甚至是跨模型的JOIN操作,这使得数据组织,存储,操作较以往更加灵活,便捷。 值得一提的是,许多关系和非关系数据库正在通过扩展对其他数据模型的支持转变为多模型数据库。

背景历史

编辑

1970年,埃德加.科德设计发明了关系数据模型,此后关系数据模型开始流行起来,并逐渐变为数据库模型的代表,然而由于业界对水平可扩展性和容错性的需求持续增长,在2009年,NoSQL 数据库(非关系性数据库)成为了主流,总体来说,NoSQL 数据模型可分为文档模型,图模型,键值模型和列模型四大类。多模型数据库是一个可以储存、索引以及查询多种数据模型的数据库。 一般来说,数据库只支持一个唯一的数据模型,例如支持关系模型的关系数据库,面向文档的数据库,图数据库,RDF数据库。 我们把支持多种数据模型的数据库称之为多模型数据库。自1970年代,关系模型取代层次模型以来,关系模型和第三范式被默认为数据库存储的标准模式,然而,2009年NoSQL运动的兴起,使得文档模型、图模型、键值模型变得流行起来,同时,我们也可以认为地理空间数据,时序数据,和文本数据也属于数据模型的范畴,尽管索引和查询文本数据也属于搜索引擎操作。 多模式数据库概念的提出,可追溯到1990年代初期的对象关系数据管理系统 (ORDBMS),更往前追溯,可以与1980年代初期的联合集成数据库管理系统相关 [2]。通过向数据库内核融入特定数据类型、函数和索引实现,对象关系数据管理系统可以管理不同类型的数据,如关系、对象、文字和空间数据类型 。 此外,在多模型数据库出现之前,有一种名为"多类共存 (polygolt persistence)"的多模型管理技术,这种技术的主要思想是通过集成使用多个不同数据模型的数据库产品来实现支持多模型管理功能,每一种数据库管理一种数据模型,然而这种策略有两个主要缺点,一是它导致了数据管理操作复杂性的增加,二是它缺乏对不同数据存储的一致性保证,多模式数据库的出现弥补了这两个缺点,由于它使用一个综合的数据存储平台和统一的数据查询语言,不仅减少了业务操作复杂性,而且还保证了数据的一致性。

底层架构

编辑

不同的多模型数据库通过不同的底层架构来实现多模型数据管理,总体来说,目前有两种实现多模型存储的方法,一是通过一个原生存储引擎存储主数据模型,然后扩展实现支持其他数据模型,例如某些产品用文档实现主存储,然后使用文档之间的连接来实现图模型。二是在所有数据模型上层增加一层中间层来集成所有操作,这样每一个数据模型都需要有一个自己的处理模块。

代表性多模型数据库

编辑
数据库名称 支持模型 官网
ArangoDB 文档,图,键值 https://www.arangodb.com/页面存档备份,存于互联网档案馆
OrientDB 文档,图,键值 https://web.archive.org/web/20170726064130/http://orientdb.com/orientdb/
Marklogic 文档,XML,RDF http://www.marklogic.com/页面存档备份,存于互联网档案馆
Oracle 关系表,XML, 文档 https://www.oracle.com/database/index.html页面存档备份,存于互联网档案馆
MongoDB 文档,图 https://www.mongodb.com/页面存档备份,存于互联网档案馆

参考文献

编辑
  1. ^ Jiaheng Lu. Irena, Holubová. Multi-model Databases: A New Journey to Handle the Variety of Data (PDF). ACM Computing Surveys. 2019 [2019-04-15]. (原始内容存档 (PDF)于2019-04-15). 
  2. ^ Jiaheng Lu. Irena Holubová. Multi-model Data Management: What's New and What's Next? (PDF). EDBT. 2017: 602–605 [2017-08-12]. (原始内容存档 (PDF)于2017-03-13).