Rückblick: Relationales Modell

Ähnliche Dokumente
4. Structured Query Language (SQL)

Datenbanksysteme SS 2007

Structured Query Language (SQL) als standardisierte Anfragesprache für relationale Datenbanken

Semantische Integrität (auch: Konsistenz) der in einer Datenbank gespeicherten Daten als wichtige Anforderung

Das relationale Modell

Einleitung Projektion Selektion Join Mengenop. Vollst.keit. Einleitung Projektion. Selektion Join. Vollst.keit. Einleitung Projektion Selektion Join

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

Datenbanksysteme SS 2007

Inhalt. 2.1 Datenbankentwurf. 2.2 Relationales Modell. 2.3 Relationale Entwurfstheorie. 2.4 Relationale Algebra. 2.5 Structured Query Language (SQL)

Architektur eines DBMS Logische Optimierung

Datenbanken & Informationssysteme (WS 2015/2016)

Es wird empfohlen folgendes Material anzusehen:

9. Einführung in Datenbanken

Datenbanken (WS 2015/2016)

Datenbanksysteme Vorlesung vom noch Kapitel 7: SQL. Oliver Vornberger. Institut für Informatik Universität Osnabrück

Teil III. Relationale Datenbanken Daten als Tabellen

3. Das Relationale Datenmodell

Relationale Kalküle. Grundlagen der Datenbanken. Dr. Jérôme Kunegis Wintersemester 2013/14

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

Übung Datenbanksysteme I Relationale Algebra. Thorsten Papenbrock

Kapitel 3: Die Relationale Algebra

Informatik II Datenorganisation Datenbanken

Grundlagen: Datenbanken WS 15/16

Kapitel 3: Datenbanksysteme

Logische Optimierung. Im Allgemeinen wird keine optimale Lösung erzielt, sondern nur eine Verbesserung. Logische Optimierung

Aufgabensammlung SQL SW4 1. Einfache Anfragen

Kapitel 7 Dr. Jérôme Kunegis. Logische Kalküle. WeST Web Science & Technologies

ACCESS SQL ACCESS SQL

Kapitel 3: Datenbanksysteme

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

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

SQL. Kapitel 4 SQL 121 / 508

Ein Schlüssel ist eine Menge von Attributen (also eines oder mehrere), die eine Datenzeile (Tupel) einer Tabelle eindeutig identifiziert

Datenbanksysteme 2015

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

Kapitel 3: Datenbanksysteme

Anfragebearbeitung. Kapitel 7. Anfragebearbeitung 285 / 520

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

Leopold-Franzens-Universität Innsbruck. Institut für Informatik Datenbanken und Informationssysteme. Johannes Kessler

Objektrelationale Datenbanken

Relationales Datenmodell

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

Objektorientierte Datenbanken

Logische Datenmodelle

Datenbanksysteme (1)

Termin 12: Datenbanksysteme (2) - Einführung in SQL

Datenbanksysteme 2011

Probabilistische Datenbanken

Übungen zu Datenbanksysteme

Datenbanksysteme I Übung: Relationale Algebra. Jana Bauckmann

Relationentheorie grundlegende Elemente

Vorlesung Datenbankmanagementsysteme

Andreas Heuer Gunter Saake Kai-Uwe Sattler. Datenbanken. kompakt

Inhalt. Datenbanken 1. Inhalt. Literatur und Quellen. Relationale Algebra

Kapitel 2: Einstieg in SQL

Kapitel 3: Datenbanksysteme

Datenbanken I - Einführung

Carl-Christian Kanne. Einführung in Datenbanken p.1/513

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

ARBEITSBLATT ZU SQL-BEFEHLEN

Datenbanken. Einführung. Tobias Galliat. Sommersemester 2012

Datenmanipulation in SQL. Select Anweisung

Datenbankmodelle 2. Das relationale Modell

Objektrelationale und erweiterbare Datenbanksysteme

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

3. Spezielle ER-Modelle und Tabellenableitung. Transformation von ER-Diagrammen in Relationen

