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“.

Was ist MogoDB

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.

Datenbanknutzung im industriellen Umfeld mit MongoDB

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.

MongoDB: Daten in einer relationalen Datenbank



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:

  1. Komplexität
    Für Benutzer, die die Anwendung warten, ist es schwierig, die komplex und vielschichtig angelegten Strukturen zu verstehen.
  2. 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.
  3. 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.




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 Daten werden in sogenannten Documents gespeichert

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.

MongoDB fasst mehrere Documents in Collections zusammen



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.

  1. 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.
  2. 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.
  3. 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 auf Windows 10?

In diesem Tutorial werden wir die Installation und Grundkonfiguration von MongoDB behandeln, damit auch ein Anfänger ohne Hintergrundwissen mit dieser Schritt-für-Schritt-Anleitung die Datenbank unter Windows 10 installieren kann.

3.1 Download

Öffnen Sie bitte ihren Internetbrowser und rufen die Seite „www.mongodb.com“ auf.

Oben rechts befindet sich ein grüner „Try Free„-Button, den Sie anklicken.

Auf der nachfolgenden Seite wählen Sie „On-premises“ aus und danach „MongoDB Community Server„.

Im rechten Bildschirmbereich wird nun die aktuelle Datenbankversion angezeigt und Sie können mit den vor-eingestellten Werten auf den grünen Download-Button klicken.

3.2 Entpacken und Grundinstallation

Öffnen Sie die heruntergeladene Datei mit einem Doppelklick. Nach einem kurzen Systemcheck können Sie die Installation mit einem Klick auf „Next“ beginnen.

Im folgenden Fenster setzen Sie bitte per Klick einen Haken um die Lizenzvereinbarung zu akzeptieren und klicken dann erneut auf „Next„.

Der einfachste Weg ist nun alle Programm-Features zu installieren: Hier auf das vorausgewählte Feld „Complete“ klicken.

Die nachfolgenden Infos der „Service Configuration“ übernehmen wir und klicken wieder auf „Next >“.

Auch die Zusatzinstallation von MongoDB Compass (eine nützliche grafische Benutzeroberfläche) können wir ausgewählt lassen und klicken wieder auf „Next„.

Mit einem finalen Klick auf „Install“ wird die Installation nun durchgeführt. Sollten noch weitere Fenster Ihres Windows auftauchen, die Sie nach einem „Zulassen von Änderungen“ fragen, bestätigen Sie bitte mit „Ja„.

Nach einer kurzen Zeitspanne können Sie mit Klick auf „Finish“ die Installation abschließen. Es könnte sein, dass MongoDB Compass automatisch startet. Klicken Sie ggfs. auftauchende Info-Fenster durch und beenden Sie MongoDB Compass, da wir hier nicht weiter auf Compass eingehen und uns in diesem Tutorial nur um die Datenbank-Grundinstallationen kümmern wollen.

3.3 Benutzerfreundlichkeit

Um MongoDB benutzerfreundlich nutzen zu können, sind jetzt vor dem ersten Start nur einige kleine Anpassungen in Windows nötig.

Öffnen Sie unter Windows den Dateimanager “Explorer”. Klicken Sie auf “Dieser PC” und doppelklicken Sie dann ihr “Laufwerk C:”, dann doppelklicken Sie auf “Programme”, dann auf “MongoDB”, dann auf “Server”, dann auf die erscheinende Versionsnummer und abschließend auf “bin”. Hier benötigen wir jetzt diesen Dateipfad. Über der Dateianzeige wird jetzt im Fenster so etwas wie z.B. “> Dieser PC > Windows (C) > Programme > MongoDB > Server > 4.4 > bin” angezeigt. Klicken Sie mit der rechten Maustaste hier auf “bin” und wählen Sie “Adresse kopieren” um den Dateipfad in die Zwischenablage zu kopieren.

Nun tippen Sie im Suchfeld der Windows-Fußleiste “var” ein und der Vorschlag “Systemumgebungsvariablen bearbeiten” aus der Systemsteuerung sollte erscheinen. Diesen wählen Sie mit einem Mausklick aus. In den nun erscheinenden Systemeigenschaften unter dem Reiter “Erweitert” klicken Sie unten den Button “Umgebungsvariablen” an. Im unteren Abschnitt “Systemvariablen” doppelklicken Sie nun Path. Ein Fenster “Umgebungsvariable bearbeiten” erscheint. Hier klicken Sie auf “Neu” und kopieren mit STRG-V aus der Zwischenablage den Pfad der MongoDB-Installation ein. Nun die offenen Fenster drei Mal mit “OK” bestätigen und schließen. Nun sind unsere MongoDB-Aufrufe und -Befehle aus allen Verzeichnissen komfortabel erreichbar.

Als letzten Punkt müssen wir noch das Standard-Datenbank-Verzeichnis für MongoDB erstellen. Wieder gehen wir auf das Suchfeld in der Windows-Fußleiste um dort die Eingabeaufforderung mit “cmd” erneut zu öffnen. In der Eingabeaufforderung erstellen wir jetzt mit “md c:datadb” das bei MongoDB vor-eingestellte Verzeichnis. Wenn keine Fehlermeldung erscheint, haben wir die Installation abgeschlossen und können in der Eingabeaufforderung nachfolgend die installierte Datenbank starten und testen.

3.4 Start und Test von MongoDB

Nun starten wir mit dem Befehl “mongo” die Datenbank. Mit dem Befehl “show dbs” sollten uns jetzt die drei vor-eingestellten Datenbanken admin, config und local angezeigt werden. Um die Funktionalität zu überprüfen können wir jetzt mit dem Befehl “use NeueDB” eine eigene Datenbank mit dem Namen “NeueDB” erstellen.

Hier fügen wir jetzt einen ersten Datensatz ein: Der Befehl “db.items.insert ({name: “name”})” erstellt einen ersten Dateneintrag. Mit dem Befehl “db.items.find()” können wir kontrollieren, ob der Datensatz mit ObjectID nun verfügbar ist. Mit dem erneut ausgeführten Befehl “show dbs” sollte uns MongoDB nun neben den drei Standard-Datenbanken auch unsere eben angelegte “NeueDB” anzeigen.




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

MongoDB
Ein wichtiges Merkmal von MongoDB ist die Hochverfügbarkeit der Daten durch einfache Replikation auf mehrere Server.
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.
Telegram Bot
Ein Telegram Bot ist eine gute Möglichkeit, Informationen aus fast allen denkbaren Bereichen zu liefern, wann immer man sie benötigt.
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.
OPC UA
OPC UA – Was ist das eigentlich?
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.

Datenanbindung MongoDB über OPC Router Plug-in

Mit unserem MongoDB Plug-in können Sie den OPC Router mit einer MongoDB Datenbank verbinden.