Das Relationale Modell Das Relationale Modell Das Relationale Modell Das Relationale Modell 1.1 Datenmodell 1.2 Anfragen 1.3 Datenkomplexität und kombinierte Komplexität N ICOLE S CHWEIKARDT G OETHE -U NIVERSITÄT F RANKFURT Das Relationale Modell VORLESUNG L OGIK UND DATENBANKEN 1.1 Datenmodell 1.2 Anfragen 1.3 Datenkomplexität und kombinierte Komplexität K APITEL 1, S EITE 1 N ICOLE S CHWEIKARDT Das Relationale Modell VORLESUNG L OGIK UND DATENBANKEN K APITEL 1, S EITE 2 Datenmodell Das Relationale Modell ◮ ◮ ◮ Begriff “Datenmodell”: ◮ ◮ ◮ Rahmen zur Repräsentation / Speicherung von Daten ◮ Operationen zum Zugriff auf Daten ◮ Mechanismen zur Beschreibung von erwünschten Eigenschaften (Integritätsbedingugen) ◮ Der Begriff “Datenmodell” ist nicht präzise definiert (im mathematischen Sinn). Im Folgenden wird eine präzise Definition des “Relationalen Modells” gegeben. G OETHE -U NIVERSITÄT F RANKFURT G OETHE -U NIVERSITÄT F RANKFURT Datenmodell Datenmodell N ICOLE S CHWEIKARDT Datenmodell VORLESUNG L OGIK UND DATENBANKEN K APITEL 1, S EITE 3 Daten werden in Relationen (“Tabellen”) organisiert Mengen-orientierte Operationen Deklarative Anfragespezifikation Effiziente Anfragebearbeitung 1970 eingeführt von Edgar F. Codd seit Ende der 80er Jahre “Industriestandard” Beispiel-Relation: A a b c d N ICOLE S CHWEIKARDT B 1 2 1 4 C z z y x D 9 8 8 7 G OETHE -U NIVERSITÄT F RANKFURT VORLESUNG L OGIK UND DATENBANKEN K APITEL 1, S EITE 4 Das Relationale Modell Datenmodell Das Relationale Modell Grundbegriff: Relationsschema ◮ A a b c d B 1 2 1 4 C z z y x D 9 8 8 7 ist vom Schema R mit sort(R) = {A, B, C, D}, arity(R) = 4 ◮ Relationsschema vs. Relation Wir legen ein für alle Mal fest: Beispiel-Relation: Datenmodell Beispiel-Relation: Eine abzählbar unendliche Mengen att von Attribut-Namen. Diese Menge sei geordnet via 6att . ◮ Eine abzählbar unendliche Menge dom von “potentiellen Datenbankeinträgen” (“Konstanten”) (dom steht für “Domain”) ◮ Eine abzählbar unendliche Menge relname von Relations-Namen. Die Mengen att, dom, relname seien disjunkt. Eine Funktion sort : relname → P fin (att), die jedem Relations-Namen eine endliche Menge von Attribut-Namen zuordnet . . . und zwar so, dass f.a. U ∈ P fin (att) gilt: sort−1 (U) ist unendlich. fin A a b c d B 1 2 1 4 C z z y x ∧ Relation = Tabelle D 9 8 8 7 ist vom Schema R mit sort(R) = {A, B, C, D}, arity(R) = 4 ∧ Tupel = Zeile in der Tabelle Schreibweise: t.A an Stelle von t(A) für “Eintrag in Zeile t und Spalte A” Beachte: Mengensemantik, d.h.: ∧ Relation = die Menge aller Tabellenzeilen Definition 1.1 Sei R ein Relationsschema. Notation: P (att) ist die Menge aller endlichen Teilmengen von att. ◮ ◮ Die Stelligkeit eines Relations-Namens R ist arity(R) := |sort(R)|. ◮ Ein R-Tupel ist eine Abbildung t : sort(R) → dom. Eine R-Relation ist eine endliche Menge von R-Tupeln. ◮ Ein Relationsschema ist einfach ein Relations-Name R . ◮ inst(R) bezeichnet die Menge aller Relationen über R. ◮ Manchmal schreiben kurz R[U] für sort(R) = U und R[k ] für arity(R) = k . N ICOLE S CHWEIKARDT G OETHE -U NIVERSITÄT F RANKFURT Das Relationale Modell VORLESUNG L OGIK UND DATENBANKEN K APITEL 1, S EITE 5 (inst steht für “instances”) N ICOLE S CHWEIKARDT Datenmodell G OETHE -U NIVERSITÄT F RANKFURT Das Relationale Modell Grundbegriffe: Datenbankschema und Datenbank VORLESUNG L OGIK UND DATENBANKEN K APITEL 1, S EITE 6 Datenmodell Beispieldatenbank mit Kinodaten (1/5) Definition 1.2 ◮ Ein Datenbankschema R ist eine endliche, nicht-leere Menge von Relationsschemata. Manchmal schreiben wir R = {R1 [U1 ], . . , Rn [Un ]} um die Relationsschemata anzugeben, die zu R gehören. ◮ Eine Datenbank I vom Schema R ist eine Funktion, die jedem Relationsschema Ri ∈ R eine Ri -Relation zuordnet. ◮ inst(R) bezeichnet die Menge aller Datenbanken vom Schema R. ◮ schema(I) := R bezeichnet das Schema der Datenbank I. N ICOLE S CHWEIKARDT G OETHE -U NIVERSITÄT F RANKFURT VORLESUNG L OGIK UND DATENBANKEN K APITEL 1, S EITE 7 Zur Illustration von Anfragen verwenden wir eine kleine Datenbank mit Kinodaten, bestehend aus ◮ einer Relation Orte, die Informationen über Kinos (Kino, Adresse, Telefonnummer) enthält. ◮ einer Relation Filme, die Informationen über Filme enthält (Titel, Regie, Schauspieler) ◮ einer Relation Programm, die Informationen zum aktuellen Kinoprogramm enthält (Kino, Titel, Zeit) N ICOLE S CHWEIKARDT G OETHE -U NIVERSITÄT F RANKFURT VORLESUNG L OGIK UND DATENBANKEN K APITEL 1, S EITE 8 Das Relationale Modell Datenmodell Das Relationale Modell Beispieldatenbank mit Kinodaten (2/5) Datenmodell Beispieldatenbank mit Kinodaten (3/5) Filme-Relation: Orte-Relation: Kino Babylon Casablanca Cinestar Cubix Alexanderplatz Die Kurbel Filmpalast Berlin International Kino in der Kulturbrauerei Moviemento .. . N ICOLE S CHWEIKARDT G OETHE -U NIVERSITÄT F RANKFURT Das Relationale Modell Adresse Dresdner Str. 2 Friedenstr. 12 Rathausstr. 1 Giesebrechtstr. 4 Kurfürstendamm 225 Karl-Marx-Allee 33 Schönhauser Allee 36 Kottbusser Damm 22 .. . VORLESUNG L OGIK UND Telefon 61609693 6775752 2576110 88915998 8838551 24756011 44354422 6924785 .. . DATENBANKEN K APITEL 1, S EITE 9 Titel Capote Capote Das Leben der Anderen Das Leben der Anderen Der ewige Gärtner Der ewige Gärtner Good Night and Good Luck Good Night and Good Luck Knallhart Knallhart Raumpatrouille Orion – Rücksturz ins Kino Raumpatrouille Orion – Rücksturz ins Kino Raumpatrouille Orion – Rücksturz ins Kino Raumpatrouille Orion – Rücksturz ins Kino Raumpatrouille Orion – Rücksturz ins Kino Raumpatrouille Orion – Rücksturz ins Kino Requiem Sommer vorm Balkon Sommer vorm Balkon Sommer vorm Balkon Syriana Syriana V wie Vendetta Walk the Line Walk the Line N ICOLE S CHWEIKARDT Datenmodell Regie Bennet Miller Bennet Miller F. Henkel von Donnersmarck F. Henkel von Donnersmarck Fernando Meirelles Fernando Meirelles George Clooney George Clooney Detlev Buck Detlev Buck Michael Braun Theo Mezger Michael Braun Theo Mezger Michael Braun Theo Mezger Hans-Christian Schmid Andreas Dresen Andreas Dresen Andreas Dresen Stephen Gaghan Stephen Gaghan James McTeigue James Mangold James Mangold G OETHE -U NIVERSITÄT F RANKFURT VORLESUNG L OGIK Das Relationale Modell Beispieldatenbank mit Kinodaten (4/5) UND Schauspieler Philip Seymour Hoffman Catherine Keener Martina Gedeck Ulrich Tukur Ralph Fiennes Rachel Weisz David Strathairn Patricia Clarkson Jenny Elvers Jan Henrik Stahlberg Dietmar Schönherr Dietmar Schönherr Eva Pflug Eva Pflug Wolfgang Völz Wolfgang Völz Sandra Hüller Nadja Uhl Inka Friedrich Andreas Schmidt George Clooney Matt Damon Natalie Portman Joaquin Phoenix Reese Witherspoon DATENBANKEN K APITEL 1, S EITE 10 Datenmodell Beispieldatenbank mit Kinodaten (5/5) Programm-Relation: Kino Babylon Babylon Kino in der Kulturbrauerei Kino in der Kulturbrauerei International International International Filmpalast Berlin Filmpalast Berlin Filmpalast Berlin Kino in der Kulturbrauerei Kino in der Kulturbrauerei Kino in der Kulturbrauerei Babylon Kino in der Kulturbrauerei Filmmuseum Potsdam . . . N ICOLE S CHWEIKARDT Titel Capote Capote Capote Capote Das Leben der Anderen Das Leben der Anderen Das Leben der Anderen Good Night and Good Luck Good Night and Good Luck Good Night and Good Luck Good Night and Good Luck Good Night and Good Luck Good Night and Good Luck Sommer vorm Balkon Sommer vorm Balkon Raumpatrouille Orion – Rücksturz ins Kino . . . G OETHE -U NIVERSITÄT F RANKFURT VORLESUNG L OGIK UND DATENBANKEN Zeit 17:00 19:30 17:30 20:15 14:30 17:30 20:30 15:30 17:45 20:00 18:00 20:30 22:45 21:45 21:45 22:00 . . . K APITEL 1, S EITE 11 Datenbankschema der Kinodatenbank: ◮ Datenbankschema KINO = {Filme, Orte, Programm} sort(Filme) = {Titel, Regie, Schauspieler} sort(Orte) = {Kino, Adresse, Telefon} ◮ sort(Programm) = {Kino, Titel, Zeit} ◮ ◮ Wir schreiben IKINO , um unsere konkrete Datenbank vom Schema KINO zu bezeichnen. Analog schreiben wir IFilme , IOrte und IProgramm für die konkreten Relationen, die zur Datenbank IKINO gehören. N ICOLE S CHWEIKARDT G OETHE -U NIVERSITÄT F RANKFURT VORLESUNG L OGIK UND DATENBANKEN K APITEL 1, S EITE 12 Das Relationale Modell Datenmodell Das Relationale Modell Attribute: Benannte vs. Unbenannte Perspektive Datenmodell Notation Sind die Attribut-Namen Teil des expliziten Datenbankschemas? In SQL: ja! Beispiel: SELECT Titel FROM Filme WHERE Schauspieler=”Natalie Portman” Aber werden die Namen vom System nicht “weg-compiliert”? ◮ Benannte Perspektive: Ein Tupel über Relationsschema R[U] ist eine Abbildung von U nach dom. Beispiel-Relation: A a b c d Schreibweise: t = hA : a, B : 1, C : z, D : 9i ◮ Unbenannte Perspektive: Ein Tupel über Relationsschema R[k ] ist ein Element aus domk (Cartesisches Produkt aus k Kopien von dom). Schreibweise: t = ha, 1, z, 9i N ICOLE S CHWEIKARDT G OETHE -U NIVERSITÄT F RANKFURT Das Relationale Modell VORLESUNG L OGIK UND B 1 2 1 4 C z z y x D 9 8 8 7 Konstanten (Elemente aus dom) . . . . . . . a, b, c, “George Clooney”, . . . Attribute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A, B, C, . . . Mengen von Attributen . . . . . . . . . . . . . . . . . U, V , . . . Relations-Namen (-schemata) . . . . . . . . . R, S, R[U], S[V ], . . . Datenbankschemata . . . . . . . . . . . . . . . . . . . R, S Tupel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . t, s Relationen (Relations-Instanzen) . . . . . . . I, J Datenbanken (Datenbank-Instanzen) . . . I, J ist vom Schema R mit sort(R) = {A, B, C, D}, arity(R) = 4 DATENBANKEN K APITEL 1, S EITE 13 N ICOLE S CHWEIKARDT G OETHE -U NIVERSITÄT F RANKFURT Anfragen Das Relationale Modell VORLESUNG L OGIK UND DATENBANKEN K APITEL 1, S EITE 14 Anfragen Beispiel-Anfragen (1) (2) (3) (4) (5) (6) Das Relationale Modell (7) (8) (9) (10) (11) (12) (13) 1.1 Datenmodell 1.2 Anfragen 1.3 Datenkomplexität und kombinierte Komplexität (14) (15) (16) (17) N ICOLE S CHWEIKARDT G OETHE -U NIVERSITÄT F RANKFURT VORLESUNG L OGIK UND DATENBANKEN K APITEL 1, S EITE 15 Wer führt Regie in “Knallhart”? Wo läuft “Capote”? Welches sind Adresse und Telefonnummer des “Kino in der Kulturbrauerei”? Welche Kinos spielen einen Film mit “George Clooney”? Läuft zur Zeit ein “Detlev Buck” Film? Welche (je 2) Schauspieler haben schon in Filmen gespielt, in denen der jeweils andere Regie geführt hat? Welche Regisseure haben in einem ihrer eigenen Filme mitgespielt? Gib die 2-Tupel von Schauspielern an, die gemeinsam in einem Film gespielt haben! Egal für welche Datenbank, gib h“Knallhart”, “Detlev Buck” i als Antwort aus! Wo wird “Syriana” oder “Walk the Line” gespielt? Welche Filme laufen in mindestens 2 Kinos? In welchen Filmen spielt “George Clooney” mit oder führt Regie? Gib alle Filme aus, die im Kino “International” laufen oder in denen “Andreas Dresen” Regie führt! Liste alle Schauspieler und den Regisseur von “Capote” auf! Welche Filme laufen nur zu 1 Uhrzeit? In welchen Filmen führt “George Clooney” mit, ohne Regie zu führen? Welche Filme haben nur Schauspieler, die schon mal in einem Film von “Stephen Spielberg” mitgespielt haben? N ICOLE S CHWEIKARDT G OETHE -U NIVERSITÄT F RANKFURT VORLESUNG L OGIK UND DATENBANKEN K APITEL 1, S EITE 16 Das Relationale Modell Anfragen Das Relationale Modell Anfragen Wünschenswerte Eigenschaften von Anfragefunktionen Anfragen und Anfragefunktionen I R = q(I) Forderungen an eine Anfragefunktion q: q (a) Das Ergebnis sollte nicht von Details der Speicherung abhängen, sondern nur von der logischen Sicht auf die Daten q ist eine Funktion inst(R) → inst(R), für ein DB-Schema R und ein Rel.schema R (b) Sie sollte berechenbar sein. Definition 1.3 ◮ ◮ q berechenbar Eine Anfragefunktion ist eine Abbildung q, die, für ein Datenbankschema R und ein Relationsschema R, jeder Datenbank I vom Schema R, eine Relation, q(I) vom Schema R zuordnet. (q steht für “query”) (c) Das Ergebnis sollte möglichst wenig von den einzelnen Datenwerten und möglichst viel von den Beziehungen der Daten untereinander abhängen Eine Anfrage ist eine Zeichenkette, die eine Anfragefunktion in einer bestimmten Syntax beschreibt. N ICOLE S CHWEIKARDT G OETHE -U NIVERSITÄT F RANKFURT Das Relationale Modell VORLESUNG L OGIK UND DATENBANKEN K APITEL 1, S EITE 17 . . . siehe nächste Folie; Stichwort: “generisch” N ICOLE S CHWEIKARDT Anfragen G OETHE -U NIVERSITÄT F RANKFURT VORLESUNG L OGIK Das Relationale Modell Erläuterungen zu Eigenschaft (c) UND DATENBANKEN K APITEL 1, S EITE 18 Anfragen Generische Anfragefunktionen Beispiel-Anfrage: (3) Welches sind Adresse und Telefonnummer des “Kino in der Kulturbrauerei”? Eigenschaft (c): Definition 1.4 Sei C eine endliche Menge von Datenwerten (also C ⊆fin dom). ◮ Aber wenn der Name “Kino in der Kulturbrauerei” sich in der DB ändert, soll das Ergebnis leer sein. Eine Anfragefunktion q heißt C-generisch, falls für jede Datenbank I (vom zu q passenden DB-Schema) und jede Permutation π von dom mit π|C = id (d.h. π(x) = x für alle x ∈ C) gilt: ` ´ ` ´ q π(I) = π q(I) . ◮ Allgemein: q heißt generisch, falls q ∅-generisch ist. ◮ Wenn sich die Telefonnummer vom “Kino in der Kulturbrauerei” in der DB ändert, soll sich das Ergebnis der Anfrage entsprechend ändern. ◮ ◮ ◮ Werden Elemente der Datenmenge dom, die in der Anfrage nicht explizit (als “Konstanten”) vorkommen, umbenannt, so sollen sie im Ergebnis auch umbenannt werden. Dies gilt nicht für Elemente in dom, die in der Anfrage explizit vorkommen. G OETHE -U NIVERSITÄT F RANKFURT VORLESUNG L OGIK UND DATENBANKEN π ↓ π q π(I) q(I) −→ ↓ ` ´ q π(I) Beispiel: (3) Welches sind Adresse und Telefonnummer des “Kino in der Kulturbrauerei”? ist {“Kino in der Kulturbrauerei”}-generisch. (7) Welche Regisseure haben in einem ihrer eigenen Filme mitgespielt? ist generisch. mathematische Präzisierung: Begriff der generischen Anfragefunktion N ICOLE S CHWEIKARDT Illustration: q I −→ K APITEL 1, S EITE 19 N ICOLE S CHWEIKARDT G OETHE -U NIVERSITÄT F RANKFURT VORLESUNG L OGIK UND DATENBANKEN K APITEL 1, S EITE 20 Das Relationale Modell Anfragen Das Relationale Modell Boolesche Anfragen Anfragesprachen Manche Anfragen lassen sich nur mit “ja” oder “nein” beantworten. Dieselbe Anfragefunktion kann in verschiedenen Anfragesprachen beschrieben werden. Beispiel: (4) Welche Kinos spielen einen Film mit “George Clooney”? Beispiel: (5) Läuft zur Zeit ein “Detlev Buck” Film? ◮ SQL: ◮ Regelbasierte Anfrage: Konvention: ◮ Ergebnis ist eine 0-stellige Relation. ◮ Davon gibt es genau zwei Stück: ∅ und {hi}. hi steht für das “Tupel der Stelligkeit 0”. ◮ ◮ ∅ steht für “nein” {hi} steht für “ja” ◮ G OETHE -U NIVERSITÄT F RANKFURT Das Relationale Modell VORLESUNG L OGIK UND DATENBANKEN K APITEL 1, S EITE 21 Orte.Kino, Orte.Adresse Filme, Programm, Orte Filme.Schauspieler = “George Clooney” AND Filme.Titel = Programm.Titel AND Programm.Kino = Orte.Kino Relationenkalkül: ( ˙ ¸ xKino , xAdr ◮ N ICOLE S CHWEIKARDT SELECT FROM WHERE Ans(xKino , xAdr ) ← Filme(xTitel , xRegie , “George Clooney”), Programm(xKino , xTitel , xZeit ), Orte(xKino , xAdr , xTel ) Vereinbarung: ◮ Anfragen : ∃xTitel ∃xRegie ∃xZeit ∃xTel Filme(xTitel , xRegie , “George Clooney”) ∧ Programm(xKino , xTitel , xZeit ) ∧ Orte(xKino , xAdr , xTel ) “ Relationale Algebra: πKino,Adresse σ Schauspieler = N ICOLE S CHWEIKARDT Anfragen “George Clooney” G OETHE -U NIVERSITÄT F RANKFURT Das Relationale Modell ` Filme ⊲⊳ Programm ⊲⊳ Orte VORLESUNG L OGIK UND DATENBANKEN ) ´” K APITEL 1, S EITE 22 Datenkomplexität und kombinierte Komplexität Hierarchie der Anfragesprachen Bemerkung: Anfragesprachen unterscheiden sich in ihrer Ausdrucksstärke. Übersicht: Das Relationale Modell Datalog + Rekursion + Negation 1.1 Datenmodell 1.2 Anfragen 1.3 Datenkomplexität und kombinierte Komplexität Relational vollständige Sprachen Datalog + Negation + Rekursion Rekursionsfreies Datalog + Disjunktion Konjunktive Anfragen N ICOLE S CHWEIKARDT G OETHE -U NIVERSITÄT F RANKFURT VORLESUNG L OGIK UND DATENBANKEN K APITEL 1, S EITE 23 N ICOLE S CHWEIKARDT G OETHE -U NIVERSITÄT F RANKFURT VORLESUNG L OGIK UND DATENBANKEN K APITEL 1, S EITE 24 Das Relationale Modell Datenkomplexität und kombinierte Komplexität Das Relationale Modell Typische Problemstellungen bzgl. Anfrageauswertung Datenkomplexität und kombinierte Komplexität Datenkomplexität und Kombinierte Komplexität Sei A eine Anfragesprache. Die Komplexität der Anfrageauswertung kann unter zwei Blickwinkeln betrachtet werden: AUSWERTUNGSPROBLEM FÜR A: Eingabe: Anfrage Q ∈ A, Datenbank I 1. Anfrage und Datenbank sind Eingabe Aufgabe: Berechne Q(I) 2. Anfrage fest, Datenbank ist Eingabe: Variante: Datenkomplexität gemessen nur in n = ||I|| N ICHT-L EERHEITS -P ROBLEM FÜR A: Eingabe: Anfrage Q ∈ A, Datenbank I Aufgabe: Ist Q(I) 6= ∅ ? Rechtfertigung für “Datenkomplexität”: i.d.R. ist die Anfrage kurz, die Datenbank aber sehr groß. Wichtige Fragestellung: Welche Ressourcen (etwa Zeit, Platz) sind nötig, um diese Probleme zu lösen? N ICOLE S CHWEIKARDT Kombinierte Komplexität gemessen in n und k , wobei n = ||I|| und k = ||Q|| G OETHE -U NIVERSITÄT F RANKFURT VORLESUNG L OGIK UND DATENBANKEN K APITEL 1, S EITE 25 Typische Form von Ergebnissen, die im Laufe der Vorlesung bewiesen werden: ◮ Die Datenkomplexität der Relationalen Algebra ist in L OGSPACE . ◮ Die kombinierte Komplexität der Relationalen Algebra ist P SPACE-vollständig. N ICOLE S CHWEIKARDT G OETHE -U NIVERSITÄT F RANKFURT VORLESUNG L OGIK UND DATENBANKEN K APITEL 1, S EITE 26