Relationales Datenmodell

IT-Kompaktkurs. Datenbanken Skript zur Folge 5. Prof. Dr. Georg Herde Fachhochschule Deggendorf

Relationale Datenbanken

Null-Werte in Relationalen Datenbanken

mit Musterlösungen Prof. Dr. Gerd Stumme, Dipl.-Inform. Christoph Schmitz 11. Juni 2007

Sicherheitsaspekte. Szenarien. Angriffsarten. Discretionary Access Control. Sicherheit im DBMS. Identifikation und Authentisierung

Microsoft Access 2010 SQL nutzen

Grundlagen von Datenbanken SS Einführung in das Thema

gibt es kein Bundesland, en?"

Einführung. Kapitel 1 2 / 508

Informations- und Wissensmanagement

ABTEILUNGS- ABTEILUNGS- LEITER NAME

PRG2 Folien Zicari Teil 4 Einführung in Datenbanken SS 2007

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

Einführung in Datenbanksysteme. H. Wünsch

Klausur zur Vorlesung Datenbanksysteme I

BERUFSPRAKTIKUM UND -VORBEREITUNG

Einführung und Überblick

Kapitel DB:V (Fortsetzung)

Übung Datenbanksysteme

Vorlesung Informatik II

Raumbezogene Datenbanken (Spatial Databases)

Datenbanksysteme Kapitel: SQL Data Definition Language

Microsoft SQL-Server Enterprise-Manager


Lösungen der Übungsaufgaben von Kapitel 10

Datenbanken Wintersemester 11/12. Prof. Dr. W. May

Relationale Datenbanken und SQL

Datenbanken 1. Kapitel 3: Relationenmodell WURDE_VERKAUFT INTEGER PRODNR. <pk,fk1> <pk,fk2> PRODNR = PRODNR SHOPID = SHOPID SHOPID INTEGER INTEGER

Relationales Datenmodell

FachPraktikum 1590 Erweiterbare Datenbanksysteme. Aufgaben Phase 1

Informatik für Ökonomen II: Datenintegrität. Prof. Dr. Carl-Christian Kanne

Mathematik 1 für Informatik Inhalt Grundbegrie

Transkript:

Rückblick: Relationales Modell Relationales Modell als vorherrschendes Datenmodell Relationen (Tabellen) besitzen Attribute (Spalten) mit Wertebereichen und beinhalten Tupel (Zeilen) Umsetzung eines konzeptuellen Modells in Relationen Entitytypen werden zu eigenen Relationen Beziehungstypen werden zu eigenen Relationen 33

3.3 Relationale Algebra Relationales Modell bietet Formalismus zur Beschreibung zu speichernder Daten und deren Struktur Wie können wir Daten extrahieren, d.h. Anfragen auf den gespeicherten Daten formulieren? Beispiele: Welche Vorlesungen hört der Student Marty McFly? Welche Professoren halten Vorlesungen, die nur von Studenten im ersten Semester besucht werden? 34

Relationale Algebra Relationale Algebra (auch: Relationenalgebra) bietet eine Anfragesprache auf Relationen Operatoren bilden Ausdrücke der Relationenalgebra Ausdrücke beinhalten implizit einen Auswertungsplan spielt wichtige Rolle bei Implementierung von RDBMSs (zur internen Darstellung und Optimierung von Anfragen) 35

Selektion Selektion σ (sigma) wählt Tupel (Zeilen) aus einer Relation R anhand einer Selektionsbedingung P aus [P](R) Selektionsbedingung kann folgende Bestandteile haben Attributnamen der Relation R oder Konstanten Arithmetische Vergleichsoperatoren =, <,,, Logische Operatoren,, Ergebnis der Selektion ist wiederum eine Relation bestehend aus allen Tupeln aus R, die P erfüllen 36

Selektion Beispiel: Erstsemester aus Relation Studenten Studenten MatrNr Vorname Name Semester 13765 Moritz Müller 1 18877 Peter Parker 7 18898 Gordon Shumway 1 18978 Marty McFly 3 18979 Benjamin Berger 1 [Semester=1](Studenten) [Semester=1](Studenten) MatrNr Vorname Name Semester 13765 Moritz Müller 1 18898 Gordon Shumway 1 18979 Benjamin Berger 1 37

