Was ist eine relationale Datenbank?
Eine relationale Datenbank ist eine Sammlung von Datenpunkten mit vordefinierten Beziehungen.
Beim relationalen Modell werden Daten in Tabellen organisiert, wobei jede Zeile einen einzelnen Datensatz darstellt und jede Spalte aus Attributen besteht, die Werte enthalten. Diese tabellarische Datenbankstruktur erleichtert die Herstellung von Beziehungen zwischen Datenpunkten, so dass man auf unterschiedliche Arten auf die Informationen zugreifen kann, ohne dass die Daten selbst neu organisiert werden müssen.
Sie können die Tabellen in einer relationalen Datenbank verknüpfen, um tiefere Einblicke in die Zusammenhänge zwischen verschiedenen Datenpunkten zu erhalten. Zum Beispiel hat die Tabelle Kunde die Spalten Name und Adresse mit den Zeilenwerten John und California. Ebenso hat die Tabelle Produkt die Spalten Name und Kosten mit den Zeilenwerten Schuhe und 12 USD. Wenn Sie die Kundentabelle mit der Produkttabelle verknüpfen, können Sie beliebte Produkte ermitteln, die von Kunden häufiger gekauft werden.
Eine relationale Datenbank ist kurz gesagt eine Möglichkeit, Daten mit vordefinierten Beziehungen zu speichern und darauf zuzugreifen.
Was ist ein relationales Datenbankmanagementsystem?
Ein relationales Datenbankmanagementsystem (RDBMS) ist eine Softwareschicht mit Tools und Diensten zur Verwaltung relationaler Tabellen. In der Praxis werden die Begriffe RDBMS und relationale Datenbank synonym verwendet. Eine relationale Datenbank verfügt über eine einheitliche Schnittstelle zwischen Anwendungen, Benutzern und der relationalen Datenbank. Unternehmen setzen RDBMS zur Verwaltung großer Mengen geschäftskritischer Informationen aus verschiedenen Abteilungen ein.
Mehrere Benutzer können auf unterschiedliche Weise mit der gleichen Datenbank arbeiten. So können sie beispielsweise Datenbankoperationen durchführen und wichtige Datenpunkte zusammenfassen, ohne dass Datenredundanz entsteht. Mit relationalen Datenbankverwaltungssystemen kann Ihr Datenbankadministrator auch den Zugriff auf Ihre Daten besser kontrollieren.
Warum sind relationale Datenbanken wichtig?
Seit der Erfindung des Computers wird die Verwaltung und Speicherung von Daten auf Maschinen immer weiter erforscht. Vor der Einführung relationaler Datenbanken verwendeten Unternehmen ein hierarchisches Datenbanksystem, das mit den Ordnern auf Ihrem Computer vergleichbar ist. Diese frühen Datenbanksysteme konnten große Datenmengen organisieren. Die Möglichkeiten zum Erkennen von Beziehungen zwischen Daten waren jedoch begrenzt. Sie waren außerdem komplex, auf bestimmte Anwendungen zugeschnitten, und die Arbeit damit erforderte technisches Fachwissen.
Das relationale Datenbankmodell wurde als Lösung für diese Probleme entwickelt. Es trennte den physischen Datenspeicher von der Datenbankverwaltung und -nutzung. Mit modernen relationalen Datenbanken können die Benutzer Daten speichern und abrufen, ohne den physischen Datenspeicher verwalten zu müssen. Auch die programmgesteuerte Handhabung logischer Datenstrukturen ist möglich.
Was sind die Vorteile einer relationalen Datenbank?
Der Hauptvorteil des relationalen Datenmodells besteht in der Möglichkeit, aus Daten aussagekräftige Informationen abzuleiten. So können Sie beispielsweise Daten in einer Tabelle zählen, sortieren und gruppieren, mathematische Operationen durchführen und komplexe Berichte erstellen. Daher sind relationale Datenbanksysteme auch heute noch die beliebteste Form der Datenspeicherung. Im Folgenden sind einige weitere Vorteile aufgeführt.
Datenintegrität
Datenintegrität ist die allgemeine Vollständigkeit, Genauigkeit und Konsistenz von Daten. Relationale Datenbanken verwenden einen Satz von Beschränkungen zur Sicherstellung der Datenintegrität in der Datenbank. Dazu gehören Primärschlüssel, Fremdschlüssel, 'Not NULL'-Beschränkung, 'Unique'-Beschränkung, 'Default'-Beschränkung und 'Check'-Beschränkungen.
Diese Integritätsbeschränkungen erleichtern das Durchsetzen von Geschäftsregeln für Daten in den Tabellen, damit die Genauigkeit und Zuverlässigkeit der Daten gewahrt bleibt. Darüber hinaus erlauben die meisten relationalen Datenbanken auch die Einbettung von benutzerdefiniertem Code in Auslösern, die auf der Grundlage einer Aktion an einem Datenpunkt in der Datenbank ausgeführt werden. Benutzerdefinierter Code kann auch in gespeicherte Prozeduren eingebettet werden, die beim Aufrufen durch einen Client oder eine Anwendung ausgeführt werden.
Sicherheit
Die meisten relationalen Datenbankverwaltungssysteme verfügen über ausgefeilte Zugriffskontrollen. Ihre Datenbankadministratoren können genau festlegen, wer welchen Zugriff auf welche Daten haben soll. Sie können den Zugriff auf das Lesen, Ändern und Löschen von Daten sogar auf die Ebene einzelner Zellen beschränken. Diese granulare Zugriffskontrolle macht relationale Datenbanken sehr sicher.
Sicherung und Notfallwiederherstellung
Die meisten relationalen Datenbanken verfügen über Import- und Exportfunktionen, so dass Datensicherungen schnell erstellt werden können. Moderne, cloudbasierte relationale Datenbanken führen eine kontinuierliche Spiegelung durch, so dass Sie verlorene Daten in Sekundenschnelle wiederherstellen können.
Community-Support
Bei einigen relationalen Datenbanktechnologien handelt es sich um Open-Source-Technologien, die kostenlos genutzt werden können. Für Open-Source-Datenbanken gibt es aktive Communitys, die die Features und Funktionen ständig verbessern und anpassen. Entwickler und Dateningenieure haben Zugang zu verschiedenen Tools und Software, die die Nutzung relationaler Datenbanken sehr komfortabel machen.
Wie funktionieren relationale Datenbanken?
Relationale Datenbanken bieten eine Umgebung, in der Anwendungen auf Daten zugreifen und sie auf verschiedene Weise neu zusammensetzen können, ohne dass die Datentabellen im Anwendungscode neu organisiert werden müssen. Im Folgenden sind einige Hauptmerkmale eines relationalen Datenbanksystems aufgeführt.
Datenmodell
Die relationale Datenbank besteht aus Tabellen, die Objekte oder Konzepte aus der realen Welt repräsentieren, die oft als Entitäten bezeichnet werden. Jede Spalte in einer Tabelle enthält eine bestimmte Art von Daten, die als Attribut bezeichnet werden, und in einem Feld ist der tatsächliche Wert eines Attributs gespeichert. Die Zeilen und Spalten in der Tabelle stellen eine Sammlung von zusammenhängenden Werten eines Objekts oder einer Entität dar.
Sie können jede Zeile in einer Tabelle mit einem eindeutigen Bezeichner, dem so genannten Primärschlüssel, versehen. Ein Fremdschlüssel verweist auf den Primärschlüssel einer anderen bestehenden Tabelle und stellt eine logische Verbindung her. Zeilen aus mehreren Tabellen werden also über eine Primärschlüssel/Fremdschlüssel-Paarung miteinander verknüpft. So kann zum Beispiel jede Zeile einer Auftragstabelle einen Fremdschlüssel mit der Kunden-ID enthalten, die die Zeile in der Kundentabelle mit allen Informationen über den Kunden identifiziert.
SQL
Structured Query Language (SQL) ist die wichtigste Schnittstelle für die Kommunikation mit relationalen Datenbanken. SQL wurde 1986 zum Standard des American National Standards Institute (ANSI). Alle gängigen relationalen Datenbank-Engines unterstützen den ANSI-SQL-Standard. Sie können damit Daten aktualisieren, löschen oder speichern, Datenuntergruppen abrufen und alle Aspekte Ihrer relationalen Datenbank verwalten.
SQL ist relativ leicht zu erlernen, da es in seinen Anweisungen gängige englische Schlüsselwörter verwendet. Außerdem lässt es sich gut in verschiedene Programmiersprachen integrieren. So können Sie beispielsweise SQL-Abfragen in die Programmiersprache Java einbetten, um leistungsstarke Datenverarbeitungsanwendungen mit den wichtigsten SQL-Datenbanksystemen zu erstellen.
Transaktionen
Eine relationale Datenbanktransaktion besteht aus einer oder mehreren SQL-Anweisungen, die als eine Folge von Operationen ablaufen und eine einzige logische Arbeitseinheit bilden. Bei Transaktionen geht es um „Alles oder nichts“, d. h. die gesamte Transaktion muss als Einheit abgeschlossen werden. Wenn das relationale Datenbankmanagementsystem einen Teil der Transaktion nicht ausführen kann, wird keiner der einzelnen Bestandteile ausgeführt. In der Terminologie des relationalen Modells führt eine Transaktion zu einem COMMIT oder einem ROLLBACK. Das Datenbankmanagementsystem behandelt jede Transaktion kohärent und zuverlässig, unabhängig und getrennt von anderen Transaktionen.
ACID-Compliance
Alle relationalen Datenbanktransaktionen müssen atomar, konsistent, isoliert und beständig sein (Atomic, Consistent, Isolated and Durable – ACID) sein, damit die Datenintegrität gewahrt bleibt.
Atomarität
Die Atomarität verlangt die erfolgreiche Ausführung der Transaktion als Ganzes. Wenn ein Teil der Transaktion fehlschlägt, werden alle im Rahmen der Transaktion erfolgten Änderungen rückgängig gemacht.
Konsistenz
Die Konsistenz verlangt, dass die im Rahmen der Transaktion in die relationale Datenbank geschriebenen Daten alle definierten Regeln und Begrenzungen einhalten, einschließlich Beschränkungen, Kaskaden und Auslöser.
Isolation
Die Isolation verlangt, dass jede Transaktion für sich unabhängig ist. Wenn mehrere Benutzer gleichzeitig versuchen, Daten in einer relationalen Datenbank zu ändern, verhindern Mechanismen zur Steuerung der Gleichzeitigkeit, dass sie die Änderungen der anderen Benutzer überschreiben.
Beständigkeit
Die Beständigkeit verlangt, dass alle an der relationalen Datenbank vorgenommenen Änderungen dauerhaft sein müssen, sobald eine Transaktion erfolgreich abgeschlossen wurde.
Was sind die verschiedenen Arten von Datenbanken?
Es gibt viele verschiedene Arten von Datenbanken, die auf eine optimale Flexibilität und Skalierbarkeit für bestimmte Datenmodelle ausgelegt sind. Dazu gehören folgende Datenbanktypen:
- Relational: Die Daten werden in einem Tabellenformat gespeichert mit Zeilen für einzelne Datensätze und Spalten zum Speichern von Attributen oder Datenpunkten in Bezug auf die Datensätze.
- Schlüssel-Wert: Die Daten werden in einem Wörterbuchformat gespeichert, und jedes Element hat einen Schlüssel und einen Wert.
- Dokument: Die Daten werden als Dokumente im JSON-, XML- oder einem anderen Format für halbstrukturierte Daten gespeichert.
- Graph: Die Daten werden als Wissensgraph gespeichert, der aus Knoten, Kanten zum Definieren der Beziehung zwischen diesen Knoten und Eigenschaften zum Speichern der einzelnen Datenpunkte besteht.
Was ist der Unterschied zwischen relationalen und nicht-relationalen Datenbanken?
Der Unterschied zwischen relationalen und nicht-relationalen (auch als NoSQL bezeichneten) Datenbanken liegt in der Struktur der darin enthaltenen Daten. Bei einem relationalen Datenbankmodell werden die Daten in Tabellen, Indizes und Ansichten organisiert. Diese tabellarische Struktur erleichtert das Erstellen, Lesen, Ändern und Löschen relevanter Daten mit einer Abfragesprache wie SQL. Jeder Zeile hat die gleiche Struktur, ähnlich wie bei einer Tabellenkalkulation.
Eine nicht-relationale Datenbank hat keine tabellarische Datenstruktur. Stattdessen können die Daten als Schlüssel-Wert-Paare, JSON, Graph oder nahezu jede andere Art von Datenstruktur gespeichert werden. Viele nicht-relationale Datenbanken werden auch als NoSQL-Datenbanken bezeichnet, weil die Daten so gespeichert und abgefragt werden, dass kein SQL erforderlich ist.
Nicht-relationale Datenbanken oder NoSQL-Datenbanken wurden speziell für bestimmte Datenmodelle entwickelt und verfügen über flexible Schemata für den Aufbau moderner Anwendungen. Sie sind weithin anerkannt für ihre einfache Entwicklung, Funktionalität und Leistung im großen Maßstab. Einige Punkte, die sich unterscheiden:
Mechanismus zur Datenspeicherung
Relationale Datenbanken speichern strukturierte Daten in regelbasierten Zeilen und Spalten. Im Gegensatz dazu speichern NoSQL-Datenbanken einzelne Datenelemente in separaten Dateien.
Flexible Struktur
Relationale Datenbanken speichern Daten in Tabellenform und folgen strengen Regeln in Bezug auf Datenvielfalt und Tabellenbeziehungen. Nicht-relationale Datenbanken bieten mehr Flexibilität, weil keine strukturierten Daten erforderlich sind. Sie können sie zum Speichern von Dateien, Videos und anderen unstrukturierten Inhalten verwenden.
Datenintegritätsmechanismus
Ein relationales Datenbankmodell folgt strengen ACID-Eigenschaften. Nicht-relationale Datenbanken richten sich traditionell nach einem flexibleren BASE-Modell (Basically Available, Soft State, Eventual Consistency). Sie gewährleisten zwar die Verfügbarkeit, aber keine starke Konsistenz. Der Datenbankstatus kann sich im Laufe der Zeit ändern und wird schließlich konsistent. Moderne nicht-relationale Datenbanken haben auch ACID, starke Konsistenz, hohe Verfügbarkeit und anderes zu bieten.
Worauf sollten Sie bei der Auswahl einer relationalen Datenbank achten?
Die Anwendungsfälle für relationale Datenbanken können je nach Art und Umfang der gespeicherten Daten sowie der für den Zugriff erforderlichen Leistung variieren. Aus diesem Grund wurde eine Vielzahl von relationalen Datenbank-Engines entwickelt – von Amazon Aurora, Oracle und Microsoft SQL Server bis hin zu MySQL und PostgreSQL –, die jeweils ihre eigenen Vor- und Nachteile haben.
Bei der Auswahl einer relationalen Datenbank ist zu bedenken, ob Sie einen Anbieter für verwaltete Cloud-Dienste finden müssen, der diese Datenbank unterstützt. Amazon Relational Database Service (RDS) ist ein vollständig verwalteter Datenbankservice, der Bereitstellung, Patches, Backups und andere wichtige Aufgaben für die gängigsten relationalen Datenbanken übernimmt. Das bedeutet, dass Sie eine für Ihren Anwendungsfall geeignete Datenbank-Engine wählen können, ohne sich Gedanken über den Wartungsaufwand zu machen.
Wie kann AWS Ihre Anforderungen an ein relationales Datenbankmanagementsystem unterstützen?
Amazon Relational Database Service (Amazon RDS) umfasst eine Reihe verwalteter Services, die das Einrichten, Betreiben und Skalieren von relationalen Datenbanken in der Cloud vereinfachen. Cloud-Datenbanken bieten viele Vorteile wie Leistung, Skalierbarkeit und Kosteneffizienz. Im Folgenden finden Sie einige Beispiele für relationale Datenbank-Engines in Amazon RDS.
Amazon Aurora
Amazon Aurora ist eine mit MySQL und PostgreSQL kompatible relationale Datenbank-Engine. Sie vereint die Geschwindigkeit und Verfügbarkeit kommerzieller High-End-Datenbanken mit der Einfachheit und Kosteneffizienz von Open-Source-Datenbanken. Amazon Aurora bietet bis zu 5x den Durchsatz von MySQL und 3x den Durchsatz von PostgreSQL zu einem Zehntel der Kosten kommerzieller Datenbanken.
Oracle
Amazon RDS für Oracle ermöglicht Ihnen die Bereitstellung mehrerer Editionen von Oracle-Datenbanken in wenigen Minuten mit kosteneffizienter und anpassbarer Hardwarekapazität. Sie können vorhandene Oracle-Lizenzen nutzen oder die Lizenznutzung stundenweise bezahlen. RDS übernimmt komplexe Aufgaben der Datenbankverwaltung, einschließlich Bereitstellung, Backups, Patches, Überwachung und Hardwareskalierung, so dass Sie sich auf die Anwendungsentwicklung konzentrieren können.
Microsoft SQL Server
Amazon RDS für SQL Server erleichtert das Einrichten, Betreiben und Skalieren von SQL Server in der Cloud. Sie können mehrere Editionen von SQL Server bereitstellen, darunter Express, Web, Standard und Enterprise. Da Amazon RDS für SQL Server Ihnen den direkten Zugriff auf die systemeigenen Funktionen von SQL Server ermöglicht, sollten Ihre Anwendungen und Tools ohne Änderungen funktionieren.
MySQL
MySQL ist ein relationales Open-Source-Datenbankverwaltungssystem, das von einer großen Zahl webbasierter Anwendungen genutzt wird. Amazon RDS für MySQL bietet Ihnen Zugriff auf den Funktionsumfang einer vertrauten MySQL-Datenbank-Engine. Dies bedeutet, dass der Code, die Anwendungen und die Tools, die Sie bereits mit Ihren bestehenden Datenbanken verwenden, ohne Änderungen mit Amazon RDS genutzt werden können.
PostgreSQL
PostgreSQL ist ein objektrelationales Open-Source-Datenbanksystem mit Schwerpunkt auf Erweiterbarkeit und Einhaltung von Standards. Amazon RDS für PostgreSQL übernimmt undifferenzierte zeitaufwändige Datenbankverwaltungsaufgaben wie die Installation von PostgreSQL-Software, Speicherverwaltung und Upgrades. Sie können innerhalb von Minuten die Bereitstellung vornehmen und loslegen.
MariaDB
MariaDB ist eine mit MySQL kompatible Datenbank-Engine, bei der es sich um eine Abspaltung von MySQL handelt. Sie wurde von den ursprünglichen Entwicklern von MySQL entwickelt. Amazon RDS für MariaDB vereinfacht das Einrichten, Betreiben und Skalieren von MariaDB-Bereitstellungen in der Cloud. Mit Amazon RDS können Sie dank kosteneffizienter und anpassbarer Hardwarekapazität in nur wenigen Minuten skalierbare MariaDB-Datenbanken realisieren.
Sie sollten noch heute ein kostenloses Konto erstellen und mit Ihrer relationalen Datenbank in AWS beginnen!