Die dokumentenorientierte Datenbank besticht durch Performance und eine hohe horizontale Skalierbarkeit
Was ist MongoDB? MongoDB ist eine Datenbank, die auf einem nicht relationalem Dokumentmodell basiert. Somit unterscheidet sie sich als sogenannte NoSQL-Datenbank (NoSQL = Not-only-SQL) grundlegend von herkömmlichen relationalen Datenbanken wie Oracle, MySQL oder dem Microsoft SQL Server. Der Name MongoDB leitet sich vom englischen Wort „humongous“ ab, was in etwa „gigantisch“ bedeutet. Veröffentlicht wurde MongoDB im Jahre 2009 vom Gründer und Entwickler Eliot Horowitz. Er trat 2020 als Chief Technology Officer und aus dem Verwaltungsrat von MongoDB Inc. zurück, ist aber immer noch als technischer Berater tätig.
Ein detailliertes Video zu diesem Thema finden Sie hier in unserem Tutorial-Stream unter der Beschreibung „Anbindung von Datenbanksystemen“.
1. Datenbanknutzung im industriellen Umfeld
Die konzeptionellen Unterschiede der dokumentenorientierten NoSQL-Datenbank MongoDB zu herkömmlichen SQL-Datenbanken lassen sich am nachfolgenden Beispiel erklären:
In einem Vertriebsbüro für Kunststoffteile wird für die Kundenverwaltung eine relationale Datenbank eingesetzt. Sie legt die Kundendaten dort beispielsweise wie in einer Excel-Tabelle bestehend aus Zeilen und Spalten ab. Schauen wir uns zunächst ein kleines Teil dieses Systems an: Die Kontaktinformationen für die Kunden. Es könnte mit einer einfachen Tabelle beginnen, die eine Zeile für jeden Kunden enthält. Diese Zeile hat eine eindeutige Kunden-ID-Nummer, einen Vor- und Nachnamen, E-Mail-Adresse, Telefonnummer und Firmenadresse.
Was ist, wenn wir nun möglicherweise eine zweite Telefonnummer für einen Kunden hinzufügen möchten?
Für eine Arbeitsnummer und eine Handynummer oder sogar eine Notfall-Kontaktnummer könnten wir einfach weitere Spalten hinzufügen. Das gleiche Problem könnte bei mehreren Adressen auftreten, wenn ein Kunde beispielsweise ein Muster ins Home Office geschickt bekommen möchte. Auch frühere Adressen oder die Information für eine bevorzugte Sonderfarbe für die Kunststoffteile könnten Informationen sein, die Sie möglicherweise noch benötigen. Sie fügen nun einfach weitere Spalten für alle Kontaktinformationen des Kunden hinzu. Schließlich wird eine aufgeblähte, meist leere, ineffiziente Tabelle entstehen, da viele Felder bei vielen anderen Kunden ungenutzt sind.

Stattdessen könnten natürlich in unserem Excel-Modell bei zusätzlich benötigten Daten neue Tabellen-Blätter erstellt werden. In unserem Fall also ein neues separates Blatt für Telefonnummern. Jede Zelle enthielte dabei nur eine Telefonnummer, die sich auf die Kunden-ID bezieht und mit einem Label wie „Privat“, „Arbeit“ oder „Mobil“ gekennzeichnet wird. Ein weiteres Blatt kann in dieser Art für Adressen erstellt werden und so weiter.
Man würde eine Vielzahl von Blättern anlegen, nur um einen einzelnen Kunden zu betrachten. Hierbei ist noch nicht einmal eine Bestellhistorie oder Rechnungsablage berücksichtigt. Sie können erahnen, wie schnell das Arbeiten in diesem starren Schema außer Kontrolle geraten kann. Jedoch arbeiten Entwickler mit Daten in diesen relationalen, also tabellenbasierten Datenbanken in realen Anwendungen so.