Projektion Projektion π (pi) wählt Attribute (Spalten) einer Relation R anhand einer gegebenen Attributmenge A aus fi [A](R) Attributmenge A als Liste von Attributnamen angegeben Ergebnis der Projektion ist eine Relation, die Tupel mit den in A angegebenen Attributen enthält und frei von Duplikaten ist (Relationen sind Mengen) 38

Projektion Beispiel: Vorname und Fach von Professoren Professoren PersNr Vorname Name Fach 101101 Donald Knuth Informatik 231011 Albert Einstein Physik 300128 Alfred Nobel Chemie 478122 Donald Kossmann Informatik 600321 Carl Gauss Mathematik fi [ Vorname, Fach ] ( Professoren ) fi [ Vorname, Fach ] ( Professoren ) Vorname Fach Donald Informatik Albert Physik Alfred Chemie Carl Mathematik Duplikate eliminiert 39

Kartesisches Produkt (Kreuzprodukt) Das Kreuzprodukt zweier Relationen R und S enthält alle R * S möglichen Paare von Tupeln aus R und S R S Ergebnis des Kreuzprodukts ist eine Relation mit Schema sch(r S) = sch(r) fi sch(s) 40

Kartesisches Produkt (Kreuzprodukt) Beispiel: Kombinationen von Professoren und Vorlesungen Professoren PersNr Vorname Name Fach 101101 Donald Knuth Informatik 231011 Albert Einstein Physik 300128 Alfred Nobel Chemie 478122 Donald Kossmann Informatik 600321 Carl Gauss Mathematik Vorlesungen VorlNr Titel SWS 101 Informatikgrundlagen 4 110 Datenbanken 4 Professoren Vorlesungen PersNr Vorname Name Fach VorlNr Titel SWS 101101 Donald Knuth Informatik 101 Informatikgrundlagen 4 101101 Donald Knuth Informatik 110 Datenbanken 4 231011 Albert Einstein Physik 101 Informatikgrundlagen 4 231011 Albert Einstein Physik 110 Datenbanken 4....... 41

Qualifizierte Attributnamen Verbundene Relationen R und S können identisch benannte Attribute besitzen (z.b. Vorname und Name in Professoren und Studenten) Qualifizierte Attributnamen stellen dem Attributnamen den Namen der Ursprungsrelation voran und erlauben so eine Unterscheidung von identisch benannten Attributen Beispiel: Professoren Studenten... Professoren.Vorname... Studenten.Vorname........ 42

Anfrageübung Versandhandel Bestellungen : Ó Ô [ BestellNr : integer, Bestelldatum : string,..., KundenNr : integer, ] Kunden : Ó Ô [ KundenNr : integer, Vorname : string, Name : string,...] Artikel : Ó Ô [ ArtikelNr : integer, Beschreibung : string,...,me : string ] Mengeneinheiten : Ó Ô [ME:string, Beschreibung : string,...] Bestellpositionen : Ó Ô [ BestellNr : integer, ArtikelNr : integer, Anzahl : integer ] Welche Kunden heißen Müller oder Meier? Welche Vornamen haben Kunden aus Mannheim? Welche Artikel (ArtikelNr) werden im 5er-Pack verkauft? 43

Anfrageübung Versandhandel Welche Kunden heißen Müller oder Meier? [ Name = Meier Name = Müller ] ( Kunden ) Welche Vornamen haben Kunden aus Mannheim? fi [ Vorname ] ( [ Wohnort = Mannheim ] ( Kunden ) ) Welche Artikel (ArtikelNr) werden im 5er-Pack verkauft? fi[ Artikel.ArtikelNr ]( [ Artikel.ME = Mengeneinheiten.ME ]( Artikel [ Beschreibung = 5er-Pack ](Mengeneinheiten))) 44

