Kapitel 3: Relationale Algebra

Ähnliche Dokumente
Einleitung Projektion Selektion Join Mengenop. Vollst.keit. Einleitung Projektion. Selektion Join. Vollst.keit. Einleitung Projektion Selektion Join

Grundlagen von Datenbanken

Kapitel 2: Geschachtelte relationale Algebra

7. Grundlagen von Anfragen. Einführung. Kriterien für Anfragesprachen. Einführung II

Grundlagen von Datenbanken. Relationale Algebra und algebraische Optimierung

Kap. 3 Relationenmodell mit relationaler Algebra

Motivation Anford. Anfrage- Kalküle Bereichskalkül. Sichere Anfragen Beispiele. Ausdrucksfähigkeit. Tupelkalkül. Motivation Anford.

Relationen-Algebra. Prof. Dr. T. Kudraß 1

Das Relationale Modell

2.5 Relationale Algebra

Teil VIII Grundlagen von Anfragen: Algebra & Kalkül

Kapitel 2: Grundlagen von Anfragesprachen

3. Grundlagen relationaler Datenbanksysteme

Query Languages (QL) Relationale Abfragesprachen/Relational

Grundlagen von Datenbanken SS 2010

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

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

Grundlagen von Datenbanken

Aggregatfunktionen in der Relationenalgebra?

Teil III. Relationale Datenbanken Daten als Tabellen

mit Musterlösungen Prof. Dr. Gerd Stumme, Dipl.-Inform. Christoph Schmitz 14. Mai 2007 σ KID= 11a (Schüler) π S Name (σ KID= 11a (Schüler))

5. Relationaler Datenbankentwurf. Relationaler DB-Entwurf: Überblick. Bücher-Relation mit Redundanzen

Vorlesung Datenbanksysteme vom

4. Relationen-Algebra. Basisoperationen des relationalen Modells. Kriterien für Anfragesprachen. Operationen der Relationen-Algebra

Mengenlehre. Jörg Witte

Grundlagen von Datenbanken. 4. Übung: Algebraische Optimierung

Relationale Datenbanken: Relationale Algebra

Grundlagen: Datenbanken

Wiederholung VU Datenmodellierung

9. Einführung in Datenbanken

Kapitel 11. Normalisierung

Teil II Relationale Datenbanken Daten als Tabellen

Grundlagen von Datenbanken. 4. Übung: Algebraische Optimierung

Rückblick: Relationales Modell

Relationale Datenbanken

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

Informatik II Datenorganisation Datenbanken

Datenbanken Unit 4: Das Relationale Modell & Datenintegrität

Das relationale Datenmodell

Diskrete Strukturen Kapitel 2: Grundlagen (Mengen)

8. Relationale Datenbanksprachen

Wirtschaftsinformatik 7a: Datenbanken. Hochschule für Wirtschaft und Recht SS 16 Dozent: R. Witte

Mathematische Grundlagen I Logik und Algebra

Rückblick: Datenbankentwurf

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

Wiederholung: Relationale Algebra

Datenbanksprache SQL. Datenbanksprache SQL. 5.1 Anfragesprache SQL-DQL. from-klausel SS 2005

Mathematik I für Studierende der Informatik und Wirtschaftsinformatik (Diskrete Mathematik) im Wintersemester 2015/16

Datenbanksysteme Kapitel 5: SQL Data Manipulation Language

Kapitel 10: Relationale Anfragebearbeitung

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

Informationsmanagement u. Numerische Methoden

FachPraktikum 1590 Erweiterbare Datenbanksysteme. Aufgaben Phase 1

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

Vorlesung Datenbankmanagementsysteme

Kapitel DB:V (Fortsetzung)

Anfrageoptimierung Logische Optimierung

Handout zur Unit Datenmodellierung Web-Technologien Datenmodellierung Prof. Dr. rer. nat. Nane Kratzke

Kapitel 3: Datenbanksysteme

Verbunde (Joins) und mengentheoretische Operationen in SQL

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

Verbunde (Joins) und mengentheoretische Operationen in SQL

Lineare Algebra I. - 1.Vorlesung - Prof. Dr. Daniel Roggenkamp & Falko Gauß. Monday 12 September 16

Mathematik für Physiker, Informatiker und Ingenieure

Geoinformation Abbildung auf Tabellen

Einführung in die Wirtschaftsinformatik Kapitel 4: Relationale Datenbanksprachen: SQL

Der relationale Tupel-Kalkül

