Was ist MongoDB? Einführung, Architektur, Funktionen & Beispiel

Inhaltsverzeichnis:

Anonim

Was ist MongoDB?

MongoDB ist eine dokumentenorientierte NoSQL-Datenbank, die für die Speicherung großer Datenmengen verwendet wird. Anstatt Tabellen und Zeilen wie in den herkömmlichen relationalen Datenbanken zu verwenden, verwendet MongoDB Sammlungen und Dokumente. Dokumente bestehen aus Schlüssel-Wert-Paaren, die die grundlegende Dateneinheit in MongoDB darstellen. Sammlungen enthalten Sätze von Dokumenten und Funktionen, die relationalen Datenbanktabellen entsprechen. MongoDB ist eine Datenbank, die Mitte der 2000er Jahre ans Licht kam.

In diesem Tutorial lernen Sie:

  • MongoDB-Funktionen
  • MongoDB Beispiel
  • Schlüsselkomponenten der MongoDB-Architektur
  • Warum MongoDB verwenden?
  • Datenmodellierung in MongoDB
  • Unterschied zwischen MongoDB & RDBMS

MongoDB-Funktionen

    1. Jede Datenbank enthält Sammlungen, die wiederum Dokumente enthalten. Jedes Dokument kann mit einer unterschiedlichen Anzahl von Feldern unterschiedlich sein. Die Größe und der Inhalt jedes Dokuments können sich voneinander unterscheiden.
    2. Die Dokumentstruktur entspricht eher der Art und Weise, wie Entwickler ihre Klassen und Objekte in ihren jeweiligen Programmiersprachen erstellen. Entwickler werden oft sagen, dass ihre Klassen keine Zeilen und Spalten sind, sondern eine klare Struktur mit Schlüssel-Wert-Paaren haben.
    3. Für die Zeilen (oder Dokumente, wie sie in MongoDB aufgerufen werden) muss zuvor kein Schema definiert werden. Stattdessen können die Felder im laufenden Betrieb erstellt werden.
    4. Mit dem in MongoDB verfügbaren Datenmodell können Sie hierarchische Beziehungen darstellen, Arrays und andere komplexere Strukturen einfacher speichern.
  1. Skalierbarkeit - Die MongoDB-Umgebungen sind sehr skalierbar. Unternehmen auf der ganzen Welt haben Cluster definiert, von denen einige mehr als 100 Knoten mit rund Millionen von Dokumenten in der Datenbank ausführen

MongoDB Beispiel

Das folgende Beispiel zeigt, wie ein Dokument in MongoDB modelliert werden kann.

  1. Das Feld _id wird von MongoDB hinzugefügt, um das Dokument in der Sammlung eindeutig zu identifizieren.
  2. Sie können feststellen, dass die Bestelldaten (Bestell-ID, Produkt und Menge), die in RDBMS normalerweise in einer separaten Tabelle gespeichert werden, während sie in MongoDB tatsächlich als eingebettetes Dokument in der Sammlung selbst gespeichert sind. Dies ist einer der Hauptunterschiede bei der Modellierung von Daten in MongoDB.

Schlüsselkomponenten der MongoDB-Architektur

Im Folgenden finden Sie einige der in MongoDB gebräuchlichen Begriffe

  1. _id - Dies ist ein Feld, das in jedem MongoDB-Dokument erforderlich ist. Das Feld _id repräsentiert einen eindeutigen Wert im MongoDB-Dokument. Das Feld _id entspricht dem Primärschlüssel des Dokuments. Wenn Sie ein neues Dokument ohne ein _id-Feld erstellen, erstellt MongoDB das Feld automatisch. Wenn wir beispielsweise das Beispiel der obigen Kundentabelle sehen, fügt Mongo DB jedem Dokument in der Sammlung eine 24-stellige eindeutige Kennung hinzu.