Umbenennung von Relationen und Attributen Qualifizierte Attributnamen reichen zur Unterscheidung nicht aus, wenn eine Ursprungsrelation mehrfach auftaucht Beispiel: Paare von Artikeln mit gleichen Mengeneinheiten [??? ] ( Artikel Artikel ) Umbennungsoperator ρ (rho) erlaubt Umbenennung von Relationen (z.b. Artikel in ArtikelLinks) fl[ Artikel ](ArtikelLinks) Attributen (z.b. Fach in Fachgebiet von Professoren) fl[ Fachgebiet Ω Fach ](Professoren) 45

Mengenoperationen auf Relationen Zur Erinnerung: Relationen sind Mengen von Tupeln Für zwei Relationen R und S mit identischem Schema sch(r) = sch(s) sind die bekannten Mengenoperationen (Vereinigung, Schnitt und Differenz) wie bekannt definiert 46

Vereinigung Beispiel: Namen von Studenten oder Professoren fi [ Name ] ( Studenten ) fi fi [ Name ] ( Professoren ) fi [ Name ] ( Studenten ) fi [ Name ] ( Professoren ) Name Name Müller Meier McFly fi Name Knuth Meier Einstein = Name Müller Meier McFly Knuth Einstein 47

Schnitt Beispiel: Namen von Studenten und Professoren fi [ Name ] ( Studenten ) fl fi [ Name ] ( Professoren ) fi [ Name ] ( Studenten ) fi [ Name ] ( Professoren ) Name Name Müller Meier McFly fl Name Knuth Meier Einstein = Name Meier 48

Differenz Beispiel: Namen von Studenten nicht aber Professoren fi [ Name ] ( Studenten ) fi [ Name ] ( Professoren ) fi [ Name ] ( Studenten ) fi [ Name ] ( Professoren ) Name Name Müller Meier McFly Name Knuth Meier Einstein = Name Müller McFly 49

Natürlicher Join Natürlicher Join (Verbund) verbindet zwei Relationen R und S anhand ihrer gemeinsamen Attribute R ÛÙ S Ergebnis des natürlichen Joins ist Relation mit Schema sch(r) fi sch(s) Hierbei werden Tupel aus R und S verbunden, deren Werte für alle gemeinsamen Attribut übereinstimmen Attribute gleichen Namens werden zusammengefasst 50

Natürlicher Join Beispiel: Studenten mit ihren gehörten Vorlesungen (Studenten ÛÙ hören) ÛÙ Vorlesungen Studenten hören Vorlesungen MatrNr Vorname Name Semester 13765 Moritz Müller 1 18877 Peter Parker 7 18898 Gordon Shumway 1 18978 Marty McFly 3 18979 Benjamin Berger 1 ÛÙ MatrNr 13765 101 18979 101 18979 110 VorlNr ÛÙ VorlNr Titel SWS 101 Informatikgrundlagen 4 110 Datenbanken 4 (Studenten ÛÙ hören) ÛÙ Vorlesungen MatrNr Vorname Name Semester VorlNr Titel SWS 13765 Moritz Müller 1 101 Informatikgrundlagen 4 18979 Benjamin Berger 1 101 Informatikgrundlagen 4 18979 Benjamin Berger 1 110 Datenbanken 4 51

Allgemeiner Join Allgemeiner Join verbindet zwei Relationen R und S anhand eines beliebigen Joinprädikates θ (theta) R ÛÙ [ ]S Ergebnis des allgemeinen Joins ist Relation mit Schema { fl [R.A Ω A](R) A œ sch(r) } fi { fl [S.A Ω A](S) A œ sch(s) } Attribute gleichen Namens werden umbenannt, d.h. mit dem Namen der Ursprungsrelation qualifiziert 52

