Was ist eine relationale Datenbank (RDMBS)?

Eine relationale Datenbank ist ein Datenbanktyp, der die Speicherung und den Zugriff auf miteinander verbundene Datenpunkte ermöglicht. Relationale Datenbanken basieren auf dem relationalen Modell, einer intuitiven und einfachen Art, Daten in Tabellen darzustellen. In einer relationalen Datenbank ist jede Zeile in der Tabelle ein Datensatz mit einer eindeutigen ID, die als Schlüssel bezeichnet wird. Die Spalten der Tabelle enthalten Attribute der Daten, und jeder Datensatz verfügt in der Regel über einen Wert für jedes Attribut, sodass die Beziehungen zwischen Datenpunkten einfach hergestellt werden können.

Beispiel für eine relationale Datenbank

Dies ist ein einfaches Beispiel für zwei Tabellen, die ein kleines Unternehmen nutzen könnte, um Bestellungen für seine Produkte zu bearbeiten. Die erste Tabelle enthält Kundeninformationen. Jeder Datensatz umfasst Name, Adresse, Versand- und Rechnungsinformationen, Telefonnummer und andere Kontaktinformationen eines Kunden. Jede Information (jedes Attribut) befindet sich in einer eigenen Spalte und die Datenbank weist jeder Zeile eine eindeutige ID (einen Schlüssel) zu. In der zweiten Tabelle mit Kundenbestellungen enthält jeder Datensatz die ID des Kunden, der die Bestellung aufgegeben hat, das bestellte Produkt, die Menge, die ausgewählte Größe und Farbe usw., jedoch nicht den Namen oder Kontaktinformationen des Kunden.

Diese beiden Tabellen haben nur eines gemeinsam: Die ID-Spalte (das wichtigste Element) Aufgrund dieser gemeinsamen Spalte kann die relationale Datenbank jedoch eine Beziehung zwischen den beiden Tabellen herstellen. Wenn dann die Anwendung zur Auftragsabwicklung des Unternehmens einen Auftrag an die Datenbank sendet, kann die Datenbank in die Kundenauftragstabelle wechseln, die korrekten Informationen zur Produktbestellung abrufen und die Kunden-ID aus dieser Tabelle verwenden, um nach den Rechnungs- und Versandinformationen des Kunden in der Kundeninformationstabelle zu suchen. Das entsprechende Produkt kann dann aus dem Lager entnommen werden, die Bestellung geht rechtzeitig an den Kunden und das Unternehmen wird bezahlt.

Aufbau relationaler Datenbanken

Im relationalen Modell sind die logischen Datenstrukturen – die Datentabellen, Ansichten und Indizes – von den physischen Speicherstrukturen getrennt. Diese Trennung sorgt dafür, dass Datenbankadministratoren physischen Datenspeicher verwalten können, ohne den Zugriff auf diese Daten als logische Struktur zu beeinträchtigen. So werden beispielsweise beim Umbenennen einer Datenbankdatei die darin gespeicherten Tabellen nicht umbenannt.

Die Unterscheidung zwischen logisch und physisch gilt auch für Datenbankoperationen, bei denen es sich um klar definierte Aktionen handelt, mit denen Anwendungen die Daten und Strukturen der Datenbank bearbeiten können. Mit logischen Operationen kann eine Anwendung den benötigten Inhalt angeben und mit physischen Operationen wird festgelegt, wie auf diese Daten zugegriffen werden soll, und die Aufgabe wird dann ausgeführt.

Um sicherzustellen, dass die Daten immer korrekt und zugänglich sind, folgen relationale Datenbanken bestimmten Integritätsregeln. Beispielsweise kann eine Integritätsregel festlegen, dass doppelte Zeilen in einer Tabelle nicht zulässig sind, um die Möglichkeit auszuschließen, dass fehlerhafte Informationen in die Datenbank gelangen.

Das relationale Modell

