Die Teilnahme am Full Stack Web Development Coding Boot Camp an der Georgia Tech ist eine der besten Entscheidungen, die ich je getroffen habe. Es erweist sich als lustiger und lebendiger als erwartet. Am wichtigsten ist, dass ich jeden Tag neue Dinge lerne. Gestern habe ich Kommandozeilenskripte in der Mongo-Shell geschrieben und sie direkt auf meinem Computer in einer NoSQL-Datenbank namens MongoDB gespeichert.
Während unserer Bootcamp-Klassensitzung wurde ich gebeten, den Unterschied zwischen SQL und NoSQL zu erklären: MySQL und MongoDB.
So, hier ist meine kurze Einschätzung dazu:
SQL (Structured Query Language) ist eine Programmiersprache, die verwendet wird, um Daten in relationalen Datenbanken zu verwalten. Relationale Datenbanken verwenden Relationen, die typischerweise Tabellen genannt werden, um Daten zu speichern und diese Daten dann anhand gemeinsamer Merkmale innerhalb des Datensatzes abzugleichen. Beispiele für SQL-Datenbanken sind MySQL, Oracle, PostgreSQL und Microsoft SQL Server.
NoSQL-Datenbanken sind dokumentenbasiert und beziehen sich auf leistungsstarke, nicht-relationale Datenbanken, die eine Vielzahl von Datenmodellen verwenden. Diese Datenbanken sind für ihre Benutzerfreundlichkeit, skalierbare Leistung, hohe Ausfallsicherheit und breite Verfügbarkeit bekannt. Beispiele für NoSQL-Datenbanken sind MongoDB, BigTable, RavenDB Cassandra, HBase, Neo4j und CouchDB.
MySQL vs. MongoDB
MySQL ist eine relationale Open-Source-Datenbank, die Daten in „Tabellen“ speichert und strukturierte Abfragesprache (SQL) für den Datenbankzugriff verwendet. In MySQL definieren wir unser Datenbankschema basierend auf unseren Anforderungen vor und stellen Regeln auf, um die Beziehungen zwischen den Feldern in unseren Tabellen zu regeln.
MongoDB hingegen ist eine nicht-relationale Datenbank, die Daten als „Dokumente“ in einer binären Darstellung namens BSON (Binary JSON) speichert. Die Felder können von Dokument zu Dokument variieren; es besteht keine Notwendigkeit, dem System die Struktur der Dokumente zu deklarieren – die Dokumente sind selbstbeschreibend.
Kurz gesagt: Eine nicht-relationale Datenbank beinhaltet nicht das Tabellenmodell. Stattdessen können Daten in einer einzelnen Dokumentdatei gespeichert werden, während die Tabelle einer relationalen Datenbank die Strukturdatenfelder in definierten Spalten organisiert.
Danke für die Lektüre.