JAXenter.de

Das Portal für Java, Architektur, Cloud & Agile

Graphendatenbanken, NoSQL und Neo4j

Einführung

Graphendatenbanken, NoSQL und Neo4j

Peter Neubauer

Von den unterschiedlichen Datenmodellen ist seit den 80er Jahren das relationale Modell mit den zugehörigen relationalen Datenbanken die absolut vorherrschende Strömung mit Vertretern wie OracleMySQL undMSSQL. In letzter Zeit häufen sich jedoch die Fälle, bei denen die Verwendung von relationalen Datenbanken zu Schwierigkeiten sowohl aufgrund der Defizite und Probleme in der Datenmodellierung als auch der Skalierbarkeit über mehrere Maschinen und große Datenmengen in der Praxis führt.

Es gibt zwei Trends, die dieses Problem in letzter Zeit immer mehr ins Zentrum der Aufmerksamkeit der internationalen Entwicklergemeinde gerückt haben:

  • Die exponentielle Zunahme des Volumens der von Anwendern, Systemen und Sensoren produzierten Datenmengen und deren Konzentration auf große verteilte Systeme (Amazon, Google und andere Cloud-Systeme)
  • Die zunehmende Abhängigkeit, Komplexität und Vernetzung von Daten, beschleunigt durch das Internet, Web 2.0, soziale Netzwerke und offene und standardisierte Schnittstellen zu Daten aus verschiedensten Systemen

Die relationalen Datenbanken sind diesen Entwicklungen in zunehmendem Maß nicht mehr gewachsen. Das hat zu einer Flut von alternativen Techniken für die Lösung spezieller Datenprobleme geführt, die alternativ oder zusammen mit den bestehenden SQL-Datenbanken angewendet werden können – auch als Polyglot Persistence bekannt. Es gibt schon lange alternative Datenbanken wie die Objektdatenbanken, Hierarchische Datenbanken (z. B. LDAP) und viele andere. Jedoch sind in letzter Zeit eine eine Reihe neuer Projekte gestartet worden, die unter dem Namen „NoSQL-Datenbanken“ bekannt sind.

Im folgenden Artikel soll eine Einführung in die Funktionsweise von Graphendatenbanken und ihre Positionierung im Umfeld der NoSQL-Bewegung gegeben werden. Der zweite Teil beleuchtet dann die Neo4j-Graphendatenbank ein wenig näher.

Das NoSQL-Umfeld

NoSQL (Not Only SQL) ist eigentlich eine sehr weite Bezeichnung für eine Gruppe von Persistenzmodellen und Datenbanken, die nicht das relationale Datenmodell anwenden und nicht SQL als Abfragesprache haben.

Kurz gesagt kann man die NoSQL-Szene aufgrund ihrer unterschiedlichen Datenmodelle in vier Kategorien einteilen:

  • Key-Value-Datenbanken
  • BigTable-Implementationen
  • Dokumentendatenbanken
  • Graphendatenbanken

Bei Key-Value-Systemen wie Voldemort oder Tokyo Cabinet ist die kleinste Modellierungseinheit das Key-Value-Paar, die BigTable-Klone hantieren viele Datentupel mit variablen Attributen, bei Dokumentendatenbanken wie CouchDB und MongoDB das Dokument. Graphendatenbanken sehen alle Daten als eine große vernetzte Struktur.

Hier sollen vor allem zwei Aspekte der Einteilung von NoSQL-Datenbanken aufgegriffen werden – die Skalierbarkeit und die Komplexität.

 

Kommentare

Ihr Kommentar zum Thema

Als Gast kommentieren:

Gastkommentare werden nach redaktioneller Prüfung freigegeben (bitte Policy beachten).

Übersicht zu diesem Beitrag