Allgemeiner Join Beispiel: Professoren und Studenten mit gleichem Namen Professoren ÛÙ [ Professoren.Name = Studenten.Name ] Studenten (P)rofessoren PersNr Vorname Name Fach 101101 Donald Knuth Informatik 231011 Albert Einstein Physik 300128 Alfred Nobel Chemie 478122 Donald Kossmann Informatik 600321 Carl Gauss Mathematik ÛÙ [P.Name = S.Name ] (S)tudenten MatrNr Vorname Name Semester 18979 Gundula Gauss 1 19880 Petra Parker 1 19882 Nora Nobel 3 20020 Emma Ernst 3 P ÛÙ [P.Name = S.Name ] S P.PersNr P.Vorname P.Name P.Fach S.MatrNr S.Vorname S.Name S.Semester 300128 Alfred Nobel Chemie 19882 Nora Nobel 3 600321 Carl Gauss Mathematik 18979 Gundula Gauss 1 53

Allgemeiner Join Allgemeiner Join ist letztlich eine Kurzschreibweise für R ÛÙ [ ]S = [ ](R S) Verwendet das Joinprädikat θ nur Vergleiche mittels = spricht man auch von einem Equi-Join 54

Äußere Joins Natürlicher und allgemeiner Join erhalten nur solche Tupel aus R und S, die einen Joinpartner finden Äußere Joins erhalten auch solche Tupeln aus einer oder beiden Relationen, die keinen Joinpartner finden linker äußerer Join (left outer join) erhält alle Tupel aus R R ÛÙ [ ] S rechter äußerer Join (right outer join) erhält alle Tupel aus S R ÛÙ [ ] S äußerer Join (full outer join) erhält alle Tupel aus R und S R ÛÙ [ ] S 55

Linker äußerer Join Beispiel: Professoren und Studenten mit gleichem Namen (P)rofessoren PersNr Vorname Name Fach 101101 Donald Knuth Informatik 231011 Albert Einstein Physik 300128 Alfred Nobel Chemie 478122 Donald Kossmann Informatik 600321 Carl Gauss Mathematik (S)tudenten MatrNr Vorname Name Semester 18979 Gundula Gauss 1 19880 Petra Parker 1 19882 Nora Nobel 3 20020 Emma Ernst 3 linker äußerer Join P ÛÙ [P.Name = S.Name ] S P.PersNr P.Vorname P.Name P.Fach S.MatrNr S.Vorname S.Name S.Semeste 101101 Donald Knuth Informatik 231011 Albert Einstein Informatik 300128 Alfred Nobel Chemie 19882 Nora Nobel 3 478122 Donald Kossmann Informatik 600321 Carl Gauss Mathematik 18979 Gundula Gauss 1 56

Rechter äußerer Join Beispiel: Professoren und Studenten mit gleichem Namen (P)rofessoren PersNr Vorname Name Fach 101101 Donald Knuth Informatik 231011 Albert Einstein Physik 300128 Alfred Nobel Chemie 478122 Donald Kossmann Informatik 600321 Carl Gauss Mathematik (S)tudenten MatrNr Vorname Name Semester 18979 Gundula Gauss 1 19880 Petra Parker 1 19882 Nora Nobel 3 20020 Emma Ernst 3 rechter äußerer Join P ÛÙ [P.Name = S.Name ] S P.PersNr P.Vorname P.Name P.Fach S.MatrNr S.Vorname S.Name S.Semester 600321 Carl Gauss Mathematik 18979 Gundula Gauss 1 19880 Petra Parker 1 300128 Alfred Nobel Chemie 19882 Nora Nobel 3 20020 Emma Ernst 3 57

Äußerer Join Beispiel: Professoren und Studenten mit gleichem Namen (P)rofessoren PersNr Vorname Name Fach 101101 Donald Knuth Informatik 231011 Albert Einstein Physik 300128 Alfred Nobel Chemie 478122 Donald Kossmann Informatik 600321 Carl Gauss Mathematik (S)tudenten MatrNr Vorname Name Semester 18979 Gundula Gauss 1 19880 Petra Parker 1 19882 Nora Nobel 3 20020 Emma Ernst 3 äußerer Join P ÛÙ [P.Name = S.Name ] S P.PersNr P.Vorname P.Name P.Fach S.MatrNr S.Vorname S.Name S.Semeste 19880 Petra Parker 1 101101 Donald Knuth Informatik 231011 Albert Einstein Informatik 300128 Alfred Nobel Chemie 19882 Nora Nobel 3 478122 Donald Kossmann Informatik 600321 Carl Gauss Mathematik 18979 Gundula Gauss 1 20020 Emma Ernst 3 58

