Das relationale Datenbankmodell und seine Grundlagen

Eingeordnet in Informatik

Geschrieben am in Deutsch mit einer Größe von 4,62 KB

Relationales Modell

Dieser Ansatz ermöglicht es Benutzern, Informationen aus der Datenbank oft auch ohne die direkte Hilfe von IT-Experten abzurufen. Die Daten werden so strukturiert und gespeichert, dass sie für Anwender leichter verständlich sind. Die Speicherung erfolgt in Tabellen (Relationen).

Die Beziehungen zwischen den Daten in verschiedenen Zeilen und Tabellen werden durch die Datenwerte selbst und definierte Schlüsselbeziehungen hergestellt.

Merkmale relationaler Modelle

  • Atomarität: Die Einträge (Werte) in den Zellen einer Tabelle sind atomar, d.h. nicht weiter teilbar.
  • Datentypen: Alle Einträge in einer Spalte gehören zu einem definierten Datentyp. Spalten werden auch als Attribute bezeichnet.
  • Eindeutigkeit der Zeilen: Keine zwei Zeilen (Tupel) in einer Tabelle sind vollkommen identisch; sie unterscheiden sich mindestens im Wert des Primärschlüssels.

Struktur relationaler Datenbanken

Konzeptionelle Ebene (Relationales Modell)

Auf der konzeptionellen Ebene wird das relationale Datenbankmodell durch eine Menge von Relationen (Tabellen) mit ihren Attributen und Beziehungen repräsentiert.

Externe Ebene (Submodelle/Sichten)

Externe Schemas oder Submodelle, oft als Sichten (Views) implementiert, beschreiben die Datenperspektive einer bestimmten Anwendung oder Benutzergruppe. Sie bestehen typischerweise aus Teilen der konzeptionellen Relationen oder Kombinationen davon.

Interne Ebene (Speicherung)

Auf der internen Ebene wird beschrieben, wie die Daten physisch gespeichert werden (z. B. jede Basistabelle als Datei, Indexstrukturen etc.). Dies ist für den normalen Anwender meist transparent.

Datenuntersprache (Data Sublanguage)

Eine Datenuntersprache, wie z. B. SQL (Structured Query Language), wird für die Definition, Abfrage und Manipulation von Daten in relationalen Systemen verwendet.


Formale Anfragesprachen (Relationale Algebra)

Die relationale Algebra bildet eine theoretische Grundlage für relationale Datenbanken und SQL. Sie definiert Operationen auf Relationen.

Prozedurale vs. Nicht-prozedurale Sprachen

  • In prozeduralen Sprachen gibt der Benutzer die genaue Abfolge von Operationen an, um das gewünschte Ergebnis zu erzielen (z. B. in der relationalen Algebra).
  • In nicht-prozeduralen (deklarativen) Sprachen beschreibt der Benutzer die gewünschten Daten, ohne den genauen Ablauf zur Beschaffung festzulegen (z. B. typischerweise in SQL).

Grundlegende Operationen der Relationalen Algebra

Die Operationen Selektion (σ), Projektion (π) und Umbenennung (ρ) sind unäre Operationen (operieren auf einer Relation). Andere, wie Vereinigung, Differenz, kartesisches Produkt und Join, sind binäre Operationen (operieren auf zwei Relationen).

Selektion (σ)

Diese Operation wählt Tupel (Zeilen) aus einer Relation aus, die eine angegebene Bedingung (Prädikat) erfüllen. Sie wird mit dem griechischen Buchstaben Sigma (σ) symbolisiert.

Syntax (vereinfacht): σBedingung(Relation)

Die Bedingung verwendet Vergleichsoperatoren (z. B. =, <, >, >=, <=, ≠) und logische Operatoren (AND, OR, NOT).

Projektion (π)

Diese Operation wählt bestimmte Spalten (Attribute) aus einer Relation aus und entfernt dabei Duplikate in den Ergebniszeilen. Sie wird mit dem griechischen Buchstaben Pi (π) symbolisiert.

Syntax (vereinfacht): πAttributliste(Relation)

Kartesisches Produkt (×)

Diese Operation kombiniert jedes Tupel einer Relation mit jedem Tupel einer zweiten Relation. Die Ergebnisrelation enthält alle Attribute beider Ausgangsrelationen. Vorsicht: Das Ergebnis kann sehr groß werden!

Syntax (vereinfacht): Relation1 × Relation2

Verbund (Join, ⋈)

Der Verbund (Join) ist eine der wichtigsten Operationen. Er kombiniert Tupel aus zwei Relationen basierend auf einer Verknüpfungsbedingung zwischen den Attributen der Relationen (häufig die Gleichheit gemeinsamer Attribute – Equi-Join oder Natural Join). Er ist konzeptionell oft ein kartesisches Produkt gefolgt von einer Selektion, wird aber effizienter implementiert.

Syntax (vereinfacht, Natural Join): Relation1 ⋈ Relation2
Syntax (vereinfacht, Theta-Join): Relation1 ⋈Bedingung Relation2

Verwandte Einträge: