Bei der Datenmodellierung wird eine visuelle Darstellung einer gesamten Softwareanwendung oder von Komponenten davon entwickelt, um die Verbindungen zwischen Datenpunkten und Struktur zu kommunizieren. Es beinhaltet eine sorgfältige Überprüfung der Anwendungs- und Datenbankanforderungen sowie die Verbindung zwischen beiden in Bezug auf Kerndatenoperationen - Lesen, Schreiben und Aktualisieren.

Ein stabiles Datenmodell wird erstellt, indem das Verwendungsmuster der Anwendung bewertet und das Datenbankschema daran ausgerichtet wird. Daher formt das Schemadesign Ihr Datenmodell. Wenn es um eine relationale Datenbank geht, können Sie Ihre Tabellen nicht füllen, ohne das Tabellenschema zu erstellen.

Wichtige Begriffe zu wissen

Bevor Sie fortfahren, sind hier einige grundlegende Definitionen, die Sie kennen müssen:

  • Sammlung - Eine Sammlung ist der Satz von Dokumenten in MongoDB. Dies entspricht einer Tabelle in einem RDBMS.
  • Dokument - Ein Dokument ist eine Struktur, die aus Datei- und Wertepaaren besteht. Dies entspricht einer Zeile in RDBMS.
  • Datenbankschema - Das Schemadesign ist eine logische und visuelle Architektur einer Datenbank, die für ein Datenbankverwaltungssystem (DBMS) entwickelt wurde.

Wie unterscheidet sich die Datenmodellierung in MongoDB?

Dank der Flexibilität von NoSQL müssen Sie vor dem Einfügen von Daten kein Schema erstellen. Dies liegt daran, dass MongoDB eine dynamische Form des Datenbankschemas unterstützt. Dadurch müssen Sie Ihr Schema nicht mehr im Voraus entwerfen. Stattdessen können Sie jetzt Ihre Daten speichern und Anpassungen entsprechend Ihrer Sammlung vornehmen.

Sie können verschiedene Datentypen in dem angegebenen Feld einer Sammlung speichern und sogar neue Felder hinzufügen, Feldwerte aktualisieren und vorhandene Felder löschen. Sie werden den wahren Vorteil dieser Flexibilität feststellen, wenn Sie Dokumente einem Objekt oder einer Entität zuordnen.

Im Allgemeinen folgen eine Sammlung und ihr Dokument einer ähnlichen Struktur. Sie können Validierungsregeln für die Dokumente Ihrer Sammlung auch mithilfe der Schemaüberprüfung "erzwingen".

Verbunden: Datenbank-Engines, die Sie für Ihr nächstes Projekt berücksichtigen sollten

Überprüfen Sie beim Erstellen eines Datenmodells, wie Ihre Anwendung mit der Datenbank interagiert. Wenn beispielsweise Dokumente verarbeitet werden sollen, die kürzlich eingefügt wurden, empfiehlt es sich, begrenzte Sammlungen zu verwenden - Sammlungen mit einer festen Größe, die Operationen mit hohem Durchsatz unterstützen.

Wenn Ihre Anwendung die meiste Zeit mit Lesevorgängen arbeiten soll, können Sie Indizes festlegen, um allgemeine Abfragen zu unterstützen und die Leistung zu verbessern.

Traditionell ist eine der Überlegungen beim Erstellen eines Datenmodells das Speichern verwandter Daten. Relationale Datenbanken verwenden Tabellen zum Speichern von Daten, wobei Primär- und Fremdschlüssel zum Festlegen von Datenbeziehungen verwendet werden.

In ähnlicher Weise werden Joins verwendet, um auf Vorgänge über mehrere Tabellen zuzugreifen und diese auszuführen. Als jemand, der von einem relationalen DBMS wie SQL Server zu MongoDB gewechselt ist, werden Sie in MongoDB keine Joins finden. Dies liegt daran, dass MongoDB Sammlungsdaten speichert, indem entweder auf die Daten verwiesen oder die Daten in eine Sammlung eingebettet werden.

Wenn Ihr Datenmodell zehn Tabellen in einer relationalen Datenbank enthält, können Sie diese mit MongoDB möglicherweise in einer einzigen Sammlung konsolidieren.

Arten von Datenmodellen

Nachdem Sie nun wissen, wie die Datenmodellierung in MongoDB funktioniert, gehen wir die von MongoDB unterstützten Arten von Datenmodellen durch. Normalerweise hängt dies von der Struktur Ihres Dokuments und den Datenbeziehungen Ihrer Anwendung ab.

Eingebettete Datenmodelle

Sie können Daten in ein einzelnes Dokument oder eine einzelne Struktur in MongoDB einbetten. Es wird auch als de-normalisierte Datenmodelle bezeichnet und nutzt das volle Potenzial der umfangreichen Dokumente von MongoDB. Betrachten Sie zum Beispiel das folgende Beispiel: Wir haben eine Sammlung, Studenten, ein Dokument enthalten Matt. In dieses Dokument haben wir zwei Dokumente eingebettet: Kontaktdetails und Klasse.