Es geht also im die SQL Data Manipulation Language.

Kapitel 2: Das Relationale Modell

Webbasierte Informationssysteme

5.3 Datenänderung/-zugriff mit SQL (DML)

Vorlesung Datenbankmanagementsysteme

Rückblick: Relationale Entwurfstheorie

Indexstrukturen in SQL

Das diesem Dokument zugrundeliegende Vorhaben wurde mit Mitteln des Bundesministeriums für Bildung und Forschung unter dem Förderkennzeichen

Übung Datenbanken in der Praxis. Anfragen an Datenbanken mit SQL

Vorlesung Datenbanken. TU Dresden, SS Kai-Uwe Sattler.

Datenbanksysteme Kapitel 5: SQL Data Manipulation Language

Normalisierung Szenario [nach Zehnder; Informationssysteme und Datenbanken. Teubner, 1989]

Gruppe B Bitte tragen Sie SOFORT und LESERLICH Namen und Matrikelnr. ein, und legen Sie Ihren Studentenausweis bereit.

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

Kapitel 2: Das Relationale Modell

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

Datenbank- Implementierungstechniken

= { } Absolutes Komplement Universe Relatives Komplement von

Mathematische Grundlagen der Computerlinguistik

from-klausel Sprachen und ihre Grundlagen Relationale Datenbanksprachen SQL-Kern Syntax select from Beispiel select from liefert die gesamte Relation

Transkript:

Kapitel 3: Relationale Algebra Algebra Motivation (1) Wir wollen aus Relationen für uns interessante Informationen extrahieren, Tabellen modifizieren und neue Tabellen aus alten generieren Datenbankeinsatz: Relationale Algebra 1 Datenbankeinsatz: Relationale Algebra 2 Algebra Motivation (2) Anfragealgebren Anfragesprache (SQL) ist definitiv nützlich (Datenunabhängigkeit) Wir betrachten in diesem Kapitel aber anderen Mechanismus, relationale Algebra: Einfacher, erlaubt Aussagen zur Ausführungsreihenfolge Später: Abbildung von SQL auf Ausdrücke der relationalen Algebra Mathematik Algebra definiert durch Wertebereich und auf diesem definierte Operatoren Für Datenbankanfragen Inhalte der Datenbank sind Werte, und Operatoren definieren Funktionen zum Berechnen von Anfrageergebnissen Datenbankeinsatz: Relationale Algebra 3 Datenbankeinsatz: Relationale Algebra 4

Anforderungen Anfragen (in Anfragesprache) werden i a abgebildet auf Folge von Algebra-Operatoren Anforderungen an diese Algebra: Optimierbarkeit: Bestehend aus wenigen Operationen, für die es Optimierungsregeln gibt Effizienz: Jede Operation ist effizient ausführbar (Im Relationenmodell hat jede Operation eine Komplexität O(n 2 ), n Anzahl der Tupel einer Relation) Mengenorientiertheit: Jede Operation soll auf Mengen von Daten gleichzeitig arbeiten, nicht navigierend nur auf einzelnen Elementen (one-tuple-at-a-time) Datenbankeinsatz: Relationale Algebra 5 Relationenalgebra (1) Spalten ausblenden:, Zeichen π; in []: welche Spalten behalten, in (): auf welche Relation anwenden; Zeilen heraussuchen:, Zeichen σ; in []: unter welchen Bedingungen, in (): auf welche Relation anwenden; Tabellen verknüpfen: Verbund (), Zeichen ; Tupel über gleichbenannten Spalten und Werten aneinanderhängen; Tabellen vereinigen: Vereinigung, Zeichen ; Tupel aus beiden Relationen sammeln, Duplikate eliminieren Datenbankeinsatz: Relationale Algebra 6 Relationenalgebra (2) Tabellen voneinander abziehen: Differenz; Zeichen ; Tupel aus der ersten Relation herausnehmen, falls sie auch in der zweiten Relation vorkommen Spalten umbenennen: Umbenennung, Zeichen ß; einen Attributnamen in einen anderen umbenennen (wichtig für und, ) Laufendes Beispiel Ausleih Invnr Name 4711 Meyer 1201 Schulz 0007 Müller 4712 Meyer Buch Invnr Titel ISBN Autor 0007 Dr No 3-125 James Bond 1201 Objektbanken 3-111 Heuer 4711 Datenbanken 3-765 4712 Datenbanken 3-891 Ullman 4717 Pascal 3-999 Datenbankeinsatz: Relationale Algebra 7 Datenbankeinsatz: Relationale Algebra 8

