MongoDB: Unterschied zwischen den Versionen
Nai (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
Sn (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
||
(5 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
[[Datei:MongoDB Logo.svg|alternativtext=Logo von MongoDB|mini|Das offizielle Logo von MongoDB]][[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 [[Relation|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> | |||
[[Datei:MongoDB Logo.svg|alternativtext=Logo von MongoDB|mini|Das offizielle Logo von MongoDB]] | |||
== | == 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|''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> | |||
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 | |||
== 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:<ref>'''MongoDB Vorteile''' auf [https://www.opc-router.com/what-is-mongodb/ www.opc-router.com 🇬🇧], aufgerufen 23.03.23</ref> | 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> | ||
=== | === 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. | 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. | 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. | 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 [[Redundanz|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. | Zur schneller Barbeitung von Anfragen, werder Daten im [[Arbeitsspeicher|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 == | == Anwendung == | ||
Zeile 28: | Zeile 24: | ||
== Abgrenzung zu anderen Datenbanken == | == Abgrenzung zu anderen Datenbanken == | ||
MongoDB ist, wie schon oben erwähnt, eine dokumentorientierte | 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 == | ||
<syntaxhighlight> | <syntaxhighlight lang="json"> | ||
{_id: ObjectId("5effaa5662679b5af2c58829"), | {_id: ObjectId("5effaa5662679b5af2c58829"), | ||
email: | email: "email@example.com", | ||
name: {given: | name: {given: "Jesse", family: "Xiao"}, | ||
age: 31, | age: 31, | ||
addresses: [{label: | addresses: [{label: "home", | ||
street: | street: "101 Elm Street", | ||
city: | city: "Springfield", | ||
state: | state: "CA", | ||
zip: | zip: "90000", | ||
country: | country: "US"}, | ||
{label: | {label: "mom", | ||
street: | street: "555 Main Street", | ||
city: | city: "Jonestown", | ||
province: | province: "Ontario", | ||
country: | country: "CA"}] | ||
} | } | ||
Zeile 52: | Zeile 48: | ||
== Einzelnachweise == | == Einzelnachweise == | ||
<references /> | <references />{{Navigationsleiste Datenbanken}} | ||
[[Kategorie:Datenbanken]] |
Aktuelle Version vom 2. März 2024, 14:36 Uhr
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
- ↑ MongoDB Allgemeine Information auf wikipedia.org 🇬🇧, abgerufen 23.03.23
- ↑ MongoDB Geschichte auf wikipedia.org 🇬🇧, abgerufen 23.03.23
- ↑ MongoDB Vorteile auf www.opc-router.com 🇬🇧, aufgerufen 23.03.23
- ↑ MongoDB Anwedungsfälle auf www.mongodb.com 🇬🇧, abgerufen 23.03.23
- ↑ MongoDB Eigenheiten auf www.purestorage.com 🇬🇧, abgerufen 23.03.23
- ↑ MongoDB Beispiele auf www.mongodb.com 🇬🇧, abgerufen 23.03.23