In den Anfangsjahren von Datenbanken speicherte jede Anwendung Daten in einer eigenen eindeutigen Struktur. Wenn Entwickler Anwendungen zur Verwendung dieser Daten erstellen wollten, mussten sie viel über die jeweilige Datenstruktur wissen, um die benötigten Daten zu finden. Diese Datenstrukturen waren ineffizient, schwer aufrechtzuerhalten und schwer für die Bereitstellung einer guten Performance der Anwendung zu optimieren. Das relationale Datenbankmodell wurde entwickelt, um das Problem mehrerer beliebiger Datenstrukturen zu lösen.

Das relationale Modell bot eine Standardmethode zum Darstellen und Abfragen von Daten, die von jeder Anwendung verwendet werden konnten. Von Anfang an erkannten die Entwickler, dass die Hauptstärke des relationalen Datenbankmodells in der Verwendung von Tabellen lag, die eine intuitive, effiziente und flexible Möglichkeit zum Speichern und Zugreifen auf strukturierte Informationen darstellten.

Als Entwickler begannen, strukturierte Abfragesprachen (Structured Query Languages, SQL) zum Schreiben und Abfragen von Daten in einer Datenbank zu verwenden, entwickelte sich allmählich eine weitere Stärke des relationalen Modells. SQL ist seit vielen Jahren die gängige Sprache für Datenbankabfragen. Basierend auf der relationalen Algebra bietet SQL eine intern konsistente mathematische Sprache, mit der sich die Performance aller Datenbankabfragen leichter verbessern lässt. Im Vergleich dazu müssen andere Ansätze einzelne Abfragen definieren.

Vorteile eines relationalen Datenbank-Verwaltungssystems

Das einfache, aber leistungsstarke relationale Modell wird von Unternehmen aller Arten und Größen für eine Vielzahl von Informationsbedürfnissen genutzt. Relationale Datenbanken werden verwendet, um Bestände zu verfolgen, E-Commerce-Transaktionen zu verarbeiten, große Mengen an geschäftskritischen Kundeninformationen zu verwalten und vieles mehr. Eine relationale Datenbank kann für jeden Informationsbedarf in Betracht gezogen werden, bei dem sich Datenpunkte aufeinander beziehen, und muss auf sichere, regelbasierte und konsistente Weise verwaltet werden.

Relationale Datenbanken gibt es seit den 1970er Jahren. Die Vorteile des relationalen Modells machen es auch heute noch zum am weitesten verbreiteten Modell für Datenbanken.

Relationales Modell und Datenkonsistenz

Das relationale Modell eignet sich am besten zum Aufrechterhalten der Datenkonsistenz in Anwendungen und Datenbankkopien (sogenannte Instanzen). Wenn ein Kunde beispielsweise Geld an einem Geldautomaten einzahlt und sich dann den Kontostand auf einem Mobiltelefon ansieht, erwartet der Kunde, dass sich diese Einzahlung sofort in einem aktualisierten Kontostand widerspiegelt. Relationale Datenbanken zeichnen sich durch diese Art von Datenkonsistenz aus und stellen sicher, dass mehrere Instanzen einer Datenbank immer die gleichen Daten enthalten.

Für andere Datenbanktypen ist es schwierig, diese zeitnahe Konsistenz mit großen Datenmengen beizubehalten. Einige neuere Datenbanken, z. B. NoSQL, bieten nur „Eventual Consistency“. Nach diesem Prinzip dauert es beim Skalieren der Datenbank oder beim gleichzeitigen Zugriff mehrerer Benutzer auf dieselben Daten einige Zeit, bis die Konsistenz erzielt ist. Für einige Verwendungszwecke ist die Eventual Consistency akzeptabel, z. B. zur Pflege von Listen in einem Produktkatalog. Bei kritischen Geschäftsprozessen, z. B. bei Warenkorbtransaktionen, ist die relationale Datenbank jedoch immer noch der Goldstandard.

Verbindlichkeit und Atomarität

