MongoDB: Unterschied zwischen den Versionen

Aus KGS-Wiki
Keine Bearbeitungszusammenfassung
(Quellenverweise hinzugefügt)
Zeile 3: Zeile 3:


=== <u>Allgemeines</u> ===
=== <u>Allgemeines</u> ===
MongoDB (vom englischen ''"hu'''mongo'''us"'',  dt. ''"gigantisch"'' ) ist ein [[Datenbank|Datenbankprogramm]], welches sich auf Dokumente spezialisiert, also eine [[NoSQL-Datenbank]] (d.h. es stellt seine Daten nicht in einem relationsbasierten Schema dar, wie z.B. MariaDB) darstellt. Es wird häufig genutzt, um große Datenmenge zu verwalten und schnell abzufragen, beispielsweise am ''Large Hadron Collider'', dem Teilchenbeschleuniger des CERNs.
MongoDB (vom englischen ''"hu'''mongo'''us"'',  dt. ''"gigantisch"'' ) ist ein [[Datenbank|Datenbankprogramm]], welches sich auf Dokumente spezialisiert, also eine [[NoSQL-Datenbank]] (d.h. es stellt seine Daten nicht in einem relationsbasierten Schema dar, wie z.B. MariaDB) darstellt. Es wird häufig genutzt, um große Datenmenge zu verwalten und schnell abzufragen, beispielsweise am ''Large Hadron Collider'', dem Teilchenbeschleuniger des CERNs.<ref>'''MongoDB Allgemeine Information'''auf [[wikipedia:MongoDB|wikipedia.org 🇬🇧]], abgerufen 23.03.23</ref>


=== <u>Geschichte</u> ===
=== <u>Geschichte</u> ===
Im Jahre 2007 begann die Entwicklung durch die ''MongoDB, Inc.'' (früher ''10gen''), welche 2009 zu Erstveröffentlichung führte. Seitdem ist das Projekt auch [[Open-Source]] und unter [https://github.com/mongodb/mongo diesem Git-Repository] zu finden.  
Im Jahre 2007 begann die Entwicklung durch die ''MongoDB, Inc.'' (früher ''10gen''), welche 2009 zu Erstveröffentlichung führte. Seitdem ist das Projekt auch [[Open-Source]] und unter [https://github.com/mongodb/mongo diesem Git-Repository] zu finden.<ref>'''MongoDB Geschichte'''auf [[wikipedia:MongoDB#History|wikipedia.org 🇬🇧]], abgerufen 23.03.23</ref>


== Aufbau ==
== Aufbau ==
Im Gegensatz zu herkömmlichen [[SQL|SQL-Datenbanken]], die ihre Informationen ins vordefinierten Tabellen in einzelnen Zeilen und Spalten speichern, nutzt MongoDB ein System von Collections und Documents. Damit kann z.B. ein Unternehmen ein Dokument anlegen in dem ein Kunde zwei Adressen und drei Telefonnummern, der nächste aber nur eine Adresse und nur eine Telefonnummer hat. MongoDB ermöglicht also die Speicherung von Daten in einem natürlichen Format. Durch diese Schema entstehen drei große Vorteile:
Im Gegensatz zu herkömmlichen [[SQL|SQL-Datenbanken]], die ihre Informationen ins vordefinierten Tabellen in einzelnen Zeilen und Spalten speichern, nutzt MongoDB ein System von Collections und Documents. Damit kann z.B. ein Unternehmen ein Dokument anlegen in dem ein Kunde zwei Adressen und drei Telefonnummern, der nächste aber nur eine Adresse und nur eine Telefonnummer hat. MongoDB ermöglicht also die Speicherung von Daten in einem natürlichen Format. Durch diese Schema entstehen drei große Vorteile:<ref>'''MongoDB Vorteile'''auf [https://www.opc-router.com/what-is-mongodb/ www.opc-router.com 🇬🇧], aufgerufen 23.03.23</ref>


===== <u>'''Flexibilität'''</u> =====
===== <u>'''Flexibilität'''</u> =====
Zeile 23: Zeile 23:


== Anwendung ==
== Anwendung ==
Aufgrund seiner Flexibilität und der Fähigkeit, mit großen Datenmengen umzugehen, ist MongoDB gut geeignet, um mit [[Big Data]] zu speichern, bearbeiten und zu visualisieren. Weil es zudem Sharding erlaubt, können eine große Anzahl an Leuten/Teams gemeinsam mit MongoDB arbeiten. Ferner ist seine Datenstruktur der BSON-Dateien kompatibel mti den meisten gängigen Programmiersprachen, was es beliebt macht.
Aufgrund seiner Flexibilität und der Fähigkeit, mit großen Datenmengen umzugehen, ist MongoDB gut geeignet, um mit [[Big Data]] zu speichern, bearbeiten und zu visualisieren. Weil es zudem Sharding erlaubt, können eine große Anzahl an Leuten/Teams gemeinsam mit MongoDB arbeiten. Ferner ist seine Datenstruktur der BSON-Dateien kompatibel mti den meisten gängigen Programmiersprachen, was es beliebt macht.<ref>'''MongoDB Anwedungsfälle'''auf [https://www.mongodb.com/why-use-mongodb🇬🇧 www.mongodb.com 🇬🇧], abgerufen 23.03.23</ref>


So wird es zum Beispiel bei CERN als Datenbank für die Forschungsdaten, bei der New York Times oder beim Onlineversandhandel Etsy für ihre Websiteverwaltung genutzt.  
So wird es zum Beispiel bei CERN als Datenbank für die Forschungsdaten, bei der New York Times oder beim Onlineversandhandel Etsy für ihre Websiteverwaltung genutzt.  


== Abgrenzung zu anderen Datenbanken ==
== Abgrenzung zu anderen Datenbanken ==
MongoDB ist, wie schon oben erwähnt, eine dokumentorientierte [[NoSQL-Datenbank]] und ist allein dadurch von den herkömmlichen Datenbanken zu unterscheiden. Zusätzlich stellt sie Konsistenz über Verfügbarkeit, was heißt, dass bei Kopien sichergestellt wird, dass die Daten konsistent bleiben. Damit nimmt sie den CP-Weg des CAP-Theorems.
MongoDB ist, wie schon oben erwähnt, eine dokumentorientierte [[NoSQL-Datenbank]] und ist allein dadurch von den herkömmlichen Datenbanken zu unterscheiden. Zusätzlich stellt sie Konsistenz über Verfügbarkeit, was heißt, dass bei Kopien sichergestellt wird, dass die Daten konsistent bleiben. Damit nimmt sie den CP-Weg des CAP-Theorems.<ref>'''MongoDB Eigenheiten'''auf [https://www.purestorage.com/uk/knowledge/what-is-mongodb.html🇬🇧 www.purestorage.com 🇬🇧], abgerufen 23.03.23</ref>


== Beispielcode ==
== Beispielcode ==
Zeile 49: Zeile 49:
                
                
}
}
</syntaxhighlight>Der obige Beispielcode gibt die Datenbankstruktur von MongoDB an. Wie leicht zu sehen, wurde einem Attribut unterschiedliche Werte gegeben. So ist zum Beispiel bei <code>addresses</code> für den oberen Block die Postleitzahl <code>zip: “90000”</code> eingefügt wurde, während unten nicht einmal ein <code>NULL</code>-Wert eingefügt werden musste
</syntaxhighlight>Der obige Beispielcode gibt die Datenbankstruktur von MongoDB an. Wie leicht zu sehen, wurde einem Attribut unterschiedliche Werte gegeben. So ist zum Beispiel bei <code>addresses</code> für den oberen Block die Postleitzahl <code>zip: “90000”</code> eingefügt wurde, während unten nicht einmal ein <code>NULL</code>-Wert eingefügt werden musste<ref>'''MongoDB Beispiele'''auf [https://www.mongodb.com/basics/examples www.mongodb.com 🇬🇧], abgerufen 23.03.23</ref>


 
== Einzelnachweise ==
[https://de.wikipedia.org/wiki/MongoDB https://de.wikipedia.org/wiki/MongoDB'''🇩🇪''']
<references />
 
[https://www.purestorage.com/uk/knowledge/what-is-mongodb.html https://www.purestorage.com/uk/knowledge/what-is-mongodb.html🇬🇧]
 
[https://www.opc-router.com/what-is-mongodb/ https://www.opc-router.com/what-is-mongodb/🇬🇧]
 
[https://www.mongodb.com/why-use-mongodb https://www.mongodb.com/why-use-mongodb🇬🇧]

Version vom 23. März 2023, 10:49 Uhr

MongoDB

Logo von MongoDB
Das offizielle Logo von MongoDB

Allgemeines

MongoDB (vom englischen "humongous", dt. "gigantisch" ) ist ein Datenbankprogramm, welches sich auf Dokumente spezialisiert, also eine NoSQL-Datenbank (d.h. es stellt seine Daten nicht in einem relationsbasierten Schema dar, wie z.B. MariaDB) darstellt. Es wird häufig genutzt, um große Datenmenge zu verwalten und schnell abzufragen, beispielsweise am Large Hadron Collider, dem Teilchenbeschleuniger des CERNs.[1]

Geschichte

Im Jahre 2007 begann die Entwicklung durch die MongoDB, Inc. (früher 10gen), welche 2009 zu Erstveröffentlichung führte. Seitdem ist das Projekt auch Open-Source und unter diesem Git-Repository zu finden.[2]

Aufbau

Im Gegensatz zu herkömmlichen SQL-Datenbanken, die ihre Informationen ins vordefinierten Tabellen in einzelnen Zeilen und Spalten speichern, nutzt MongoDB ein System von Collections und Documents. Damit kann z.B. ein Unternehmen ein Dokument anlegen in dem ein Kunde zwei Adressen und drei Telefonnummern, der nächste aber nur eine Adresse und nur eine Telefonnummer hat. MongoDB ermöglicht also die Speicherung von Daten in einem natürlichen Format. Durch diese Schema entstehen drei große Vorteile:[3]

Flexibilität

Aurgrund der Speicherung der Daten in den JSON ähnlichen BSON-Dateien (BSON: binary JSON) gespeichert werden, ist das Datenbankschema dynamisch. Damit können Objekte in einer Collection verschieden modelliert und manipuliert werden, was besonders in wirtschaftlichen Abläufen mit viel Variation nützlich ist.

Aufgrund dieser Strukturierung ist die nachträgliche Bearbeitung der Datenbank hinsichtlich der Features simpel, während es bei herkömmlichen Datenbanken mit Querverweisen und festen Datentypen sehr kompliziert wird.

Teilbarkeit

MongoDB erlaubt eine horizontale Skalierung der Daten (das sog. Sharding). Das heißt, wenn die Datenlast für einen Server zu groß wird, kann sie auf mehrere verteilt werden, ohne das Datenprozesse unterbrochen werden. Hiermit werden auch redundante Kopien auf verschiedenen Servern angelegt, womit ein Fehler nicht das gesamte System lahmlegen kann.

Bessere Laufzeit

Zur schneller Barbeitung von Anfragen, werder Daten im RAM zwischengespeichert, anstatt sie immer direkt von der Festplatte zu lesen. Dadurch wird es möglich, schneller auf diese zuzugreifen und gegebenenfalls zu manipulieren. Die Struktur von MongoDB sorgt zusätzlich dafür, dass das Lesen der Daten effizienter ist als bei seinen SQL-Gegenstücken.

Anwendung

Aufgrund seiner Flexibilität und der Fähigkeit, mit großen Datenmengen umzugehen, ist MongoDB gut geeignet, um mit Big Data zu speichern, bearbeiten und zu visualisieren. Weil es zudem Sharding erlaubt, können eine große Anzahl an Leuten/Teams gemeinsam mit MongoDB arbeiten. Ferner ist seine Datenstruktur der BSON-Dateien kompatibel mti den meisten gängigen Programmiersprachen, was es beliebt macht.[4]

So wird es zum Beispiel bei CERN als Datenbank für die Forschungsdaten, bei der New York Times oder beim Onlineversandhandel Etsy für ihre Websiteverwaltung genutzt.

Abgrenzung zu anderen Datenbanken

MongoDB ist, wie schon oben erwähnt, eine dokumentorientierte NoSQL-Datenbank und ist allein dadurch von den herkömmlichen Datenbanken zu unterscheiden. Zusätzlich stellt sie Konsistenz über Verfügbarkeit, was heißt, dass bei Kopien sichergestellt wird, dass die Daten konsistent bleiben. Damit nimmt sie den CP-Weg des CAP-Theorems.[5]

Beispielcode

{_id: ObjectId("5effaa5662679b5af2c58829"),
 email: “email@example.com”,
 name: {given: “Jesse”, family: “Xiao”},
 age: 31,
 addresses: [{label: “home”,
              street: “101 Elm Street”,
              city: “Springfield”,
              state: “CA”,
              zip: “90000”,
              country: “US”},
             {label: “mom”,
              street: “555 Main Street”,
              city: “Jonestown”,
              province: “Ontario”,
              country: “CA”}]
              
}

Der obige Beispielcode gibt die Datenbankstruktur von MongoDB an. Wie leicht zu sehen, wurde einem Attribut unterschiedliche Werte gegeben. So ist zum Beispiel bei addresses für den oberen Block die Postleitzahl zip: “90000” eingefügt wurde, während unten nicht einmal ein NULL-Wert eingefügt werden musste[6]

Einzelnachweise

  1. MongoDB Allgemeine Informationauf wikipedia.org 🇬🇧, abgerufen 23.03.23
  2. MongoDB Geschichteauf wikipedia.org 🇬🇧, abgerufen 23.03.23
  3. MongoDB Vorteileauf www.opc-router.com 🇬🇧, aufgerufen 23.03.23
  4. MongoDB Anwedungsfälleauf www.mongodb.com 🇬🇧, abgerufen 23.03.23
  5. MongoDB Eigenheitenauf www.purestorage.com 🇬🇧, abgerufen 23.03.23
  6. MongoDB Beispieleauf www.mongodb.com 🇬🇧, abgerufen 23.03.23