Dies ist eine alte Version des Dokuments!
LU03a - Relationale Datenbanken
Lernziele
- Ich kann mindestens drei Vorteile für den Einsatz einer Datenbank nennen.
- Ich kann die Begriffe Relation, Tupel, Attribut und Attributwert erklären und einer Tabelle zuordnen.
- Ich kann erklären, wozu Primär- und Fremdschlüssel dienen.
- Ich kann drei bekannte relationale Datenbankmanagementsysteme nennen.
- Ich kann erklären, worin sich relationale und NoSQL-Datenbanken unterscheiden und wann welche eingesetzt wird.
Datenbanken einsetzen
Datenbanken haben sich als fester Bestandteil von IT-Landschaften etabliert. Sie spielen eine wesentliche Rolle, wo immer Software-Applikationen zum Einsatz kommen und auf eine gemeinsame, integrierte Datenbasis zugreifen.
Vorteile beim Einsatz von Datenbanken
- Eine Datenbank ermöglicht die dauerhafte, zentrale Speicherung von Daten und kann diese eigenständig verwalten.
- DBMS bieten eine Vielzahl von Datenanalyse-Methoden zur Auswertung von Informationen. SQL stellt Funktionen zur Berechnung, Aggregation und Sortierung der Daten zur Verfügung.
- Datenbankmanagementsysteme (DBMS) sind abfrageoptimiert und können Daten in einem Bruchteil der Zeit auslesen, die andere Dateiformate (z.B. Excel, CSV) benötigen.
Relationale Datenbanken (Relational Databases)
Das relationale Modell wurde 1970 von Edgar F. Codd beschrieben; die ersten kommerziellen relationalen Datenbanksysteme kamen Ende der 1970er-Jahre auf den Markt. Seither haben sie sich zum De-facto-Standard für die Verwaltung strukturierter Daten entwickelt und sind heute die am weitesten verbreitete Form von Datenbanksystemen.
Relationale Datenbanken speichern Informationen in Tabellen (tables). Tabellen bestehen aus Zeilen (rows, auch Tupel/tuples genannt) und Spalten (columns, auch Attribute/attributes genannt).
- Eine Zeile (Tupel) steht für einen vollständigen Datensatz, zum Beispiel einen Kunden oder eine Bestellung.
- Eine Spalte (Attribut) beschreibt eine bestimmte Eigenschaft dieses Datensatzes, zum Beispiel den Namen oder die E-Mail-Adresse eines Kunden.
- Ein einzelner Eintrag in einer Zelle ist ein Attributwert (attribute value).
Was bedeutet "Relation"?
Der Begriff Relation stammt aus der Mathematik und ist die Grundlage relationaler Datenbanken. Eine Relation ist nichts anderes als eine Tabelle mit Daten einer bestimmten Art (z.B. Kunden, Bestellungen). Der Name „relational“ ergibt sich daraus, dass Tabellen miteinander in Beziehung (relation) gesetzt werden können.
Wie sind Tabellen miteinander verbunden?
Tabellen können über Schlüssel verknüpft werden:
- Ein Primärschlüssel (primary key) identifiziert jede Zeile in einer Tabelle eindeutig.
- Ein Fremdschlüssel (foreign key) verweist auf den Primärschlüssel einer anderen Tabelle.
In der Grafik sehen Sie zwei Tabellen:
- In der Tabelle „Kunden“ repräsentiert jede Zeile einen Kunden. Die Spalten enthalten Merkmale wie Name und E-Mail-Adresse. Jeder Kunde hat eine eindeutige ID – das ist der Primärschlüssel.
- In der Tabelle „Bestellungen“ repräsentiert jede Zeile eine Bestellung. Die Spalte customer_id ist der Fremdschlüssel: Sie enthält die ID desjenigen Kunden, der die Bestellung getätigt hat.
So lässt sich jede Bestellung eindeutig einem Kunden zuordnen: Die Bestellung mit der `customer_id` 1 (toothbrush) gehört zu Hanna, weil Hanna in der Kundentabelle die `ID` 1 hat.
Beachten Sie: Miriam (ID 3) taucht in der Bestellungstabelle dreimal auf. Ein Kunde kann also mehrere Bestellungen haben – eine Bestellung gehört aber immer zu genau einem Kunden. Solche Beziehungen schauen wir uns in der nächsten Lerneinheit genauer an.
Bekannte relationale Datenbanksysteme (RDBMS)
- MySQL
- MariaDB
- PostgreSQL
- SQLite
- IBM DB2
- Oracle Database
- Microsoft SQL Server
MySQL, MariaDB, PostgreSQL und SQLite sind frei nutzbare, Open-Source-Datenbanksysteme. Besonders MySQL (und MariaDB, ein Fork von MySQL) sind weit verbreitet und kommen häufig in Webanwendungen zum Einsatz – beispielsweise nutzt WordPress MySQL bzw. MariaDB.
SQL-Dialekte
SQL ist standardisiert – trotzdem haben verschiedene Datenbankanbieter eigene Erweiterungen oder Dialekte entwickelt, z.B. T-SQL (Transact-SQL) von Microsoft oder PL/SQL (Procedural Language/SQL) von Oracle. Die Grundbefehle (`SELECT`, `INSERT`, `UPDATE`, `DELETE`) funktionieren aber überall gleich.
Video: Relationale und NoSQL-Datenbanken
Dieses Video erklärt den Aufbau von relationalen Datenbanken.4)
Nutzen Sie die automatische Untertitel-Übersetzung von YouTube, wenn die englische Sprache Verständnisschwierigkeiten bereitet.
NoSQL-Datenbanken
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.
NoSQL-Datenbanken werden vor allem verwendet, wenn Daten in einer unstrukturierten oder wenig strukturierten Form gespeichert werden müssen. Sie wurden im Zusammenhang mit dem Big-Data-Hype populär und ermöglichen es, grosse Datenmengen schnell zu speichern und auszuwerten. Konsistenz und Aktualität der Daten stehen dabei oft weniger im Fokus als Geschwindigkeit.
Wie sieht das aus?
Statt einer festen Tabellenstruktur speichert eine Dokumenten-Datenbank (z.B. MongoDB) 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. In einer relationalen Tabelle müssten alle Zeilen dieselben Spalten besitzen.
Das JSON-Format begegnet uns später im Modul wieder, wenn wir einen Backendserver bauen und Daten zwischen Server und Client austauschen.
Bekannte NoSQL-Datenbanksysteme
- MongoDB
- Redis
- Apache Cassandra
Vergleich: Relational oder NoSQL?
- Relationale Datenbanken wurden zum Standard, weil sie Datenintegrität, Nachvollziehbarkeit und Unabhängigkeit von einzelnen Programmen garantieren. Ein weiterer historischer Grund war die damals teure Speicherkapazität: Durch das Vermeiden von Redundanzen wurde Speicherplatz gespart.
- Relationale Datenbanken sind aufgrund von Integritätsprüfungen und Normalisierungen weniger gut geeignet für das sehr schnelle Speichern sehr grosser Datenmengen. Dafür bieten NoSQL-Datenbanken eine bessere Lösung, da sie auf schnelle Verarbeitung ohne hohe Integritätsanforderungen optimiert sind.
- Relationale Datenbanken sind nach wie vor unverzichtbar, wenn es auf Genauigkeit, Integrität, Aktualität und Nachvollziehbarkeit ankommt. Typische Anwendungsfälle sind Transaktionssysteme wie Webshops, Online-Banking und Buchungssysteme.
| Kriterium | Relationale Datenbank | NoSQL-Datenbank |
|---|---|---|
| Struktur | feste Tabellen mit gleichen Spalten | flexible Dokumente/Strukturen |
| Stärke | Genauigkeit, Integrität, Beziehungen | Geschwindigkeit, grosse Datenmengen |
| Typischer Einsatz | Webshop, Banking, Buchungen | Sensordaten, Logs, Social-Media-Feeds |
| Abfragesprache | SQL | herstellerabhängig |


