2.5 Relationale Algebra

Ähnliche Dokumente
Relationen-Algebra. Prof. Dr. T. Kudraß 1

Query Languages (QL) Relationale Abfragesprachen/Relational

Universität Augsburg, Institut für Informatik WS 2005/2006 Prof. Dr. Werner Kießling 21. Nov M. Endres, A. Huhn, P. Preisinger Lösungsblatt 4

Wiederholung VU Datenmodellierung

Grundlagen von Datenbanken. Relationale Algebra und algebraische Optimierung

Daten-Definitionssprache (DDL) Bisher: Realwelt -> ERM -> Relationen-Modell -> normalisiertes Relationen-Modell. Jetzt: -> Formulierung in DDL

Relationale Datenbanken

Das Relationale Modell

SQL als Zugriffssprache

Grundlagen von Datenbanken

Datenbanken Unit 4: Das Relationale Modell & Datenintegrität

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.

Datenbanksysteme Kapitel 5: SQL Data Manipulation Language

SQL SQL. SQL = Structured Query Language (SEQUEL) IBM San Jose Research Laboratory SYSTEM R. Grundlagen der Datenbanksysteme I

SELECT dient dazu, aus einer vorhandenen Datenbank bestimmte Spalten und Zeilen auszugeben es handelt sich also um eine Auswahlabfrage.

Kap. 3 Relationenmodell mit relationaler Algebra

3. Grundlagen relationaler Datenbanksysteme

Schlüssel. Definition: Ein Schlüssel (key) einer Relation r(r) ist eine Til Teilmenge K von R, so dass für je zwei verschiedene Tupeln t 1

Vorlesung Datenbanksysteme vom

Anfrageoptimierung Logische Optimierung

Abfragen (Queries, Subqueries)

Datenmanipulation in SQL (1): Subselect:

Aggregatfunktionen in der Relationenalgebra?

WS 2010/11 Datenbanksysteme Fr 15:15 16:45 R Vorlesung #3. SQL (Teil 1)

Oberfläche SQL. Menü SQL. Formular. Kapitel 1: Datenbank- Administrator (DBA) Anwendungs- Programmierer. Datenbank- Verwaltungssystem (DBMS)

Grundlagen: Datenbanken

Kapitel 6. Datenmalipulation (DML) d. h. insert, update, delete, select im Relationenmodell (in Oracle)

Kapitel 2: Grundlagen von Anfragesprachen

Rückblick. Erweiterte b-adische Darstellung von Kommazahlen. 7,1875 dargestellt mit l = 4 und m = 4 Bits. Informatik 1 / Kapitel 2: Grundlagen

Datenbanksysteme Kapitel 5: SQL - Grundlagen

Inhaltsverzeichnis. Lothar Piepmeyer. Grundkurs Datenbanksysteme. Von den Konzepten bis zur Anwendungsentwicklung ISBN:

Datenbanken 1. Relationale Algebra. Nikolaus Augsten. FB Computerwissenschaften Universität Salzburg

insert, update, delete Definition des Datenbankschemas select, from, where Rechteverwaltung, Transaktionskontrolle

Grundlagen von SQL. Informatik 2, FS18. Dr. Hermann Lehner (Material von Dr. Markus Dahinden) Departement Informatik, ETH Zürich

ISU 1. Ue_08/02_Datenbanken/SQL. 08 Datenbanken. Übung. SQL Einführung. Eckbert Jankowski.

Null-Werte in Relationalen Datenbanken

Fortsetzung: Projektion Selektion. NULL Werte

Verbunde (Joins) und mengentheoretische Operationen in SQL

Kapitel 3: Relationale Algebra

Verbunde (Joins) und mengentheoretische Operationen in SQL

Daniel Warner SQL. Das Praxisbuch. Mit 119 Abbildungen. Franzis

SQL. Komplexe Abfragen. SQL-Komplexe Abfragen. SQL-Komplexe Abfragen. Komplexe Abfragen verknüpfen mehrere Tabellen miteinander.

Nachtrag: Farben. Farbblindheit. (Light und Bartlein 2004)

Rückblick. SQL bietet viele Möglichkeiten zur Anfrageformulierung

Inhaltsverzeichnis Vorwort zur vierten Auflage Vorwort zur dritten Auflage Vorwort zur zweiten Auflage Vorwort zur ersten Auflage Hinweise zur CD

SQL. Ziele. Grundlagen von SQL. Beziehung zur relationalen Algebra SELECT, FROM, WHERE. Joins ORDER BY. Aggregatfunktionen. dbis.

Datenbanksysteme Kapitel 5: SQL Data Manipulation Language

Abstraktionsschichten. Das Relationale Datenmodell

