Die An­for­de­run­gen an die moderne An­wen­dungs­ent­wick­lung haben sich in den ver­gan­ge­nen 15 Jahren grund­le­gend verändert – immer größere Da­ten­men­gen müssen immer schneller ge­spei­chert, ver­ar­bei­tet und ak­tua­li­siert werden. Was die Be­wäl­ti­gung großer Da­ten­men­gen betrifft, machen nicht-re­la­tio­na­le oder NoSQL-Da­ten­ban­ken schon länger von sich reden. Aber was ist NoSQL ei­gent­lich? Und welche Vorteile bietet dieser moderne Da­ten­bank­an­satz?

Was ist NoSQL?

NoSQL steht für „not only SQL“ und als das will sich das Da­ten­bank­mo­dell auch verstehen: kei­nes­wegs als Ge­gen­stück, sondern vielmehr als Be­rei­che­rung und nützliche Ergänzung zu den tra­di­tio­nel­len, re­la­tio­na­len SQL-Da­ten­ban­ken. Dabei über­win­den NoSQL-Da­ten­ban­ken die Grenzen der re­la­tio­na­len Systeme und nutzen statt­des­sen al­ter­na­ti­ve Da­ten­bank­mo­del­le. Dies muss aber nicht bedeuten, dass keine SQL-Systeme ein­ge­setzt werden. Es gibt auch zahl­rei­che gemischte Varianten, in denen mit beiden Lösungen ge­ar­bei­tet wird, und die ebenfalls unter den Über­be­griff NoSQL fallen.

Bis in die späten 2000er-Jahre waren SQL-Da­ten­ban­ken das Non­plus­ul­tra in der An­wen­dungs­ent­wick­lung. Andere Ansätze, wie ob­jekt­ori­en­tier­te Da­ten­ban­ken, er­reich­ten aufgrund ihrer komplexen Hand­ha­bung und Im­ple­men­tie­rung nie diesen hohen Stel­len­wert. Eine echte Al­ter­na­ti­ve ergab sich durch die Ent­wick­lung der NoSQL-Da­ten­ban­ken, die Antwort auf die Ein­schrän­kun­gen und Probleme re­la­tio­na­ler Da­ten­ban­ken waren – denn re­la­tio­na­le Da­ten­ban­ken sind den An­for­de­run­gen der modernen An­wen­dungs­ent­wick­lung oft nicht mehr gewachsen. Statt­des­sen nutzen NoSQL-Databases Neue­run­gen wie Cloud-Server, um ein al­ter­na­ti­ves Da­ten­mo­dell zu bieten, in dem viele un­ter­schied­li­che Daten ge­spei­chert und ver­ar­bei­tet werden können. Die daraus re­sul­tie­ren­den Da­ten­struk­tu­ren sind leis­tungs­stark und flexibel und können schnell auf ver­än­der­te An­for­de­run­gen reagieren.

NoSQL-Systeme werden oft als struk­tu­rier­te Da­ten­spei­cher be­zeich­net, was den si­gni­fi­kan­ten Un­ter­schied zu den re­la­tio­na­len SQL-Da­ten­ban­ken ver­deut­licht: Anders als diese nutzen NoSQL-Da­ten­ban­ken keine starren Ta­bel­len­sche­ma­ta, in denen Daten vor der Spei­che­rung definiert werden müssen. Sie setzen auf fle­xi­ble­re Methoden, mit denen pro­blem­los neue Da­ten­sät­ze ein­ge­pflegt werden können, die sich laufend in der Anwendung ak­tua­li­sie­ren. NoSQL-Lösungen eignen sich zudem zur Ver­ar­bei­tung un­struk­tu­rier­ter oder auch un­be­kann­ter Daten – mit einer re­la­tio­na­len Datenbank ein Ding der Un­mög­lich­keit.

Wie funk­tio­nie­ren NoSQL-Da­ten­ban­ken?

