1:1 Umsetzung
Eine Möglichkeit der Umsetzung ist über eine Fremdschlüsselbeziehung in einer der beiden Tabellen. Eine andere wäre über eine eigene Relationen-Tabelle. Hier darf aber dann jede Entität nur einmal vorkommen
n:1 Umsetzung
Eine Möglichkeit der Umsetzung sind zwei Tabellen für die Entitätstypen und die Realisierung der Relation als Fremdschlüssel in der Tabelle mit der n-Kardinalität. Eine andere Möglichkeit der Umsetzung sind zwei Tabellen für die Entitätstypen und eine eigene Tabelle für die Realisierung der Relation mit zwei Fremdschlüsseln.
n:m Umsetzung
Die einzige Möglichkeit der Umsetzung sind zwei Tabellen für die Entitätstypen und eine eigene Tabelle für die Realisierung der Relation mit zwei Fremdschlüsseln.
Entitätstyp relationales Modell
Ein wie bisher definierter Entitätstyp E mit E : {A1 : D1, . . . , An : Dn} wird im relationalen Modell zu einer Tabelle E mit: • atomarena Attributen Ak als Spalten mit Datentyp Dk • Schlüsselattributen als primary keys Die Reihenfolge der Zeilen und Spalten ist nicht relevant. Enthaltene Informationen werden nur durch Datenwerte ausgedrückt.
Schlüsselattribut
Jede Zeile bzw. Entität in der Tabelle E beschreibt ein eindeutiges Objekt. Technisch sind Tabellen ohne Schlüsselattribut und Einträge, die in allen Werten identisch sind, denkbar, aber erst die Verwendung eindeutiger Schlüsselattribute garantiert die Identifikation unterschiedlicher Objekte, selbst bei gleichen Werten der restlichen Attribute. Schlüsselattribute werden im relationalen Modell zu primary keys.
Zusammengesetztes Attribut
Bei einem zusammengesetzten Attribut A mit A : [A1 : D1, . . . , An : Dn] : D1 × . . . × Dn liegen die Informationen in den Ak , d.h. A an sich enthält selbst keine Informationen. Deswegen kann das Modell in eine der zwei Möglichkeiten mit nur atomaren Attributen überführt werden: 1. „Umhängen“ der Attribute Ak direkt an den Entitätstypen 2. Zusammenfassen der Ak zu einem neuen gemeinsamen Attribut A 0 (z.B. durch Stringkonkate
Mehrwertiges Attribut
Bei einem mehrwertigen Attribut A werden die verschiedenen Ausprägungen von A üblicher-weise in eine 1 : nRelation mit einem weiteren Entitätstyp EA abgebildet. Eine allgemeinere Rolle von EA und eine entsprechende m : n-Relation ist auch denkbar. Schlüsselattribute von E können so auch zu Schlüsselattributen von EA werden. Das hängt von der genauen Umsetzung der Relation ab.
relationale Algebra
Eine relationale Algebra definiert (Mengen-)Operationen, die sich auf eine Menge von Relationen anwenden lassen. Damit können Relationen beispielsweise gefiltert, verknüpft oder aggregiert werden. Die Ergebnisse aller Operationen sind ebenfalls Relationen. Aus diesem Grund bezeichnet man die Relationenalgebra als abgeschlossen. Eine Relation R ⊆ D1 × . . . × Dn ist wie bisher primär eine konkrete Tupelmenge t = [a1, . . . , an] ∈ R, ak ∈ Dk Eine Tabelle ist eine visuelle Repräsentation einer Relation und eine Zeile in einer Tabelle repräsentiert ein Tupel. Steht die Relation für einen Entitätstyp, so sind die Tupel konkrete Entitäten.
Schlüsselkandidat
Ein Schlüsselkandidat K mit K ⊆ ident(R) ist eine Menge von Attributen, deren Werte jeweils alle Tupel der Relation eindeutig identifizieren („identifier“). So ist implizit garantiert, dass es keine zwei gleichen Tupel in der Relation gibt. Grundsätzlich kann es mehrere Schlüsselkandidaten geben, aus denen dann der Schlüssel („primary key“) ausgewählt wird.
Vorraussetzungen für Mengenoperationen
Um Mengenoperationen auf Relationen durchzuführen, müssen diese kompatibel sein. Das bedeutet, Attributanzahl und Wertebereiche müssen übereinstimmen (Vereinigungsverträglichkeit bzw. Typkompatibilität). Für zwei Relationen S und T muss also gelten, dassa schema(S) = schema(T)
Klassische Mengenoperationen
Seien S und T zwei kompatible Relationen. Dann sind definiert:
• Vereinigung: S ∪ T = {r | r ∈ S ∨ r ∈ T}
• Differenz: S − T = S \ T = {r | r ∈ S ∧ r ∈/ T}
• Schnittmenge: S ∩ T = {r | r ∈ S ∧ r ∈ T
Kartesisches Produkt
Im üblichen kartesisches Produkt entstehen Paare (s, t) mit s ∈ S und t ∈ T. Hier hingegen entstehen |S × T| = |S| · |T| Tupel, bestehend aus allen Attributen einer Entität s ∈ S verbunden mit den Attributen einer Entität t ∈ T. Im Fall ident(S) ∩ ident(T) 6= ∅ würde obige Definition doppelte Attribute erzeugen, was mathematisch ein Problem ist, aber in der Praxis durch Umbenennung der Attribute gelöst werden kann. Eselsbrücke: Jedes Element von S mit jedem von T.
Selektion
Für eine Relation S und eine logische Bedingung Θ ist die Selektion definiert durch σΘ(S) = {s ∈ S | s erfüllt Θ} Selektionsbedingungen sind häufig Vergleichsoperationen (=, 6=, ≤, <, >, ≥) auf den Attributen und logische Verknüpfungen (∧, ∨, ¬). Die Selektion wirkt wie ein Filter auf der Relation S, wo sie auf jedes Element angewandt wird
σΘ(S) filtert Entitäten nach Bedingung Θ
Projektion
Die Projektion πai1 ,...,aik wählt aus einer Relation S mit ident(S) = {a1, . . . , an} die Attribute ai1 bis aik aus: πai1 ,...,aik (S) = {(ai1, . . . , aik) | a ∈ S} Die mathematische Menge eliminiert Duplikate, die Ergebnismenge in SQL aber nicht.
πai1 ,...,aik (S) filtert Attribute zu ai1, . . . , aik
Theta Join
Der Theta-Join bzw. Theta-Verbund S ./Θ T für zwei Relationen S und T und Selektionsbedingung Θ ist definiert durch S ./Θ T = σΘ(S × T) Hier entstehen zunächst enorm große Datenmengen durch das kartesische Produkt, die dann durch die Selektion wieder reduziert werden. In der Praxis kann ein DBMS diese sehr häufigen Join-Operationen effizient durchführen.
S ./Θ T filtert kartesisches Produkt nach alternativ: σΘ(S × T) Bedingung Θ
Outer Join
Ein Outer-Join funktioniert im Grunde wie der Inner-Join. Im Kontrast dazu gibt er aber nicht nur die Datensätze beider Tabellen aus, die die Selektionsbedingung erfüllen, sondern zusätzlich auch alle übrigen Tupel der einen bzw. der anderen Tabelle. Bezogen auf die Leserichtung spricht man von einer linken und einer rechten Relation. Die jeweiligen Operationen heißen dementsprechend Left-Outer-Join und Right-Outer-Join. Bei einem Left-Outer-Join zweier Relationen S und T S ./ T werden alle Entitäten der Entitätenmenge links der Relation, also S, berücksichtigt, auch wenn es keine zugehörigen Entitäten in Entitätenmenge T gibt. Diese Attribute sind dann NULL. Bei einem Right-Outer-Join zweier Relationen S und T S ./ T gilt das analog, nur mit vertauschten Rollen. Der Full-Outer-Join zweier Relationen S und T S ./ T ist die Vereinigung von Left- und Right-Outer-Join. Das bedeutet, es sind alle Entitäten beider Seiten dabei, nur ggf. mit NULL-Einträgen in den Attributen der anderen Seite, wenn es keine zugehörige Entität gibt.
Division
Für zwei Relationen S und T mit schema(S) = {[a1, . . . , an, b1, . . . , bk ]} und schema(T) = {[b1, . . . , bk ]} ist die Division S ÷ T definiert durch S ÷ T = {(a1, . . . , an) | ∀(b1, . . . , bk) ∈ T : (a1, . . . , an, b1, . . . , bk) ∈ S} bzw. äquivalent S ÷ T = πS−T(S) − πS−T((πS−T(S) × T) − S) Die Division ÷ ist also die „Umkehroperation“ zum kartesischen Produkt, denn es gilt symbolisch: (S × T) ÷ T = S Hinweis: Die Ergebnismenge ist nur der a-Anteil von S, also πa(S) = πa1,...,an (S).
Division S ÷ T beschreibt die Tupel aus S, die mit allen Tupeln aus T verknüpft sind
Natural Join
S ./ T verbindet Entitäten, die in gleich benannten Attributen gleiche Werte haben
Semi Join
S n T berechnet Anteil eines Natural Joins, alternativ: πident(S) (S ./ T) der nach Reduktion auf S übrig bleib
Outer
Left Outer Join S ./ T schließt alle Entitäten aus S ein, auch die ohne Relation zu T
Right-Outer-Join S ./ T schließt alle Entitäten aus T ein, auch die ohne Relation zu S
Full-Outer-Join S ./ T schließt alle Entitäten aus S und T ei
Umbenennung
Umbenennung (Relation) ρS 0(S) benennt Relation S um in S 0
Umbenennung (Attribut) ρa→a 0(T) benennt Attribut a um in a 0
Last changeda year ago