MongoDB
MongoDB (vom englischen "humongous", dt. "gigantisch" ) ist ein Datenbankprogramm, welches sich auf Dokumente spezialisiert, also eine NoSQL-Datenbank (d.h. es stellt seine Daten nicht in einem relationsbasierten Schema dar, wie z.B. MariaDB) darstellt. Es wird häufig genutzt, um große Datenmenge zu verwalten und schnell abzufragen, beispielsweise am Large Hadron Collider, dem Teilchenbeschleuniger des CERNs.[1]
Geschichte
Im Jahre 2007 begann die Entwicklung durch die MongoDB, Inc. (früher 10gen), welche 2009 zu Erstveröffentlichung führte. Seitdem ist das Projekt auch open source und unter diesem Git-Repository zu finden.[2]
Aufbau
Im Gegensatz zu herkömmlichen SQL-Datenbanken, die ihre Informationen ins vordefinierten Tabellen in einzelnen Zeilen und Spalten speichern, nutzt MongoDB ein System von Collections und Documents. Damit kann z.B. ein Unternehmen ein Dokument anlegen in dem ein Kunde zwei Adressen und drei Telefonnummern, der nächste aber nur eine Adresse und nur eine Telefonnummer hat. MongoDB ermöglicht also die Speicherung von Daten in einem natürlichen Format. Durch diese Schema entstehen drei große Vorteile:[3]
Flexibilität
Aurgrund der Speicherung der Daten in den JSON ähnlichen BSON-Dateien (BSON: binary JSON) gespeichert werden, ist das Datenbankschema dynamisch. Damit können Objekte in einer Collection verschieden modelliert und manipuliert werden, was besonders in wirtschaftlichen Abläufen mit viel Variation nützlich ist.
Aufgrund dieser Strukturierung ist die nachträgliche Bearbeitung der Datenbank hinsichtlich der Features simpel, während es bei herkömmlichen Datenbanken mit Querverweisen und festen Datentypen sehr kompliziert wird.
Teilbarkeit
MongoDB erlaubt eine horizontale Skalierung der Daten (das sog. Sharding). Das heißt, wenn die Datenlast für einen Server zu groß wird, kann sie auf mehrere verteilt werden, ohne das Datenprozesse unterbrochen werden. Hiermit werden auch redundante Kopien auf verschiedenen Servern angelegt, womit ein Fehler nicht das gesamte System lahmlegen kann.
Bessere Laufzeit
Zur schneller Barbeitung von Anfragen, werder Daten im RAM zwischengespeichert, anstatt sie immer direkt von der Festplatte zu lesen. Dadurch wird es möglich, schneller auf diese zuzugreifen und gegebenenfalls zu manipulieren. Die Struktur von MongoDB sorgt zusätzlich dafür, dass das Lesen der Daten effizienter ist als bei seinen SQL-Gegenstücken.
Anwendung
Aufgrund seiner Flexibilität und der Fähigkeit, mit großen Datenmengen umzugehen, ist MongoDB gut geeignet, um mit Big Data zu speichern, bearbeiten und zu visualisieren. Weil es zudem Sharding erlaubt, können eine große Anzahl an Leuten/Teams gemeinsam mit MongoDB arbeiten. Ferner ist seine Datenstruktur der BSON-Dateien kompatibel mti den meisten gängigen Programmiersprachen, was es beliebt macht.[4]
So wird es zum Beispiel bei CERN als Datenbank für die Forschungsdaten, bei der New York Times oder beim Onlineversandhandel Etsy für ihre Websiteverwaltung genutzt.
Abgrenzung zu anderen Datenbanken
MongoDB ist, wie schon oben erwähnt, eine dokumentorientierte NoSQL-Datenbank und ist allein dadurch von den herkömmlichen Datenbanken zu unterscheiden. Zusätzlich stellt sie Konsistenz über Verfügbarkeit, was heißt, dass bei Kopien sichergestellt wird, dass die Daten konsistent bleiben. Damit nimmt sie den CP-Weg des CAP-Theorems.[5]
Beispielcode
{_id: ObjectId("5effaa5662679b5af2c58829"),
email: "email@example.com",
name: {given: "Jesse", family: "Xiao"},
age: 31,
addresses: [{label: "home",
street: "101 Elm Street",
city: "Springfield",
state: "CA",
zip: "90000",
country: "US"},
{label: "mom",
street: "555 Main Street",
city: "Jonestown",
province: "Ontario",
country: "CA"}]
}
Der obige Beispielcode gibt die Datenbankstruktur von MongoDB an. Wie leicht zu sehen, wurde einem Attribut unterschiedliche Werte gegeben. So ist zum Beispiel bei addresses
für den oberen Block die Postleitzahl zip: “90000”
eingefügt wurde, während unten nicht einmal ein NULL
-Wert eingefügt werden musste[6]
Einzelnachweise
- ↑ MongoDB Allgemeine Information auf wikipedia.org 🇬🇧, abgerufen 23.03.23
- ↑ MongoDB Geschichte auf wikipedia.org 🇬🇧, abgerufen 23.03.23
- ↑ MongoDB Vorteile auf www.opc-router.com 🇬🇧, aufgerufen 23.03.23
- ↑ MongoDB Anwedungsfälle auf www.mongodb.com 🇬🇧, abgerufen 23.03.23
- ↑ MongoDB Eigenheiten auf www.purestorage.com 🇬🇧, abgerufen 23.03.23
- ↑ MongoDB Beispiele auf www.mongodb.com 🇬🇧, abgerufen 23.03.23