(1) Beispiel 1: auf ein Attribut π[name](ausleih) ergibt als Ergebnisrelation Name Meyer Schulz Müller Doppelte Ergebnistupel eliminiert (2) Syntax π[attributmenge](relation) bzw π attributmenge (relation) Semantik π X (r) := {t(x) t r} für r(r) und X R Attributmenge in R Datenbankeinsatz: Relationale Algebra 9 Datenbankeinsatz: Relationale Algebra 10 (3) Beispiel 2: auf Attributmenge π[invnr, ISBN](Buch) ergibt Invnr ISBN 0007 3-125 1201 3-111 4711 3-765 4712 3-891 4717 3-999 (4) Einfache Optimierungsregel: Bei vielen en hintereinander reicht die zuletzt ausgeführte auch allein π[invnr](π[invnr, ISBN](Buch)) ergibt optimiert π[invnr](buch) Wieso sind derartige Optimierungen wichtig? Für Anfrageausführung Alternativen sind zwar äquivalent, aber unterschiedlich teuer in der Ausführung Optimierung nutzt Äquivalenz aus, um günstige Ausführung zu finden Datenbankeinsatz: Relationale Algebra 11 Datenbankeinsatz: Relationale Algebra 12

(5) Grafische Darstellung oft hilfreich Ersetzung von π[invnr](π[invnr, ISBN](Buch)) durch π[invnr](buch) ist immer vorteilhaft Bei anderen Transformationen hängt Vorteilhaftigkeit vom Datenbankzustand ab, z B Vertauschung von en (1) Beispiel σ[name < 'N'](Ausleih) ergibt Invnr Name 4711 Meyer 0007 Müller 4712 Meyer Datenbankeinsatz: Relationale Algebra 13 Datenbankeinsatz: Relationale Algebra 14 (2) Syntax σ[bedingung](relation) bzw σ bedingung (relation) Semantik σ F (R) := {t t r F(t)=true} (3) sbedingungen: F Konstanten- Attribut θ Konstante boolesches Prädikat θ ist = oder, bei linear geordneten Wertebereichen auch <, <, > oder > F Attribut- Attribut1 θ Attribut2 F logische Verknüpfung mehrerer Konstantenoder Attribut-en mit, oder Datenbankeinsatz: Relationale Algebra 15 Datenbankeinsatz: Relationale Algebra 16

(4) Einfache Optimierungsregeln: en lassen sich in der Reihenfolge beliebig vertauschen, Beispiel: σ Invnr=4711 (σ Name 'N' ( Ausleih)) = σ Name 'N' (σ Invnr=4711 ( Ausleih)) Manchmal lassen sich und vertauschen; Ist π Invnr (σ Name 'N' (Ausleih)) = σ Name 'N' (π Invnr (Ausleih))? (5) Einfache Optimierungsregeln (Forts): Manchmal lassen sich und vertauschen (Forts); Voraussetzung für Vertauschbarkeit: sattribute kommen in sliste vor Beispiel: π Name (σ Name 'N' (Ausleih)) Datenbankeinsatz: Relationale Algebra 17 Datenbankeinsatz: Relationale Algebra 18 Verbund Syntax des (natürlichen) Verbundes (englisch: natural join) Relation1 Relation2 Semantik r 1 r 2 :={t t(r 1 R 2 ) [ i {1, 2} t i r i : t i =t(r i )]} Verbund verknüpft Tabellen über gleichbenannten Spalten bei gleichen Attributwerten Buch Laufendes Beispiel Ausleih Invnr Name 4711 Meyer 1201 Schulz 0007 Müller 4712 Meyer Invnr Titel ISBN Autor 0007 Dr No 3-125 James Bond 1201 Objektbanken 3-111 Heuer 4711 Datenbanken 3-765 4712 Datenbanken 3-891 Ullman 4717 Pascal 3-999 Datenbankeinsatz: Relationale Algebra 19 Datenbankeinsatz: Relationale Algebra 20

