Was ist eine relationale Datenbank? Vorteile und Nachteile relationaler Datenbanken
Jedes Programm hat eine Datenbank. Dort werden alle Informationen gespeichert, die für den Betrieb Ihrer Software notwendig sind. In diesem Artikel betrachten wir einen der gängigsten Datenbanktypen – die relationale Datenbank.
Was ist eine Datenbank?
Eine Datenbank ist eine Sammlung von Daten, die in einem geeigneten Format gespeichert sind. Das Format bestimmt, wie Sie auf die Daten zugreifen können. Je nach Anwendung werden Daten unterschiedlich gespeichert, und die Art der Speicherung beeinflusst die Performance von Operationen (Schreiben, Lesen, Löschen, Ändern).
Es gibt viele Arten von Datenbanken, und die relationale Datenbank ist eine der beliebtesten.
Was ist eine relationale Datenbank?
Der Begriff „relational database“ wurde 1970 von Dr. Edgar Ted Codd (IBM) eingeführt. In einer relationalen Datenbank konfigurieren Sie als Nutzer die gewünschten Beziehungen, und Informationen werden entsprechend gespeichert und abgerufen. In diesem Modell werden Daten in einfachen linearen Dateien gespeichert, die „relations“ oder „tables“ genannt werden.
Operationen in relationalen Datenbanken basieren auf relational algebra – einer Menge von Operatoren, die Relationen manipulieren. Die Ergebnisse und Argumente dieser Operatoren sind Relationen. Es gibt Operatoren für Mengenoperationen und solche, die speziell für das relationale Modell entwickelt wurden.
Das relationale Modell führte SQL (Structured Query Language) ein, die Hauptsprache für den Zugriff und die Modifikation von Daten in Datenbanken.
Grundlagen der Implementierung relationaler Datenbanken
Datenbanken haben unterschiedliche Implementierungen und unterstützen verschiedene SQL-Versionen (Dialekte).
Zu den bekanntesten Implementierungen gehören:
- PostgreSQL
- MySQL
- SQLite
- Oracle
- SQL Server
- HyperSQL
Die Basiseinheit in SQL ist ein query. Es gibt drei Grundtypen von Suchanfragen (select queries):
- Projection (Auswahl bestimmter Felder/Spalten)
- Selection (Auswahl von Datensätzen, die eine Bedingung erfüllen)
- Joining (Zusammenführen von Daten aus verschiedenen Tabellen)
Vorteile relationaler Datenbanken
Relationale Datenbanken sind sehr nützlich, weil:
- Ein einfaches, aber leistungsfähiges relationales Modell kann von Unternehmen jeder Größe für viele Informationsbedürfnisse genutzt werden.
- Sie können zur Bestandsverwaltung, für E-Commerce-Transaktionen, zur Verwaltung großer Kundendatenmengen usw. verwendet werden.
- Sie eignen sich überall dort, wo Daten miteinander verknüpft und sicher, regelbasiert und konsistent verwaltet werden müssen.
Trotz ihres Alters sind relationale Datenbanken bis heute das am weitesten verbreitete Datenbankmodell.
Worauf sollte man bei der Auswahl einer relationalen Datenbank achten?
Die Software zur Verwaltung einer relationalen Datenbank heißt RDBMS (Relational Database Management System).
Ein RDBMS bietet eine Schnittstelle zwischen Nutzern, Anwendungen und der Datenbank sowie administrative Funktionen.
Die Wahl eines bestimmten RDBMS hängt von den Geschäftsanforderungen ab. Wichtige Fragen sind:
- Wie hoch sind die Anforderungen an die Datenintegrität?
- Hängt die Datenhaltung und -genauigkeit von der Geschäftslogik ab?
- Gibt es strenge Anforderungen an die Genauigkeit (z. B. Finanzdaten)?
- Benötigen wir Skalierbarkeit?
- Wie groß ist das Datenvolumen und wie wird es wachsen?
- Ist Concurrency (gleichzeitiger Zugriff) wichtig?
- Welche Anforderungen gibt es an Performance und Zuverlässigkeit?
- Wie schnell müssen Abfragen beantwortet werden?
- Welche SLAs oder Ausfallzeiten garantiert der Anbieter?
Die Hauptregeln relationaler Datenbanken (und SQL)
Relationale Datenbanken und SQL basieren auf vier einfachen Regeln:
- Alle Datenwerte basieren auf einfachen Datentypen.
- Alle Daten werden in zweidimensionalen Tabellen („relations“) dargestellt.
- Jede Tabelle enthält null oder mehr Zeilen („tuples“) und eine oder mehrere Spalten („attributes“).
- Jede Zeile besteht aus denselben Spalten, aber die Werte können unterschiedlich sein.
- Nach der Dateneingabe können Werte aus verschiedenen Spalten, auch aus verschiedenen Tabellen, verglichen und Zeilen zusammengeführt werden, wenn Werte übereinstimmen.
- Dies ermöglicht Datenverknüpfungen und komplexe Operationen.
- Die Reihenfolge der Zeilen ist beliebig.
- Beziehungstypen: one-to-one, one-to-many, many-to-many.
- Da eine Zeile nicht durch ihre Position identifiziert werden kann, muss es eine oder mehrere eindeutige Spalten (primary key) geben, um eine bestimmte Zeile zu finden.
- Es gibt auch foreign keys, die auf primary keys in anderen Tabellen verweisen.
Schritte zur Vorbereitung einer Datenbank
- Anforderungsdefinition
- Vorentwurf von Formularen und Berichten
- Tabellenerstellung
- Definition der Beziehungen
- Formularerstellung
- Erstellung von Abfragen und Berichten
Fünf Regeln für Tabellen:
- Eine Informationskategorie pro Tabelle
- Eine Information pro Spalte
- Eindeutige, klare Namen
- Keine Wiederholung derselben Information in mehreren Tabellen
- Keine Listen in einem Feld speichern
Es gibt verschiedene Einschränkungen, z. B. referential integrity constraint (z. B. Customer ID muss in beiden Tabellen existieren).
Daten sollten normalisiert sein
Normalisierung bedeutet, Daten so zu organisieren, dass sie effizient gespeichert und abgerufen werden können. In relationalen Datenbanken heißen diese Regeln „normal forms“.
Nachteile relationaler Datenbanken
Nicht jeder ist Fan relationaler Datenbanken. Entwickler könnten sie nicht mögen, weil:
- Es ist eine alte Technologie
- Das relationale Modell und SQL können schwierig sein
- Relationale Datenbanken skalieren schlecht bei sehr großen Projekten
- Es gibt viel Overhead – das Modell erzwingt eine bestimmte Struktur, was die Flexibilität einschränkt
Wann sollte man relationale Datenbanken verwenden?
- Bei mittleren Workloads (tausende Operationen pro Sekunde)
- Wenn die Daten strukturiert und stabil sind
- Wenn die Datenbeziehungen auf normalisierten Modellen basieren
- Wenn komplexe Abfragen benötigt werden
- Bei Einsatz auf dedizierter Hardware (in der Cloud kann SQL teuer sein)
Alternativen zu relationalen Datenbanken – moderne Modelle
Alternativen sind NoSQL (non-relational databases). Es gibt vier Typen:
- Key-value stores (wie ein Wörterbuch/hash table)
- Graph stores (Knoten und Verbindungen, gut für komplexe Beziehungen)
- Column stores (Daten werden spaltenweise gespeichert, gut für Analysen)
- Document stores (Daten als Dokumente, z. B. JSON, XML, PDF)
Zusammenfassung
Obwohl das relationale Modell eine ausgereifte, 50 Jahre alte Technologie ist, gibt es in vielen Bereichen noch keine Alternative. Der Datenbankmarkt entwickelt sich ständig weiter, und die Nachfrage nach Spezialisten steigt. Moderne Organisationen nutzen Datenbanken nicht nur zur Speicherung und für Transaktionen, sondern auch zur Analyse. Die Wahl des richtigen Datenmodells ist eine langfristige, strategische Entscheidung. Wenn Sie Unterstützung benötigen, helfen wir Ihnen gerne, die beste Lösung für Ihre Anwendung zu finden.
Weitere Informationen zu Data Engineering finden Sie in unserem Blog: