多模型數據庫

多模型數據庫 (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).