Vorlesung Datenbanken I Zwischenklausur

Datenbankabfragen und Datenmanipulation

Datenmanipulation in SQL. Select Anweisung

Welche Kunden haben die gleiche Ware bestellt? select distinct a1.name, a2.name from Auftrag a1, Auftrag a2 where a1.ware = a2.ware.

Auf einen Blick. Abfrage und Bearbeitung. Erstellen einer Datenbank. Komplexe Abfragen. Vorwort... 13

Kapitel 5 Dr. Jérôme Kunegis. SQL: Grundlagen. WeST Institut für Web Science & Technologien

Datenbanksysteme SS 2007

Relationale Datenbanken: Relationale Algebra

Anwendung Informatik Daten verwalten (2) Ursprüngliche Information Logische Verknüpfungen als Grundlage für die Informationsgewinnung

Kapitel 3: Die Relationale Algebra

Informationsmanagement u. Numerische Methoden

SQL: statische Integrität

Relationale Datenbanken

Auf einen Blick. Abfrage und Bearbeitung. Erstellen einer Datenbank. Komplexe Abfragen. Vorwort 13

Dieser Foliensatz darf frei verwendet werden unter der Bedingung, dass diese Titelfolie nicht entfernt wird.

Es geht also im die SQL Data Manipulation Language.

WS 2010/11 Datenbanksysteme Fr 15:15 16:45 R Vorlesung #4. SQL (Teil 2)

Wiederholung: Relationale Algebra

SQL Teil 2. SELECT Projektion Selektion Vereinigung, Schnitt, Differenz Verbund Komplexer SELECT-Ausdruck

Kapitel 5: Der SQL-Standard

Relationentheorie grundlegende Elemente

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.

HM I Tutorium 1. Lucas Kunz. 27. Oktober 2016

SQL - Datenbankdesign - Aufbau

Datenbank- Implementierungstechniken

Grundlagen von Datenbanken

SQL. SQL SELECT Anweisung SQL-SELECT SQL-SELECT

ACCESS SQL ACCESS SQL

Elemente der Analysis I Kapitel 3: Einführung III, Summen, Logik, Mengen, Beweise

Datenbanksysteme Teil 7 MySQL DML Die SELECT-Anweisung Mengenoperationen & Joins. Stefan Maihack Dipl. Ing. (FH) Datum:

Relationenkalkül. Prof. Dr. T. Kudraß 1

Transkript:

2.5 Relationale Algebra 2.5.1 Überblick Codd-vollständige relationale Sprachen Relationale Algebra Abfragen werden durch exakte Angabe der auf den Relationen durchzuführenden Operationen formuliert Relationenkalküle Abfrageergebnis wird durch seine Eigenschaften beschrieben ohne Angabe einer Berechnungsprozedur 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 Bedeutung der Relationalen Algebra Formale Sprache für den Berechnungsweg von Abfrageergebnissen mathematische Rechenregeln ermöglichen Abfrageoptimierung durch algebraische Umformung auch geeignet zur Formulierung von Integrity Constraints Dalitz: Datenbanksysteme Kap2.5. -1- Dalitz: Datenbanksysteme Kap2.5. -3- Wie verhält sich SQL dazu? Beispiel Algebra-Elemente: SELECT nr, name FROM WHERE hnr IN (SELECT nr FROM hersteller); Beispiel Kalkül-Element: SELECT nr, name FROM WHERE EXISTS (SELECT FROM hersteller WHERE hersteller.nr=.hnr); SQL basiert hauptsächlich auf Relationaler Algebra, enthält aber einzelne Elemente des Relationalen Kalküls. 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) Was ist eine Algebra? besteht aus atomaren Operanden und Operatoren Regelwerk um daraus Ausdrücke zu bilden; dabei im allgemeinen Gruppierung durch Klammern nötig Beispiel: Algebra der Arithmetik Operanden: Variablen (z.b. x) und Zahlenkonstanten (z.b. 42) Operatoren: arithmetische Operatoren (+,-,*,/) Beispiele für Ausdrücke in dieser Algebra: (x + 2*y) * z (x + 5)/(y - 2) + x Dalitz: Datenbanksysteme Kap2.5. -2- Dalitz: Datenbanksysteme Kap2.5. -4-