_Ich würde Kundennummer Kundenname Auftragsnummer
563479cc8a8a4246bd27d784 11 Guru99 111
563479cc7a8a4246bd47d784 22 Trevor Smith 222
563479cc9a8a4246bd57d784 33 Nicole 333
  1. Sammlung - Dies ist eine Gruppierung von MongoDB-Dokumenten. Eine Sammlung entspricht einer Tabelle, die in einem anderen RDMS wie Oracle oder MS SQL erstellt wird. Eine Sammlung existiert in einer einzelnen Datenbank. Wie aus der Einführung hervorgeht, erzwingen Sammlungen keinerlei Struktur.
  2. Cursor - Dies ist ein Zeiger auf die Ergebnismenge einer Abfrage. Clients können einen Cursor durchlaufen, um Ergebnisse abzurufen.
  3. Datenbank - Dies ist ein Container für Sammlungen wie in RDMS, wobei es sich um einen Container für Tabellen handelt. Jede Datenbank erhält ihre eigenen Dateien im Dateisystem. Ein MongoDB-Server kann mehrere Datenbanken speichern.
  4. Dokument - Ein Datensatz in einer MongoDB-Sammlung wird grundsätzlich als Dokument bezeichnet. Das Dokument besteht wiederum aus Feldnamen und Werten.
  5. Feld - Ein Name-Wert-Paar in einem Dokument. Ein Dokument enthält null oder mehr Felder. Felder sind analog zu Spalten in relationalen Datenbanken.

    Das folgende Diagramm zeigt ein Beispiel für Felder mit Schlüsselwertpaaren. Im folgenden Beispiel ist CustomerID und 11 eines der im Dokument definierten Schlüsselwertpaare.

  1. JSON - Dies wird als JavaScript-Objektnotation bezeichnet. Dies ist ein für Menschen lesbares Klartextformat zum Ausdrücken strukturierter Daten. JSON wird derzeit in vielen Programmiersprachen unterstützt.

Nur eine kurze Anmerkung zum Hauptunterschied zwischen dem Feld _id und einem normalen Erfassungsfeld. Das Feld _id wird verwendet, um die Dokumente in einer Sammlung eindeutig zu identifizieren, und wird von MongoDB automatisch hinzugefügt, wenn die Sammlung erstellt wird.

Warum MongoDB verwenden?

Im Folgenden sind einige der Gründe aufgeführt, warum man MongoDB verwenden sollte

  1. Dokumentorientiert - Da MongoDB eine NoSQL-Datenbank ist und keine Daten in einem relationalen Format vorliegen, werden die Daten in Dokumenten gespeichert. Dies macht MongoDB sehr flexibel und anpassungsfähig an die Situation und die Anforderungen der realen Geschäftswelt.
  2. Ad-hoc-Abfragen - MongoDB unterstützt die Suche nach Feldern, Bereichsabfragen und Suchen nach regulären Ausdrücken. Es können Abfragen durchgeführt werden, um bestimmte Felder in Dokumenten zurückzugeben.
  3. Indizierung - Indizes können erstellt werden, um die Leistung von Suchvorgängen in MongoDB zu verbessern. Jedes Feld in einem MongoDB-Dokument kann indiziert werden.
  4. Replikation - MongoDB kann mit Replikatsätzen eine hohe Verfügbarkeit bieten. Ein Replikatsatz besteht aus zwei oder mehr Mongo-DB-Instanzen. Jedes Replikatsatzmitglied kann jederzeit die Rolle des primären oder sekundären Replikats übernehmen. Das primäre Replikat ist der Hauptserver, der mit dem Client interagiert und alle Lese- / Schreibvorgänge ausführt. Die sekundären Replikate verwalten eine Kopie der Daten des primären Replikats mithilfe der integrierten Replikation. Wenn ein primäres Replikat ausfällt, wechselt das Replikatset automatisch zum sekundären und wird dann zum primären Server.
  5. Lastausgleich - MongoDB verwendet das Konzept des Sharding, um horizontal zu skalieren, indem Daten auf mehrere MongoDB-Instanzen aufgeteilt werden. MongoDB kann über mehrere Server ausgeführt werden, wobei die Last ausgeglichen und / oder Daten dupliziert werden, um das System im Falle eines Hardwarefehlers betriebsbereit zu halten.

