🏠 » Lexikon » R » Relationenkalkül

Relationenkalkül

Das Relationenkalkül ist eine deklarative Sprache zur Beschreibung von Ergebnismengen aus vorhandenen Relationen.

Damit unterscheidet es sich zur Relationalen Algebra, bei der es sich um eine konstruktive, prozedurale Sprache handelt. In der Relationalen Algebra werden durch Folgen von Operationen (z. B. Projektion, Selektion, Differenz) die Ergebnisrelationen konstruiert, also neu erstellt.

Im Relationenkalkül gibt es diese Operationen nicht, die Abfragen beruhen stattdessen auf dem mathematischen Prädikatenkalkül.

Eine Abfrage kann auf zwei verschiedene Arten erfolgen. Das Relationenkalkül unterscheidet zwischen dem Tupelkalkül und dem Domänenkalkül, das auch als Bereichskalkül bekannt ist.

Tupelkalkül

Die Formel des Tupelkalküls ist {t | P(t)}. Dabei ist t die Tupelvariable und P ein Prädikat. Das Prädikat stellt eine zu erfüllende Bedingung dar, um das betrachtete t in die Ergebnismenge aufzunehmen. Für die Prädikate werden logischen Operatoren verwendet, die nicht mit den konstruktiven Operatoren der Relationalen Algebra zu verwechseln sind. Die logischen Operatoren sind ∧, ∨, ¬, ∀ und ∃→ . Durch das Klammern der Ausdrücke wird deren Ausführungsreihenfolge geändert.

Im Tupelkalkül wird zwischen freie und gebundene Variablen unterschieden. Eine Variable wird gebunden, wenn zuvor ein Quantor platziert wird. Die freien Variablen nehmen Bezug auf den gesamten Ausdruck, wohingegen gebundene Variablen nur in Bezug auf den Quantor gelten. Bei einem Quantor handelt es sich um einen mathematischen Ausdruck. Dieser wird durch die Zeichen (Allquantor: für alle) oder (Existenzquantor: es gibt mindestens ein Element) dargestellt.

Der Nachteil des Tupelkalküls ist die unendlich große Ergebnismenge, da es nicht auf die tatsächlich vorhandenen Werte einer Relation einschränkt. Daher gelten die Ausdrücke mithin als nicht sicher. Sichere Ausdrücke können mithilfe der Quantoren erstellt werden.

Tupelkalkül Beispiel

Das Tupelkalkül-Beispiel verdeutlicht den Einsatz, um zum Beispiel alle Premiumkunden zu ermitteln:

{p | p ∈ KUNDEN ∧ p.STATUS = 'Premium'}

Die Abfrage zur Ermittlung aller Premiumkunden mit einem Jahresumsatz von mindestens 5.000 Euro unter Angabe des Umsatzes wird folgendermaßen erstellt:

{[p.KUNDE, b.UMSATZ] | p ∈ KUNDEN ∧ p.STATUS = 'Premium' ∧ b ∈ BESTELLUNGEN ∧ b.UMSATZ ≥ 5000}

Domänenkalkül

Das Domänenkalkül basiert auf der gleichen Idee wie das Tupelkalkül mit dem Unterschied, dass hier eine Variable an Wertmengen vorhandener Attribute gebunden ist.

Die Formel des Domänenkalküls ist {x_1…x_n | P(x_1…x_n)}. Die Domänenvariable x_i ist einem Attribut des Bereichs zugeordnet. Die einzigen freien Variablen sind x_1…x_n. Das P stellt auch hier den zu erfüllenden Prädikatenausdruck dar.

Domänenkalkül Beispiel

Das Domänenkalkül-Beispiel verdeutlicht den Einsatz, um zum Beispiel alle Premiumkunden zu ermitteln:

{p | ∃r,s,t (KUNDEN(p,r,s,t) mit s = 'Premium'}

Die Abfrage zur Ermittlung aller Premiumkunden mit einem Jahresumsatz von mindestens 5.000 Euro unter Angabe des Umsatzes wird folgendermaßen erstellt:

{[p,b] | ∃r,s,t,u,v,w(KUNDEN(p,r,s,t) mit s = 'Premium' ∧ BESTELLUNGEN(b,u,v,w) mit u ≥ 5000)}

Relationenkalkül - Definition & Erklärung - Zusammenfassung

Im Zusammenhang mit dem Lexikoneintrag Relationenkalkül sollte man sich folgende Punkte merken:

  • Das Relationenkalkül ist eine deklarative Sprache zur Beschreibung von Ergebnismengen aus vorhandenen Relationen.
  • Im Relationenkalkül gibt es diese Operationen nicht, die Abfragen beruhen stattdessen auf dem mathematischen Prädikatenkalkül.
  • Das Relationenkalkül unterscheidet zwischen dem Tupelkalkül und dem Domänenkalkül, das auch als Bereichskalkül bekannt ist.