MongoDB verstehen: Vorteile einer dokumentenorientierten NoSQL-Datenbank

Traditionelle Datenbanken vs. NoSQL-Datenbanken

Das Ende des relationalen Modells

Traditionell organisieren Datenbankverwaltungssysteme Daten basierend auf dem relationalen Modell. Da sich die Datenanforderungen von Organisationen jedoch geändert haben, wurden eine Vielzahl neuer Arten von Datenbanken entwickelt. Diese neuen Arten von Datenbanken verlassen sich oft nicht auf die traditionelle Tabellenstruktur, die von relationalen Datenbanken bereitgestellt wird, und ermöglichen daher wesentlich mehr Flexibilität als die starre Struktur, die von relationalen Datenbanken vorgegeben wird. Außerdem verwenden sie in der Regel keine strukturierte Abfragesprache (SQL), die von den meisten relationalen Datenbanksystemen verwendet wird, um Benutzern die Definition und Interaktion mit Daten zu ermöglichen. Dies hat dazu geführt, dass viele dieser neuen nicht-relationalen Datenbanken im Allgemeinen als NoSQL-Datenbanken bezeichnet werden.

MongoDB: Eine Einführung

MongoDB im Überblick

MongoDB, erstmals 2009 veröffentlicht, ist eine dokumentenorientierte NoSQL-Datenbank, die in vielen modernen Webanwendungen verwendet wird. Dieser konzeptionelle Artikel bietet einen Überblick über die Merkmale, die MongoDB von anderen Datenbankverwaltungssystemen unterscheiden und es zu einem wertvollen Werkzeug für viele verschiedene Anwendungsfälle machen.

Übersicht über MongoDB

MongoDB im Detail

MongoDB wird als NoSQL-Datenbank betrachtet, da sie nicht auf dem relationalen Modell basiert. Jedes Datenbankverwaltungssystem ist um ein bestimmtes Datenmodell konzipiert, das festlegt, wie die Daten in der Datenbank organisiert werden. Das relationale Modell umfasst die Speicherung von Daten in Tabellen, die formell als Relationen bezeichnet werden, die aus Zeilen und Spalten bestehen.

MongoDB hingegen speichert seine Daten in Strukturen, die als Dokumente bezeichnet werden. MongoDB ermöglicht es, mehrere Dokumente in einer Struktur zu gruppieren, die als Sammlung bezeichnet wird, und diese können in separaten Datenbanken weiter gruppiert werden.

Struktur von MongoDB-Dokumenten

Ein Dokument ist in BSON geschrieben, einer binären Darstellung von JSON. Wie Objekte in JSON beginnen und enden MongoDB-Dokumente mit geschweiften Klammern ({ und }), und enthalten eine Reihe von Feld-Wert-Paaren, die in der Regel in der Form Feld: Wert vorliegen. Der Wert eines Feldes kann einer der in BSON verwendeten Datentypen sein, oder sogar andere Strukturen wie Dokumente und Arrays.

Sicherheit in MongoDB

Sicherheit und Datenverlustprävention

MongoDB ist mit einer Reihe von Funktionen ausgestattet, die dazu beitragen können, Datenverlust zu verhindern und den Zugriff durch unbefugte Benutzer zu verhindern. Einige dieser Funktionen finden sich auch in anderen Datenbankverwaltungssystemen. Zum Beispiel ermöglicht MongoDB, wie viele moderne DBMS, die Verschlüsselung von Daten während der Übertragung über ein Netzwerk – oft als Daten im Transit bezeichnet. Dies geschieht, indem Verbindungen zur Datenbank mit Transport Layer Security (TLS) hergestellt werden, einem kryptografischen Protokoll, das als Nachfolger von Secure Sockets Layer (SSL) dient.

Rollenbasierte Zugriffskontrolle (RBAC)

Ebenso wie bei anderen DBMS verwaltet MongoDB die Autorisierung – die Festlegung von Regeln für einen bestimmten Benutzer oder eine Gruppe von Benutzern, um festzulegen, welche Aktionen sie ausführen können und auf welche Ressourcen sie zugreifen können – durch ein Computer-Sicherheitskonzept, das als rollenbasierte Zugriffskontrolle oder RBAC bekannt ist. Wenn Sie einen MongoDB-Benutzer erstellen, haben Sie die Möglichkeit, ihm eine oder mehrere Rollen zuzuweisen.

Clientseitige Feldverschlüsselung

Seit der Veröffentlichung von Version 4.2 unterstützt MongoDB die clientseitige Feldverschlüsselung. Dabei werden bestimmte Felder in einem Dokument vor dem Schreiben in die Datenbank verschlüsselt. Jeder Client oder jede Anwendung, die später versucht, die Daten in diesen Feldern zu lesen, muss zuerst die richtigen Verschlüsselungsschlüssel vorlegen, um die Daten in diesen Feldern entschlüsseln zu können.

Flexibilität in MongoDB

Einblick in die Flexibilität

Ein weiteres Merkmal von MongoDB, das zu seiner Verbreitung beigetragen hat, ist die Flexibilität, die es im Vergleich zu traditionelleren Datenbankverwaltungssystemen bietet. Diese Flexibilität basiert auf dem dokumentenbasierten Design von MongoDB, da Sammlungen in Mongo keine bestimmte Struktur erzwingen, der jedes Dokument in ihnen folgen muss. Dies steht im Gegensatz zur starren Struktur, die von Tabellen in einer relationalen Datenbank vorgegeben wird.