Operanden der Relationalen Algebra Relationen-Variablen Relationen-Konstanten Operatoren der Relationalen Algebra übliche Mengenoperationen (Vereinigung, Schnitt, Differenz) Extraktionsoperatoren Selektion und Projektion Kombinationsoperatoren Cartesisches Produkt und Joins Umbenennung ( Rename ) Ausdrücke der RA heißen Queries (Abfragen) Relationenänderung durch Zuweisung, z.b. Mengen versus Bags Relationales Modell ursprünglich (Codd 1970) mit Relationen als Mengen definiert keine Doubletten zulässig Operatoren inperformant (warum?) Moderne Implementierungen bevorzugen Bags (ungeordnete Listen) Tupel ungeordnet, aber Doubletten möglich Operatoren performant implementierbar Operatoren der Relationalen Algebra haben eine Mengen- und eine Bag-Version A := A \ σ nr= H2 (A) Dalitz: Datenbanksysteme Kap2.5. -5- Dalitz: Datenbanksysteme Kap2.5. -7- Themen zur Relationalen Algebra: Operatoren und Rechenregeln Welche Basis-Operatoren werden benötigt für Abfragen? Unterschied Relationen versus Bags Dreiwertige Logik Behandlung von NULL-Werten a) Extraktionsoperatoren Projektion π a1,...,a n (R) = Auswahl der Spalten a 1,..., a n Selektion σ Bedingung (R) = Auswahl Tupel, die Bedingung erfüllen Eigenschaften der Operatoren Berechnungskomplexität, begrenzte Ausdrucksstärke Algebraische Umformungen Äquivalenz algebraischer Ausdrücke, Abfrageoptimierung Formulierung von Constraints mit RA σ preis > 3 π name, preis pnr# name preis hnr P1 Pritt 2.50 H1 P2 Füller 12.98 H2 P3 Tinte 3.20 H2 Dalitz: Datenbanksysteme Kap2.5. -6- Dalitz: Datenbanksysteme Kap2.5. -8-

Bemerkungen: Verhalten des Selektionsoperators σ für Bags und Mengen identisch (Warum?) Projektionsoperator π für Bags und Mengen verschieden Wie verhält sich SQL-Befehl select dazu? Kombination von Selektion und Projektion: SELECT name FROM WHERE preis > 3; entspricht π name (σ preis>3 ()) normalerweise Bagoperation, mit Modifier distinct aber Mengenoperation Definition von, und \ für Mengen altbekannt. Aber was ist bei Bags? R enthalte Tupel t n-mal S enthalte dasselbe Tupel t m-mal 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 R S R S R S R \ S S \ R a b a b a b a b a b a b 1 1 1 1 1 1 Dalitz: Datenbanksysteme Kap2.5. -9- Dalitz: Datenbanksysteme Kap2.5. -11- b) Mengenoperatoren Vereinigung: R S Schnitt: R S Differenz: R \ S Bemerkungen: Voraussetzung: identische Attributnamen in R und S Schnittoperator eigentlich überflüssig wegen R S = (R S) \ ((R \ S) (S \ R)) Achtung: Rechenregeln für Mengen- und Bag-Version können unterschiedlich sein: R S = S R gilt für Mengen und Bags (R S) \ T = (R \ T ) (S \ T ) gilt für Mengen, aber nicht Bags Mengenoperationen in SQL union, intersect und except für, und \ nur möglich bei gleichen Rückgabetypen der verknüpften select-statements normalerweise Mengenoperation (!), Bagoperation mit Modifier all, z.b. select... except all select... ; Dalitz: Datenbanksysteme Kap2.5. -10- Dalitz: Datenbanksysteme Kap2.5. -12-

c) Umbenennung Rename-Operator: ϱ S(B1,...,B n)(r) = Kopie von R mit anderen Namen Wozu braucht man das? um zwei Relation kompatibel für Mengenoperationen, oder \ zu machen Vermeidung doppelter Attributnamen im Cartesischen Produkt Join = Selektion auf Kartesischem Produkt Spezialfall Natural Join : R Bed S = σ Bed (R S) Bei Bedingung der Form a = b entstehen Spalten, die in allen Werten identisch sind Vereinfachungskonvention Natural Join 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 ): R S = π a,b,c,e,f ( R R.a=S.a S ) Dalitz: Datenbanksysteme Kap2.5. -13- Dalitz: Datenbanksysteme Kap2.5. -15- d) Kombinationsoperatoren Cartesisches Produkt (Kreuz): R R S = Relation Q mit allen Attributen aus R und S, wobei jedes Tupel R mit jedem Tupel S kombiniert wird a b 3 4 S Tupelanzahl: R S = R S c d R S a b c d x y x z x y x z 3 4 x y 3 4 x z Zusammenfassung σ Bedingung, π Spaltenliste Selektion, Projektion, und \ Vereinigung, Schnitt und Differenz ϱ S(b1,...,bn ) Umbenennung, Bedingung Kreuz, Join einige Rechenregeln σ 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 Bed2 S) = σ Bed1 (R) Bed2 σ Bed1 (S) wenn in Bed1 nur Atrribute aus attr(r) attr(s) vorkommen Dalitz: Datenbanksysteme Kap2.5. -14- Dalitz: Datenbanksysteme Kap2.5. -16-