{
"_id": "4aad66a4c13bb24f12gh199e",
Name: "Matt",
Kontaktdetails: {
Telefon: "555-555-1234"
E-Mail-Adresse: "[email protected]"
},
Klasse: {
Betreff: "CS101"
Punktzahl: "B"
}}

Durch das Einbetten werden relevante Details in demselben Dokument oder Datenbankdatensatz gespeichert. Auf diese Weise können Sie Abfragen und Aktualisierungen minimieren, die zum Ausführen allgemeiner DB-Vorgänge erforderlich sind.

Wann sollten Sie eingebettete Datenmodelle verwenden? Sie sind nützlich, um die Leistung von Lesevorgängen zu verbessern. Darüber hinaus sind sie für die Verarbeitung des Datenabrufs eines einzelnen Datensatzes wirksam. Mit diesem Modell können Sie einen einzelnen Schreibvorgang verwenden, um verwandte Daten zu aktualisieren.

Beachten Sie jedoch Folgendes: Durch das Einbetten wird die Dokumentgröße nach der Erstellung erhöht. In einigen Fällen kann dies die Schreibleistung beeinträchtigen, und aufgrund der wachsenden Dokumentgröße besteht auch die Möglichkeit einer Datenfragmentierung.

Zuletzt können Sie mit eingebetteten Dokumenten mithilfe der Punktnotation interagieren und diese problemlos durchlaufen. Hier ist die Syntax:

field.nestedField: Wert

Im obigen Beispiel können Sie auf Ihre verschachtelten Dokumente zugreifen, indem Sie die folgende Abfrage schreiben:

db.students.find ({Kontaktdaten: {Telefon: ”555-555-1234”, E-Mail-Adresse: “[email protected]”}}). pretty ()

Normalisierte Datenmodelle (Referenzen)

Normalisierte Datenmodelle werden verwendet, um Eins-zu-Viele- und Viele-zu-Viele-Beziehungsmodelle zu erstellen. Während der Arbeit mit eingebetteten Dokumentmodellen müssen Sie manchmal Daten wiederholen. Hier bieten sich Referenzen an - sie befassen sich mit der Redundanz. Hier erfahren Sie, wie wir Referenzen für das obige Beispiel verwenden können.

Wir haben unser einzelnes Dokument in drei Dokumente aufgeteilt und seitdem Kontaktdetails und Klasse habe die id von Matt Dokument können Sie sie bei Bedarf aufrufen.

Schüler
{
_Ich würde:
Benutzername: "Matt"
}
Kontaktdetails
{
_Ich würde:
Benutzeridentifikation:
E-Mail: "[email protected]"
Telefon: "555-555-1234"
}
Klasse
Ich würde:
Benutzeridentifikation: ,
Betreff: "CS101",
Punktzahl: "B"
}

Wie Sie sehen können, teilen normalisierte Datenmodelle Daten mithilfe von Referenzen zwischen den neueren Sammlungen in mehrere Sammlungen auf. Sie können ein einzelnes Dokument aktualisieren, wodurch andere Sammlungen aktualisiert werden. Dies ist eine effiziente Methode zum Aktualisieren von Daten und wird hauptsächlich verwendet, wenn Ihre Daten häufig geändert werden.

Hier sind die Zeiten, in denen ein normalisiertes Datenmodell die klügere Wahl ist:

  • Sie müssen große Datenmengen modellieren, die einer bestimmten Hierarchie folgen.
  • Sie müssen mehrere Viele-zu-Viele-Beziehungen darstellen.
  • Das Einbetten würde zu einer Duplizierung der Daten führen, ohne die Leseleistung in ausreichendem Maße zu beeinträchtigen.

Jetzt können Sie Daten in MongoDB mit Leichtigkeit modellieren

Inzwischen wissen Sie, wie sich die Datenmodellierung in MongoDB von relationalen DBMs unterscheidet, insbesondere wenn es um Schemas geht. Sie haben auch die Arten von Datenmodellen in MongoDB kennengelernt - de-normalisiert und normalisiert - und erfahren, wann Sie sie verwenden müssen.

Und das ist erst der Anfang; Es gibt noch viel mehr darüber zu erfahren, wie MongoDB Ihre Daten organisieren kann.

Email
Warum Twitter Sie Ihre Tweets nicht bearbeiten lässt

Eine Bearbeitungsoption ist eine der am häufigsten nachgefragten Twitter-Funktionen. Warum lässt das Unternehmen das nicht zu?

Weiter lesen

Verwandte Themen
  • Programmierung
  • Datenbank
Über den Autor
Usman Ghani (1 Artikel veröffentlicht)Mehr von Usman Ghani

Abonniere unseren Newsletter

Melden Sie sich für unseren Newsletter an, um technische Tipps, Rezensionen, kostenlose E-Books und exklusive Angebote zu erhalten!

Noch ein Schritt…!

Bitte bestätigen Sie Ihre E-Mail-Adresse in der E-Mail, die wir Ihnen gerade gesendet haben.

.