Lernfabrik

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:

Relationen Darstellung

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 (Schlüssel), die in beiden Tabellen enthalten sein müssen. Enthält eine Tabelle keine eindeutigen Felder, können als solche Schlüssel-Felder IDs erstellt werden:

Tabellenverknuepfung

Hinweis: Im relationalen Datenbankmodell werden sowohl die Zusammenstellungen von Attributen innerhalb von Tabellen als Relationen bezeichnet als auch die Verknüpfungen zwischen Tabellen. Im Englischen wird für letztere jedoch meistens der Begriff „relationship“ verwendet.

Relationale Algebra

Die relationale Algebra definiert eine Menge von Operationen zur Manipulation von Relationen. Sie bildet die theoretische Grundlage für die Arbeit mit relationalen Datenbanken und besteht aus sechs Basisoperationen:

Selektion

Mit einem Vergleichsausdruck (z. B. Name = 'Ross') wird festgelegt, welche Tupel zurückgegeben werden:

SELECT * FROM Mitarbeiter WHERE Name = 'Ross';

Mitarbeiter

MitarbeiternrNameVornameStrassePLZOrtGehaltAbteilungsnrTelefonnummerEmailEintrittsdatum
1RossHagenHauptstraße 6753123Bonn7500.00143567890hagen.ross@beispielfirma.de01.01.2016

Projektion

Die Projektion selektiert bestimmte Spalten (Attribute) einer Tabelle:

SELECT Name, Vorname FROM Mitarbeiter;

Mitarbeiter

NameVorname
RossHagen
RobertsPatrick
HummerStefan