NoSQL
Der Begriff NoSQL steht für "Not only SQL". Damit werden Datenbanken bezeichnet, die mit der langen Tradition der relationalen Datenbanken brechen. Sie verfolgen einen nicht-relationalen Ansatz. Dabei kann eher von Datenspeichern als von Datenbanken gesprochen werden.
Es existieren keine festgelegten Tabellenschemata, Joins werden vermieden und es wird horizontal skaliert. Die sogenannten NoSQL-Datenbanken werden häufig auch als "strukturierte Datenspeicher" (Structured Storage) bezeichnet.
Allerdings bedeutet NoSQL nicht, dass gar keine SQL-Datenbanken eingesetzt werden, sondern dass nicht nur SQL-Datenbanken im Einsatz sein können. Es gibt Varianten mit gemischten Datenbanken, wie auch solche ohne SQL-Datenbanken. Beides wird unter dem Oberbegriff NoSQL zusammengefasst.
Während relationale Datenbanken bei großen Datenmengen indizieren müssen und letztlich mit steigendem Mengenaufkommen zwangsläufig immer langsamer werden, bieten NoSQL-Systeme eine um ein vielfaches höhere Geschwindigkeit. Sie nutzen häufig mehr als eine Datenbank, wodurch die Last verteilt wird und im einzelnen Ausfall eines Datenbankservers die Anwendung weiterhin lauffähig bleibt.
Im Gegenzug bieten NoSQL-Datenbanken weniger Konsistenz und die Daten werden meist redundant in unterschiedlichen Systemen vorgehalten.
NoSQL Historie
Die Begrifflichkeit des NoSQL kam erstmals 1998 auf und wurde für eine Open Source-Datenbank des Entwicklers Carlo Strozzi verwendet, die keine Möglichkeit des SQL-Zugriffs beinhaltete. Er selbst allerdings weist darauf hin, dass zwischen Datenbanken, die kein SQL verwenden und Datenbanken, die vom relationalen Ansatz Abstand nehmen, unterschieden werden muss. Heute versteht man unter NoSQL den letzteren Fall.
NoSQL - Aufbau und Funktion
Ausgehend von einem Nicht-SQL-Datenspeicher, existieren die Daten nicht in Tabellen. Sie sind stattdessen in Key-Value-Paare eingeteilt. Dies bedeutet, dass der Datensatz selbst einen Schlüssel (Key) bildet und einen Wert (Value) darstellt. Die Keys sind eindeutig und entsprechen den Primary Keys der relationalen Datenbanken.
Die NoSQL-Ansätze sind je nach Anbieter unterschiedlich. Manche skalieren horizontal, andere setzen komplett auf flexible Abfragemöglichkeiten oder auf eine Lösung mittels Graphen. Gespeichert werden unter anderem die schon angesprochenen KeyValues, Graphen oder Dokumente. Derzeit existieren keine Standards für NoSQL-Datenbanken, was bei den unterschiedlichen Ansätzen in den aktuell ca. 150 verschiedenen Datenbanken nicht verwunderlich ist.
Vorteile durch NoSQL gegenüber normalen SQL-Datenbanken
NoSQL bietet in jedem Fall große Freiheiten, wenn es um die Entwicklung individueller Ideen geht. Im Big Data Umfeld stoßen relationale Datenbanken schnell an ihre Grenzen und können - wenn überhaupt - nur schwer entsprechend optimiert und an die Big Data Problematik angepasst werden. In diesem Fall ist es durchaus sinnvoll einen Verbund aus Datenbanken zu bilden und auch nicht nur SQL-Datenbanken zu verwenden.
Ein weiterer Vorteil ist der Open Source Gedanke bei den NoSQL-Datenbanken. Andere Entwicklungen sind frei einsehbar, die Dokumentationen sind öffentlich verfügbar. Dadurch kann allerdings auch ein Nachteil entstehen: Manche Entwicklungen und Dokumentationen sind nicht vollständig, es muss genau hingeschaut werden. Bei der Auswahl einer Datenbank ist zum Teil Geduld gefragt.
NoSQL - Definition & Erklärung - Zusammenfassung
Im Zusammenhang mit dem Lexikoneintrag NoSQL sollte man sich folgende Punkte merken:
- Der Begriff NoSQL steht für "Not only SQL".
- Damit werden Datenbanken bezeichnet, die mit der langen Tradition der relationalen Datenbanken brechen.
- NoSQL-Datenbanken verfolgen einen nicht-relationalen Ansatz.