Was ist eine relationale Datenbank?
Erfahren Sie, wie relationale Datenbanken funktionieren und wie sie sich mit anderen Datenspeicheroptionen vergleichen
Auf einem Bildschirm mit blauem Hintergrund sind Zahlen und Buchstaben zu sehen, die eine unübersichtliche Datenbank darstellen
Was ist eine relationale Datenbank?

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-IDFirmennameFirmenadresseBranche usw. Die Spalten für eine Transaktionstabelle könnten sein: TransaktionsdatumKunden-IDTransaktionsbetragZahlungsmethode 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:

  • Atomizität:  Alle Datenänderungen werden so durchgeführt, als ob sie eine einzige Operation wären. Das heißt, entweder werden alle Änderungen durchgeführt oder gar keine.
  • Konsistenz: Die Daten bleiben von Anfang bis Ende in einem konsistenten Zustand, was die Datenintegrität stärkt.
  • Isolierung: Der temporäre Zustand einer Transaktion ist für andere Transaktionen nicht sichtbar, sodass Transaktionen, die gleichzeitig ausgeführt werden, als seriell zu betrachten sind.
  • Dauerhaftigkeit: Nach dem erfolgreichen Abschluss einer Transaktion bleiben Änderungen an den Daten bestehen und werden nicht rückgängig gemacht, selbst bei einem Systemausfall.

Diese Eigenschaften ermöglichen eine zuverlässige Transaktionsverarbeitung.

Relationale Datenbank vs. Relationales Datenbankmanagementsystem

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:

  • Datenstruktur
  • Zugang für mehrere Benutzer
  • Zugriffssteuerung
  • Netzzugriff

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.

Was ist SQL?

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).

Kurzgeschichte zu relationalen Datenbanken

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.

Relationale vs.nicht-relationale Datenbanken

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:

  • Schlüssel-Wert-Speicher: Dieses schemafreie Datenmodell ist in einem Wörterverzeichnis von Schlüssel-Wert-Paaren organisiert, wobei jedes Element einen Schlüssel und einen Wert hat. Der Schlüssel könnte z. B. eine Einkaufswagen-ID in einer SQL-Datenbank sein, während der Wert ein Array von Daten ist, z. B. jedes einzelne Element im Einkaufswagen des Benutzers. Dies wird häufig zum Caching und Speichern von Benutzersitzungsdaten verwendet, z. B. bei Warenkörben. Es ist jedoch nicht ideal, wenn Sie mehrere Datensätze auf einmal abrufen müssen. Redis und Memcached sind Beispiele für Open-Source-Datenbanken mit diesem Datenmodell.
  • Dokumentenspeicher: Wie der Name schon sagt, speichern Dokumentendatenbanken Daten als Dokumente. Diese Datenbanken sind für die Verwaltung halbstrukturierter Daten geeignet, wobei die Daten in der Regel im JSON-, XML- oder BSON-Format gespeichert werden. Dadurch werden die Daten bei der Verwendung in Anwendungen zusammengehalten und der Übersetzungsaufwand für die Nutzung der Daten wird reduziert. Entwickler erhalten auch mehr Flexibilität, da Datenschemas nicht über alle Dokumente hinweg übereinstimmen müssen (z. B. Name vs. Vorname). Dies kann jedoch bei komplexen Transaktionen problematisch sein und zu fehlerhaften Daten führen. Gängige Anwendungsfälle für Dokumentdatenbanken sind Content-Management-Systeme und Benutzerprofile. Ein Beispiel für eine dokumentorientierte Datenbank ist MongoDB, die Datenbankkomponente des MEAN-Stack.
  • Spaltenübergreifender Speicher: Diese Datenbanken speichern Informationen in Spalten, sodass die Benutzer nur auf die benötigten Spalten zugreifen können, ohne zusätzlichen Speicher für irrelevante Daten zu benötigen. Diese Datenbank versucht, die Unzulänglichkeiten von Schlüsselwert- und Dokumentenspeichern zu beheben, aber da die Verwaltung dieses Systems komplexer sein kann, wird es nicht für neuere Teams und Projekte empfohlen. Apache HBase und Apache Cassandra sind Beispiele für quelloffene, spaltenübergreifende Datenbanken. Apache HBase baut auf dem Hadoop Distributed Files System auf, das eine Möglichkeit zur Speicherung kleiner Datensätze bietet, die in vielen Big-Data-Anwendungen verwendet wird. Apache Cassandra hingegen wurde entwickelt, um große Datenmengen auf mehreren Servern und in Clustern zu verwalten, die sich über mehrere Rechenzentren erstrecken. Es wird für eine Vielzahl von Anwendungsfällen eingesetzt, z. B. für Social Networking-Websites und Echtzeit-Datenanalysen.
  • Graphdatenbank: Diese Art von Datenbank enthält in der Regel Daten aus einem Wissensdiagramm. Die Datenelemente werden als Knoten, Kanten und Eigenschaften gespeichert. Jedes Objekt, jeder Ort und jede Person kann ein Knoten sein. Eine Kante definiert die Beziehung zwischen den Knoten. Graphdatenbanken werden zur Speicherung und Verwaltung eines Netzes von Verbindungen zwischen Elementen innerhalb des Graphen verwendet. Neo4j (Link befindet sich außerhalb von IBM) ist ein graphbasierter Datenbankdienst auf Java-Basis mit einer Open-Source-Community-Edition, bei der die Nutzer Lizenzen für Online-Backup- und Hochverfügbarkeitserweiterungen oder eine lizenzierte Version mit Backup und Erweiterungen im Paket erwerben können.

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?“.

Vorteile relationaler Datenbanken

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:

Benutzerfreundlichkeit

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.

Reduzierte Redundanz 

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.

Einfache Sicherung und Disaster-Recovery 

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.

Zugehörige Lösungen
IBM Db2 on Cloud

Erfahren Sie mehr über Db2 on Cloud, eine vollständig verwaltete SQL-Cloud-Datenbank, die für eine robuste Leistung konfiguriert und optimiert ist.

IBM Db2 on Cloud erkunden
IBM Cloud Databases for PostgreSQL

Entdecken Sie PostgreSQL als Service, der unternehmensweit mit nativer Integration in die IBM Cloud entwickelt wurde.

IBM Cloud Databases for PostgreSQL erkunden
IBM Cloud Hyper Protect DBaaS

IBM Cloud Hyper Protect DBaaS ist eine hochsichere Cloud-Datenbankumgebung, mit der Sie mehrere Datenbanktypen über standardisierte APIs betreiben können.

IBM Cloud Hyper Protect DBaaS erkunden
EDB Postgres Enterprise and Standard with IBM

Entwickeln und betreiben Sie Anwendungen auf einer sicherheitsrelevanten Datenbank der Unternehmensklasse, die auf Open Source PostgreSQL basiert.

EDB Postgres Enterprise and Standard with IBM erkunden
Ressourcen Db2 und 50 Jahre relationales Datenbankdesign

Sehen Sie sich die Anfänge von Db2 an.

Machen Sie den nächsten Schritt

IBM unterstützt in der Cloud gehostete Versionen einer Reihe von relationalen Datenbanken. IBM Db2 on Cloud ist eine erstklassige kommerzielle relationale Datenbank, die für hohen Durchsatz ausgelegt ist und eine Verfügbarkeitsoption mit einer Betriebszeit von 99,99 % bietet.

Mehr zu IBM Db2 on Cloud