Beispiele für unstrukturierte Daten

Beispiele für unstrukturierte Daten sind Medieninhalte wie Videos oder Fotos, Kommunikationsdaten oder Textdateien. Manchmal werden unstrukturierte Daten als qualitative Daten bezeichnet. Mit anderen Worten, Daten, die für Menschen lesbar sind, aber für Computer schwer ausreichend zu analysieren sind. Das vielseitige, dokumentenorientierte Design von MongoDB macht es jedoch zu einer ausgezeichneten Wahl für die Speicherung und Analyse von unstrukturierten Daten sowie strukturierten und teilstrukturierten Daten.

Hohe Verfügbarkeit in MongoDB

Replikation für hohe Verfügbarkeit

Jedes datenbankbasierte Computersystem ist auf seine zugrunde liegende Hardware angewiesen, um zu funktionieren und die Anforderungen einer Anwendung oder eines Clients zu erfüllen. Wenn die Maschine, auf der es ausgeführt wird, aus irgendeinem Grund ausfällt, sind die in der Datenbank gespeicherten Daten solange nicht verfügbar, bis die Maschine wieder einsatzbereit ist.

Replikatensätze in MongoDB

In MongoDB wird eine Gruppe von Servern, die dieselbe Datenmenge durch Replikation aufrechterhalten, als Replikatensatz bezeichnet. Jede laufende Instanz von MongoDB, die zu einem bestimmten Replikatensatz gehört, wird als eines seiner Mitglieder bezeichnet. Jeder Replikatensatz muss mindestens ein primäres Mitglied und mindestens ein sekundäres Mitglied haben.

Automatischer Failover

Ein Vorteil von MongoDBs Replikatensätzen gegenüber anderen Replikationen in anderen Datenbank-Systemen ist der automatische Failover-Mechanismus von Mongo. Wenn das primäre Mitglied nicht verfügbar wird, erfolgt ein automatisierter Wahlprozess unter den sekundären Knoten, um ein neues Primärmitglied auszuwählen.

Skalierbarkeit in MongoDB

Vertikales und horizontales Skalieren

Skalierbarkeit bezieht sich auf die Fähigkeit eines Computersystems, eine ständig wachsende Arbeitslast zu bewältigen, und die Praxis, diese Kapazität zu erhöhen, wird als Skalierung bezeichnet. Es gibt zwei Möglichkeiten, ein Computersystem zu skalieren: vertikales Skalieren – auch als Aufrüsten bezeichnet – beinhaltet das Hinzufügen von mehr Rechenressourcen zu einem bestimmten System, normalerweise durch Erhöhung seiner Speicherkapazität oder des Arbeitsspeichers. Horizontales Skalieren – auch als Erweitern bezeichnet – beinhaltet das Aufteilen der Arbeitslast auf mehrere Rechenknoten, die zusammen ein einheitliches logisches System bilden.

Sharding in MongoDB

Das Sharding ist eine Strategie, die einige Administratoren für das Skalieren einer Datenbank verwenden. MongoDB enthält eine integrierte Sharding-Funktion, die es Ihnen ermöglicht, Daten auf der Sammlungsebene zu sharden. Datenbankverwaltungssysteme enthalten nicht immer Sharding-Funktionen als integriertes Merkmal, daher wird Sharding oft auf Anwendungsebene implementiert.

Die richtige Wahl für Ihre Anwendung?

Abwägung der Optionen

Bei der Entscheidung, ob Sie MongoDB in Ihrer nächsten Anwendung verwenden sollten, sollten Sie sich zuerst fragen, welche spezifischen Datenanforderungen die Anwendung hat. Wenn Ihre Anwendung Daten speichert, die sich starr an eine vordefinierte Struktur halten, erhalten Sie möglicherweise keinen zusätzlichen Wert aus dem schemafreien Design von Mongo, und es ist möglicherweise besser, eine relationale Datenbank zu verwenden.

Anwendungsfälle für MongoDB

Dann sollten Sie darüber nachdenken, wie viele Daten Sie erwarten, dass Ihre Anwendung speichern und verwenden muss. Das dokumentenorientierte Design von MongoDB macht es zu einer großartigen Wahl für Anwendungen, die große Mengen an unstrukturierten Daten speichern müssen. Ebenso machen die Skalierbarkeit und hohe Verfügbarkeit von MongoDB es zu einer perfekten Lösung für Anwendungen, die eine große und ständig wachsende Anzahl von Clients bedienen.

Fazit

Abschließende Gedanken

Durch das Lesen dieses Artikels verstehen Sie die Funktionen, die MongoDB von anderen Datenbankverwaltungssystemen unterscheiden. Obwohl MongoDB ein leistungsfähiges, flexibles und sicheres Datenbankverwaltungssystem ist, das in bestimmten Anwendungsfällen die richtige Wahl sein kann, ist es möglicherweise nicht immer die beste Wahl. Das rasche Wachstum von Mongo hebt jedoch seinen Wert als ein Werkzeug hervor, das es wert ist, verstanden zu werden.

Kostenlosen Account erstellen

Registrieren Sie sich jetzt und erhalten Sie Zugang zu unseren Cloud Produkten.

Das könnte Sie auch interessieren: