-->

Saturday, December 23, 2017

Using MarkLogic's Multi Model Database to Improve Data Integration ...
src: i.ytimg.com

Most database management systems are organized around a single data model that determines how data can be organized, stored, and manipulated. In contrast, a multi-model database is designed to support multiple data models against a single, integrated backend. Document, graph, relational, and key-value models are examples of data models that may be supported by a multi-model database.


Video Multi-model database



Background

The relational data model became popular after its publication by Edgar F. Codd in 1970. Due to increasing requirements for horizontal scalability and fault tolerance, noSQL databases became prominent after 2009. NoSQL databases use a variety of data models, with document, graph, and key-value models being popular.

A Multi-model database is a database that can store, index and query data in more than one model. For some time, databases have primarily supported only one model, such as: relational database, document-oriented database, graph database or triplestore. A database that combines many of these is multi-model.

For some time, it was all but forgotten (or considered irrelevant) that there were any other database models besides Relational. The Relational model and notion of third normal form were the de facto standard for all data storage. However, prior to the dominance of Relational data modeling from about 1980 to 2005 the hierarchical database model was commonly used, and since 2000 or 2010, many NoSQL models that are non-relational including Documents, triples, key-value stores and graphs are popular. Arguably, geospatial data, temporal data and text data are also separate models, though indexed, queryable text data is generally termed a "search engine" rather than a database.

The first time the word "multi-model" has been associated to the databases was on May 30, 2012 in Cologne, Germany, during the Luca Garulli's key note "NoSQL Adoption - What's the Next Step?". Luca Garulli envisioned the evolution of the 1st generation NoSQL products into new products with more features able to be used by multiple use cases.

The idea of multi-model databases can be traced back to Object-Relational Data Management Systems (ORDBMS) in the early 1990s and in a more broader scope even to federated and integrated DBMSs in the early 1980s. An ORDBMS system manages different types of data such as relational, object, text and spatial by plugging domain specific data types, functions and index implementations into the DBMS kernels. A Multi-model database is most directly a response to the "polyglot persistence" approach of knitting together multiple database products, each handing a different model, to achieve a multi-model capability as described by Martin Fowler. This strategy has two major disadvantages: it leads to a significant increase in operational complexity, and there is no support for maintaining data consistency across the separate data stores, so multi-model databases have begun to fill in this gap.

Some stories of overcomplicated systems from un-necessary "frankenbeast" database integrations are found on the web.

Multi-model databases are intended to offer the data modeling advantages of polyglot persistence, without its disadvantages. Operational complexity, in particular, is reduced through the use of a single data store.


Maps Multi-model database



Databases

Multi-model databases include (in alphabetic order):

  • ArangoDB - document (JSON), graph, key-value
  • Cosmos DB - document, table, key-value, json, sql
  • CouchBase - document(JSON), key-value
  • CrateDB - relational (SQL), document (Lucene)
  • Datastax - key-value, tabular, graph
  • EnterpriseDB - document (XML and JSON), key-value
  • MarkLogic - document (XML and JSON), graph (RDF with OWL/RDFS), text, geospatial, binary, SQL
  • Oracle Database - relational (SQL), document (JSON and XML), Graph triplestore (RDF with OWL, RDFS, SPARQL), Property Graph (Blueprints APIs, Gremlin, PGQL, traversal and analytics), sharded/key-value, Text, Geospatial, Binary, Multimedia, Objects
  • OrientDB - document (JSON), graph, key-value, text, geospatial, binary, reactive, SQL

Modern data modeling: Multi-Model approach using ArangoDB - YouTube
src: i.ytimg.com


Architecture

The main difference between the available multi-model databases is related to their architectures. Multi-model databases can support different models either within the engine or via different layers on top of the engine. Some products may provide an engine which supports documents and graphs while others provide layers on top of a key-key store. With a layered architecture, each data model is provided via its own component.


CallidusCloud Acquires OrientDB, the Leading Multi-Model Database ...
src: orientdb.com


User-defined data models

In addition to offering multiple data models in a single data store, some databases allow developers to easily define custom data models. This capability is enabled by ACID transactions with high performance and scalability. In order for a custom data model to support concurrent updates, the database must be able to synchronize updates across multiple keys. ACID transactions, if they are sufficiently performant, allow such synchronization. JSON documents, graphs, and relational tables can all be implemented in a manner that inherits the horizontal scalability and fault-tolerance of the underlying data store.


Internet of things with Azure Cosmos DB - BRK3117 - YouTube
src: i.ytimg.com


See also

  • Comparison of multi-model databases
  • ACID
  • NoSQL
  • Comparison of structured storage software
  • Database transaction
  • Distributed database
  • Distributed transaction
  • Document-oriented database
  • Graph database
  • Relational model

Database model - Wikipedia
src: upload.wikimedia.org


References


Developing Modern Application Solutions Powered by Azure Cosmos DB ...
src: i.ytimg.com


External links

  • Multimodel Database with Oracle Database 12c Release 2 Whitepaper
  • OrientDB Document and Graph Model
  • ArangoDB Key Features
  • FoundationDB Multi-Model Architecture
  • Polyglot Persistence
  • The 451 Group, "Neither Fish Nor Fowl: The Rise of Multi-Model Databases"
  • ODBMS, "On Multi-Model Databases. Interview with Martin Schönert and Frank Celler."
  • ODBMS, "Polyglot Persistence or Multiple Data Models?"
  • Infoworld, "The Rise of the Multi-Model Database"
  • Crate.IO Storage and Consistency
  • MarkLogic on Multi-model databases

Source of article : Wikipedia