NoSQL

NoSQL

NoSQL (steht für englisch Not only SQL) ist eine Bewegung, eine neue Art von Datenbanken voranzutreiben. Es handelt sich dabei um Datenbanken, die einen nicht-relationalen Ansatz verfolgen und damit mit der langen Geschichte von relationalen Datenbanken brechen. Diese Datenspeicher benötigen keine festgelegten Tabellenschemata und versuchen, Joins zu vermeiden, sie skalieren dabei horizontal. Im akademischen Umfeld werden sie häufig als „strukturierte Datenspeicher“ (englisch structured storage) bezeichnet.[1][2][3]

Bekannte Implementierungen sind Google BigTable und Amazon Dynamo. Darüber hinaus gibt es eine Reihe von Open-Source-Implementierungen wie beispielsweise CouchDB und Apache Cassandra.

Inhaltsverzeichnis

Geschichte

Der Begriff NoSQL (im Sinne von no SQL) wurde erstmals für eine 1998 erschienene leichtgewichtige Open-Source-Datenbank verwendet, welche keine SQL-Zugriffsmöglichkeit bereitstellte. Carlo Strozzi, der Entwickler dieser Datenbank, unterscheidet allerdings die NoSQL-Datenbank von der NoSQL-Bewegung insofern, als ersteres eine Datenbank ist, welche auf die Verwendung der Sprache SQL verzichtet, während zweiteres ein Konzept ist, welches vom relationalen Modell Abstand nimmt.[4]

Der Begriff NoSQL (im Sinne von Not only SQL) wurde Anfang 2009 von Johan Oskarsson für ein Treffen über verteilte strukturierte Datenspeicher neu eingeführt.[5] Der Name war ein Versuch einer gemeinsamen Begriffsfindung für die wachsende Zahl an nicht relationalen, verteilten Datenspeichersystemen, welche meist auch auf ACID-Eigenschaften verzichteten.

Natürlich ist dieses Thema nicht ganz neu. Die Bestrebung, Daten ohne die Einschränkungen des relationalen Modells zu speichern war bereits früher unter dem Titel Dokumentenorientierte Datenbank bekannt. Insofern sind alle Vertreter dieser Thematik auch als NoSQL-Systeme zu betrachten.

Architektur

Relationale Datenbanken leiden üblicherweise unter Leistungsproblemen bei datenintensiven Applikationen wie Indexierung von großen Dokumentmengen, Webseiten mit hohen Lastaufkommen, sowie Streaming-Media-Applikationen. Relationale Datenbanken sind nur dann effizient, wenn sie für häufige aber kleine Transaktionen oder für große Batch-Transaktionen mit seltenen Schreibzugriffen optimiert sind. Sie können aber schlecht mit gleichzeitig hohen Datenanforderungen und häufigen Datenänderungen umgehen.[6] NoSQL dagegen kann mit vielen Schreib-/Leseanfragen umgehen. Beispiele dafür finden sich bei Digg,[7] Facebook und eBay.

Viele NoSQL-Implementierungen unterstützen verteilte Datenbanken mit redundanter Datenhaltung auf vielen Servern, beispielsweise unter Nutzung einer verteilten Hashtable. Damit können die Systeme einfach skalieren und Ausfälle einzelner Server überstehen.[8]

NoSQL-Architekturen bieten meist nur schwache Garantien hinsichtlich Konsistenz wie beispielsweise Eventual consistency oder auf einzelne Datensätze eingeschränkte Transaktionen. Einige Systeme unterstützen auch ACID, beispielsweise durch Hinzufügung spezieller Middleware wie CloudTPS.[9]

NoSQL-Implementierungen können folgendermaßen gegliedert werden:

Merkmal Beispiele
Dokumentenorientierte Datenbanken Apache Jackrabbit, BaseX, CouchDB, eXist, Lotus Notes, MongoDB
Graphendatenbanken AllegroGraph, Core Data, DEX, Neo4j, sones GraphDB
Verteilte ACID-Datenbanken MySQL Cluster
Key-Value-Festplattenspeicher Google BigTable, SimpleDB
Key-Value-Caches im RAM memcached
Eventually-consistent-Key-Value-Speicher Amazon Dynamo, Apache Cassandra, Project Voldemort
Sortierte Key-Value-Speicher Berkeley DB, Memcachedb
Multivalue-Datenbanken OpenQM, Rocket U2
Objektdatenbanken Db4o, ZODB
Tabellenorientiert Google BigTable, Hbase
Datenstrukturorientiert Redis

