Lern-Fabrik

Einführung in SQL - Datenbankabfragen

Das relationale Datenbankmodell

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:

Beziehungen zwischen Relationen

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!

Relationale Algebra

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:

Selektion

Bei der Selektion wir mit Hilfe eines Vergleichsausdrucks (z. B. Name = 'Ross') festgelegt, welche Tupel (Datensätze) als Ergebnis zurückgegeben werden:

Mitarbeiter

Mitarbeiternr Name Vorname Strasse PLZ Ort Gehalt Abteilungsnr Telefonnummer Email 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
... ... ... ... ... ... ... ... ... ...
SELECT *

FROM Mitarbeiter

Where Name ='Ross';

Mitarbeiter

Mitarbeiternr Name Vorname Strasse PLZ Ort Gehalt Abteilungsnr Telefonnummer Email Eintrittsdatum
1 Ross Hagen Hauptstraße 67 53123 Bonn 7500.00 1 43567890 hagen.ross@beispielfirma.de 01.01.2016

Projektion

Bei der Projektion werden einzelne Attribute (Spalten) aus der ursprünglichen Attributmenge extrahiert. Die Projektion entspricht somit einer Selektion auf Spaltenebene:

SELECT Name, Vorname

FROM Mitarbeiter;

Mitarbeiter

Name Vorname
Ross Hagen
Roberts Patrick
Hummer Stefan