Das Relationale Modell - Goethe

Werbung
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
Herunterladen