Ausleih ergibt Verbund: Beispiel (1) Buch Name Invnr Titel ISBN Autor Müller 0007 Dr No 3-125 James Bond Schulz 1201 Objektbanken 3-111 Heuer Meyer 4711 Datenbanken 3-765 Meyer 4712 Datenbanken 3-891 Ullman Nicht ausgeliehenes Pascal-Buch verschwindet: Tupel, die keinen Partner finden (dangling tuples), werden eliminiert In SQL: outer join, der dangling tuples übernimmt Verbund: Beispiel (2) π[autor](buch) π[invnr](ausleih) entartet zu kartesischem Produkt Autor Invnr James Bond 4711 James Bond 1201 James Bond 0007 James Bond 4712 Heuer 4711 Heuer 1201 Heuer 0007 Heuer 4712 4711 Kartesisches Produkt alle Paare, die möglich sind Datenbankeinsatz: Relationale Algebra 21 Datenbankeinsatz: Relationale Algebra 22 Eigenschaften Verbund Kommentare zu vorangegangener Folie Verbund kommutativ: r 1 r 2 = r 2 r 1 Verbund assoziativ: (r 1 r 2 ) r 3 = r 1 (r 2 r 3 ) p Daher erlaubt: r i=1 i Beispiel dafür, daß -Reihenfolge wichtig: r 1 B r 2 B C r 3 b a c1 a c100000 B a a D d1 d100000 -Reihenfolge ist wichtig Gute -Reihenfolge abhängig von den Daten in den Relationen Gute -Reihenfolge schwierig zu erkennen Physische Datenunabhängigkeit Keine Festlegung der -Reihenfolge in SQL Datenbankeinsatz: Relationale Algebra 23 Datenbankeinsatz: Relationale Algebra 24

Buch1 Mengenoperationen und Umbenennung Autor1 James Bond Heuer Ullman Buch2 Umbenennung ß[neu alt](relation) (bzw ß neu alt (relation)) ändert Attributnamen von alt in neu Beispiel: ß[Autor1 Autor2](Buch2) Durch Umbenennung nun Vereinigung, Differenz und Durchschnitt möglich Autor2 Witt Silberschatz Meier Mengenoperationen: Vereinigung relation1 relation2 Beispiel: Buch1 β[autor1 Autor2](Buch2) Autor1 James Bond Heuer Ullman Witt Silberschatz Meier Datenbankeinsatz: Relationale Algebra 25 Datenbankeinsatz: Relationale Algebra 26 Mengenoperationen: Differenz relation1 relation2 Beispiel: Buch1 β[autor1 Autor2](Buch2) Autor1 James Bond Heuer Ullman Mengenoperationen: Durchschnitt relation1 relation2 Beispiel: Buch1 ß[Autor1 Autor2] (Buch2) Autor1 Datenbankeinsatz: Relationale Algebra 27 Datenbankeinsatz: Relationale Algebra 28

Mengenoperationen, Umbenennung (1) Umbenennung ermöglicht Verbunde, wo bisher kartesische Produkte ausgeführt wurden (unterschiedliche Attribute werden gleich benannt), kartesische Produkte, wo bisher Verbunde ausgeführt wurden (gleiche Attribute werden unterschiedlich genannt), Mengenoperationen Mengenoperationen, Umbenennung (2) Was ist der Natural dieser Relationen ohne Umbenennung? Buch1 Autor James Bond Heuer Ullman Buch2 Autor Witt Silberschatz Meier Datenbankeinsatz: Relationale Algebra 29 Datenbankeinsatz: Relationale Algebra 30 Mengenoperationen, Umbenennung (3) Mengenoperationen, Umbenennung (4) Beispiel: Buch1 Autor James Bond Heuer Ullman Buch2 Wir wollen Paare bilden (James Bond, Witt), (James Bond, ),, (Heuer, Witt), Vorgehen: Umbenennung und Natural Autor Witt Silberschatz Meier Erinnerung: Tupel Abbildung R={A 1,, A n } Formal für r 1 (R) und r 2 (R) Umbenennung β B A (r) := {t t r: t (R {A})=t(R {A}) t (B)=t(A)} Vereinigung r 1 r 2 := {t t r 1 t r 2 } Differenz r 1 r 2 := {t t r 1 t r 2 } Durchschnitt r 1 r 2 := {t t r 1 t r 2 } Durchschnitt wegen r 1 r 2 =r 1 (r 1 r 2 ) überflüssig t :R U m i= 1 D i Datenbankeinsatz: Relationale Algebra 31 Datenbankeinsatz: Relationale Algebra 32

