1. Tutorübung zu Grundlagen: Datenbanken

Werbung
1. Tutorübung zu Grundlagen:
Datenbanken
Chaoran Chen
[email protected]
13.10 - 19.10.2014
Überblick
Organisatorisches
Bonussystem
Lehrbuch
Was bisher geschah..
Übungsaufgaben
Punkte-/Bonussystem
Anwesenheit: +0 Punkte
Abwesenheit, ohne ärztlichem Attest: -1 Punkt
Vorrechnen: +1 Punkt
0,3 Notenbonus bei +2 Punkten am Ende
Was bisher geschah..
I
I
I
I
I
Tupel
Attribut
Schema
(Primär-)Schlüssel
Kardinalität
Professoren
Vorlesungen
Studenten
Rang Raum MatrNr
Name
Semester VorlNr
PersNr
Name
2125
Sokrates
C4
226
24002
Xenokrates
18
2126
Russel
C4
232
25403
Jonas
12
2127 Kopernikus
C3
310
26120
Fichte
10
2133
Aristoxenos
8
C3
52
26830
2134 Augustinus
C3
309
27550 Schopenhauer
6
2136
Curie
C4
36
28106
3
2137
Kant
C4
7
29120 Theophrastos
2
29555
2
Popper
voraussetzen
Carnap
Feuerbach
hören
Vorgänger Nachfolger
Titel
SWS gelesenV
on
5001
Grundzüge
4
2137
5041
Ethik
4
2125
5043
Erkenntnistheorie
3
2126
5049
Mäeutik
2
2125
4052
Logik
4
2125
5052 Wissenschaftstheorie
3
2126
5216
Bioethik
2
2126
5259
Der Wiener Kreis
2
2133
5022
Glaube und Wissen
2
2134
4630
Die 3 Kritiken
4
2137
MatrNr
VorlNr
26120
5001
27550
5001
27550
4052
28106
5041
28106
5052
PerslNr
Name
Fachgebiet
Boss
28106
5216
3002
Platon
Ideenlehre
2125
28106
5259
3003
Aristoteles
Syllogistik
2125
prüfen
29120
5001
3004
Wittgenstein
Sprachtheorie
2126
MatrNr VorlNr PersNr Note
29120
5041
3005
Rhetikus
Planetenbewegung
2127
5001
5041
5001
5043
5001
5049
5041
5216
5043
5052
5041
5052
5052
5259
Assistenten
28106
5001
2126
1
29120
5049
3006
Newton
Keplersche Gesetze
2127
25403
5041
2125
2
29555
5022
3007
Spinoza
Gott und Natur
2126
27550
4630
2137
2
25403
5022
Relationale Algebra
wird auf der physischen Ebene eingesetzt, um
”
Anfragepläne zu bauen“
Das Relationale Modell
Relationale Algebra
Beispiel
Student
MatrNr
Name
Geburtstag
1
Schmidt, Hans 1980-10-12
2
Müller, Anne 1982-07-30
Klein, Birgit
1981-03-24
3
4
Meier, Uwe
1982-07-30
Anfrage: "Gib die Geburtsdaten aller Studenten aus"
Geburtstag
1980-10-12
πGeburtstag (Student)
1982-07-30
1981-03-24
14 / 50
Das Relationale Modell
Relationale Algebra
Beispiel
Student
MatrNr
Name
Geburtstag
1
Schmidt, Hans 1980-10-12
2
Müller, Anne 1982-07-30
3
Klein, Birgit
1981-03-24
Meier, Uwe
1982-07-30
4
Anfrage: "Gib alle Studenten mit einer MatrNr kleiner gleich 3 und einem
Geburtstag nach 1.1.1981 aus"
σMatrNr ≤3∧Geburtstag>1981−01−01 (Student)
MatrNr
Name
Geburtstag
2
Müller, Anne 1982-07-30
3
Klein, Birgit 1981-03-24
16 / 50
Das Relationale Modell
Relationale Algebra
Beispiel
Nr
1
2
3
4
Vorlesung
. . . ProfPersNr
...
1
...
1
...
2
...
2
Professor
PersNr Name
1
Moerkotte
2
Kemper
...
...
...
Anfrage: "Gib alle Vorlesungen und Professoren aus"
Vorlesung × Professor
18 / 50
Das Relationale Modell
Relationale Algebra
Ergebnis
Nr
1
1
2
2
3
3
4
4
...
...
...
...
...
...
...
...
...
ProfPersNr
1
1
1
1
2
2
2
2
PersNr
1
2
1
2
1
2
1
2
Name
Moerkotte
Kemper
Moerkotte
Kemper
Moerkotte
Kemper
Moerkotte
Kemper
...
...
...
...
...
...
...
...
...
Viele dieser Kombinationen machen keinen Sinn!
19 / 50
Das Relationale Modell
Relationale Algebra
Beispiel
Anfrage: "Gib alle Vorlesungen zusammen mit den zuständigen Professoren
aus "
Vorlesung o
nProfPersNr =PersNr Professor
Nr
1
2
3
4
...
...
...
...
...
ProfPersNr
1
1
2
2
PersNr
1
1
2
2
Name
Moerkotte
Moerkotte
Kemper
Kemper
...
...
...
...
...
21 / 50
Gruppenaufgabe 1
Sie designen eine Webanwendung zur Univerwaltung. Früh
entschließen Sie sich zum Einsatz eines Datenbanksystems als
Backend für Ihre Daten. Ihr Kollege ist skeptisch und würde
die Datenverwaltung lieber selbst implementieren. Überzeugen
Sie ihn von Ihrem Entschluss. Finden Sie stichhaltige
Antworten auf die folgenden von Ihrem Kollegen in den Raum
gestellten Äußerungen:
Gruppenaufgabe 1
1. Die Installation und Wartung eines Datenbanksystems ist
aufwendig, die Erstellung eines eigenen Datenformats ist
straight-forward und flexibler.
2. Mehrbenutzersynchronisation wird in diesem Fall nicht
benötigt.
3. Es ist unsinnig, das jeder Entwickler zunächst eine eigene
Anfragesprache (SQL) lernen muss, nur um Daten aus
der Datenbank zu extrahieren.
4. Redundanz ist hilfreich, wieso sollte man auf sie
verzichten?
Hausaufgabe 1
Erläutern Sie den Unterschied zwischen dem Relationalen
Modell und dem Graphstrukturieren Modell.
1. Nennen Sie ein typisches Einsatzgebiet für das jeweilige
Modell.
2. Im Datenbankbereich unterscheidet man zwischen
Modellen, welche ein festes Schema voraussetzen und
anderen, die kein Schema benötigen. Ein Schema ist
hierbei eine Vorgabe, wie Daten repräsentiert werden,
beispielsweise, das jede Vorlesung genau eine eindeutige
Nummer hat, einen Namen von weniger als 200 Zeichen
und eine Semesterwochenstundenzahl.
2.1 Was ist der Vorteil/Nachteil einer solchen Vorgabe für
den Anwender?
2.2 Was ist der Vorteil/Nachteil einer solchen Vorgabe für
den Entwickler des Datenbanksystems?
Hausaufgabe 2
Formulieren Sie die folgenden Anfragen auf dem
Universitätsschema in Relationenalgebra.
1. Geben Sie alle Vorlesungen an, die der Student
Xenokrates gehört hat.
2. Geben Sie die Titel der direkten Voraussetzungen für die
Vorlesung Wissenschaftstheorie an.
3. Geben Sie Paare von Studenten(-Namen) an, die sich aus
der Vorlesung Grundzüge kennen.
Professoren
Vorlesungen
Studenten
Rang Raum MatrNr
Name
Semester VorlNr
PersNr
Name
2125
Sokrates
C4
226
24002
Xenokrates
18
2126
Russel
C4
232
25403
Jonas
12
2127 Kopernikus
C3
310
26120
Fichte
10
2133
Aristoxenos
8
C3
52
26830
2134 Augustinus
C3
309
27550 Schopenhauer
6
2136
Curie
C4
36
28106
3
2137
Kant
C4
7
29120 Theophrastos
2
29555
2
Popper
voraussetzen
Carnap
Feuerbach
hören
Vorgänger Nachfolger
Titel
SWS gelesenV
on
5001
Grundzüge
4
2137
5041
Ethik
4
2125
5043
Erkenntnistheorie
3
2126
5049
Mäeutik
2
2125
4052
Logik
4
2125
5052 Wissenschaftstheorie
3
2126
5216
Bioethik
2
2126
5259
Der Wiener Kreis
2
2133
5022
Glaube und Wissen
2
2134
4630
Die 3 Kritiken
4
2137
MatrNr
VorlNr
26120
5001
27550
5001
27550
4052
28106
5041
28106
5052
PerslNr
Name
Fachgebiet
Boss
28106
5216
3002
Platon
Ideenlehre
2125
28106
5259
3003
Aristoteles
Syllogistik
2125
prüfen
29120
5001
3004
Wittgenstein
Sprachtheorie
2126
MatrNr VorlNr PersNr Note
29120
5041
3005
Rhetikus
Planetenbewegung
2127
5001
5041
5001
5043
5001
5049
5041
5216
5043
5052
5041
5052
5052
5259
Assistenten
28106
5001
2126
1
29120
5049
3006
Newton
Keplersche Gesetze
2127
25403
5041
2125
2
29555
5022
3007
Spinoza
Gott und Natur
2126
27550
4630
2137
2
25403
5022
Gruppenaufgabe 2
Finden Sie ein Beispiel für ein Problem (bzw. eine
Inkonsistenz), die auftreten kann, wenn unkontrolliert parallel
auf Daten zugegriffen wird. Ein traditionelles Beispiel hierfür
ist eine gegenseitige Bank-Überweisung zwischen zwei Konten
A und B. Wenn A einen Betrag x zu B überweist und B einen
Betrag x’ zu A, sollte immer gelten Kontostand(A) +
Kontostand(B) ist konstant, da sonst Geld verschwunden ist.
Konstruieren Sie einen Ablauf zweier gegenseitiger
Überweisungen, bei dem die Eigenschaft, dass die
Kontostandssumme konstant sein soll nach dem Abschluss der
zwei Überweisungen verletzt ist.
Herunterladen