Polaris Systems Neuigkeiten

NoSQL - Die Alternative, wenn Geschwindigkeit und Flexibilität der Maßstab sind

Waren bis heute noch SQL – Datenbanken vollkommen ausreichend und die erste Wahl für fast jede Webanwendung, kommt man heutzutage sehr schnell an die Grenzen dieser Systeme. Wir wollen in diesem Beitrag nicht die herausragenden Vorteile von relationalen Datenbanksystemen in Frage stellen. Vielmehr wollen wir uns dem andersartigen NoSQL (Not only SQL) Konzept widmen und ein wenig Licht in dieses Thema bringen.
NoSQL ist die neue Generation von Datenbanksystemen, welches auf Grund seiner Eigenschaften sehr große Datenmengen aufnehmen kann und sich hervorragend skalieren lässt. Folgende Eigenschaften gehören unter anderem dazu:

Das Datenmodell ist nicht relational

In einer relationalen Datenbank liegen die Daten in fest strukturierten Tabellen vor und können über so genannte Relationen mit anderen Tabellen verknüpft und abgefragt werden. Durch diese fest vorgegebene Struktur können Änderungen oder Aktualisierungen nur mit Aufwand in die Datenbank geschrieben werden. Viele Datenbankentwickler werden wahrscheinlich auch die schmerzhafte Erfahrung bei der Schemaerweiterung gemacht haben, bei der die Anwendung vermutlich für mehrere Stunden nicht erreichbar war. NoSQL – Systeme sind Dokumentenorientierte Systeme. Sie unterliegen keinen willkürlichen Grenzen wie Spaltenanzahl, Datenfeldgröße oder Dateigröße. Die Tabellen können mit zusätzlichen Datenfeldern zu jeder Zeit und im Livebetrieb ergänzt werden.

NoSQL – Systeme sind schemafrei oder verfügen über schwächere Schemarestriktionen

Genau diese Anforderungen werden in der heutigen Zeit von neuartigen Webanwendungen oftmals benötigt. Anstatt wie bei SQL – Systemen die Anwendung für die Bearbeitung zu sperren um mit den Befehlen wie „ALTER TABLE“ die Datenbank zu aktualisieren, versucht man bei NoSQL Systemen die Daten zu versionieren und das Aktualisieren in Echtzeit durchzuführen. So kann die Anwendung neue Daten schreiben und im Hintergrundprozess die Daten konvertieren und als neue Version schreiben. Sicherlich können sich bei diesem Prozess die Daten für ein kleines Zeitfenster überschneiden und es können die alten Daten im neuen Feld erscheinen. Das ist aber bei Web 2.0 Anwendungen tolerierbar.

Verteilte und Horizontale Skalierbarkeit

Das System ist von Grund auf auf eine hohe Skalierbarkeit ausgerichtet. Um die großen Datenmengen zu verwalten, können zusätzliche Server je nach Bedarf zugeschaltet werden. Dieser Vorgang kann dynamisch erfolgen, so dass eine Lastverteilung on the fly erfolgen kann. Daten können somit auf unterschiedlichen Servern abgespeichert und abgerufen werden.

Einfache Datenreplikation

NoSQL – Systeme bieten eine hohe Flexibilität im Umgang mit der Datenverarbeitung. Durch das verteilte Design bieten NoSQL – Systeme sehr gute Konzepte (Master/Slave Prinzip) zur Datenreplikation an. Die Datenreplikation wird im Gegensatz zu den bekannten SQL – Systemen dadurch enorm erleichtert.

In diesem Beitrag konnten wir nur auf wenige Aspekte eingehen. Sicherlich sollte man jetzt nicht versuchen für jede zukünftige Anwendung und Einsatzzweck versuchen NoSQL - Systeme einzusetzen, wenn man auch mit SQL Datenbanken das gleiche oder sogar ein effektiveres Ergebnis erreichen kann. Im Zuge des Web 2.0 Zeitalters und der damit verbundenen Anforderungen werden NoSQL Systeme sicherlich in Zukunft immer mehr zum Einsatz kommen.

Zurück