Eine relationale Datenbank organisiert Daten in Zeilen und Spalten, die zusammen eine Tabelle bilden. Die Daten sind in der Regel über mehrere Tabellen strukturiert, die über einen Primär- oder Fremdschlüssel miteinander verbunden werden können. Diese eindeutigen Kennungen verdeutlichen die verschiedenen Beziehungen, die zwischen den Tabellen bestehen, und diese Beziehungen werden in der Regel durch verschiedene Arten von Datenmodellen dargestellt. Analysten verwenden SQL-Abfragen, um verschiedene Datenpunkte zu kombinieren und die Unternehmensleistung zusammenzufassen. So können Unternehmen Einblicke gewinnen, Arbeitsabläufe optimieren und neue Chancen erkennen.
Stellen Sie sich zum Beispiel vor, Ihr Unternehmen unterhält eine Datenbanktabelle mit Kundeninformationen, die Unternehmensdaten auf der Kontoebene enthält. Es kann auch eine andere Tabelle vorliegen, die alle einzelnen Transaktionen beschreibt, die sich auf dieses Konto beziehen. Zusammen können diese Tabellen Informationen über die verschiedenen Branchen liefern, die ein bestimmtes Softwareprodukt kaufen.
Die Spalten (oder Felder) für die Kundentabelle könnten sein: Kunden-ID, Firmenname, Firmenadresse, Branche usw. Die Spalten für eine Transaktionstabelle könnten sein: Transaktionsdatum, Kunden-ID, Transaktionsbetrag, Zahlungsmethode usw. Die Tabellen können über das gemeinsame Feld Kunden-ID miteinander verbunden werden. Sie können daher die Tabelle abfragen, um wertvolle Berichte zu erstellen, beispielsweise Verkaufsberichte nach Branche oder Unternehmen, die als Informationsquelle für Mitteilungen an potenzielle Kunden dienen können.
Relationale Datenbanken sind in der Regel auch mit transaktionalen Datenbanken verbunden, die Befehle oder Transaktionen gemeinsam ausführen. Ein beliebtes Beispiel hierfür ist eine Banküberweisung. Ein bestimmter Betrag wird von einem Konto abgehoben und dann auf einem anderen Konto eingezahlt. Der gesamte Geldbetrag wird abgehoben und eingezahlt, und diese Transaktion kann nur vollständig erfolgen. Transaktionen haben bestimmte Eigenschaften. Die ACID-Eigenschaften werden durch das Akronym ACID dargestellt und sind wie folgt definiert:
Diese Eigenschaften ermöglichen eine zuverlässige Transaktionsverarbeitung.
Während eine relationale Datenbank Daten auf der Grundlage eines relationalen Datenmodells organisiert, ist ein relationales Datenbankmanagementsystem (RDBMS) ein spezifischerer Verweis auf die zugrundeliegende Datenbanksoftware, die es den Benutzern ermöglicht, sie zu verwalten. Diese Programme ermöglichen es den Benutzern, Daten im System zu erstellen, zu aktualisieren, einzufügen oder zu löschen, und sie bieten Folgendes:
Beispiele für gängige RDBMS-Systeme umfassen MySQL, PostgreSQL und IBM DB2. Außerdem unterscheidet sich ein relationales Datenbanksystem von einem einfachen Datenbankmanagementsystem (DBMS) dadurch, dass es Daten in Tabellen speichert, während ein DBMS Informationen als Dateien speichert.
Die von Don Chamberlin und Ray Boyce bei IBM erfundene Structured Query Language (SQL) ist die Standardprogrammiersprache für die Interaktion mit relationalen Datenbankverwaltungssystemen, die es Datenbankadministratoren ermöglicht, Datenzeilen auf einfache Weise hinzuzufügen, zu aktualisieren oder zu löschen. Ursprünglich unter dem Namen SEQUEL bekannt, wurde es aufgrund eines Markenrechtsproblems zu SQL vereinfacht. SQL-Abfragen ermöglichen es den Benutzern auch, mit nur wenigen Codezeilen die Daten aus Datenbanken abzurufen. Angesichts dieser Abhängigkeit ist es leicht einzusehen, warum relationale Datenbanken manchmal auch als „SQL-Datenbanken“ bezeichnet werden.
Anhand des obigen Beispiels könnten Sie eine Abfrage erstellen, um die zehn wichtigsten Transaktionen nach Unternehmen für ein bestimmtes Jahr anhand des folgendem Code zu ermitteln:
SELECT COMPANY_NAME, SUM(TRANSACTION_AMOUNT)
FROM TRANSACTION_TABLE A
LEFT JOIN CUSTOMER_TABLE B
ON A.CUSTOMER_ID = B.CUSTOMER_ID
WHERE YEAR(DATE) = 2022
GROUP BY 1
ORDER BY 2 DESC
LIMIT 10
Die Möglichkeit, Daten auf diese Weise zu verknüpfen, hilft uns, die Redundanz in unseren Datensystemen zu verringern. So können die Datenteams eine einzige Mastertabelle für die Kunden pflegen, anstatt diese Informationen zu duplizieren, wenn es in Zukunft eine weitere Transaktion gibt. Don Chamberlin geht in seinem Artikel näher auf die Geschichte von SQL ein (der Link befindet sich außerhalb von IBM).
Bevor es relationale Datenbanken gab, verwendeten Unternehmen ein hierarchisches Datenbanksystem mit einer baumartigen Struktur für die Datentabellen. Diese frühen Datenbankmanagementsysteme (DBMS) ermöglichten es den Benutzern, große Datenmengen zu organisieren. Sie waren jedoch sehr komplex, oft an eine bestimmte Anwendung gebunden und nur begrenzt in der Lage, bestimmte Daten aufzufinden. Diese Einschränkungen führten schließlich dazu, dass der IBM Forscher Edgar F. Codd 1970 ein Papier (Link befindet sich außerhalb von IBM) (PDF, 1,5 MB) mit dem Titel „A Relational Model of Data for Large Shared Data Banks“ veröffentlichte, in dem das relationale Datenbankmodell vorgestellt wurde. In diesem Modell konnten Informationen ohne spezielle Computerkenntnisse abgerufen werden. Er schlug vor, Daten basierend auf aussagefähigen Beziehungen als Tupel oder Attribut-Wert-Paare anzuordnen. Gruppen von Tupeln wurden als Relationen bezeichnet, die letztlich die Zusammenführung von Daten über Tabellen hinweg ermöglichten.
1973 startete das San Jose Research Laboratory – heute das Almaden Research Center – ein Programm namens System R (R für relational), um diese relationale Theorie mit einer, wie es hieß, „industrietauglichen Implementierung“ zu beweisen. Das Programm wurde schließlich auch zu einem Testfeld für SQL, sodass es sich in kurzer Zeit weiterverbreiten konnte. Doch auch die Übernahme von SQL durch Oracle tat der Popularität des Unternehmens bei Datenbankadministratoren keinen Abbruch.
1983 führte IBM die DB2-Familie relationaler Datenbanken ein, die so genannt wurde, weil es sich um IBMs zweite Familie von Datenbankmanagementsoftware handelte. Heute ist DB2 eines der erfolgreichsten Produkte von IBM, das weiterhin täglich Milliarden von Transaktionen in der Cloudinfrastruktur verarbeitet und die Grundlage für Anwendungen des maschinellen Lernens bildet.
Um mehr über die Geschichte von IBM zu erfahren, klicken Sie hier.
Während relationale Datenbanken die Daten in einem tabellarischen Format strukturieren, haben nicht-relationale Datenbanken kein so starres Datenbankschema. Tatsächlich organisieren nicht-relationale Datenbanken die Daten je nach Datenbankart unterschiedlich. Unabhängig von der nicht-relationalen Datenbankart zielen sie alle darauf ab, die mit relationalen Modellen verbundenen Probleme der Flexibilität und Skalierbarkeit zu lösen, die für unstrukturierte Datenformate wie Text, Video und Bilder nicht ideal sind. Zu diesen Arten von Datenbanken gehören:
NoSQL-Datenbanken stellen außerdem die Verfügbarkeit über die Konsistenz.
Wenn Computer über ein Netz laufen, müssen sie immer entscheiden, ob sie konsistente Ergebnisse (bei denen jede Antwort immer gleich ist) oder eine hohe Betriebszeit, die sogenannte „Verfügbarkeit“ bevorzugen. Dies wird als „CAP-Theorie“ bezeichnet, die für „Consistency, Availability, or Partition Tolerance“ (Konsistenz, Verfügbarkeit oder Partitionstoleranz) steht. Relationale Datenbanken gewährleisten, dass die Informationen stets synchron und konsistent sind. Einige NoSQL-Datenbanken, wie Redis, ziehen es vor, immer zu intervenieren. Das bedeutet, dass die Informationen, die Sie bei einer Abfrage erhalten, einige Sekunden lang – vielleicht sogar bis zu einer halben Minute – falsch sein können. Auf Websites sozialer Medien bedeutet dies, dass ein altes Profilbild angezeigt wird, während das neueste erst wenige Augenblicke alt ist. Die Alternative könnte eine Zeitüberschreitung oder ein Fehler sein. Bei Bank- und Finanztransaktionen hingegen kann ein Fehler und eine erneute Übermittlung besser sein als alte, falsche Informationen.
Eine vollständige Übersicht über die Unterschiede zwischen SQL und NoSQL finden Sie unter „SQL- vs. NoSQL-Datenbanken: Was ist der Unterschied?“.
Der Hauptvorteil des relationalen Datenbankkonzepts ist die Möglichkeit, durch die Verknüpfung von Tabellen aussagekräftige Informationen zu erstellen. Die Verknüpfung von Tabellen ermöglicht es Ihnen, die Beziehungen zwischen den Daten zu verstehen, oder wie die Tabellen miteinander verbunden sind. SQL bietet die Möglichkeit, Abfragen zu zählen, addieren, gruppieren und kombinieren. SQL kann grundlegende mathematische Funktionen und Zwischensummen sowie logische Transformationen durchführen. Analysten können die Ergebnisse nach Datum, Name oder einer beliebigen Spalte ordnen. Diese Eigenschaften machen den relationalen Ansatz zum beliebtesten Abfragetool in der heutigen Geschäftswelt.
Relationale Datenbanken haben im Vergleich zu anderen Datenbankformaten mehrere Vorteile:
Aufgrund ihrer Produktlebensdauer gibt es eine größere Gemeinschaft rund um relationale Datenbanken, was zum Teil ihre weitere Verwendung begünstigt. Mit SQL ist es auch einfach, Datensätze aus mehreren Tabellen abzurufen und einfache Transformationen wie Filterung und Aggregation durchzuführen. Die Verwendung von Indizes in relationalen Datenbanken ermöglicht es ihnen auch, diese Informationen schnell zu finden, ohne jede Zeile der ausgewählten Tabelle zu durchsuchen.
Während relationale Datenbanken in der Vergangenheit als starrere und unflexiblere Datenspeicheroption angesehen wurden, ändern Fortschritte in der Technologie und DBaaS-Optionen diese Wahrnehmung. Zwar ist der Aufwand für die Entwicklung von Schemas im Vergleich zu NoSQL-Datenbankangeboten immer noch höher, doch werden relationale Datenbanken mit der Migration in Cloud-Umgebungen immer flexibler.
Relationale Datenbanken können Redundanz auf zwei Arten beseitigen. Das relationale Modell selbst reduziert die Datenredundanz durch einen Prozess, der als Normalisierung bekannt ist. Wie bereits erwähnt, sollte eine Kundentabelle nur eindeutige Datensätze von Kundeninformationen protokollieren, anstatt diese Informationen für mehrere Transaktionen zu duplizieren.
Gespeicherte Prozeduren tragen ebenfalls dazu bei, sich wiederholende Arbeit zu reduzieren. Wenn beispielsweise der Datenbankzugriff auf bestimmte Rollen, Funktionen oder Teams beschränkt ist, kann eine gespeicherte Prozedur bei der Verwaltung der Zugriffskontrolle helfen. Durch diese wiederverwendbaren Funktionen bleibt den Anwendungsentwicklern mehr Zeit, um wichtige Aufgaben zu bewältigen.
Relationale Datenbanken sind transaktional – sie gewährleisten, dass der Zustand des gesamten Systems zu jedem Zeitpunkt konsistent ist. Die meisten relationalen Datenbanken bieten einfache Export- und Importoptionen, die das Sichern und Wiederherstellen einfach machen. Diese Exporte können sogar bei laufender Datenbank erfolgen, was die Wiederherstellung bei einem Ausfall erleichtert. Moderne, cloudbasierte relationale Datenbanken können eine fortlaufende Spiegelung durchführen, sodass der Datenverlust bei der Wiederherstellung in Sekunden oder weniger gemessen werden kann. Die meisten Cloud-verwalteten Dienste ermöglichen es Ihnen, Read Replicas zu erstellen, wie z. B. IBM® Cloud Databases for PostgreSQL. Diese Read Replicas ermöglichen es Ihnen, eine schreibgeschützte Kopie Ihrer Daten in einem Cloud-Rechenzentrum zu speichern. Replicas können auch zu Lese-/Schreibinstanzen für die Wiederherstellung hochgestuft werden.
Erfahren Sie mehr über Db2 on Cloud, eine vollständig verwaltete SQL-Cloud-Datenbank, die für eine robuste Leistung konfiguriert und optimiert ist.
Entdecken Sie PostgreSQL als Service, der unternehmensweit mit nativer Integration in die IBM Cloud entwickelt wurde.
IBM Cloud Hyper Protect DBaaS ist eine hochsichere Cloud-Datenbankumgebung, mit der Sie mehrere Datenbanktypen über standardisierte APIs betreiben können.
Entwickeln und betreiben Sie Anwendungen auf einer sicherheitsrelevanten Datenbank der Unternehmensklasse, die auf Open Source PostgreSQL basiert.