Bislang war bei Datenbanken eigentlich alles ganz einfach: Es gab das relationale Modell – alles andere waren im Grunde Randerscheinungen. Das könnte sich ändern. Speziell rund um NoSQL zeichnen sich Alternativen ab.

Datenbanken müssen heute mit neuen Anforderungen fertig werden. Wohl die größte Herausforderung: Das Datenvolumen wächst immer stärker. Dafür sind in erster Linie die vielen neu hinzugekommenen Datenquellen verantwortlich: Nutzer im Internet stellen Inhalte ein. Ständig kommt es zu neuen Diskussio-nen in Social Networks. Unternehmen digitalisierenGeschäftsprozesse zunehmend, zeichnen sie auf und verfolgen und analysieren sie immer detaillierter, um wettbewerbsfähiger zu werden.

Für diese Herausforderungen ist eine andere Form der Skalierbarkeit notwendig. Relationale Datenbanken benötigen leistungsfähigere Server, wenn mehr Daten verwaltet werden sollen oder höhere Performance notwendig ist (Scale-up). Dem sind aber Grenzen gesetzt: Trotz immer schnellerer CPUs ist die Server-Leistung limitiert. Außerdem steigt mit der Leistung der Preis überproportional an. Scale-up ist also nicht besonders kosteneffizient.

Dazu kommt, dass die anfallenden Daten zunehmend weniger strukturiert sind und keinem statischen Schema entsprechen. Durch das Semantic Webnimmt die Bedeutung dieser Gruppe aber weiter zu. Letztendlich entwickelt sich das Web von einer universellen Informationsquelle für Menschen auch zu einer universellen Informationsquelle für Anwendungen. Solche Daten in die Tabellen einer relationalen Datenbank zu pressen, ist jedoch sehr schwierig.

Diese Probleme sollen einige neue Spielarten von Datenbanken angehen, die sich neben dem relationalen Modell mittlerweile etabliert haben. Sie firmieren unter dem Sammelbegriff NoSQL.

  1. Zunächst sind Key-Value-Datenbanken zu nennen. Sie haben ein sehr einfaches Datenmodell: Unter einem Schlüssel wird ein Wert gespeichert. Weitere Suchmöglichkeiten gibt es nicht. Diese Datenbanken ermöglichen eine sehr gute Skalierbarkeit und Performance. Beispiele sind “Riak” oder “Redis”.
  2. Bei den Large-Column-Datenbanken ist das Datenmodell mächtiger und dem relationalen Modell ähnlich, das heißt, es basiert auf einzelnen Tabellen. Auch hier sind sehr viele Spalten und sehr komplexe Tabellen möglich. Beziehungen zwischen den Tabellen werden allerdings nicht unterstützt. Die Skalierbarkeit der Lösungen ist ebenfalls sehr hoch. Beispiele sind “Apache HBase” oder “Apache Cassandra”.
  3. Dokumentenorientierte Datenbanken haben ein flexibles Datenmodell. Sie speichern Dokumente typischerweise in JSON (Javascript Object Notation) ab und können so nahezu beliebig komplizierte Datenstrukturen abbilden. Dabei gibt es kein Schema, so dass die Datensätze in einer Datenbank beliebige Strukturen haben können. Dennoch bieten diese Datenbanken eine gute Skalierbarkeit. Beispiele sind “Apache CouchDB” oder “MongoDB”.
  4. Schließlich gibt es noch Graphdatenbanken. Sie können Graphen wie die Freundschaftsbeziehungen in Social Networks besonders gut abbilden und sehr leicht passende Anfragen bearbeiten. Hier ist als Produkt vor allem “Neo4j” zu nennen.

Lesen sie de original-artikel.