Relationale Datenbanken verarbeiten Geschäftsregeln und -richtlinien äußerst präzise mit strengen Richtlinien zur Dauerhaftigkeit (das heißt, eine Änderung an der Datenbank ist dauerhaft). Angenommen, eine Inventardatenbank verfolgt drei Teile, die immer zusammen genutzt werden. Wenn ein Teil dem Lager entnommen wird, müssen auch die anderen beiden entnommen werden. Wenn eines der drei Teile nicht verfügbar ist, darf keines der Teile dem Lager entnommen werden. Alle drei Teile müssen verfügbar sein, bevor die Datenbank die Daten dauerhaft speichert. Eine relationale Datenbank würde kein Teil bestätigen, bevor nicht alle drei Teile verfügbar sind. Diese vielfältige Einsatzfähigkeit wird als Atomarität bezeichnet. Atomarität ist der Schlüssel, um Daten in der Datenbank korrekt zu speichern und sicherzustellen, dass sie den Regeln, Vorschriften und Richtlinien des Unternehmens entsprechen.

ACID-Eigenschaften und RDBMS

Vier entscheidende Eigenschaften definieren relationale Datenbanktransaktionen: Atomarität, Konsistenz, Isolation und Dauerhaftigkeit – dies wird üblicherweise als ACID bezeichnet.

  • Atomarität definiert alle Elemente, die eine vollständige Datenbanktransaktion ausmachen.
  • Konsistenz bezeichnet die Regeln, die festlegen, dass Datenpunkte nach einer Transaktion in einem korrekten Zustand bleiben.
  • Isolation sorgt dafür, dass die Auswirkungen einer Transaktion für andere unsichtbar bleiben, bis sie durchgeführt ist. Auf diese Weise wird Verwirrung vermieden.
  • Dauerhaftigkeit stellt sicher, dass Datenänderungen dauerhaft sind, sobald die Transaktion durchgeführt wurde.

Gespeicherte Verfahren und relationale Datenbanken

Der Datenzugriff umfasst viele sich wiederholende Aktionen. Beispielsweise muss eine einfache Abfrage zum Abrufen von Informationen aus einer Datentabelle möglicherweise Hunderte oder Tausende Male wiederholt werden, bis das gewünschte Ergebnis erzielt wird. Diese Datenzugriffsfunktionen erfordern einen bestimmten Code für den Zugriff auf die Datenbank. Anwendungsentwickler wollen nicht in jeder neuen Anwendung neuen Code für diese Funktionen schreiben. Glücklicherweise ermöglichen relationale Datenbanken gespeicherte Prozeduren. Dabei handelt es sich um Codeblöcke, auf die mit einem einfachen Anwendungsaufruf zugegriffen werden kann. Beispielsweise kann eine einzelne gespeicherte Prozedur eine konsistente Datensatzkennzeichnung für Benutzer mehrerer Anwendungen bereitstellen. Gespeicherte Prozeduren können Entwickler auch dabei unterstützen, sicherzustellen, dass bestimmte Datenfunktionen in der Anwendung auf eine bestimmte Weise implementiert werden.

Datenbanksperrung und Nebenläufigkeit

Wenn mehrere Benutzer oder Anwendungen versuchen, dieselben Daten gleichzeitig zu ändern, können Konflikte in einer Datenbank auftreten. Durch Techniken für Sperrung und Parallelität wird das Konfliktpotenzial verringert, während die Integrität der Daten erhalten bleibt.

Sperrung verhindert, dass andere Benutzer und Anwendungen auf Daten zugreifen, während diese aktualisiert werden. In einigen Datenbanken gilt die Sperrung für die gesamte Tabelle, was sich negativ auf die Performance der Anwendung auswirkt. Andere Datenbanken, z. B. relationale Datenbanken von Oracle, wenden Sperren auf Datensatzebene an, sodass die anderen Datensätze in der Tabelle verfügbar bleiben, um eine bessere Performance der Anwendung sicherzustellen.

Parallelität verwaltet die Aktivität, wenn mehrere Benutzer oder Anwendungen gleichzeitig Abfragen in derselben Datenbank aufrufen. Diese Funktion bietet Nutzern und Anwendungen den richtigen Zugriff gemäß den für die Datenkontrolle definierten Richtlinien.

Worauf Sie bei der Auswahl einer relationalen Datenbank achten müssen