Datenmodellierung in MongoDB

Wie wir im Abschnitt Einführung gesehen haben, haben die Daten in MongoDB ein flexibles Schema. Anders als in SQL-Datenbanken, in denen das Schema einer Tabelle vor dem Einfügen von Daten deklariert werden muss, erzwingen die Sammlungen von MongoDB keine Dokumentstruktur. Diese Flexibilität macht MongoDB so leistungsfähig.

Beachten Sie beim Modellieren von Daten in Mongo die folgenden Punkte

  1. Was sind die Anforderungen der Anwendung? Sehen Sie sich die Geschäftsanforderungen der Anwendung an und sehen Sie, welche Daten und welche Art von Daten für die Anwendung benötigt werden. Stellen Sie auf dieser Grundlage sicher, dass die Struktur des Dokuments entsprechend festgelegt wird.
  2. Was sind Datenabrufmuster? Wenn Sie eine starke Verwendung von Abfragen vorhersehen, sollten Sie die Verwendung von Indizes in Ihrem Datenmodell in Betracht ziehen, um die Effizienz von Abfragen zu verbessern.
  3. Werden in der Datenbank häufig Einfügungen, Aktualisierungen und Entfernungen vorgenommen? Überdenken Sie die Verwendung von Indizes oder integrieren Sie bei Bedarf Sharding in Ihr Datenmodellierungsdesign, um die Effizienz Ihrer gesamten MongoDB-Umgebung zu verbessern.

Unterschied zwischen MongoDB & RDBMS

Im Folgenden sind einige der wichtigsten Unterschiede zwischen MongoDB und RDBMS aufgeführt

RDBMS MongoDB Unterschied
Tabelle Sammlung In RDBMS enthält die Tabelle die Spalten und Zeilen, in denen die Daten gespeichert werden, während in MongoDB dieselbe Struktur als Auflistung bezeichnet wird. Die Sammlung enthält Dokumente, die wiederum Felder enthalten, die wiederum Schlüssel-Wert-Paare sind.
Reihe Dokument In RDBMS repräsentiert die Zeile ein einzelnes implizit strukturiertes Datenelement in einer Tabelle. In MongoDB werden die Daten in Dokumenten gespeichert.
Säule Feld In RDBMS bezeichnet die Spalte einen Satz von Datenwerten. Diese in MongoDB werden als Felder bezeichnet.
Tritt bei Eingebettete Dokumente In RDBMS werden Daten manchmal auf verschiedene Tabellen verteilt. Um eine vollständige Ansicht aller Daten anzuzeigen, wird manchmal ein Join über Tabellen hinweg gebildet, um die Daten abzurufen. In MongoDB werden die Daten normalerweise in einer einzelnen Sammlung gespeichert, jedoch mithilfe eingebetteter Dokumente getrennt. Es gibt also kein Konzept für Joins in MongoDB.

Abgesehen von den Begriffen Unterschiede sind nachfolgend einige andere Unterschiede aufgeführt

  1. Relationale Datenbanken sind dafür bekannt, die Datenintegrität zu erzwingen. Dies ist in MongoDB keine explizite Anforderung.
  2. RDBMS erfordert, dass Daten zuerst normalisiert werden, um verwaiste Datensätze und Duplikate zu verhindern. Für die Normalisierung von Daten sind dann mehr Tabellen erforderlich, was dann zu mehr Tabellenverknüpfungen führt und somit mehr Schlüssel und Indizes erfordert.

    Wenn die Datenbanken wachsen, kann die Leistung zu einem Problem werden. Auch dies ist in MongoDB keine explizite Anforderung. MongoDB ist flexibel und benötigt nicht, dass die Daten zuerst normalisiert werden.