NoSQL – Nischenlösung oder neuer Standard?

Wachablösung
Kommentare

Jede Entwicklung hat irgendwo ihren Anfang – auch die NoSQL-Technologie. Hervorgegangen ist sie aus der Notwendigkeit, große Datenmengen schnell und unkompliziert zu verarbeiten, eine Aufgabe, der der Vorgänger SQL nicht mehr gewachsen war. Doch wie geht es innerhalb dieser Entwicklung nun weiter? Frisst die Revolution sozusagen ihre eigenen Eltern, wenn NoSQL sich als neuer Standard durchsetzt und SQL seine vorherrschende Position streitig macht? Welche Veränderungen hat NoSQL schon bewirkt, welche kann es noch bringen und wie sieht seine Rolle auf dem Markt der Datenbanktechnologien aus?

Um die NoSQL-Technologie bis zu ihrem Ursprung zurückzuverfolgen, muss an einem überraschenden Punkt angesetzt werden: dem Mondfahrtprogramm der Amerikaner in den 1960er Jahren. Unter dem Namen ICS (Information Control System) hatte IBM ein Programm entwickelt, das primär für die Stücklistenverwaltung des Apollo-Programms genutzt werden sollte. Ab 1969 erhielt es dann den Namen IMS (Information Management System). Diese beiden Bezeichnungen zeigen bereits den fundamentalen Unterschied, der auch heute noch von Bedeutung ist: Es ging nicht nur mehr um die Kontrolle der Daten, sondern um ihre Verwaltung. IMS war das erste kommerzielle System, mit dem sich hierarchische Daten verwalten ließen. Das System wird bis heute von IBM weiterentwickelt und vor allem für Versicherungen und Banken eingesetzt. Und es hat noch weitere Entwicklungen vorangetrieben, die am Ende zur NoSQL-Technologie in der heute bekannten Form geführt haben.
Parallel zu IMS wurde in den USA ein anderes Datenbankverwaltungssystem entwickelt, Integrated Data Store (IDS). Der Informatiker Charles Bachmann stellte das kommerzielle Programm zum ersten Mal 1964 vor und schuf damit den Ursprung des Netzwerkdatenbankmodells. Das Programm war in vielen Fällen kompliziert zu bedienen, wies jedoch eine erstaunliche Leistungsfähigkeit auf. Ein deutlicher Nachteil war, dass IDS auf einem Query- und Schema-Design basierte und daher nicht in der Lage war, spätere Änderungen noch zu berücksichtigen. Das Programm konnte also immer nur solche Aufgaben lösen, die in der Entwicklungsphase berücksichtigt und eingearbeitet wurden.

Die Geburt von SQL (Structured Query Language)

Auch die SQL-Technologie hat ihren Ursprung bei IBM. Anfang der 1970er Jahre wurde dort an der Umsetzung relationaler Datenbanken gearbeitet und erste Prototypen entwickelt, um Daten möglichst platzsparend ablegen zu können. Der bedeutende Durchbruch bei dieser Entwicklung lag in der Trennung des Query-Designs und des Schema-Designs – und damit in einer Trennung zwischen physikalischer und logischer Ebene der Datenbank. Damit sollten die Schwachpunkte hierarchischer Datenbanken beseitigt werden, bei denen das Schema bereits im Anfangsprozess beachtet werden musste. Dies war ein bedeutender Vorteil, der sich bis heute auswirkt – noch immer dominieren die SQL-Technologie und relationale Datenbanken den Markt.
1979 bot Oracle unter seinem damaligen Namen RSI (Relational Software Inc.) mit seiner Version 2 zum ersten Mal eine SQL-Datenbank zum Verkauf an. In den darauffolgenden Jahren setzte sich das Unternehmen mit seinem System als Marktführer im Bereich Datenbanken durch. Ein Grund für den Erfolg war und ist die strikte Trennung von Daten und Logik. Ein weiterer war die Optimierung der Datenablage durch Normalisierung und dem damit verbundenen geringeren Speicherplatzverbrauch. Zwar kam es in diesen Jahren zu einer wahren Explosion der Datenmenge, doch die Normalisierung hatte eine abschwächende Auswirkung auf Datenbanken, da es keine Redundanzen gibt (z. B. bei Adressen).

NoSQL, übernehmen Sie!

Doch in Zeiten von Big Data wirken die damaligen Datenberge, die mit relationalen Datenbanken bearbeitet werden konnten, eher wie kleine Hügel. In den vergangenen Jahren sind die Anforderungen von Suchmaschinen oder sozialen Netzwerken wie Facebook extrem gestiegen und Computer immer leistungsfähiger geworden. Dadurch kam es 2008 schließlich zur Entwicklung von NoSQL – und das sicherlich keinen Tag zu früh.
Facebook stand beispielsweise damals vor der schier unlösbaren Aufgabe, über 780 Millionen Anfragen pro Minute verarbeiten zu müssen. Relationale Datenbanken, obwohl gerade wegen ihrer Leistungsfähigkeit so erfolgreich, stießen hier an ihre Grenzen: Bei 30 Millionen Anfragen pro Minute war für sie Schluss. Und die Suchmaschine Google musste selbst auch suchen – nach einer Technologie, die ihrer Datenbank pro Monat rund 3 000 GB Indexdaten hinzufügen kann. Provisorische Lösungen wie das Zusammenfügen mehrerer SQL-Datenbanken konnten das Problem für Google und Facebook nicht lösen.
Die Datenberge waren inzwischen einfach zu groß und machten einen neuen Ansatz notwendig, denn relationale Datenbanken erkaufen ihre Platzoptimierung durch komplexe Relationen, die viel Rechenzeit erfordern. Um diese Limitierung auszubessern, wurden Caches und Views „erfunden“, die im Grunde konträr zum RDBMS-Konzept stehen, da sie Komplexitätsebenen zur Datenverwaltung hinzufügen. Daten werden zum Teil durch Denormalisierung dupliziert oder die Anwendung hat eine zeitlich verzögerte Sicht auf ihre Daten. Dazu gesellten sich dann noch neue Anforderungen, z. B. durch den vermehrten Einsatz von Cloud Computing und Mobile. Die Ansprüche an Verarbeitung und Skalierbarkeit sind damit noch einmal gewachsen.
Der erste Einsatz einer NoSQL-Datenbank kam mit Cassandra, die spaltenorientiert ist. Dies stellte einen entscheidenden Wendepunkt in der modernen Anwendungsentwicklung dar. Vor allem Facebook nutzte sofort diese neue Technologie, um die stetig wachsenden Datenmengen in den Griff zu bekommen.

NoSQL unter der Lupe

Doch wo genau liegt der Unterschied zwischen NoSQL und SQL und welche Vorteile hat dieses neue Konzept? Der Weg von SQL zu NoSQL führt hin zu Datenbanken, die extrem große Datenmengen in Echtzeit bearbeiten können. Die Vorteile von NoSQL für diese Aufgabe liegen auf der Hand: ausgezeichnete Leistungen wie In-Memory-Caching, verbesserte lokale Speicherung von Daten und In-Place-Updates.
Außerdem ist NoSQL im Gegensatz zu relationalen Datenbanken horizontal skalierbar. Gerade bei Webanwendungen stößt SQL deswegen an seine Grenzen, da es zu komplex ist und bei zu großen Datenmengen die Verarbeitungsgeschwindigkeit sinkt. NoSQL ermöglicht dagegen wegen der geringeren Komplexität der Datenablage eine schnellere Verarbeitung von Daten während Koordinationsaufgaben. Darüber hinaus werden durch dokumentorientierte Datenbanken anfallende Kosten für Datenbankschemaanpassungen und die damit erforderliche Migration vor allem im Entwicklungsprozess deutlich reduziert, da die Zeit, die für die Änderungen von Schemata und Daten verwendet werden muss, fast vollständig entfällt. Bei SQL-Technologien müssen Entwickler oft viele Ressourcen und jede Menge Zeit einplanen; zum einen für die Entwicklung von Object Relational Mapping (ORM) oder für die Erstellung und Veränderung der Datenbankschemata beziehungsweise für die Abstimmung zwischen Datenbankadministration und Entwicklungsabteilung.
In diesem Zusammenhang gewinnt die agile Entwicklung immer mehr an Bedeutung. NoSQL-Datenbanken verwenden ein dynamisches Schema und geben Entwicklern dadurch viele Möglichkeiten, ihre Arbeit flexibler zu gestalten. Ein relationales Schema erfordert eine sehr genaue Datenmodellierung am Anfang eines jeden Entwicklungsprozesses. Viele der dafür erforderlichen Antworten auf Fragen wie „Welche Datentypen sollen verwendet werden?“ oder „Welche Wertebereiche sind zu erwarten?“ verändern sich oft im Laufe einer Anwendungsentwicklung oder können am Anfang nicht genau definiert werden.
Komplexe Anwendungen setzen oft auch eine Verwendung von externen Datenquellen voraus. Dabei haben Entwickler wenig Einfluss auf die Struktur und Art der Datenquellen. Darüber hinaus weiß der Entwickler am Anfang oft nicht, welche Daten und Typen im späteren Prozess wichtig sein werden oder ob und wann sich die externen Datenschemata ändern. Eine agile Entwicklung, wie sie die NoSQL-Technologie ermöglicht, erleichtert die Arbeit ungemein, da nicht schon alle möglichen Änderungen und Überarbeitungen in den Planungsschritten antizipiert werden müssen.
Ein weiter Vorteil von NoSQL-Datenbanken ist die Möglichkeit, variable Datentypen zu verarbeiten. Der vorherrschende Trend von Big Data hat den Markt grundlegend verändert und legt das Unvermögen der SQL-Technologie offen, dieser Entwicklung ausreichend zu begegnen. Denn die Datenberge, mit denen wir uns täglich konfrontiert sehen, werden nicht nur immer größer, sondern auch immer verschiedenartiger. Für SQL ist der Mix aus polymorphen, strukturierten, unstrukturierten und semistrukturierten Daten ein großes Problem. Ferner wird SQL in seiner Funktionalität durch das steife, relationale Schema eingeschränkt.
Zusätzlich wird die Verarbeitung unterschiedlicher Datentypen dadurch erschwert, dass sich diese Daten kontinuierlich ändern. Das Analystenhaus Forrester Research spricht davon, dass sich der Markt hin zum so genannten „System of Engagement“ bewegt, bei dem die Zusammenarbeit und Interaktion mit Menschen im Mittelpunkt steht. Die Basis für solche Systeme ist meist NoSQL-Technologie. Das früher dominierende „System of Record“ ist hingegen auf relationale Datenbanken angewiesen. Unter das „System of Record“ fallen die Datenbanken, Datencenter-Infrastrukturen und ERP-Systeme, die große Datenmengen und Transaktionen mit hoher Effektivität verwalten. SQL-Datenbanken eignen sich hierfür zwar sehr gut, doch der Trend hin zum „System of Engagement“ unterstreicht die steigende Bedeutung der NoSQL-Technologie. Die Verarbeitung von Daten ist letztendlich entscheidend für die Bearbeitung von Anwendungen. Ein Beispiel wäre die kurzfristige Optimierung einer Internetseite, bei der schnell und unkompliziert Daten erneuert werden müssen. Als grundlegendes Datenmodell besitzt NoSQL die Fähigkeiten, die hier anfallenden Anforderungen sofort umzusetzen.

