Relationale Datenbank
Relationale Datenbanken bieten eine hervorragende Möglichkeit, Informationen strukturiert zu speichern. Wie genau sie funktionieren, erfährst du hier und im Video .
Inhaltsübersicht
Relationale Datenbank einfach erklärt
Einfach gesagt speichert eine relationale Datenbank verschiedene Datensätze in Tabellenform. Dabei sind mehrere Tabellen miteinander verbunden.
Beispiel: Ein Unternehmen speichert Kundendaten und Bestelldaten in einer relationalen Datenbank.
- Jede Tabelle enthält mehrere Zeilen (= Tupel).
- Jede Tabelle hat mehrere Spalten (= Attribute). Die Kundentabelle hat beispielsweise die Attribute „Kunden-ID“, „Vorname“ und „Nachname“.
Ein Datensatz hat immer ein Attribut, durch das sich die Zeilen eindeutig unterscheiden lassen. Es wird als Schlüssel (= primary key) bezeichnet. In unserem Beispiel sind die Schlüssel die Kunden-ID beziehungsweise die Bestellnummer.
In der Bestellungstabelle kommt auch die Kunden-ID vor, also der Schlüssel der Kundentabelle. Er wird dann als Fremdschlüssel (= foreign key) bezeichnet. Er verknüpft die beiden Tabellen miteinander. Gibt es nun beispielsweise Lieferschwierigkeiten an einem bestimmten Bestelldatum, kann dieses Datum in der Bestellungstabelle gesucht werden. Die betroffenen Kunden können dann ganz einfach über die Kunden-ID in der Kundentabelle ermittelt werden.
Bei einer relationalen Datenbank sind die logischen Datenstrukturen und die physischen Speicherstrukturen voneinander getrennt. Ein Datenbankadministrator kann so zum Beispiel den physischen Datenspeicher verwalten, ohne auf die Daten selbst zuzugreifen.
Vorteile relationaler Datenbanken
Ein erstes relationales Datenbankmodell wurde schon in den 1970er-Jahren durch E.F. Codd von IBM entwickelt. Trotz seines Alters ist es bis heute das am meisten verbreitete Datenbanksystem. Denn relationale Datenbanken haben einige entscheidende Vorteile:
-
Flexibilität: Die Tabellenstruktur von relationalen Datenbanken ist flexibel und gleichzeitig intuitiv. Datensätze können jederzeit geändert, ergänzt oder gelöscht werden, ohne die Gesamtstruktur der Datenbank zu ändern.
-
Verbundenheit: Alle Daten befinden sich in einer Datenbank und werden nicht getrennt voneinander gespeichert.
-
Einfache Sprache: Der Zugriff auf die Datenbank erfolgt über die einheitliche, standardisierte Datenbanksprache SQL . Sie basiert auf einer sogenannten relationalen Algebra. Dank diesem zugrundeliegenden mathematischen Modell lässt sich die Performanz von Datenbankabfragen leichter verbessern.
-
Kooperation: Oft können verschiedene Personen gleichzeitig auf die Informationen zugreifen. Die Datenbank selbst verhindert, dass dabei Chaos entsteht.
-
Vielseitigkeit: Relationale Datenbanksysteme können sowohl für wenige Informationen als auch für große Mengen an Daten verwendet werden. Sie sind also sehr vielseitig einsetzbar, zum Beispiel um Kundendaten, Lagerbestände oder Geschäftsprozesse zu speichern.
Trotz der vielen Vorteile hat das relationale Modell natürlich auch Nachteile. Es eignet sich beispielsweise nicht gut für riesige Datenmengen (Big Data ) oder für unstrukturierte Daten (z.B. Dokumente oder Bilder). Hier kommen eher sogenannte NoSQL-Datenbanken zum Einsatz. Sie können beliebige Datentypen sehr flexibel speichern, sind dafür aber weniger strukturiert.
ACID-Eigenschaften von relationalen Datenbanksystemen
Damit relationale Datenbanken einwandfrei funktionieren, erfüllen sie vier wichtige Eigenschaften (sog. ACID-Eigenschaften):
1. Atomarität
Eine Datenbanktransaktion (= Änderung der Daten in einer Datenbank) kann aus verschiedenen Teilen bestehen, zum Beispiel aus Änderungen in mehreren Spalten. Fehlt ein Teil der Transaktion, wird die gesamte Transaktion nicht gespeichert. Die Atomarität legt fest, welche Teile zu einer Transaktion dazugehören müssen. So wird sichergestellt, dass alle Transaktionen nach den Regeln und Richtlinien des Unternehmens korrekt ablaufen.
Beispiel: Ein Unternehmen verkauft Fahrradschläuche nicht einzeln, sondern nur zusammen mit einem Fahrradreifen. Eine Datenbank speichert, welche Produkte aus dem Lager entnommen werden. Angenommen, es sind gerade keine Fahrradreifen vorhanden. Trotzdem wird in die Datenbank eingetragen, dass ein Fahrradschlauch aus dem Lager entnommen wurde. Dann erlaubt die Datenbank die Transaktion nicht, weil Fahrradschlauch und Fahrradreifen nur zusammen entnommen werden dürfen.
2. Konsistenz
In einer relationalen Datenbank ist Datenkonsistenz wichtig. Das bedeutet, dass die Daten immer korrekt und aktuell sein müssen (sog. Datenintegrität).
Beispiel: Wenn ein Bankkunde Geld einzahlt, möchte er sofort den veränderten Kontostand in seinem Online-Banking-Account sehen. In verschiedenen Kopien der Datenbank (= Instanzen) sollten also immer die gleichen Daten stehen.
Übrigens: Bei anderen Datenbanktypen ist es schwieriger, sofort Datenkonsistenz zu gewährleisten. Neuere Datenbanken wie NoSQL stellen erst nach einiger Zeit Konsistenz her (= Eventual Consistency). Für einige Anwendungen ist das aber kein Problem, beispielsweise für die Übersicht der Produktpalette eines Unternehmens.
3. Isolation
Die Auswirkungen einer Transaktion sind in der Datenbank erst dann für alle sichtbar, wenn die Transaktion abgeschlossen ist. So wird Chaos vermieden.
4. Dauerhaftigkeit
Erfolgreiche Änderungen der Daten in der Datenbank werden dauerhaft gespeichert.
Arbeiten mit relationalen Datenbanken
Fast alle Datenbanken unterstützen heutzutage die Datenbanksprache SQL. Damit können Informationen der Datenbank abgerufen, eingefügt und verändert werden. SQL ist relativ einfach und besitzt nur wenige Grundbefehle:
- Befehle zur Definition des Datenbankschemas (DLL)
- Befehle zum Abfragen, Einfügen und Verändern der Daten (DML)
- Befehle zum Verwalten von Rechten und Kontrollieren der Datenbanktransaktionen (DCL)
Gespeicherte Prozeduren
Bestimmte Aktionen müssen in einer Datenbank immer wieder ausgeführt werden. Damit die Entwickler dafür nicht jedes Mal neuen Code schreiben müssen, werden die notwendigen Prozeduren in Code-Blöcken gespeichert. Darauf kann dann mit einem einzigen Aufruf zugegriffen werden.
Gespeicherte Verfahren stellen zudem sicher, dass bestimmte Aktionen immer auf die gleiche Art und Weise implementiert werden — nämlich so, wie sie einmal gespeichert wurden.
Sperrung und Parallelität
Was passiert, wenn mehrere Personen gleichzeitig Informationen in einer Datenbank ändern? Hier gibt es zwei Möglichkeiten:
-
Sperrung: Nur jeweils ein Nutzer kann Informationen ändern. Währenddessen wird der Zugriff auf die Datenbank für andere Nutzer gesperrt. So kann Chaos vermieden werden. Teilweise wird auch nicht die ganze Datenbank gesperrt, sondern nur der betroffene Datensatz.
- Parallelität: Mehrere Nutzer können gleichzeitig auf die Datenbank zugreifen. Dabei kontrolliert die Datenbank, dass trotzdem die definierte Richtlinien für die Datenkontrolle eingehalten werden.
Normalisierung von relationalen Datenbanken
Bei der Normalisierung eines Datenbankschemas wird eine Datenbank so umstrukturiert, dass sie möglichst effizient und organisiert arbeitet. Dazu werden die einzelnen Informationen in Tabellen aufgeteilt, die miteinander verknüpft werden. Es wird dabei auf folgende Eigenschaften geachtet:
- keine Redundanzen: Jede Information kommt in der Datenbank nur einmal vor. Sie lässt sich durch ihren Schlüssel eindeutig identifizieren.
- Konsistenz: Alle Daten sind korrekt und aktuell.
Nach der Normalisierung liegt die Datenbank in einer sogenannten Normalform vor.
Auswahl eines relationalen Datenbankmanagementsystems
Um mit einer Datenbank zu arbeiten, ist ein relationales Datenbankmanagementsystem (RSBMS) nötig. Das ist ein Programm, mit dem du Datenbanken erstellen, verändern und verwalten kannst.
Welches RDBMS das Richtige ist, hängt immer von den individuellen Anforderungen ab. Einige Punkte spielen dabei eine entscheidende Rolle:
- Datengenauigkeit: Wie wichtig ist die Datengenauigkeit? Gibt es besonders hohe Anforderungen, beispielsweise für Regierungsdokumente?
- Skalierbarkeit: Wie gut muss sich die Datenbank skalieren, also vergrößern, lassen? Muss die Datenbank auch für große Datenmengen Konsistenz sicherstellen?
- Parallelität: Muss ein paralleler Zugriff durch verschiedene Personen oder Anwendungen auf die Datenbank möglich sein?
- Performance: Wie wichtig ist ein schneller, reibungsloser Zugriff auf die Daten?
Durch immer komplexere Datenbanken wird auch die Verwaltung der Datenbanksysteme immer komplizierter. Eine Lösung bieten künstliche Intelligenz und Machine Learning . Dadurch kann die Verwaltung der Datenbank zunehmend automatisiert werden.
Relationale Datenbank — häufigste Fragen
-
Was ist ein relationales Datenbankmodell?
Eine relationale Datenbank speichert Informationen in Tabellen bzw. Relationen. Eine Relation besteht aus Zeilen (=Tupel) und Spalten (=Attribute). Die Anzahl der Tupel heißt Kardinalität der Relation, die Anzahl der Attribute ist der Grad der Relation.
-
Was ist eine relationale Datenbank leicht erklärt?
Ein relationale Datenbank speichert Daten in Tabellen mit Zeilen und Spalten. Zum Beispiel können die Zeilen die Mitarbeiter einer Firma sein und die Spalten ihr Name, Alter etc. Die Daten und Tabellen haben dabei bestimmte Beziehungen zueinander. -
Ist SQL eine relationale Datenbank?
SQL (=Structured Query Language) ist keine Datenbank, sondern eine Datenbanksprache. Mit SQL können Informationen in einer Datenbank abgefragt, eingefügt, verändert oder gelöscht werden. SQL basiert dabei auf einer relationalen Algebra.
Structured Query Language
Um auf ein relationales Datenbankmodell zuzugreifen wird die Datenbanksprache SQL verwendet. Was genau es damit auf sich hat, erfährst du in diesem Video !