Weblinks

Einzelnachweise

  1. Avinash Lakshman, Prashant Malik: Cassandra – A Decentralized Structured Storage System. Cornell University, 2009, abgerufen am 24. Juni 2010 (PDF, englisch).
  2. Bigtable: A Distributed Storage System for Structured Data. Google, abgerufen am 24. Juni 2010 (PDF, englisch).
  3. HBase: structured storage of sparse data for Hadoop. Abgerufen am 24. Juni 2010 (PDF, englisch).
  4. NoSQL: A Relational Database Management System. Strozzi.it, 2. Oktober 2007, abgerufen am 24. Juni 2010 (englisch): „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. 12. Mai 2009, abgerufen am 24. Juni 2010 (englisch): „Johan Oskarsson has organized a meetup for folks interested in distributed structured data storage and is calling it NOSQL.“
  6. Rakesh Agrawal et al.: The Claremont report on database research. In: ACM (Hrsg.): SIGMOD Record. 37, Nr. 3, September 2008, ISSN 0163-5808, S. 9-19, doi:10.1145/1462571.1462573.
  7. Ian Eure: Looking to the future with Cassandra | Digg About. About.digg.com, 9. September 2009, abgerufen am 24. Juni 2010 (englisch).
  8. Avinash Lakshman, Prashant Malik: Cassandra: Structured Storage System over a P2P Network. Last.fm.com, abgerufen am 24. Juni 2010 (PDF, englisch).
  9. CloudTPS: Scalable Transactions for Web Applications in the Cloud. Globule.org, Februar 2010, abgerufen am 24. Juni 2010 (englisch): „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“

Wikimedia Foundation.

Игры ⚽ Нужна курсовая?

Schlagen Sie auch in anderen Wörterbüchern nach:

  • NoSQL — (англ. not only SQL, не только SQL), в информатике  термин, обозначающий ряд подходов, проектов, направленных на реализацию моделей баз данных, имеющих существенные отличия от используемых в традиционных реляционных СУБД с доступом к… …   Википедия

  • Nosql — est un mouvement relatif aux bases de données, entamé au printemps 2009. Le terme se réfère à certaines données non relationnelles stockées. Des tendances dans les architectures informatiques visent à améliorer les bases de données dans une… …   Wikipédia en Français

  • NoSQL — es un término usado en informática para agrupar una serie de almacenes de datos no relacionales que no proporcionan garantías ACID. Normalmente no tienen esquemas fijos de tablas ni sentencias join .[1] Contenido 1 Historia del término 2 Ventajas …   Wikipedia Español

  • NoSQL — This article is about the class of database management systems. For the specific relational database management software, see NoSQL (RDBMS). Structured storage redirects here. It is not to be confused with COM Structured Storage. In computing,… …   Wikipedia

  • NoSQL — En informatique, NoSQL est un buzzword pour désigner une catégorie de système de gestion de base de données (abr. SGBD) destinés à manipuler des bases de données géantes pour des sites web de très grande audience tels que Google, Amazon.com,… …   Wikipédia en Français

  • NoSQL (RDBMS) — This article is about a specific relational database management system. For for a class of non relational database management systems, see NoSQL. NoSQL is a shell based relational database management system that runs under Unix like operating… …   Wikipedia

  • Strozzi NoSQL (RDBMS) — NoSQL (wird manchmal auch nosequel gelesen) ist ein von Carlo Strozzi entwickeltes portables relationales Datenbankverwaltungssystem. Es ist eigentlich ein Softwarewerkzeug auf Unix Shell Ebene, das keine willkürlichen Einschränkungen hat, außer… …   Deutsch Wikipedia

  • Cloud database — A cloud database is a database running on Cloud Computing platform, such as Amazon EC2, GoGrid and Rackspace. There are two common deployment models: Users can run databases on the cloud independently, using a Virtual Machine image, or they can… …   Wikipedia

  • Теорема CAP — (известная также как теорема Брюера), в информатике  эвристическое утверждение о том, что в любой реализации распределённых вычислений возможно обеспечить не более двух из трёх следующих свойств: согласованность данных… …   Википедия

  • MongoDB — Developer(s) 10gen Initial release 2009 Stable release 2.0.1 / October 22, 2011; 31 days ago ( …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”