Jedes Entwicklungsteam kann bestimmt aus guter Erfahrung bestätigen, dass eine relationale Datenbank, ab einem bestimmten Zeitpunkt im Live-Betrieb eines Projektes ein Nadelöhr darstellen kann. Insbesondere die Optimierung hinsichtlich Performance wie Indexierung, häufigen Zugriffen, komplexen “joins” oder die Verteilung auf mehreren Servern. Genau hier setzen postrelationale Ansätze wie NoSQL an. Historisch gesehen hat sich der Begriff NoSQL von der Bedeutung “no SQL” hinzu “Not only SQL” entwickelt. Der Kerngedanke ist also keine Kampfansage in Richtung SQL.

igcjeafc

Betrachtet man den Begriff in seiner ersten Bedeutung, so fallen auch hierarchische und Dokumenten-basierte Speicherlösungen in die Kategorie der NoSQL-Datenbanken. Somit geht der Ursprung von NoSQL-Lösungen bis in die 1960er Jahre mit IBM’s hierarchischen System “IMS” zurück. Wirklich Fahrt aufgenommen hat das Thema ab 2000 mit Lösungen wie Neo4j, CouchDB, MongoDB oder JackRabbit um nur einige zu nennen. Wo liegen nun die wirklichen Vorteile einer NoSQL Datenbank wie z.B. neo4j als Vertreter der Graphendatenbanken?

Aus technischer Sicht:

  • Geschwindigkeit (Traversierung vs. Joins) - http://architects.dzone.com/articles/performance-graph-vs
  • OR - Mapping (Kein Bruch in objektorientierten Sprachen wie Java oder Ruby bzgl. des Datenmodells)
  • Schemalose und effiziente Speicherung von semistrukturierten Informationen (JSON)
  • neo4j kann in die eigene Anwendung eingebettet werden und stellt somit keine eigene DB-Schicht mehr dar.

Neben den technischen Vorteilen sollte die Entscheidung für die Verwendung einer NoSQL Datenbank natürlich immer fallbezogen und wirtschaftlich Sinn machen. Die in den letzten Jahren ausgeschlachteten Buzzwords “Web 2.0” und “Cloud” in Verbindung mit der rasanten Verbreitung von Smartphones und sozialen Netzwerken hat der nächsten anrollenden Welle den Weg freigemacht - “Big Data”. Dieser Begriff bezeichnet vereinfacht gesagt, riesige Datenmengen die stark vernetzt sind und mit relationalen Datenbanken nur noch schlecht verarbeitet und/oder visualisiert werden können. Als bekannteste Vertreter zählen Unternehmen wie Facebook und Twitter. Natürlich ist die Entscheidung für die Verwendung einer Graphdatenbank nicht nur abhängig von der Menge der Daten. Auch bei kleineren Datenmengen, die häufiger Änderung und einer starken Vernetzung unterliegen wird NoSQL auch für den Mittelstand interessant.

Das Team der Scandio GmbH hat Projekterfahrung in den Bereichen JackRabbit und neo4j. In den folgenden Artikeln zum Thema NoSQL werden einige technische Beispiele zu neo4j gezeigt.

Weblinks

http://www.neo4j.org/
http://jackrabbit.apache.org/
http://blog.knuthaugen.no/2010/03/a-brief-history-of-nosql.html
http://nosql-database.org/

Firmenportrait:
Die Scandio GmbH ist ein IT-Beratungs- und Softwareunternehmen aus München. Wir entwickeln individuelle Web-Applikationen für Ihr Unternehmen. Zu unseren Stärken gehören Web Content Management Systeme, Suchmaschinen-Technologie (Lucene, Apache Solr), Datenbank- und eCommerce-Systeme und alle Mischformen daraus. Mehr über unsere Leistungen erfahren Sie in unserem Portfolio.