Eine relationale Datenbank ist eine Datenbank, die auf dem tabellenbasierten relationalen Datenbankmodell basiert. Eine Relation ist eine mathematische Beschreibung einer Tabelle und besteht aus Attributen und Tupeln. Ein Attribut beschreibt dabei den Typ eines Attributwerts und wird auch als Feld bezeichnet. Ein Tupel ist eine Kombination aus bestimmten Attributen und wird auch als Datensatz bezeichnet. Die Attribute entsprechen in einer Tabelle den Spalten und die Tupel den Zeilen:
Mit Hilfe von Verknüpfungen können in relationalen Datenbanken Beziehungen zwischen Tabellen definiert werden. So können z. B. in einem Bestellsystem Beziehungen zwischen Benutzern und Bestellungen hergestellt werden. Die Verknüpfungen erfolgen über eindeutig identifizierbare Felder, die auch als Schlüssel bezeichnet werden und die in beiden Tabellen enthalten sein müssen. Enthält eine Tabelle keine eindeutigen Felder, können als Schlüssel auch zusätzliche Felder mit ID‘s erstellt werden. Dabei können Beziehungen auch zwischen mehreren Tabellen bestehen:
Hinweis: Im relationalen Datenbankmodell werden sowohl die Zusammenstellungen von Attributen innerhalb von Tabellen als Relationen bezeichnet, als auch die Verknüpfungen zwischen Tabellen. Für die Beziehungen zwischen den Tabellen wird im Englischen aber in der Regel nicht das Wort „relation“ sondern das Wort „relationship“ verwendet!
Die relationale Algebra definiert eine Menge von Operationen zur Manipulation von Relationen in relationalen Datenbanken. Theoretisch basieren alle Operationen in einer relationalen Datenbank auf der relationalen Algebra. Sie beschreibt die wesentlichen Operationen, mit denen Daten in Datenbanken gespeichert, abgefragt und manipuliert werden können. Alle komplexeren Operationen basieren auf den folgenden sechs Basisoperationen:
Bei der Selektion wir mit Hilfe eines Vergleichsausdrucks (z. B. Name = 'Ross') festgelegt, welche Tupel (Datensätze) als Ergebnis zurückgegeben werden:
Mitarbeiternr | Name | Vorname | Strasse | PLZ | Ort | Gehalt | Abteilungsnr | Telefonnummer | Eintrittsdatum | |
---|---|---|---|---|---|---|---|---|---|---|
1 | Ross | Hagen | Hauptstraße 67 | 53123 | Bonn | 7500.00 | 1 | 43567890 | hagen.ross@beispielfirma.de | 01.01.2016 |
2 | Roberts | Patrick | Schillerstraße 154 | 53229 | Bonn | 7000.00 | 1 | 98761462 | p.roberts@beispielfirma.de | 01.01.2016 |
3 | Hummer | Stefan | Sonnenhag 74 | 53175 | Bonn | 7000.00 | 1 | 98120421 | stefanhummer@beispielfirma.de | 01.01.2016 |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
Mitarbeiternr | Name | Vorname | Strasse | PLZ | Ort | Gehalt | Abteilungsnr | Telefonnummer | Eintrittsdatum | |
---|---|---|---|---|---|---|---|---|---|---|
1 | Ross | Hagen | Hauptstraße 67 | 53123 | Bonn | 7500.00 | 1 | 43567890 | hagen.ross@beispielfirma.de | 01.01.2016 |
Bei der Projektion werden einzelne Attribute (Spalten) aus der ursprünglichen Attributmenge extrahiert. Die Projektion entspricht somit einer Selektion auf Spaltenebene:
Name | Vorname |
---|---|
Ross | Hagen |
Roberts | Patrick |
Hummer | Stefan |