Multi-model database: Difference between revisions

Content deleted Content added
No edit summary
mNo edit summary
Line 1:
{{shortShort description|Database management system}}
In the field of database design, a '''multi-model database''' is a [[Database management systems|database management system]] designed to support multiple [[Database model|data models]] against a single, integrated backend. In contrast, most database management systems are organized around a single data model that determines how data can be organized, stored, and manipulated.<ref name="neither">[http://blogs.the451group.com/information_management/2013/02/08/neither-fish-nor-fowl/ The 451 Group, "Neither Fish Nor Fowl: The Rise of Multi-Model Databases"]</ref> [[document-oriented database|Document]], [[graph database|graph]], [[relational database|relational]], and [[key-valueattribute–value pair|key–value]] models are examples of data models that may be supported by a multi-model database.
 
== Background ==
The [[relational model|relational]] data model became popular after its publication by [[Edgar F. Codd]] in 1970. Due to increasing requirements for [[Scalability#Horizontal and vertical scaling|horizontal scalability]] and [[fault tolerance]], [[NoSQL]] databases became prominent after 2009. NoSQL databases use a variety of data models, with [[Document-oriented database|document]], [[Graph database|graph]], and key-valuekey–value models being popular.<ref name="rise">[http://www.infoworld.com/article/2861579/database/the-rise-of-the-multimodel-database.html Infoworld, "The Rise of the Multi-Model Database"]</ref>
 
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-valuekey–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.{{Citation needed|date=March 2021}}
 
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?''".<ref>{{Cite web|date=2012-06-01|title=Multi-Model storage 1/2 one product|url=http://www.slideshare.net/lvca/no-sql-matters2012keynote/47-MultiModel_storage_12_one_product}}</ref><ref>{{Cite web|url=https://2012.nosql-matters.org/cgn/wp-content/uploads/2012/06/KeyNote-Luca-Garulli.pdf|title=Nosql Matters Conference 2012 {{!}} NoSQL Matters CGN 2012|website=2012.nosql-matters.org|access-date=2017-01-12}}</ref> 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.
Line 21:
<!--Added databases should be "notable" with a sourced article on English Wikipedia.-->
* [[AllegroGraph]] – document (JSON, JSON-LD), graph
* [[ArangoDB]] – document (JSON), graph, key-valuekey–value
* [[Cosmos DB]] – document (JSON), graph,<ref>https://docs.microsoft.com/en-us/azure/cosmos-db/create-graph-dotnet</ref> key-valuekey–value, SQL
* [[Couchbase]] – document (JSON), key-valuekey–value, [[N1QL]]
* [[Datastax]] – key-valuekey–value, tabular, graph
* [[EnterpriseDB]] – document (XML and JSON), key-valuekey–value
* [https://www.intersystems.com/products/intersystems-iris/ InterSystems IRIS] - relational (SQL), object, key-valuekey–value, document (JSON)
* [[MarkLogic]] – document (XML and JSON), graph triplestore, binary, SQL
* RavenDB – document (XML and JSON), graph, key-valuekey–value, time-series <ref>https://ravendb.net/docs/article-page/5.1/Csharp/document-extensions/timeseries/overview</ref><ref>https://db-engines.com/en/system/RavenDB</ref><ref>https://ravendb.net/docs/article-page/5.1/csharp/client-api/creating-document-store</ref>
* [[Oracle Database]] – relational, document (JSON and XML), graph triplestore, property graph, key-valuekey–value, objects
* [[OrientDB]] – document (JSON), graph, key-valuekey–value, reactive, SQL
* [[Redis]] – key-valuekey–value, document (JSON), property graph, streaming, time-series
* [[SAP HANA]] – relational, document (JSON), graph, streaming
* [[Virtuoso Universal Server]] -- [[Relational database|relational]], document ([[XML]]), [[Triplestore|RDF graphs]]
 
== Benchmarking multi-model databases ==
Line 54:
* [[Data analysis]]
* [[Distributed database]]
* [[Distributed SQL]]
* [[Distributed transaction]]
* [[Document-oriented database]]