Die nichtrelationale Datenbank MongoDB macht dem bewährten MySQL-System Konkurrenz. Sie punktet mit einfacher Skalierbarkeit, hoher Flexibilität und Dokumentenorientierung

Als populärste Open-Source-Datenbank der Welt gilt seit langem MySQL und gilt mit über 70000 täglichen Downloads als Quasi-Standard. Prominente Unternehmen wie Google, Youtube und Wikipedia nutzen MySQL. Obwohl MySQL kostengünstig, mit zahlreichen Features, Admin-Tools, stabil und sicher läuft, bekommt es immer mehr Konkurrenz durch innovative Open-Source Datenbanklösungen.

Hier ist das Stichwort NoSQL und steht for “Not only SQL”. Diese neuen Nicht-relationalen Datenbanken sind sehr stark im kommen und sollen relationale stark fixe strukturierte Datenbankmodelle, zum Beispiel in Ihrer Skalierbarkeit ergänzen. Mit Web 2.0, Cloud-Computing und Social Network wachsen die Datenmenden bei Web-Applikationen dramatisch und somit auch die Anforderungen an Datendurchsatz und Skalierbarkeit. Bei datenintensiven Applikationen entstehen bei relationalen Datenbanken Leistungsprobleme. Bei diesen Anwendungen wird deshalb auch Nicht-relationale Datenbanken gesetzt. Zu den bekanntesten Vertretern der Generation zählt Redis, Apache Cassandra, CouchDB, Firebase und auch MongoDB.

MongoDB wurde 2009 veröffentlicht und kommt aus der 10gen Schmiede. Ist eine Open-Source-Lösung, basiert auf der Programmiersprache C++ und ist für die Betriebsysteme Windows, Max OS X und Linux erhältlich. MongoDB ist für Applikationen mit hoher Skalierung, Leistung, große Datenmengen und Flexibilität gedacht. MongoDB speichert Datensätze in JSON-Format (ähnlich Javascript-Objekten) und arbeitet somit in einer schemafreien Struktur und dokumentenorientert. Es gibt keine festen Tabellenschemas und zwingenden Relationstabellen. Relationen lassen sich im Datensatz oder individuell mit einer Datenabfrage erstellen. Hiermit entsteht bei MongoDB die einfache horizontale Skalierbarkeit und Flexibilität.

Dokumente als Datensätze, anstatt Tabellen, Verzicht auf Abfragesprache

Statt von Tabellen spricht man bei MongoDB von Colletions. Jede kann Dokumente beinhalten die im BSON-Format gespeichert werden. Dieses Format stammt von JSON (Javascript Object Notation) ab und ist wie das Präfix Binary (Binary JSON = BSON) andeutet, für eine Overhead-arme Darstellung von binären Daten ausgelegt. Jedes Dokument kann dabei eine beliebige Anzahl an Feldern, verschachtelte Array-Strukturen und weitere Dokumente besitzen.

MongoDB und MySQL nutzen eindeutige ID pro Datensatz als Primärschlüssel, während select-relevante Spalten indiziert werden können, um die Performance der Abfrage dieser Felder zu erhöhen. MongoDB verzichtet auf eine Abfragesprache wie SQL. Durch objektspezifische Methoden (Client-APIs / Drivers) erfolgt die Datenmanipulation und -abfrage. Dieses objektorientierte Datenmodell passt somit besser zu herkömmlichen Programmiersprachen, als bei relationalen Datenbanken wie MySQL.

Doch bei all diesen Unterschieden weisen MongoDB und MySQL auch einige wesentliche Gemeinsamkeiten auf. So verwenden beide Datenbanklösungen eine eindeutige ID pro Datensatz als Primärschlüssel, während in beiden Fällen Select-relevante Spalten indiziert werden können, um die Performance bei der Abfrage dieser Felder zu erhöhen. Diese Gemeinsamkeiten tragen dazu bei, erfahrenen MySQL-Entwicklern den Einstieg in MongoDB zu erleichtern. MongoDB verzichtet jedoch auf eine Abfragesprache wie SQL. Stattdessen erfolgen die Datenmanipulation und -abfrage anhand von objektspezifischen Methoden, die für alle gängigen Programmiersprachen (Javascript, PHP, Perl, Ruby, Python, Java)  verfügbar sind. Das Object Relational Mapping (ORM) hat zahlreiche Lösungen, um Daten aus einer relationalen Datenbank in Objekten abzubilden, die dann im Programmcode leichter zu verarbeiten sind.

Wir als Team nutzen sowohl MySQL, als auch MongoDB. MySQL bietet zahlreiche bewährte Administrations-Tools, was seit 2011 MongoDB mit MongoDB Monitoring Sevrice auch hat. Wir sehen beide Datenbanken nicht als Konkurrenz, sondern setzen entsprechende Datenbanken Projektspezifisch ein.

Wir als Team nutzen sowohl MySQL, als auch MongoDB. MySQL bietet zahlreiche bewährte Administrations-Tools, was seit 2011 MongoDB mit MongoDB Monitoring Sevrice auch hat. Wir sehen beide Datenbanken nicht als Konkurrenz, sondern setzen entsprechende Datenbanken Projektspezifisch ein.

OPPY.ONE bietet MSSQL, MySQL, NoSQL, MongoDB und Firebase an. Für Fragen stehen wir als Team Ihnen gerne beratend zur Verfügung.

Interessanter Link zum Thema Database Ranking weltweit.