Database Reference
In-Depth Information
werden. Mehr zu diesen Konzepten erfahren Sie im Kasten Mathematische
Relationen , auf Seite 12.
Mathematische Relationen
Relationale Datenbanken werden so genannt, weil sie Relationen (d. h. Tabellen) ent-
halten, die aus Gruppen (Mengen) von Tupeln (d. h. Zeilen) bestehen, die Attribute
auf atomische Werte (z. B. {name: 'Genghis Khan', p.died _ at _ age: 65} ) abbilden.
Die verfügbaren Attribute werden durch ein Header -Attribut-Tupel definiert, das
auf eine bestimmte Domäne ( domain ) oder einen beschränkenden Typ (d. h. Spal-
ten; beispielsweise {name: string, age: int} ) abgebildet wird. Das ist der Kern der
relationalen Struktur.
Die Implementierungen sind wesentlich praktischer orientiert, als es die mathema-
tischen Namen vermuten lassen. Warum erwähnen wir sie dann überhaupt? Wir
wollen hervorheben, dass relationale Datenbanken relational im mathematischen
Sinne sind. Sie sind nicht relational, weil Tabellen über Fremdschlüssel „in Relati-
on“ zueinander stehen. (Ob es solche Beschränkungen tatsächlich gibt, ist hier nicht
der Punkt.)
Auch wenn ein Großteil der Mathematik vor Ihnen versteckt wird, basiert die Leis-
tungfähigkeit dieses Modells doch genau in dieser Mathematik. Sie erlaubt es dem
Benutzer, mächtige Abfragen zu formulieren, die das System basierend auf vordefi-
nierten Mustern optimiert. RDBMS bauen auf einem Bereich der Mengenlehre auf,
der relationale Algebra genannt wird - einer Kombination aus Selektionen ( WHE-
RE ... ), Projektionen ( SELECT ... ), Kartesischen Produkten ( JOIN ... ) und vielem
mehr:
wo
died_at_age
gleich null ist
Nur Namen
zurückgeben
People in
x umbenennen
(
(
(People)))
name
died_at_age=
x
SELECT x.name
FROM People
x.died_at_age IS NULL
WHERE
x
Sich eine Relation als physikalische Tabelle (ein Array von Arrays, das in Daten-
bank-Einführungskursen ad infinitum wiederholt wird) vorzustellen, kann einen in
der Praxis richtig leiden lassen, etwa wenn man Code schreibt, der über alle Zei-
len iteriert. Relationale Queries sind da wesentlich deklarativer, da sie einem Zweig
der Mathematik entstammen, der als Tupelkalkül bezeichnet wird und in relationa-
le Algebra umgewandelt werden kann. PostgreSQL und andere RDBMS optimieren
Abfragen, indem sie diese Umwandlung vornehmen und die Algebra vereinfachen.
Wie Sie sehen können, entspricht die SQL im unteren Diagramm der des obigen
Diagramms.
 
Search WWH ::




Custom Search