Ob der Begriff gut gewählt ist, sei mal dahingestellt. Es handelt es sich, so könnte man meinen, um Datenbanken, welche keine SQL-Struktur verwenden. Dem ist aber nicht so. Es ist auch keinesfalls eine populistische Gegenbewegung zu SQL-Datenbanken. Deshalb wird der Begriff häufig mit „not only SQL“ übersetzt, was eindeutig die bessere Begriffsdeutung ist.
Warum Alternativen zu SQL Datenbanken wichtig sind
Erst die zunehmenden Datenströme im Internet und der starke Anreiz diese Daten für Analysezwecke gewinnbringend einzusetzen haben dazu geführt, dass Datenbanken mit alternativen Konzepten wieder mehr Bedeutung zugemessen wird. Benötigt wird eine Datenverwaltung, die nicht nur riesige Datenmengen speichern kann, sondern auch Informationen schnell verfügbar macht, dabei aber mit den unterschiedlichsten Formaten zurechtkommt. (Klimt, 2013)
NoSQL-Datenbanken zeichnen sich dadurch aus, dass sie ein nicht-relationales Datenmodell nutzen und kein Schema oder lediglich ein weniger stringentes Schema nutzen. Dies steht im starken Gegensatz zu den strikten Schemarestriktionen relationaler Datenbanken. Erstaunlicherweise ist aber keine totale Abkehr von relationalen Datenbanksystemen zu beobachten. Zum Teil wird lediglich versucht die Nachteile relationaler Datenbanken zu beheben.
Cloud und Co. – Client-Server-Struckturen sind nicht mehr zeitgemäß
Die typische Client-Server-Struktur ist in vielen Bereichen nicht mehr zeitgemäß. Cloud-Anwendungen gewinnen immer mehr an Bedeutung. Insofern orientieren sich NoSQL-Datenbanken auch hier an den Zeichen der Zeit. Sie setzen nicht wenige große Server, sondern auf Skalierbarkeit. Wohl sind auch große relationale Datenbanken skalierbar, dies aber nur in größeren Stufen. Mit diesem Konzept wird erreicht, dass kostengünstige Hardware zum Einsatz kommen kann. Damit werden die Kosten für die Datenhaltung gesenkt. Einen Nachteil hat diese Lastverteilung aber. Mehr Hardware ist selbstverständlich auch anfälliger für Fehler. Außerdem ist anzunehmen, dass günstigere Erzeugnisse auch eine höhere Ausfallrate haben. Bei vielen NoSQL-Systemen sind alle Knoten, d. h. die einzelnen Rechner, gleichberechtigt. Das bringt den entscheidenden Vorteil mit sich, dass im laufenden Betrieb weitere Knoten hinzugefügt werden können. So kann auf erhöhte Last reagiert werden, indem diese auf weitere Rechnersysteme verteilt wird. Die Unterstützung für eine einfache Datenreplikation ermöglicht diese verteilte Architektur zudem. (Klimt, 2013)
NoSQL-Datenbanken unterscheiden sich stark!
Während sich SQL-Datenbanken, ob von Microsoft oder Oracle, sich im Grunde sehr ähnlich sind, unterscheiden sich NoSQL-Datenbanken hinsichtlich des verwendeten Datenbankmodells stark. Folgende Ansätze lassen sich unterscheiden:
- Key Value Store
- Document Store
- Graph Datebases
- Wide Column Store
Key Value Store
Das erst genannte Datenbankmodell verwendet für die Speicherung einen Schlüssel für einen einzelnen Wert, der eine Zeichenkette, aber auch eine Struktur in Form von Listen oder Sets sein kann. Key-Value-basierte Datenbanken stellen die einfachste Art der Datenspeicherung dar. Sie erweisen sich als für schnelle, jedoch einfache, Datenoperationen geeignet. Aufgrund dessen kann die Auswertung ähnlich einer Suchmaschine erfolgen, so z. B. für die rasche Analyse von Wetterdaten oder Nutzerbewertungen.Ein Bespiel für dieses Konzept ist Dynamo von Amazon.
Document Store
Dokumentenorientierte Datenbanken verwenden prinzipiell dasselbe Speicherverfahren wie Key-Value-basierte, indem jedes Dokument einen Schlüssel besitzt. Jedoch ist es ihnen möglich beschreibende Informationen zusätzlich aufzunehmen, z. B. in Form von XML. Dies erweist sich als vorteilhaft, wenn komplexere Auswertungen benötigt werden. Lotus Notes, dessen Leistungsfähigkeit das Beispiel des Discovery Servers verdeutlicht, hat hier den Standard gesetzt. Heute sind aber andere Datenbanken bedeutender, z. B. CouchDB – ein Apache-Projekt.
Graph Datebases
Graphendatenbanken haben eindeutig SQL-Datenbanken als Vorbild – sie erweitern diese. Gemeinsam sind beiden Relationen, auch die Abfragesprache ähnelt SQL. Es kommen aber keine Tabellen zum Einsatz, vielmehr wird mit freien Datenstrukturen gearbeitet. Es bestehen Verbindungen zwischen Einträgen. Flexibilität durch eine hohe Skalierbarkeit zeichnet dieses Datenbanksystem aus. Dies ist auch der Grund, warum Graphendatenbanken schon vielfach zum Einsatz kommen. Sie ersetzen wegen ihrer Leistungsfähigkeit relationale Datenbanken in verschiedenen Bereichen. Beispielsweise werden sie für Risikomanagement und Supply Chain Management verwendet. Sehr gut sind sie auch für logistische Zwecke geeignet. Doch auch in sozialen Netzwerken kommen sie zum Einsatz. Die wohl bekannteste Graphendatenbank ist neo4j.