2.5 Relationale Algebra 2.5.1 Überblick RA Bedeutung der Relationalen Algebra 2.5.1 Überblick Codd-vollständige relationale Sprachen • Formale Sprache für den Berechnungsweg von • Relationale Algebra Abfragen werden durch exakte Angabe der auf den Relationen durchzuführenden Operationen formuliert Abfrageergebnissen • mathematische Rechenregeln ermöglichen Abfrageoptimierung • Relationenkalküle Abfrageergebnis wird durch seine Eigenschaften beschrieben ohne Angabe einer Berechnungsprozedur durch algebraische Umformung • auch geeignet zur Formulierung von Integrity Constraints Codd hat gezeigt, dass Relationale Algebra, Tupelkalkül und Domänenkalkül gleich ausdrucksstark sind Leistungsmaßstab“ ist Relationale Algebra: ” mindestens so mächtige Sprache heißt Codd-vollständig Hochschule Niederrhein Dalitz: Datenbanksysteme Kap2.5. -1- University of Applied Sciences Elektrotechnik und Informatik Faculty of Electrical Engineering and Computer Science 2.5.1 Überblick RA Hochschule Niederrhein Dalitz: Datenbanksysteme Kap2.5. -3- University of Applied Sciences Elektrotechnik und Informatik Faculty of Electrical Engineering and Computer Science 2.5.1 Überblick RA Wie verhält sich SQL dazu? Was ist eine Algebra? • besteht aus atomaren Operanden und Operatoren Beispiel Algebra-Elemente: SELECT nr, name FROM produkt • Regelwerk um daraus Ausdrücke zu bilden; dabei WHERE hnr IN (SELECT nr FROM hersteller); im allgemeinen Gruppierung durch Klammern nötig Beispiel Kalkül-Element: SELECT nr, name FROM produkt WHERE EXISTS (SELECT ’ ’ FROM hersteller Beispiel: Algebra der Arithmetik WHERE hersteller.nr=produkt.hnr); • Operanden: Variablen (z.B. x) und Zahlenkonstanten (z.B. 42) • SQL basiert hauptsächlich auf Relationaler Algebra, enthält aber einzelne Elemente des Relationalen Kalküls. • Operatoren: arithmetische Operatoren (+,-,*,/) • Beispiele für Ausdrücke in dieser Algebra: • SQL ist nicht nur Codd-vollständig, sondern mächtiger als die Relationale Algebra • SQL kann zwar optional Relationen (Mengen) erzeugen (distinct), arbeitet aber ansonsten mit Bags (ungeordneten Listen) Hochschule Niederrhein Dalitz: Datenbanksysteme Kap2.5. -2- University of Applied Sciences (x + 2*y) * z (x + 5)/(y - 2) + x Elektrotechnik und Informatik Faculty of Electrical Engineering and Computer Science Hochschule Niederrhein Dalitz: Datenbanksysteme Kap2.5. -4- University of Applied Sciences Elektrotechnik und Informatik Faculty of Electrical Engineering and Computer Science 2.5.1 Überblick RA 2.5.2 RA Operatoren Operanden der Relationalen Algebra Mengen versus Bags • Relationen-Variablen • Relationales Modell ursprünglich (Codd 1970) • Relationen-Konstanten mit Relationen als Mengen definiert I I Operatoren der Relationalen Algebra • übliche Mengenoperationen (Vereinigung, Schnitt, Differenz) keine Doubletten zulässig Operatoren inperformant (warum?) • Moderne Implementierungen bevorzugen Bags (ungeordnete Listen) • Extraktionsoperatoren Selektion“ und Projektion“ ” ” • Kombinationsoperatoren Cartesisches Produkt“ und Joins“ ” ” • Umbenennung ( Rename“) ” I I Tupel ungeordnet, aber Doubletten möglich Operatoren performant implementierbar Operatoren der Relationalen Algebra haben eine Mengen- und eine Bag-Version Ausdrücke der RA heißen Queries (Abfragen) Relationenänderung durch Zuweisung, z.B. A := A \ σnr =0 H20 (A) Hochschule Niederrhein Dalitz: Datenbanksysteme Kap2.5. -5- University of Applied Sciences Elektrotechnik und Informatik Faculty of Electrical Engineering and Computer Science 2.5.1 Überblick RA Hochschule Niederrhein Elektrotechnik und Informatik Faculty of Electrical Engineering and Computer Science 2.5.2 RA Operatoren Themen zur Relationalen Algebra: a) Extraktionsoperatoren • Operatoren und Rechenregeln Welche Basis-Operatoren werden benötigt für Abfragen? Unterschied Relationen versus Bags • Projektion πa1 ,...,an (R) = Auswahl der Spalten a1 , . . . , an • Selektion • Dreiwertige Logik Behandlung von NULL-Werten σBedingung (R) = Auswahl Tupel, die Bedingung erfüllen • Eigenschaften der Operatoren Berechnungskomplexität, begrenzte Ausdrucksstärke π name, preis • Algebraische Umformungen Äquivalenz algebraischer Ausdrücke, Abfrageoptimierung σpreis > 3 • Formulierung von Constraints mit RA Hochschule Niederrhein Dalitz: Datenbanksysteme Kap2.5. -6- University of Applied Sciences Dalitz: Datenbanksysteme Kap2.5. -7- University of Applied Sciences pnr# name preis hnr P1 P2 P3 Pritt Füller Tinte 2.50 12.98 3.20 H1 H2 H2 Elektrotechnik und Informatik Faculty of Electrical Engineering and Computer Science Hochschule Niederrhein Dalitz: Datenbanksysteme Kap2.5. -8- University of Applied Sciences Elektrotechnik und Informatik Faculty of Electrical Engineering and Computer Science 2.5.2 RA Operatoren 2.5.2 RA Operatoren Definition von ∪, ∩ und \ für Mengen altbekannt. Aber was ist bei Bags? Bemerkungen: • Verhalten des Selektionsoperators σ für Bags und Mengen identisch (Warum?) R enthalte Tupel t n-mal S enthalte dasselbe Tupel t m-mal • Projektionsoperator π für Bags und Mengen verschieden R ∪ S enthält Tupel t dann (n + m)-mal R ∩ S enthält Tupel t dann min(n, m)-mal R \ S enthält Tupel t dann max(0, n − m)-mal Wie verhält sich SQL-Befehl select dazu? • Kombination von Selektion und Projektion: SELECT name FROM produkt WHERE preis > 3; entspricht πname (σpreis>3 (produkt)) R a b 1 2 1 1 • normalerweise Bagoperation, mit Modifier distinct aber Mengenoperation Hochschule Niederrhein Dalitz: Datenbanksysteme Kap2.5. -9- University of Applied Sciences S a b 1 2 1 2 R∪S a b 1 2 1 1 1 2 1 2 R∩S a b 1 2 R\S a b 1 1 Elektrotechnik und Informatik Faculty of Electrical Engineering and Computer Science 2.5.2 RA Operatoren S\R a b 1 2 Hochschule Niederrhein Dalitz: Datenbanksysteme Kap2.5. -11- University of Applied Sciences Elektrotechnik und Informatik Faculty of Electrical Engineering and Computer Science 2.5.2 RA Operatoren Achtung: b) Mengenoperatoren Rechenregeln für Mengen- und Bag-Version können unterschiedlich sein: • Vereinigung: R ∪ S • Schnitt: R ∩ S • Differenz: R \ S I R ∪ S = S ∪ R gilt für Mengen und Bags I (R ∪ S) \ T = (R \ T ) ∪ (S \ T ) gilt für Mengen, aber nicht Bags Bemerkungen: Mengenoperationen in SQL • Voraussetzung: identische Attributnamen in R und S • union, intersect und except für ∪, ∩ und \ nur möglich bei gleichen Rückgabetypen der verknüpften select-Statements • Schnittoperator eigentlich überflüssig wegen • normalerweise Mengenoperation (!), Bagoperation mit R ∩ S = (R ∪ S) \ ((R \ S) ∪ (S \ R)) Modifier all, z.B. select ... except all select ... ; Hochschule Niederrhein Dalitz: Datenbanksysteme Kap2.5. -10- University of Applied Sciences Elektrotechnik und Informatik Faculty of Electrical Engineering and Computer Science Hochschule Niederrhein Dalitz: Datenbanksysteme Kap2.5. -12- University of Applied Sciences Elektrotechnik und Informatik Faculty of Electrical Engineering and Computer Science 2.5.2 RA Operatoren 2.5.2 RA Operatoren Join = Selektion auf Kartesischem Produkt c) Umbenennung Ro nBed S Rename-Operator: %S(B1 ,...,Bn ) (R) = Kopie von R mit anderen Namen = σBed (R × S) Spezialfall Natural Join“: ” Bei Bedingung der Form a = b entstehen Spalten, die in allen Werten identisch sind ⇒ Vereinfachungskonvention Natural Join Wozu braucht man das? • um zwei Relation kompatibel für Mengenoperationen I ∪, ∩ oder \ zu machen I • Vermeidung doppelter Attributnamen im Cartesischen Produkt I Joinbedingung ist Gleichheit gleichnamiger Attribute identische Ergebnisspalten nur einmal aufgeführt Notation durch Weglassen der Bedingung Beispiel: Natural Join von R(a, b, c) und S(a, e, f ): Ro n S = πa,b,c,e,f R o nR.a=S.a S Elektrotechnik und Informatik Hochschule Niederrhein University of Applied Sciences Dalitz: Datenbanksysteme Kap2.5. -13- Faculty of Electrical Engineering and Computer Science 2.5.2 RA Operatoren σBedingung , πSpaltenliste ∪, ∩ und \ %S(b1,...,bn ) ×, o nBedingung = Relation Q mit allen Attributen aus R und S, wobei jedes Tupel ∈ R mit jedem Tupel ∈ S kombiniert wird S c d x y x z R× S a 1 1 3 3 b c 2 x 2 x 4 x 4 x Faculty of Electrical Engineering and Computer Science Selektion, Projektion Vereinigung, Schnitt und Differenz Umbenennung Kreuzprodukt, Join einige Rechenregeln d y z y z σBed1 (σBed2 (R)) = σBed2 (σBed1 (R)) R ∪ (S ∩ T ) = (R ∪ S) ∩ (R ∪ T ) πY (σBed (R)) = σBed (πY (R)) wenn in Bed nur Atrribute aus Y vorkommen σBed1 (R o nBed2 S) = σBed1 (R) o nBed2 σBed1 (S) Tupelanzahl: |R × S| = |R| · |S| wenn in Bed1 nur Atrribute aus attr (R) ∩ attr (S) vorkommen Hochschule Niederrhein Dalitz: Datenbanksysteme Kap2.5. -14- Elektrotechnik und Informatik Zusammenfassung Cartesisches Produkt (Kreuzprodukt): R a b 1 2 3 4 University of Applied Sciences 2.5.2 RA Operatoren d) Kombinationsoperatoren R ×S Hochschule Niederrhein Dalitz: Datenbanksysteme Kap2.5. -15- University of Applied Sciences Elektrotechnik und Informatik Faculty of Electrical Engineering and Computer Science Hochschule Niederrhein Dalitz: Datenbanksysteme Kap2.5. -16- University of Applied Sciences Elektrotechnik und Informatik Faculty of Electrical Engineering and Computer Science 2.5.2 RA Operatoren 2.5.3 Dreiwertige Logik Behandlung von NULL-Werten bei Vergleichs- operatoren und logischen Verknüpfungen? Darstellung von Queries Was sind die Produkte des Herstellers ’H1’, ” die mehr als 3 Euro kosten?“ a) Vergleichsoperatoren logischer Wert von (a ∼ b) ist unbekannt“ (ω), ” wenn a oder b den Wert NULL (unbekannt) hat a) Verkettung der Operatoren πpnr, name σpreis > 3 (produkt) ∩ σhnr = ’H1’ (produkt) b) Logische Verknüpfungen AND F ω T b) Definition temporärer Variablen R (nr, name, hnr, preis) := σpreis > 3 (produkt) S (nr, name, hnr, preis) := σhnr = ’H1’ (produkt) Ergebnis (nr, name) := πpnr, name (T ) Hochschule Niederrhein University of Applied Sciences Faculty of Electrical Engineering and Computer Science OR F ω T F F ω T ω ω ω T T T T T Hochschule Niederrhein University of Applied Sciences Dalitz: Datenbanksysteme Kap2.5. -19- Elektrotechnik und Informatik Faculty of Electrical Engineering and Computer Science 2.5.3 Dreiwertige Logik Beispiele: Was sind die Produkte des Herstellers ’H1’, die mehr als 3 ” Euro kosten?“ (a > NULL) AND (1 = 2) → unwahr (F) (NULL = NULL) OR (1 = 2) → unbekannt (ω) c) Baumdiagramm Bei Duplikatslöschung (z.B. bei ∪ nötig) werden NULL-Werte wie normale Werte behandelt π nr, name Verarbeitung T F ω T Elektrotechnik und Informatik 2.5.2 RA Operatoren R Operatoren ∩ a b 1 NULL NULL NULL σpreis > 3 σ hnr = ’H1’ produkt produkt Operanden an den Blättern Hochschule Niederrhein Dalitz: Datenbanksysteme Kap2.5. -18- ω F ω ω Not (F) = T Not (T) = F Not (ω) = ω T := R ∩ S Dalitz: Datenbanksysteme Kap2.5. -17- F F F F University of Applied Sciences S a 1 1 b NULL 2 S ∪R a b 1 NULL NULL NULL 1 2 E.F. Codd: Extending the Relational Model. ACM Transactions on Database Systems (4) 1979, p 397-434 Elektrotechnik und Informatik Faculty of Electrical Engineering and Computer Science Hochschule Niederrhein Dalitz: Datenbanksysteme Kap2.5. -20- University of Applied Sciences Elektrotechnik und Informatik Faculty of Electrical Engineering and Computer Science 2.5.4 Eigenschaften der RA 2.5.5 Algebraische Optimierung An der Tafel vorgeführt: Ausdrücke (1) und (2) sind äquivalent, d.h. liefern dasselbe Ergebnis • Komplexität der Operatoren I Operationen effizient (vgl. THI, 4. Semester) durchführbar I Bagoperatoren geringere Komplexität als Mengenoperatoren (1) (2) π lieferant, produkt π lieferant, produkt σlieferant=’Henkel’ • Grenzen der Relationalen Algebra σlieferant=’Henkel’ I es gibt Abfragen, die nicht in RA möglich sind (z.B. Berechnung der transitiven Hülle) I Grund: RA ist nicht Turing-vollständig (vgl. THI) Lieferant Produkt Lieferung Lieferant Produkt Lieferung Selektion wird in (2) früher durchgeführt ⇒ kleinere Zwischenergebnisse ⇒ performanter Hochschule Niederrhein University of Applied Sciences Dalitz: Datenbanksysteme Kap2.5. -21- Elektrotechnik und Informatik Faculty of Electrical Engineering and Computer Science 2.5.5 Algebraische Optimierung Hochschule Niederrhein University of Applied Sciences Dalitz: Datenbanksysteme Kap2.5. -23- Elektrotechnik und Informatik Faculty of Electrical Engineering and Computer Science 2.5.5 Algebraische Optimierung Beispiel: Allgemeine Optimierungsstrategie Lieferant (A) lnr# lieferant Produkt (B) pnr# produkt preis • Selektionen zu Blättern verschieben Lieferung (C) nr# lnr pnr menge I I Selektionen verkleinern Zwischenergebnisse ⇒ möglichst früh durchführen Joins sind besonders teuer. Nutze Regel σBed (R ∼ S) = σBed (R) ∼ S Die Abfrage πlieferant, produkt σlieferant = ’Henkel’ (A o nBo n C) für ∼ ∈ {×, o n, ∩} wenn R alle Attribute aus Bed enthält (1) • zusätzliche Projektionen einfügen kann wegen A o nB=Bo n A, σC (R o n S) = σC (R) o n S und (A o n B) o nC =Ao n (B o n C ) umgeformt werden in πlieferant, produkt C o n (σlieferant = ’Henkel’ (A) o n B) Hochschule Niederrhein Dalitz: Datenbanksysteme Kap2.5. -22- University of Applied Sciences I (2) nicht benötigte Spalten können entfernt werden ⇒ nicht weniger Tupel, aber weniger Attribute Garcia-Molina, Ullman, Widom: Database Systems - The Complete Book. Prentice Hall 2002. Kapitel 16.2 Elektrotechnik und Informatik Faculty of Electrical Engineering and Computer Science Hochschule Niederrhein Dalitz: Datenbanksysteme Kap2.5. -24- University of Applied Sciences Elektrotechnik und Informatik Faculty of Electrical Engineering and Computer Science 2.5.6 Erweiterte RA Operatoren 2.5.7 RA für Constraints Beispiel b) Foreign Key Constraint An der Tafel erläutert: δ τ γ ◦ ./ Duplikatslöschung Sortierung Gruppieren hersteller produkt hnr# name pnr# name hnr preis πhnr (produkt) ⊆ πhnr (hersteller) oder Outer Join πhnr (produkt) \ πhnr (hersteller) = ∅ Bemerkungen: • Projektionen oben sind Mengen-Operationen (warum?) • Ungleichung immer als Gleichung formulierbar wegen R⊆S Hochschule Niederrhein University of Applied Sciences Dalitz: Datenbanksysteme Kap2.5. -25- Elektrotechnik und Informatik Faculty of Electrical Engineering and Computer Science 2.5.7 RA für Constraints Integritätsbedingungen durch (Un-) Gleichungen der Relationalen Algebra formulierbar: A1 = ∅ A1 = A2 A1 ⊆ A2 wobei A1, A2 Ausdrücke der Relationalen Algebra Beispiel a) NOT NULL Constraint auf Attribut a in R: σa is NULL (R) =∅ Hochschule Niederrhein Dalitz: Datenbanksysteme Kap2.5. -26- University of Applied Sciences Elektrotechnik und Informatik Faculty of Electrical Engineering and Computer Science ⇐⇒ R \S =∅ Hochschule Niederrhein Dalitz: Datenbanksysteme Kap2.5. -27- University of Applied Sciences Elektrotechnik und Informatik Faculty of Electrical Engineering and Computer Science