1.1 Daten in einer relationalen Datenbank
Die Daten für eine einzelne Sache, wie z.B. einen Kunden, sind häufig auf Dutzende von Tabellen und Blättern verteilt. Dies erhöht die Komplexität der Anwendung erheblich und führt zu einigen Nachteilen.
Nachteile relationaler Datenbanken:
- Komplexität
Für Benutzer, die die Anwendung warten, ist es schwierig, die komplex und vielschichtig angelegten Strukturen zu verstehen. - Hinzufügen neuer Features
Das Hinzufügen von Features ist erschwert, weil es z.B. mit Querverweisen mehr Tabellen und Blätter zu berücksichtigen gibt. - Abrufen von Daten
Das Abrufen von Daten von so vielen Orten ist ineffizient und die Anwendungen benötigen komplexe Programmiercodes, um damit umzugehen.
Stellen Sie sich vor, wir würden dieses Beispiel in die reale Welt übertragen und die Vertriebsbetreuer müssten Namen aus einem Aktenordner, Telefonnummern aus einem anderen und Adressen aus einem dritten Ordner abrufen. Sie können sich vorstellen, wie kompliziert, fehlerbehaftet und langsam das wäre.
Welche Frage haben Sie zur MongoDB?
1.2 Wie löst MongoDB das Problem?
MongoDB verfolgt nun einen komplett anderen “schemafreien” Ansatz. Daten werden in sogenannten „Documents“ gespeichert.
Genau wie bei physischen Kundenakten in einem Hängeregister, kann ein Document zwei Adressen, drei Telefonnummern und weitere Informationen, wie beispielsweise ein individuelles Schulungsvideo enthalten. Es kann direkt neben einem anderen Kundendokument lagern, welches nur eine Telefonnummer, eine Adresse und noch keine Bestellungen enthält. Diese Dokumente sind nicht darauf beschränkt, die gleiche Anzahl von Spaltendokumenten bzw. Datenfeldern zu haben.

MongoDB fasst mehrere Documents in “Collections” zusammen, von denen die Datenbank mehrere enthalten kann.
Die IT kann die so strukturierten Daten effizienter verarbeiten und natürlich sind diese Dokumente auch für Menschen viel leichter zu lesen. Diese Art von Datenspeicherung ist für Entwickler unglaublich vorteilhaft, da sie ihre Anwendungen nicht mehr an die Anforderungen der Datenbank anpassen müssen. Mit MongoDB können Anwendungen Daten auf natürliche und komfortable Weise speichern. Dies bedeutet auch, dass das Hinzufügen neuer Daten möglich ist, ohne sich Sorgen zu machen, dass eine einfache Änderung zu einer Unlesbarkeit von Datenbankeinträgen führen könnte.