Die Software zum Speichern, Verwalten, Abfragen und Abrufen von Daten, die in einer relationalen Datenbank gespeichert sind, wird als relationales Datenbank-Verwaltungsssystem (RDBMS) bezeichnet. Das RDBMS bietet eine Schnittstelle zwischen Nutzern und Anwendungen und der Datenbank sowie administrative Funktionen zum Verwalten von Datenspeicher, Zugriff und Performance.

Bei der Auswahl zwischen Datenbanktypen und relationalen Datenbankprodukten können verschiedene Faktoren für Ihre Entscheidung ausschlaggebend sein. Welches RDBMS Sie auswählen, hängt von Ihren Unternehmensanforderungen ab. Stellen Sie sich folgende Fragen:

  • Was sind unsere Anforderungen an die Datengenauigkeit? Hängen Datenspeicher und -genauigkeit von der Geschäftslogik ab? Haben unsere Daten strenge Anforderungen an die Genauigkeit (z. B. Finanzdaten und Regierungsberichte)?
  • Benötigen wir Skalierbarkeit? Wie groß sind die zu verwaltenden Daten und wie hoch ist das erwartete Wachstum? Muss das Datenbankmodell gespiegelte Datenbankkopien (als separate Instanzen) für die Skalierbarkeit unterstützen? Wenn ja, kann es Datenkonsistenz in diesen Instanzen beibehalten?
  • Wie wichtig ist Parallelität? Benötigen mehrere Benutzer und Anwendungen gleichzeitigen Datenzugriff? Unterstützt die Datenbanksoftware Parallelität beim Schutz der Daten?
  • Welche Anforderungen stellen wir an Performance und Zuverlässigkeit? Benötigen wir ein Produkt mit hoher Performance und Zuverlässigkeit? Was sind die Anforderungen an die Abfrage-Antwort-Performance? Was sind die Zusagen des Anbieters in Bezug auf Service Level Agreements (SLAs) oder ungeplante Ausfallzeiten?

Die relationale Datenbank der Zukunft: Die selbstverwaltende Datenbank

Im Laufe der Jahre wurden relationale Datenbanken besser, schneller, stabiler und einfacher zu bearbeiten. Aber sie wurden auch immer komplexer und die Verwaltung der Datenbank war lange Zeit ein Vollzeitjob. Anstatt sich mit ihrem Fachwissen auf die Entwicklung innovativer Anwendungen zu konzentrieren, die dem Unternehmen einen Mehrwert bringen, mussten Entwickler den größten Teil ihrer Zeit für die Managementaktivitäten aufwenden, die zur Optimierung der Datenbankleistung erforderlich waren.

Heutzutage baut die autonome Technologie auf den Stärken des relationalen Modells, der Cloud-Datenbank-Technologie und maschinellem Lernen auf, um eine neue Art relationaler Datenbanken bereitzustellen. Die selbstverwaltende Datenbank (auch als autonome Datenbank bezeichnet) behält die Leistungsfähigkeit und die Vorteile des relationalen Modells bei, verwendet jedoch künstliche Intelligenz (KI), Machine Learning und Automatisierung, um Abfrageperformance und Verwaltungsaufgaben zu überwachen und zu verbessern. Um beispielsweise die Abfrageperformance zu verbessern, kann die selbstverwaltende Datenbank zur Beschleunigung von Abfragen Hypothesen zu Indizes aufstellen und dann die Indizes testen. Die besten kann sie dann in die Produktion übernehmen, und das alles vollkommen selbständig. Die selbstverwaltende Datenbank führt diese Verbesserungen kontinuierlich durch, ohne dass ein menschliches Eingreifen erforderlich ist.

Autonome Technologie befreit Entwickler von den alltäglichen Aufgaben der Datenbankverwaltung. Beispielsweise müssen sie die Infrastrukturanforderungen nicht mehr im Voraus festlegen. Stattdessen können sie mit einer selbstverwaltenden Datenbank nach Bedarf Speicher- und Rechenressourcen hinzufügen, um das Datenbankwachstum zu unterstützen. Mit nur wenigen Schritten können Entwickler auf einfache Weise eine autonome relationale Datenbank erstellen und so die Zeit für die Anwendungsentwicklung verkürzen.