Anders als re­la­tio­na­le SQL-basierte Da­ten­ban­ken nutzen NoSQL-Da­ten­ban­ken keine tra­di­tio­nel­len Tabellen mit Zeilen und Spalten zur Da­ten­spei­che­rung. Statt­des­sen or­ga­ni­sie­ren sie große Da­ten­men­gen mithilfe flexibler Techniken, bei­spiels­wei­se mit Do­ku­men­ten, Graphen, Wer­te­paa­ren und Spalten. Damit eignen sich NoSQL-Databases optimal für An­wen­dun­gen, bei denen große Da­ten­men­gen ver­ar­bei­tet werden müssen und die daher flexible Struk­tu­ren erfordern. Da NoSQL-Systeme Hardware-Cluster und Cloud-Server nutzen, werden die Ka­pa­zi­tä­ten gleich­mä­ßig verteilt und die Datenbank läuft auch bei starkem Da­ten­auf­kom­men flüssig. Im Gegensatz zu re­la­tio­na­len Da­ten­ban­ken, die bei stei­gen­der Da­ten­men­ge schnell an Leistung verlieren, bilden NoSQL-Da­ten­ban­ken damit auch bei hohem Da­ten­vo­lu­men eine leis­tungs­star­ke, flexible und ska­lier­ba­re Lösung.

Eine Be­son­der­heit der NoSQL-Databases ist außerdem die ho­ri­zon­ta­le Ska­lie­rung. Re­la­tio­na­le SQL-Da­ten­ban­ken sind vertikal skaliert und stützen ihre gesamte Leis­tungs­kraft auf einen einzelnen Server. Um ihre Ka­pa­zi­tä­ten zu erhöhen, müsste in einen stärkeren Server in­ves­tiert werden – das ist auf Dauer nicht nur teuer, sondern schränkt auch die Mög­lich­kei­ten in der An­wen­dungs­ent­wick­lung ein. NoSQL-Lösungen verteilen die Daten in der Regel auf mehrere Server. Erhöht sich die Da­ten­men­ge, werden einfach neue Server hin­zu­ge­fügt. Dadurch können NoSQL-Da­ten­ban­ken ohne Probleme große Da­ten­men­gen speichern und ver­ar­bei­ten, wodurch sie sich vor allem für Big-Data-An­wen­dun­gen eignen.

Die vier wich­tigs­ten NoSQL-Ansätze

Die struk­tu­rier­ten Da­ten­spei­cher ver­zich­ten auf die starren Schemata ihrer re­la­tio­na­len Mit­strei­ter und lassen sich damit besonders gut für Big-Data-An­wen­dun­gen einsetzen. Weltweit gibt es bereits zahl­rei­che ver­schie­de­ne NoSQL-Databases – meistens Open Source – die je nach Anbieter und An­for­de­run­gen un­ter­schied­lich aufgebaut sind. Obwohl es keine ein­heit­li­chen Re­ge­lun­gen gibt, lassen sich die ver­schie­de­nen NoSQL-Ansätze in vier Haupt­ka­te­go­rien un­ter­tei­len.

Do­ku­men­ten­ori­en­tier­te Da­ten­ban­ken

In do­ku­men­ten­ori­en­tier­ten NoSQL-Da­ten­ban­ken werden Daten direkt in Do­ku­men­ten von va­ri­ie­ren­der Länge ge­spei­chert. Die Daten müssen dabei nicht struk­tu­riert sein. Ihnen werden ver­schie­de­ne Attribute oder so­ge­nann­te „Tags“ zu­ge­ord­net, auf deren Basis die Inhalte des Dokuments durch­sucht werden können. Do­ku­men­ten­ori­en­tier­te NoSQL-Da­ten­ban­ken eignen sich besonders gut für Content-Ma­nage­ment-Systeme und Blogs. Als Da­ten­for­mat wird heute vor allem JSON (JavaScript Object Notation) verwendet, das den schnellen Da­ten­aus­tausch zwischen An­wen­dun­gen er­mög­licht.

Graph­da­ten­ban­ken

Eine Graph­da­ten­bank bildet Be­zie­hun­gen zwischen Daten mithilfe von Knoten und Kanten ab. Über Kno­ten­punk­te und deren Ver­bin­dun­gen zu­ein­an­der wird das Be­zie­hungs­ge­flecht der Daten or­ga­ni­siert. Bei Da­ten­be­stän­den mit stark ver­netz­ten In­for­ma­tio­nen erreichen NoSQL-Graph­da­ten­ban­ken dadurch eine deutlich bessere Per­for­mance als re­la­tio­na­le SQL-Da­ten­ban­ken. Sie werden vor allem im Bereich Social Media an­ge­wen­det – bei­spiels­wei­se, um die Be­zie­hun­gen zwischen Followern auf Twitter oder Instagram dar­zu­stel­len.

