Der aspectra-Blog seit 2012

Eine Datenbank für gigantische Aufgaben

Jahrelang beherrschten MySQL und PostgreSQL die Szene der Open-Source-Datenbanken, doch seit einigen Jahren mischen neue Mitspieler die Karten neu. Was steckt dahinter?

Relationale Datenbanken wie MySQL und PostgreSQL oder die kommerziellen Schwergewichte wie MSSQL und Oracle sind monolithische Gebilde und eignen sich gut für hochkomplexe Datentransaktionen. Doch bei aktuellen BigData-Anwendungen mit riesigen Datenaufkommen, wenig Schreib- und vielen Leseaktionen, losen Strukturen und einem Bedarf an verteilten Datenbank-Servern kommen sie schnell ins Schwitzen. Hier schlägt die Stunde der dokumentorientierten Datenbanken, wie es die mit dem seltsam klingenden Namen MongoDB eine ist.

Nicht nur SQL

Der ungewöhnliche Name stammt von „humongous“ und bedeutet riesig, gigantisch; angelehnt an die Datenmassen, die sie gedacht ist zu verwalten. Die MongoDB legt als NoSQL („Not only SQL“) Datenbank ihre Daten nicht in strukturierten Tabellen, sondern in schemalosen Dokumenten ab, was problemlose und schnelle Änderungen am Datenbank-Modell erlaubt. Dank ihrer einfachen und JSON-artigen Struktur lässt sie sich auch problemlos auf mehrere Server verteilen, bietet allerdings vor allem deshalb keine so mächtige Abfragesprache, wie sie die klassischen SQL-Datenbanken besitzen. Im Gegenzug müssen Entwickler dafür keine eigene SQL-Sprache erlernen, ist die Objektstruktur von NoSQL-Datenbanken doch viel näher an die objektorientierte Programmierung angelehnt.

Einsatzgebiete

Bei der aspectra und ihren Kunden ist die MongoDB mehrheitlich als schnelle Session Cache- sowie Analyse- und Reporting-Datenbank oder allgemein als eine Datenbank in Betrieb, welche sehr flexibel anzupassen sein muss, um zukünftige, neue oder veränderte Businessmodelle abzubilden. Meist verdrängt die NoSQL dabei die klassischen Datenbanken gar nicht komplett, sondern sie koexistieren in grösseren Anwendungen friedlich nebeneinander, um das Beste aus beiden Welten zu vereinen.
Bei vielen Projekten kann eine NoSQL-Datenbank eine elegante Lösung sein, um schnell und einfach die anfallenden Daten ablegen zu können. Wer allerdings auf transaktionssichere Manipulationen angewiesen ist (ACID), ist zurzeit bei den klassischen SQL-Datenbanken noch besser aufgehoben, da NoSQL-Datenbanken dies nicht unterstützen.

Suche