MongoDB

MongoDB ist ein nichtrelationales Datenbankmanagementsystem

MongoDB zählt zu den nichtrelationalen Datenbankmanagmentsystemen. Zu den wichtigsten Eigenschaften, die für einen Einsatz von MongoDB sprechen, gehört seine Performanz: Vom Ansatz her haben dokumentenorientierte Datenbankmanagementsysteme hier den Vorteil, dass die Daten nicht erst aus mehreren Tabellen zusammengeführt werden. MongoDB ist außerdem skalierbar: Mit transparentem Sharding – das ist ein Verfahren zur horizontalen Skalierung – kann die Infrastruktur vergleichsweise einfach wachsenden Anforderungen angepasst werden. MongoDB verfügt außerdem über eine hohe     Verfügbarkeit: Auch bei Ausfall einer Datenbankinstanz soll die Applikation weiterhin verfügbar bleiben, d. h. nahtlos – ohne manuellen Eingriff – müssen redundante Instanzen bei einem Ausfall einspringen.

Natürlich sind diese drei Eigenschaften nicht unabhängig voneinander. So kann beispielsweise die Performanz von der Möglichkeit der horizontalen Skalierbarkeit profitieren, und aus der Skalierbarkeit resultieren neue Herausforderungen für die Verfügbarkeit. Für MongoDB als Datenbankmanagementsystem spricht, dass diese wichtigen Eigenschaften integraler Bestandteil einer durchdachten Gesamtarchitektur sind.

Mit einfacher Skalierbarkeit, hoher Flexibilität und einem effizienten Dokument-orientierten Ansatz macht MongoDB dem bewährten MySQL-System zunehmend Konkurrenz. MySQL bekommt immer mehr Gegenwind von neuen, innovativen Datenbanklösungen, die ebenfalls Open-Source bereitgestellt werden, und einen vollkommen neuen Ansatz verfolgen.

Ein Vorteil nichtrelationaler Datenbankmanagementsysteme wie MongoDB ist, dass Änderungen des Datenmodells der Applikation leicht umzusetzen sind. Das heißt, dass keine Skripte zur Änderung des Datenschemas gepflegt werden müssen.

MongoDB kann andere Systeme sinnvoll ergänzen

Eine wesentliche Eigenschaft von MongoDB ist die für die Applikation transparente Shard-Architektur mit automatischer Ausbalancierung. Werden Dokumente in eine Sammlung geschrieben, erfolgt dies zunächst ausschließlich in einen Shard, d. h. auf einer Instanz des Datenbanksystems. Wenn in einer Sammlung die maximale Blockgröße erreicht ist, wird der Block geteilt. Die Daten bleiben aber erst einmal auf dem gleichen Shard. Erst wenn die Anzahl der Blöcke auf den Shards sich um einen Schwellwert (meistens sind das mehr als acht) unterscheidet, wird ein Block auf einen anderen Shard verschoben. Damit wird erreicht, dass die Last auf mehrere Instanzen des Datenbanksystems verteilt wird, die Datenbank also einfach skalierbar ist.

Nichtrelationale Datenbanken wie MongoDB können relationale Datenbanksysteme wie MySQL heute sinnvoll ergänzen: Das Stichwort lautet hier „nicht nur SQL“ (Not only SQL). Ziel des neuen Ansatzes ist es, relationale Datenbanken da zu optimieren, wo sie Defizite aufzeigen. Entstanden ist das Konzept als Antwort auf die Unflexibilität und schwierige Skalierbarkeit von klassischen Datenbanksystemen, bei denen die Daten nach einem stark strukturierten Modell gespeichert werden müssen.

Die Datenmengen bei Web-Anwendungen steigen derzeit dramatisch. Damit steigen die Anforderungen an Datendurchsatz und Skalierbarkeit der darunter liegenden Datenbanken immer weiter an. Ein Beispiel dafür ist Twitter. Bei 200 Millionen Tweets pro Tag leiden relationale Datenbanken üblicherweise unter Leistungsproblemen und stoßen an ihre Grenzen. Aus diesem Grund setzt Twitter neben MySQL mittlerweile auch auf NoSQL-Lösungen, um die Verfügbarkeit und Performance seines Dienstes zu verbessern.

Weitere Informationen zum Thema MongoDB gibt es auf der Website der Wikipedia Enzyklopädie https://de.wikipedia.org/wiki/MongoDB und auf der Website des Herstellers – allerdings in englischer Sprache https://www.mongodb.com/