Key-Value-Da­ten­ban­ken

Während re­la­tio­na­le SQL-Da­ten­ban­ken starre Schemata und Tabellen nutzen, speichern Key-Value-Da­ten­ban­ken Daten in Form von Schlüssel-Werte-Paaren. Die einzelnen Werte sind spe­zi­fi­schen Schlüs­seln zu­ge­ord­net, wobei der Datensatz selbst als Schlüssel (Key) fungiert und einen Wert (Value) darstellt. Der Key bildet zugleich einen Index, mit dem sich die Datenbank durch­su­chen lässt. Die Keys der NoSQL-Key-Value-Da­ten­ban­ken sind immer eindeutig und lassen sich mit den Primary Keys von re­la­tio­na­len Da­ten­ban­ken ver­glei­chen.

Spal­ten­ori­en­tier­te Da­ten­ban­ken

Anders als re­la­tio­na­le Da­ten­bank­mo­del­le speichern spal­ten­ori­en­tier­te Da­ten­bank­sys­te­me Da­ten­sät­ze nicht in Zeilen, sondern in Spalten. Dadurch ergeben sich kürzere Da­ten­le­se­pro­zes­se und eine höhere Leis­tungs­fä­hig­keit. Dieses NoSQL-Modell wird vor allem für Data-Mining und Ana­ly­se­pro­gram­me genutzt.

Vorteile von NoSQL gegenüber SQL

Je nach An­wen­dungs­zweck kann NoSQL gewisse Vorzüge gegenüber klas­si­schen re­la­tio­na­len Da­ten­ban­ken bieten: Wo SQL-Systeme schnell aus­ge­las­tet sind, wie bei­spiels­wei­se im Umgang mit Big Data, warten NoSQL-Da­ten­ban­ken mit hoch­leis­tungs­fä­hi­gen, ska­lier­ba­ren Modellen auf, die große Da­ten­men­gen in Spit­zen­ge­schwin­dig­keit lesen und ver­ar­bei­ten können.

NoSQL-Databases bewegen sich weg von den starren Schemata der SQL-Systeme und hin zu flexiblen Modellen, die sich ideal für die Ver­ar­bei­tung großer Da­ten­men­gen eignen. Dank der Spei­che­rung auf ver­teil­ten Hardware-Clustern sind sie weniger anfällig für Störungen und deutlich günstiger als die In­stal­la­ti­on eines einzelnen, leis­tungs­star­ken Servers, dessen Res­sour­cen re­gel­mä­ßig aus­ge­schöpft sind und der dann ersetzt werden muss.

