NoSQL

from Wikipedia, the free encyclopedia

NoSQL ( English for Not only SQL, German: "Not only SQL") refers to databases that follow a non-relational approach and thus break with the long history of relational databases . These data stores do not require any fixed table schemes and try to avoid joins . You scale horizontally . In the academic environment they are (Engl. Often referred to as "structured data storage" structured storage ), respectively.

Well-known implementations are Riak , Apache Cassandra , CouchDB , MongoDB and Redis .

history

The term NoSQL, still in the sense of no SQL , was first used for a simple open source database published in 1998 that did not provide any SQL access. Carlo Strozzi, the developer of this database, distinguishes the NoSQL database from the NoSQL movement in that the former is a database that dispenses with the use of the SQL language , while the latter is a concept that moves away from the relational model.

The term NoSQL in the sense of Not only SQL was newly introduced in early 2009 by Johan Oskarsson for a meeting on distributed structured data storage. The name was an attempt to find a common term for the growing number of non-relational, distributed data storage systems, most of which also dispensed with ACID properties.

This topic is not entirely new. The effort to store data without the limitations of the relational model was previously known as the document-oriented database . In this respect, all representatives of this topic are also to be regarded as NoSQL systems.

Although NoSQL systems are spreading continuously, the market is still clearly dominated by relational systems (as of 2020).

architecture

Relational databases usually suffer from performance problems in data-intensive applications such as indexing large amounts of documents, websites with high load volumes and streaming media applications. Relational databases are only efficient if they are optimized for frequent but small transactions or for large batch transactions with infrequent write access. However, they cannot cope with high data requirements and frequent data changes at the same time. NoSQL, on the other hand, can handle many read / write requests.

NoSQL architectures usually only offer weak guarantees with regard to consistency, such as eventual consistency or transactions restricted to individual data records . Some systems also support ACID , for example by adding special middleware such as CloudTPS.

Many NoSQL implementations support distributed databases with redundant data storage on many servers, for example using a distributed hash table . This means that the systems can be easily expanded and individual server failures can be overcome.

Differentiation according to data model

NoSQL implementations can be broken down as follows:

feature Examples
Document-oriented databases Apache Jackrabbit , BaseX , CouchDB , eXist , HCL Notes , MongoDB , OrientDB
Graph databases Generic Neo4j , OrientDB , Amazon Neptune, InfoGrid, HyperGraphDB, Core Data , DEX
RDF -centered AllegroGraph , 4store , others
ACID distributed databases MySQL cluster
Key value databases Hard disk space Chordless , Google BigTable , GT.M , InterSystems Caché
Caches in RAM Membase , memcached , Redis , Aerospike
Eventually-consistente stores Amazon Dynamo , Project Voldemort , Riak
Sorted key-value stores Berkeley DB , memcached
Multivalue databases OpenQM , Rocket U2
Object databases Db4o , ZODB , Objectivity / DB
Column-oriented databases Apache Cassandra , Google BigTable , HBase , SimpleDB , Scylla
Data stream Apache Kafka , RethinkDB , PipelineDB

power

According to Ben Scofield, the performance of NoSQL databases can be rated as follows:

Data model power Scalability flexibility complexity Functionality
Key value high high high no different (none)
Column-oriented high high medium low minimal
Document oriented high different (high) high low different (low)
Graph based differently differently high high Graph theory
Relational differently differently low medium Relational algebra

literature

  • Stefan Edlich, Achim Friedland, Jens Hampe, Benjamin Brauer, Markus Brückner: NoSQL: Entry into the world of non-relational Web 2.0 databases . 2nd, updated and expanded edition. Hanser Verlag, Munich 2011, ISBN 978-3-446-42753-2 .
  • Pramodkumar J. Sadalage, Martin Fowler : NoSQL Distilled: A Brief Guide to the Emerging World of Polyglot Persistence . Addison-Wesley, Amsterdam 2012, ISBN 978-0-321-82662-6 (English).

Web links

Individual evidence

  1. ^ Avinash Lakshman, Prashant Malik: Cassandra - A Decentralized Structured Storage System. (PDF, 133 kB) Cornell University, 2009, accessed June 24, 2010 .
  2. Fay Chang, Jeffrey Dean, Sanjay Ghemawat, Wilson C. Hsieh, Deborah A. Wallach, Mike Burrows, Tushar Chandra, Andrew Fikes, Robert E. Gruber: Bigtable: A Distributed Storage System for Structured Data. (PDF, 221 kB) Google, accessed on April 22, 2012 (English).
  3. HBase: structured storage of sparse data for Hadoop ( Memento from April 6, 2012 in the Internet Archive )
  4. ^ NoSQL: A Relational Database Management System. Strozzi.it, October 2, 2007, accessed on June 24, 2010 (English): "While the former is a well-defined software package, is a relational database to all effects and just does intentionally not use SQL as a query language, the newcomer is mostly a concept (and by no means a novel one either), which departs from the relational model altogether and it should therefore have been called more appropriately “NoREL”, or something to that effect. “
  5. Eric Evans : NOSQL 2009. May 12, 2009, accessed on June 24, 2010 (English): "Johan Oskarsson has organized a meetup for folks interested in distributed structured data storage and is calling it NOSQL."
  6. DBMS popularity per database model. Retrieved January 26, 2020 .
  7. Rakesh Agrawal et al .: The Claremont report on database research . In: ACM (Ed.): SIGMOD Record . tape 37 , no. 3 , September 2008, ISSN  0163-5808 , p. 9-19 , doi : 10.1145 / 1462571.1462573 (English).
  8. Eric Lai: No to SQL? Anti-database movement gains steam. July 1, 2009, accessed December 4, 2011 .
  9. CloudTPS: Scalable Transactions for Web Applications in the Cloud. Globule.org, February 2010, accessed on June 24, 2010 (English): "CloudTPS is a scalable transaction manager to allow cloud database services to execute the ACID transactions of web applications, even in the presence of server failures and network partitions"
  10. ^ Avinash Lakshman, Prashant Malik: Cassandra: Structured Storage System over a P2P Network. (PDF, 410 kB) Last.fm.com, accessed on June 24, 2010 (English).
  11. ^ Ben Scofield: NoSQL - Death to Relational Databases (?). January 14, 2010, accessed June 26, 2014 .