Unabhängigkeit und Vollständigkeit (1) Minimale Relationenalgebra: Ω=π, σ,,β, und Relationale Vollständigkeit: Jede andere Menge von Operationen, genauso mächtig wie Ω Strenge relationale Vollständigkeit: Zu jedem Ausdruck mit Operatoren aus Ω gibt es einen Ausdruck auch mit der anderen Menge von Operationen, also ohne Sprachkonstrukte wie zb ;, while Unabhängigkeit und Vollständigkeit (2) Ω ist unabhängig: Kein Operator kann weggelassen werden, ohne Vollständigkeit zu verlieren Andere unabhängige Menge: und ß durch ersetzen Warum wichtig? Redundanzfreiheit für formale Überlegungen vorteilhaft Minimalität bequemer, wenn es darum geht, Vollständigkeit nachzuweisen Datenbankeinsatz: Relationale Algebra 33 Datenbankeinsatz: Relationale Algebra 34 Division: Beispiel Pilot Flugzeug Snoopy 707 Snoopy 727 Snoopy 747 Meyer 707 Meyer 727 Müller 707 Müller 727 Müller 747 Müller 777 Lüdenscheid 727 r 1 r 2 r 1 r 2 Pilot Snoopy Müller r 1 r 3 r 3 Flugzeug 707 727 747 Flugzeug 707 Pilot Snoopy Meyer Müller Division aus Ω herleitbar r 1 (R 1 ) und r 2 (R 2 ) gegeben mit R 2 R 1, R =R 1 R 2 R 1 ={Pilot, Flugzeug}, R 2 ={Flugzeug} Division von r 1 durch r 2 r 1 r 2 = π R (r 1 ) π R ((π R (r 1 ) r 2 ) r 1 ) r 1 r 2 = π Pilot (r 1 ) π Pilot ((π Pilot (r 1 ) r 2 ) r 1 ) Pilot Flugzeug Snoopy 707 Snoopy 727 Snoopy 747 Meyer 707 Meyer 727 Müller 707 Müller 727 Müller 747 Müller 777 Lüdenscheid 727 r 1 r 2 Flugzeug 707 727 747 Datenbankeinsatz: Relationale Algebra 35 Datenbankeinsatz: Relationale Algebra 36

-Modell (1) -Modell (2) Relationales Datenmodell einerseits einfach und klar, andererseits beschränkt ausdrucksmächtig Keine strukturierten Attribut-Werte, erste Normalform (1NF) alle Attributwerte atomar Geschachtelte Relationen ( Non First Normal Form ): Attribut kann selbst wieder Menge von Attributen sein Attributwert kann selbst wieder Relation sein Beispiel: Belegschaft, Telefone Fachbereich Beleg schaft PANr Nachname Telefone Gehalt Telefon 038203-12230 4711 Heuer 0381-498-3401 6000 0381-498-3427 5588 Saake 0391-345677 6000 Informatik 0391-5592- 3800 7754 Möller 550 8832 Jagellovsk 2800 Mathematik 6834 Korn 750 Datenbankeinsatz: Relationale Algebra 37 Datenbankeinsatz: Relationale Algebra 38 Varianten des -Modells (1) Varianten des -Modells (2) PNF ( Partitioned Normal Form ) entschachtelt durch äquivalente 1NF-Relation darstellbar A D B C 1 2 3 4 2 2 1 1 4 1 3 1 1 A C B D 1 2 2 3 1 3 2 4 A B C 1 2 3 1 4 2 2 1 1 2 4 1 3 1 1 Verallgemeinerung von (e ) mögliche Typkonstruktoren nicht nur set of, tuple of, auch list of, bag of, array PNF-Relation Nicht PNF Entnestete Variante der PNF-Relation Datenbankeinsatz: Relationale Algebra 39 Datenbankeinsatz: Relationale Algebra 40

-Algebra Mögliche Prüfungsfragen, beispielhaft Operation zum Schachteln (ν) und Entschachteln (µ) Geben Sie die Anforderungen an eine relationale Algebra aus der LV wieder und erklären Sie sie Was versteht man unter -Reihenfolge? Erläutern Sie die Wichtigkeit dieses Konzepts Geben Sie ein Beispiel für zwei äquivalente, aber unterschiedliche Algebra-Ausdrücke, die einen s- und einen -Operator beinhalten (Im Grunde beliebig variierbar mit anderen Operatoren) Was bedeuten Vollständigkeit und Unabhängigkeit im Kontext der relationalen Algebra? Warum enthält Ω nicht? Datenbankeinsatz: Relationale Algebra 41 Datenbankeinsatz: Relationale Algebra 42 Mögliche Prüfungsfragen, beispielhaft Was ist das -Modell? Welche Varianten kennen Sie? Datenbankeinsatz: Relationale Algebra 43