NoSQL und SQL: die Machtverteilung verschiebt sich

Natürlich wird es weiterhin Szenarien geben, in denen relationale Datenbanken die beste Wahl bleiben – ihre umfangreichen Funktionalitäten und große Leistungsfähigkeit sind immer noch ein entscheidender Vorteil in vielen Einsatzgebieten. Aber gerade bei fortschrittlichen Anwendungen und modernen Ansprüchen an die Analyse kann SQL oft nicht mehr mithalten.
Es zeigt sich, dass NoSQL diverse Vorteile gegenüber relationalen Datenbanken bietet, von der Entwicklung bis hin zum Einsatz von großen Datenmengen. In den Anfangsstadien kann NoSQL besonders bei der Entwicklung von Prototypen, bei Rapid Prototyping und der agilen Softwareentwicklung entscheidende Pluspunkte bieten. Und gerade die Frage nach dem Einsatz großer Datenmengen ist der entscheidende Grund, warum NoSQL sich auf dem Datenbankmarkt letztendlich als Standard durchsetzen wird: Die Datenberge, die wir verarbeiten und auswerten müssen, werden jeden Tag größer und gleichzeitig steigen die Ansprüche an Aktualität und Nutzbarkeit dieser Daten.
Wichtige Branchen wie E-Commerce und Trends wie das Internet der Dinge oder Machine-to-Machine-Kommunikation wurden erst durch Big Data möglich. Sie bauen auf NoSQL, um alle Vorteile für Nutzer und Unternehmen optimal zu nutzen. Aber auch vielfältige Big-Data-Einsatzmöglichkeiten wie beispielsweise die Kriminalitätsratenanalyse in Echtzeit bis hin zur Medikamentenentwicklung ist durch NoSQL kostengünstiger und schneller geworden. Die nachhaltige und effiziente Auswertung dieser Daten wird unseren Alltag in Zukunft entscheidend beeinflussen – und NoSQL ist bereit, sich den wachsenden Herausforderungen zu stellen.

Aufmacherbild: SQL or NoSQL words written on white board, Big data concept von Shutterstock / Urheberrecht: Raywoo

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -