Multi-model database: Difference between revisions

Content deleted Content added
m add WP:TEMPLATECAT to remove from template; genfixes
No edit summary
 
(2 intermediate revisions by 2 users not shown)
Line 5:
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–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. This should not be confused with multimodal database systems such as [https://pixeltable.com/ Pixeltable] or [https://www.aperturedata.io/ ApertureDB], which focus on unified management of different media types (images, video, audio, text) rather than different data models.
 
For some time,{{vague|date=April 2024}} it was all but forgotten (or considered irrelevant) that there were any other database models besides relational.{{citation needed|date=April 2024}} The relational model and notion of [[third normal form]] were the default 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. 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.{{Citation needed|date=March 2021}}
Line 23:
== 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.<ref name="multiple">[http://www.odbms.org/wp-content/uploads/2014/04/Multiple-Data-Models.pdf ODBMS, "Polyglot Persistence or Multiple Data Models?"]</ref> 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.
 
== Theoretical Foundation for Multi-Model Databases ==
 
The traditional theory of relations is not enough to accurately describe multi-model database systems. Recent research <ref name="CT">[https://www.vldb.org/pvldb/vol14/p2663-uotila.pdf MultiCategory: Multi-model Query Processing Meets Category Theory and Functional Programming ]</ref> is focused on developing a new theoretical foundation for these systems. [[Category theory]] can provide a unified, rigorous language for modeling, integrating, and transforming different data models. By representing multi-model data as sets and their relationships as functions or relations within the Set category, we can create a formal framework to describe, manipulate, and understand various data models and how they interact.
 
 
 
== See also ==