Relationale Algebra
Die Relationale Algebra ist die Sprache, mit denen Tupel eindeutig Identifiziert und gesucht werden. Relationale Algebra ist quasi analog zu SQL und besitzt in etwa die selben Befehle wie SQL. Man kann mit der relationalen Algebra die selben Probleme lösen und die selben Abfragen stellen wie z.B. mit SQL.
Die relationale Algebra ist eine Sprache, in der Beziehungen in Datenbanken ausgesagt werden können.
Uns stehen folgende Operationen zur Verfügung:
σ - Selektion ∏ - Projektion UB - Umbenennung × - kartesisches Produkt ∪ - Vereinigung ∩ - Durchschnitt − - Differenz ÷ - Division * - Natural Join (natürlicher Join) TJ - Theta-/Inner-Join EQ - Equi-Join ⋈ - Full Outer Join ⋉ - Left Outer Join ⋊ - Right Outer Join
Wir sehen anhand der Operationen die uns zur Verfügung stehen schon, das es sehr ähnlich ist wie z.B. SQL. Uns stehen die selben Operationen zur Verfügung.
Um die relationale Algebra zu verstehen, sehen wir uns einmal folgendes Beispiel an:
Medikamente(ID,Name; HerstellerID↑, Markteinführung) Hersteller(ID, Name) Wirkstoffe(ID, Name) Enthaelt(MedikamentID↑, WirkstoffID↑)
Wie heißen die Medikamente?
∏ Name (Medikamente)
Welche Medikamente (Name) hatten ihre Markteinführung nach 2000 und wann war das?
∏ Name, Markteinführung ( σ Markteinführung > '2000' (Medikamente) )
Wie heißen die Medikamente und deren jeweiliger Hersteller?
∏ Name, HerName ( Medikamente ⋈ Hersteller ( UB ID<-HerId (Hersteller), UB Name<-HerName (Hersteller) ) )
Wie heißen die Medikamente des Herstellers Bayer?
∏ Name ( σ HerName = "Bayer" ( Medikamente ⋈ Hersteller ( UB ID<-HerId (Hersteller), UB Name<-HerName (Hersteller) ) ) )
Die Medikamente welcher Hersteller (Name) enthalten den Wirkstoff Acetylsalicylsäure?
∏ HerName ( σ Wirkstoffname = "Acetylsalicylsäure" ( Medikamente ⋈ Hersteller ⋈ Wirkstoffe ( UB ID<-HerId (Hersteller), UB Name<-HerName (Hersteller), UB Name<-Wirkstoffname (Wirkstoffe) ) ) )
Wir haben hier hauptsächlich die Funktionen Projektion, Selektion, Umbenennung und den Join benutzt.