1.3 Unterschiede zu althergebrachten Datenbanken
Zusätzlich zum Dokumentmodell unterscheidet sich MongoDB grundlegend von althergebrachten Datenbanken. Sie ist mit ihrer Funktionalität in der Lage, mehrere Server zum Speichern von Daten zu koordinieren.
Das macht MongoDB zu einer verteilten Datenbank und ermöglicht es, die Funktionen Fehlertoleranz, Skalierbarkeit sowie Datenverfügbarkeit bereitzustellen. Die trägt dazu bei, Risiken und Arbeitsaufwand einzusparen, da die Entwickler diese Funktionen sonst selbst erstellen müssten.
- Fehlertoleranz
Um Fehlertoleranz bei der Arbeit zu gewährleisten, werden redundante Kopien derselben Daten auf verschiedenen Servern aufbewahrt. Ein Ausfall eines einzelnen Servers wirkt sich nicht auf die Anwendung aus. - Skalierbarkeit
MongoDB lässt sich nahtlos auf mehrere Server skalieren, um Daten zu speichern und zu verarbeiten. Das Datenvolumen und die Leistungsanforderungen steigen also. Sie können einfach weitere Server hinzufügen, anstatt teure Mainframes zu aktualisieren. Dies ist auch ideal für Cloud-Umgebungen, in denen die Last auf viele Computer verteilt wird. - Datenverfügbarkeit
Daten sind lokal in der Nähe von Benutzern auf der ganzen Welt verfügbar, um einen schnellen Zugriff zu gewährleisten.
Die Kombination des MongoDB-Dokumentmodells und den verteilten Systemkomponenten verschafft der NoSQL-Datenbank einen Vorteil gegenüber relationalen Datenbanken.
Darüber hinaus bietet das Unternehmen “Mongo” auch Management-Tools an, mit denen die Betreiber der Datenbank Konfiguration, Monitoring, Sicherung, Wiederherstellung und Aktualisierung von MongoDB-Clustern überwachen können. Dies ist entscheidend, damit die Datenbank für anspruchsvollste Anwendungsfälle und für Organisationen mit strengen SLA- (Service Level Agreement) und Betriebsanforderungen geeignet ist.
2. MongoDB in der Cloud und als Service
MongoDB wurde für die Cloud entwickelt, ist dort auch seit einiger Zeit weit verbreitet.
Immer mehr Nutzer sind zusätzlich daran interessiert, ihre Anwendungen mit Komponenten zu erstellen, die als „Service“ angeboten werden. Um diesen Bedarf zu decken, ist „MongoDB Atlas“ als Serviceangebot veröffentlicht worden. Atlas ermöglicht den Anwendern, MongoDB als Service zu nutzen, ohne sich um die Verwaltung der Datenbank kümmern zu müssen. MongoDB Atlas ist auf den führenden Cloud-Plattformen AWS (amazon web services), Microsoft Azure und der Google Cloud-Plattform verfügbar. Das bietet die Flexibilität, einen öffentlichen Cloud-Anbieter ohne Lieferantenbindung auszuwählen, ohne dass Code neu geschrieben werden muss. Diese Innovationen treiben immer mehr Unternehmen dazu, die MongoDB Plattform einzubinden.
3. Wie installiere ich MongoDB?
Die Installation von MongoDB wird regelmäßig aktualisiert und variiert je nach Betriebssystem. Aus diesem Grund verweisen wir Sie direkt zur offiziellen MongoDB-Dokumentation, wo Sie stets die aktuellsten Installationsanleitungen finden.
Besuchen Sie die Getting Started Seite der MongoDB Community Edition, um den passenden Download und die passende Anleitung für Ihr System auszuwählen. Dort finden Sie detaillierte Schritt-für-Schritt-Anleitungen für Windows, macOS, Linux und weitere Plattformen.
Die offizielle Dokumentation gewährleistet, dass Sie immer mit den neuesten Installationsmethoden und Download-Links arbeiten.
Wie Sie mit der MongoDB Ihre Digitalisierungsstrategie umsetzen – wir beraten Sie gerne!
4. Fazit
Die NoSQL-Datenbank MongoDB ist als Open-Source-Projekt community-betrieben entwickelt worden. Mittlerweile wird sie auch im Industrieumfeld umfassend eingesetzt.
Hier wird aber weitestgehend das ebenfalls existierende Bezahl-Modell von MongoDB eingesetzt, da geschäftskritische Anwendungen selten auf eine vollständig verwaltete Ausfallsicherung und komplexe Wiederherstellungsoptionen verzichten können. Aber die kostenlos auf www.mongodb.com verfügbare Community-Server-Version eignet sich hervorragend, um mit dieser Datenbank in die NoSQL-Welt einzusteigen.
Weitere Informationen
Lesen Sie hier, wie der OPC Router mit dem MongoDB Plug-in auf die Daten der NoSQL-Datenbank lesend und schreibend zugreifen kann und den Umgang mit der Replikation unterstützt.
Auf genau diese spezielle Funktionsweise weisen wir in einem Beitrag unserer Knowledge Base „Technik“ hin und liefern auch eine Anleitung, um einen Telegram Bot selbst zu erstellen.
Mit OPC UA wird der Zugriff auf Geräte, Maschinen und andere Systeme in der Industrie 4.0 standardisiert und ermöglicht so einen herstellerunabhängigen Datenaustausch. Einen Überblick über Begriffe und Funktionalität des wichtigsten Kommunikationsprotokolls für die Industrie 4.0 und das IoT finden Sie in unserer Knowledge Base.
Weitere interessante Artikel zu den Themen Industrie 4.0, Cloud, Technik, Alarmierung und praktische Anwendungsbeispiele sowie Case Studies finden Sie in unserer Knowledge Base.

