====== LU03b - Relational oder NoSQL? ======
===== Lernziele =====
* Ich kann erklären, wie NoSQL-Datenbanken Daten ablegen und worin der Unterschied zu Tabellen besteht.
* Ich kann für eine gegebene Anforderung begründen, ob eher eine relationale oder eine NoSQL-Datenbank passt.
===== Es gibt nicht nur Tabellen =====
Auf der vorherigen Seite haben Sie gesehen, wie relationale Datenbanken Daten in Tabellen organisieren. Es gibt aber auch Datenbanken, die ganz anders vorgehen.
**NoSQL** steht heute meist für //"Not only SQL"//. Es geht also nicht darum, SQL abzulehnen, sondern um Datenbanken, die Daten **anders als in Tabellen** ablegen. Sie werden vor allem eingesetzt, wenn Daten **wenig oder gar nicht strukturiert** sind oder wenn **sehr grosse Datenmengen sehr schnell** gespeichert werden müssen.
===== Wie sieht das aus? =====
Eine Dokumenten-Datenbank (z.B. MongoDB) speichert jeden Datensatz als eigenes **Dokument** – meist im JSON-Format:
{
"name": "Hanna",
"email": "h.m@muster.com",
"bestellungen": ["toothbrush"],
"newsletter": true
}
**Der entscheidende Unterschied:** Ein anderes Dokument in derselben Datenbank darf ganz andere Felder haben – eines mit Telefonnummer, eines ohne. In einer relationalen Tabelle müssen dagegen **alle Zeilen dieselben Spalten** besitzen.
Bekannte NoSQL-Systeme sind **MongoDB**, **Redis** und **Apache Cassandra**.
===== Wann welche Datenbank? =====
^ Kriterium ^ Relationale Datenbank ^ NoSQL-Datenbank ^
| Struktur | feste Tabellen mit gleichen Spalten | flexible Dokumente |
| Stärke | Genauigkeit, Beziehungen zwischen Daten | Geschwindigkeit, grosse Datenmengen |
| Typischer Einsatz | Webshop, Online-Banking, Buchungen | Sensordaten, Logs, Social-Media-Feeds |
| Abfragesprache | SQL | herstellerabhängig |
Kurz gesagt: Überall dort, wo es auf **Genauigkeit und Nachvollziehbarkeit** ankommt – also bei Bestellungen, Zahlungen oder Buchungen –, sind relationale Datenbanken nach wie vor die erste Wahl. Genau deshalb arbeiten wir in diesem Modul damit.
===== Video =====
{{youtube>E9AgJnsEvG4?}}\\
//Dieses Video vergleicht relationale und nicht-relationale Datenbanken.//((IBM Technology: Relational vs. Non-Relational Databases))\\
//Nutzen Sie die automatische Untertitel-Übersetzung von YouTube, wenn die englische Sprache Verständnisschwierigkeiten bereitet.//
===== Quellen =====
* [[http://www.datenbanken-verstehen.de|Datenbanken verstehen]]
----
{{tag>M290-LU03}}
[[https://creativecommons.org/licenses/by-nc-sa/4.0/|{{https://i.creativecommons.org/l/by-nc-sa/4.0/88x31.png}}]] Guido Koch