Darstellung von Queries Was sind die Produkte des Herstellers H1, die mehr als 3 Euro kosten? a) Verkettung der Operatoren ) π pnr, name (σ preis > 3 () σ hnr = H1 () b) Definition temporärer Variablen R (nr, name, hnr, preis) := σ preis > 3 () S (nr, name, hnr, preis) := σ hnr = H1 () T := R S Ergebnis (nr, name) := π pnr, name (T ) 2.5.3 Dreiwertige Logik Behandlung von NULL-Werten bei Vergleichs- operatoren und logischen Verknüpfungen? a) Vergleichsoperatoren logischer Wert von (a b) ist unbekannt (ω), wenn a oder b den Wert NULL (unbekannt) hat b) Logische Verknüpfungen AND F ω T F F F F ω F ω ω T F ω T Not (F) = T Not (T) = F Not (ω) = ω OR F ω T F F ω T ω ω ω T T T T T Dalitz: Datenbanksysteme Kap2.5. -17- Dalitz: Datenbanksysteme Kap2.5. -19- Was sind die Produkte des Herstellers H1, die mehr als 3 Euro kosten? c) Baumdiagramm 2.5.3 Dreiwertige Logik Beispiele: (a > NULL) AND (1 = 2) unwahr (F) (NULL = NULL) OR (1 = 2) unbekannt (ω) π nr, name Bei Duplikatslöschung (z.b. bei nötig) werden NULL-Werte wie normale Werte behandelt Verarbeitung σ preis > 3 σ hnr = H1 Operatoren R a b S a b 1 NULL NULL NULL 1 NULL S R a b 1 NULL NULL NULL Operanden an den Blättern E.F. Codd: Extending the Relational Model. ACM Transactions on Database Systems (4) 1979, p 397-434 Dalitz: Datenbanksysteme Kap2.5. -18- Dalitz: Datenbanksysteme Kap2.5. -20-

2.5.4 Eigenschaften der RA An der Tafel vorgeführt: Komplexität der Operatoren Operationen effizient (vgl. THI, 4. Semester) durchführbar Bagoperatoren geringere Komplexität als Mengenoperatoren 2.5.5 Algebraische Optimierung Ausdrücke (1) und (2) sind äquivalent, d.h. liefern dasselbe Ergebnis (1) π (2) σ lieferant, lieferant= Henkel π lieferant, Grenzen der Relationalen Algebra es gibt Abfragen, die nicht in RA möglich sind (z.b. Berechnung der transitiven Hülle) Grund: RA ist nicht Turing-vollständig (vgl. THI) Lieferant Produkt Lieferung σ lieferant= Henkel Lieferant Produkt Lieferung Selektion wird in (2) früher durchgeführt kleinere Zwischenergebnisse performanter Dalitz: Datenbanksysteme Kap2.5. -21- Dalitz: Datenbanksysteme Kap2.5. -23-2.5.5 Algebraische Optimierung Beispiel: Die Abfrage Lieferant (A) Produkt (B) Lieferung (C) lnr# lieferant pnr# preis nr# lnr pnr menge ) π lieferant, (σ lieferant = Henkel (A B C) kann wegen A B = B A, σ C (R S) = σ C (R) S und (A B) C = A (B C) umgeformt werden in ) π lieferant, (C (σ lieferant = Henkel (A) B) (1) (2) 2.5.5 Algebraische Optimierung Allgemeine Optimierungsstrategie Selektionen zu Blättern verschieben Selektionen verkleinern Zwischenergebnisse möglichst früh durchführen Joins sind besonders teuer. Nutze Regel σ Bed (R S) = σ Bed (R) S für {,, } wenn R alle Attribute aus Bed enthält zusätzliche Projektionen einfügen 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 Dalitz: Datenbanksysteme Kap2.5. -22- Dalitz: Datenbanksysteme Kap2.5. -24-

2.5.6 Erweiterte RA Operatoren 2.5.7 RA für Constraints Beispiel b) An der Tafel erläutert: δ τ γ Duplikatslöschung Sortierung Gruppieren Outer Join Bemerkungen: Foreign Key Constraint oder hersteller hnr# name pnr# name hnr preis π hnr () π hnr (hersteller) π hnr () \ π hnr (hersteller) = Projektionen oben sind Mengen-Operationen (warum?) Ungleichung immer als Gleichung formulierbar wegen R S R \ S = Dalitz: Datenbanksysteme Kap2.5. -25- Dalitz: Datenbanksysteme Kap2.5. -27-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) = Dalitz: Datenbanksysteme Kap2.5. -26-