SQL-Datenbank NoSQL-Datenbank
Art Eine Datenbank für alles Ver­schie­de­ne Da­ten­bank­mo­del­le, wie z. B. Do­ku­men­ten-, Graph-, Key-Value- und Spal­ten­da­ten­bank
Da­ten­spei­che­rung In­di­vi­du­el­le Daten (z. B. „Buchtitel“) werden in Zeilen in einer Tabelle ge­spei­chert und be­stimm­ten At­tri­bu­ten zu­ge­ord­net (z. B. „Autor“, „Er­schei­nungs­jahr“ usw.). Die Da­ten­sät­ze werden in separaten Tabellen ge­spei­chert und bei komplexen Such­an­fra­gen vom System zu­sam­men­ge­führt. NoSQL-Da­ten­ban­ken nutzen keine Tabellen, sondern je nach Typ ganze Dokumente, Key-Values, Graphen oder Spalten.
Schemata Datentyp und -struktur werden im Vorhinein fest­ge­legt. Um neue In­for­ma­tio­nen zu speichern, muss die gesamte Datenbank angepasst werden (und zu diesem Zweck offline gehen). Flexibel. Neue Da­ten­sät­ze können sofort hin­zu­ge­fügt werden. Struk­tu­rier­te, halb­struk­tu­rier­te und un­struk­tu­rier­te Daten können zusammen ab­ge­spei­chert werden, eine vorherige Kon­ver­tie­rung ist nicht notwendig.
Ska­lie­rung Vertikale Ska­lie­rung. Ein einzelner Server muss die Leistung des kom­plet­ten Da­ten­bank­sys­tems tragen, was einen Leis­tungs­ab­fall bei großen Da­ten­men­gen zur Folge hat. Ho­ri­zon­ta­le Ska­lie­rung. Jeder Ad­mi­nis­tra­tor kann neue Commodity- und Cloud-Server hin­zu­fü­gen, die NoSQL-Datenbank sendet die Daten au­to­ma­tisch an alle Server.
Ent­wick­lungs­mo­dell Open Source (z. B. MySQL) oder Bezahl-Software (Oracle Database) Open Source oder Bezahl-Software
ACID-Ei­gen­schaf­ten: Atomicity, Con­sis­ten­cy, Isolation, Du­ra­bi­li­ty Bei SQL-Da­ten­ban­ken sind alle ACID-Ei­gen­schaf­ten gegeben. Damit NoSQL-Da­ten­ban­ken flexibel und ho­ri­zon­tal ska­lier­bar bleiben, werden ACID-Trans­ak­tio­nen meistens nicht un­ter­stützt. Statt­des­sen wird das BASE-Modell verwendet (Basically Available, Soft State, Even­tual­ly Con­sistant). Demnach gilt: Ver­füg­bar­keit vor Kon­sis­tenz.
Leistung Nutzen bei erhöhtem Da­ten­auf­kom­men Indizes. Um die Leistung von SQL-Systemen zu erhöhen, müssen Abfragen, Indizes und Struktur optimiert werden. Durch das Nutzen von Cloud-Servern und Hardware-Clustern haben NoSQL-Da­ten­ban­ken eine deutlich höhere Leis­tungs­stär­ke.
APIs Abfragen zur Spei­che­rung und zum Abrufen von Daten werden mit SQL (Struc­tu­red Query Language) über­mit­telt. Daten werden über ob­jekt­ba­sier­te APIs ge­spei­chert und abgefragt.

Fünf beliebte NoSQL-Lösungen im Überblick

Bei den meisten NoSQL-Databases handelt es sich um Open-Source-Software, die für alle In­ter­net­nut­zer frei verfügbar ist. Das ver­ein­facht den Einstieg ungemein: So können Sie viele NoSQL-An­wen­dun­gen kostenlos her­un­ter­la­den, sich damit vertraut machen und sie zunächst auch nur als Ergänzung zu Ihrer SQL-Datenbank verwenden. Folgende NoSQL-Da­ten­ban­ken haben sich bereits vielfach bewährt:

Cassandra

Cassandra ist eine spal­ten­ori­en­tier­te NoSQL-Datenbank, die für die Spei­che­rung und Ver­ar­bei­tung großer Da­ten­sät­ze optimiert ist.

CouchDB

Die do­ku­men­ten­ori­en­tier­te Datenbank CouchDB nutzt eine intuitiv ver­ständ­li­che HTTP/JSON-API und lässt sich für jegliche An­wen­dungs­be­rei­che, von Big Data bis zu Mobile und Web, im­ple­men­tie­ren.

Neo4j

Mit Neo4j lassen sich Daten in die cloud­ba­sier­te NoSQL-Graph­da­ten­bank in­te­grie­ren. In erster Linie können damit Be­zie­hun­gen zwischen einzelnen Da­ten­sät­zen grafisch dar­ge­stellt und Muster erkannt werden.

Redis

Die Key-Value-Datenbank Redis ist eine so­ge­nann­te In-Memory-Datenbank: Sie speichert Daten direkt im Cache und erzielt damit eine noch höhere Leistung.

MongoDB

MongoDB zählt seit Jahren zu den be­lieb­tes­ten NoSQL-Databases. Die in der Pro­gram­mier­spra­che C++ ge­schrie­be­ne Datenbank arbeitet do­ku­men­ten­ori­en­tiert und speichert In­for­ma­tio­nen im BSON-Format (Binary JSON).

Tipp

Mit Managed MongoDB von IONOS setzen Sie auf eine NoSQL-Datenbank, die mit Ihrem Workload wächst. Skalieren Sie Ihren Bedarf flexibel und kon­zen­trie­ren Sie sich gänzlich auf die Aus­wer­tung und Analyse Ihrer Daten.

Zum Hauptmenü