7 Datenmodell (Dokumente, Collections, Datenbanken)

MongoDB nutzt ein dokumentenorientiertes Datenmodell, das durch Flexibilität und Schemafreiheit charakterisiert ist. Es ermöglicht eine natürliche Abbildung von Datenstrukturen moderner Anwendungen.

7.1 Dokumente

7.1.1 Definition

Ein Dokument in MongoDB ist eine unabhängige Datenstruktur, die Informationen in einem JSON-ähnlichen Format speichert. MongoDB verwendet dafür das BSON-Format (Binary JSON), das zusätzliche Datentypen unterstützt.

7.1.2 Aufbau

7.1.3 Beispiel

{
  "name": "Anna Müller",
  "age": 30,
  "address": {
    "street": "Hauptstraße 45",
    "city": "Berlin",
    "zip": "10115"
  },
  "hobbies": ["Schwimmen", "Fotografie"],
  "isActive": true
}

7.1.4 Vorteile


7.2 Collections

7.2.1 Definition

Eine Collection ist eine Sammlung von Dokumenten, vergleichbar mit einer Tabelle in relationalen Datenbanken.

7.2.2 Eigenschaften

7.2.3 Beispiel

Kollektion users:

[
  { "name": "John Doe", "age": 25 },
  { "name": "Jane Smith", "age": 28, "email": "jane@example.com" }
]

7.2.4 Vorteile


7.3 Datenbanken

7.3.1 Definition

Eine Datenbank in MongoDB ist ein Container für mehrere Collections. Sie bietet eine organisatorische Ebene zur Strukturierung und Verwaltung von Daten.

7.3.2 Eigenschaften

7.3.3 Beispiel

Datenbank ecommerce: - Kollektion products enthält Dokumente über Artikel. - Kollektion orders speichert Bestellungen.


7.4 Vorteile des dokumentenorientierten Modells

  1. Natürliche Datenrepräsentation: Datenmodelle in MongoDB ähneln der Struktur von Objekten in Programmiersprachen, was die Integration erleichtert.
  2. Flexibilität: Schemafreiheit erlaubt es, Datenstrukturen schnell zu ändern, ohne die gesamte Datenbank neu zu strukturieren.
  3. Performance: Eingebettete Dokumente reduzieren die Anzahl der Abfragen, da verwandte Daten zusammen gespeichert werden.
  4. Skalierbarkeit: Collections und Datenbanken sind leicht über verteilte Systeme skalierbar.

Das dokumentenorientierte Datenmodell von MongoDB bietet eine intuitive und flexible Lösung für moderne Anwendungsanforderungen, besonders in dynamischen Umgebungen mit häufig wechselnden Datenstrukturen.