NoSQL
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
- Binary Storm # 1: NoSQL (Podcast at RadioTux )
- NoSQL Databases (links to NoSQL topics, maintained by Stefan Edlich)
- NoSQL user groups in Germany
- Overview article on the topic of NoSQL ( Heise online )
- Stefan Edlich: Outlook on the development from SQL to NoSQL. Frankfurt Database Days
- Roberto V. Zicari: Free Downloads / Article on NoSQL ODBMS.org
Individual evidence
- ^ Avinash Lakshman, Prashant Malik: Cassandra - A Decentralized Structured Storage System. (PDF, 133 kB) Cornell University, 2009, accessed June 24, 2010 .
- ↑ 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).
- ↑ HBase: structured storage of sparse data for Hadoop ( Memento from April 6, 2012 in the Internet Archive )
- ^ 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. “
- ↑ 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."
- ↑ DBMS popularity per database model. Retrieved January 26, 2020 .
- ↑ 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).
- ↑ Eric Lai: No to SQL? Anti-database movement gains steam. July 1, 2009, accessed December 4, 2011 .
- ↑ 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"
- ^ Avinash Lakshman, Prashant Malik: Cassandra: Structured Storage System over a P2P Network. (PDF, 410 kB) Last.fm.com, accessed on June 24, 2010 (English).
- ^ Ben Scofield: NoSQL - Death to Relational Databases (?). January 14, 2010, accessed June 26, 2014 .