Anfrageübung Versandhandel Bestellungen : Ó Ô [ BestellNr : integer, Bestelldatum : string,..., KundenNr : integer, ] Kunden : Ó Ô [ KundenNr : integer, Vorname : string, Name : string,...] Artikel : Ó Ô [ ArtikelNr : integer, Beschreibung : string,...,me : string ] Mengeneinheiten : Ó Ô [ME:string, Beschreibung : string,...] Bestellpositionen : Ó Ô [ BestellNr : integer, ArtikelNr : integer, Anzahl : integer ] Welche Artikel (ArtikelNr) werden im 5er-Pack verkauft? Welche Artikel (ArtikelNr) wurden am gleichen Tag von Kunden aus Worms und Kunden aus Trier bestellt? 59

Anfrageübung Versandhandel Welche Artikel (ArtikelNr) werden im 5er-Pack verkauft? fi [ Artikel.ArtikelNr ] ( Artikel ÛÙ [ Beschreibung = 5er-Pack ] ( ME ) ) Welche Artikel (ArtikelNr) wurden am gleichen Tag von Kunden aus Worms und Kunden aus Trier bestellt? fi[w.artikelnr]( fl [W]( [ Wohnort = Worms ] ( (Kunden ÛÙ Bestellungen) ÛÙ Bestellpositionen ) ) ÛÙ [W.ArtikelNr = T.ArtikelNr W.Bestelldatum = T.Bestelldatum ] fl [T]( [ Wohnort = Trier ] ( (Kunden ÛÙ Bestellungen) ÛÙ Bestellpositionen ) ) ) 60

Operatorbaumdarstellung Ausdrücke der relationalen Algebra lassen sich alternativ auch als sogenannte Operatorbäume darstellen Beispiel: fi [S.Vorname, S.Name, V.Titel ] ( ( [Semester> 3](S) ÛÙ h) ÛÙ V) fi[s.vorname, S.Name, V.Titel] ÛÙ ÛÙ V [Semester> 3] h S 61

Grenzen der relationalen Algebra Können wir mit den Operatoren der relationalen Algebra alle interessanten Anfragen formulieren? Beispiel: Anzahl von Studenten pro Vorlesung (Studenten ÛÙ hören) ÛÙ Vorlesungen MatrNr Vorname Name Semester VorlNr Titel SWS 13765 Moritz Müller 1 101 Informatikgrundlagen 4 18979 Benjamin Berger 1 101 Informatikgrundlagen 4 18979 Benjamin Berger 1 110 Datenbanken 4 Gruppierung nach Vorlesung und Zählen notwendig! Erweiterungen zum Gruppieren & Aggregieren existieren (vgl. z.b. Kapitel 9 in Saake et al. [3]) 62

Zusammenfassung Relationale Algebra als Anfragesprache auf Relationen Ausdrücke zusammengesetzt aus Operatoren, z.b. Selektion (σ) zur Auswahl von Tupeln Projektion (π) zur Auswahl von Attributen Kreuzprodukt ( ) zur Verknüpfung von Relationen Umbenennung (ganzer Relationen oder einzelner Attribute) Mengenoperationen (Vereinigung, Schnitt, Differenz) Joins (natürlicher, allgemeiner, äußere 63

Literatur [1] A. Kemper und A. Eickler: Datenbanksysteme Eine Einführung, De Gruyter Oldenbourg, 2015 (Kapitel 3) [2] E. F. Codd: A Relational Model of Data for Large Shared Data Banks, CACM 13(6), 1970 [3] G. Saake, K.-U. Sattler und A. Heuer: Datenbanken - Konzepte und Sprachen, mitp Professional, 2013 (Kapitel 4 & 9) 64