Transcript Datenbanken

Datenbanken
IFB 2002
Klaus Becker
Datenbanken
2
KB
Teil 1
Relationale Datenbanken
3
Zielsetzung
Datenbanken
Das Burggymnasium Kaiserslautern möchte seine
Schulbibliothek auf EDV-Betrieb umstellen.
KB
Bisher wurde die Schulbibliothek herkömmlich mit Hilfe von
Karteikarten und Ausleihscheinen verwaltet. Künftig soll hier
ein geeignetes Softwarepaket die Arbeit erleichtern.
Anwendungsfälle
4
Datenbanken
Buchdaten
registrieren
Ausleihdaten
aufnehmen
Abfrage
erstellen
Anwender:
Bibliothekar(in)
...
Anwendungssystem: DBS
Anwender:
Leser
Anwendungsfall: Interaktion zwischen einem Anwender / Akteur
und dem Anwendungssystem
KB
Datenbanksystem
Datenbanken
5
KB
DB
Sammlung von
Daten
DB
VS
Software zur
Verwaltung der
Daten
Anwender
Anwender
Datenbanksystem
Ein Datenbanksystem ist eine systematisch strukturierte,
langfristig verfügbare Sammlung von Daten (DB)
einschließlich der zur sicheren Bearbeitung und Verwaltung
dieser Daten erforderlichen Software (DBVS).
Datenbanksysteme sind überall
6
Beispiele:
- Bibliothek
- Bank
Datenbanken
- Reisebüro: Buchungssystem
KB
- Bahn: Auskunftssystem
- Suchmaschine im Internet
- ...
7
Das Modellierungsproblem
Datenbanken
Miniwelt
Zustand:
Gerd Müller ist registrierter
Leser der Bibliothek. Er hat
am 12.2.2002 das Buch
„Fußball ist mein Leben“
von Franz Beckenbauer
ausgeliehen. ...
DB-Modellwelt
?
Vorgang:
Gerd Müller gibt das Buch
... zurück.
Informationen über die
Miniwelt
Ziel: Repräsentation von Information
KB
8
Repräsentation mit Tabellen
Information:
Gerd Müller ist registrierter Leser der Bibliothek. Er hat am 12.2.2002 das
Buch „Fußball ist mein Leben“ von Franz Beckenbauer ausgeliehen.
Datenbanken
Repräsentation:
KB
Sig
Autor
F1 Beckenbauer
I2 Gaardner
...
Titel
Fußball ist
Sofies Welt
Jahr
Name
1980 Müller
1995 Müller
Vorname
Wohnort
Gerd
München
Peter
Landstuhl
Straße
Ausleihdatum
Kirchstr. 13
02.02.02
Hauptstr. 7
18.01.02
Redundanz und Inkonsistenz
9
Ausleihen
Datenbanken
Sig
I1
I2
D1
D2
KB
Autor
Balzert
Gaardner
Musil
Kafka
Titel
Informatik
Sofies Welt
Der Mann
ohne
Das Schloß
Jahr
1999
1995
1978
1990
Ausleihdatum
02.02.2002
18.01.2002
16.02.2002
31.12.2001
Name
Schreiner
Müller
Schreiner
Müller
Vorname
Rudolf
Peter
Rudi
Peter
Wohnort
Bann
Landstuhl
Bann
Landstuhl
Straße
Kirchstr. 13
Hauptstr. 7
Kichstr. 13
Hauptstraße 7
Das Tabellenmodell ist redundant: Informationen werden hier z.
T. mehrfach repräsentiert.
Eine Transaktion (Ändern) führt leicht zu inkonsistenten
Modellen: Informationen werden auf unterschiedliche Weise
repräsentiert.
Verknüpfte Tabellen
10
Datenbanken
Primärschlüssel
KB
LNr
0
1
2
3
...
13
14
15
Sig
D1
D2
D3
D4
D5
M1
M2
M3
P1
P2
P3
Ph1
Ph2
Ph3
Name
Christ
Eberle
Friedrich
Frisch
Vorname
Benjamin
Gerrit
Andy
Johannes
Teubner
Thielen
Wollenweber
Ruth
Clemens
Lisa
Autor
Goethe
Mann
Mann
Kafka
Grass
Euklid
Singh
Padberg
Heisenberg
Einstein
Weinberg
Gardner
Kant
Russell
Titel
Faust
Dr. Faustus
Der
Zauberberg
Das
Schloss
Ein weites Feld
Die Elemente
Fermats letzter
Satz
Elementare
Zahlentheorie
Der Teil und
das
Ganze
Relativitätsthe
orie
Die ersten drei
Minuten
Sofies Welt
Kritik der
reinen
Geschichte der
Philosophie
GebJahr
83
84
83
84
Stamm
kursleit
ROE
TM
HB
TM
84 HEI
84 TM
84 TM
Jahr
1973
1937
1940
1930
1997
1970
1998
1999
1955
1960
1989
1995
1958
1952
Fachbereich
Deutsch
Deutsch
Deutsch
Deutsch
Deutsch
Mathematik
Mathematik
Mathematik
Physik
Physik
Physik
Philosophie
Philosophie
Philosophie
Fremdschlüssel
LNr
Ausleihdatum
2
16.01.02
5
30.12.01
3
25.02.02
12
03.03.02
2
18.01.02
Die Verknüpfung von Tabellen erfolgt mit Hilfe von Schlüsseln.
Verknüpfte Tabellen
11
Datenbanken
Leser
Buch
Ausleihe
LNr
0
1
2
3
...
13
14
15
Name
Christ
Eberle
Friedrich
Frisch
Vorname
Benjamin
Gerrit
Andy
Johannes
Teubner
Thielen
Wollenweber
Ruth
Clemens
Lisa
Sig
D1
D2
D3
...
Ph1
Ph2
Ph3
Autor
Goethe
Mann
Mann
LNr
4
8
11
13
13
14
15
KB
Gardner
Kant
Russell
Sig
D2
M1
P1
D5
Ph2
D1
M3
GebJahr
83
84
83
84
Stamm
kursleit
ROE
TM
HB
TM
84 HEI
84 TM
84 TM
Titel
Faust
Dr. Faustus
Der Zauberberg
Sofies Welt
Kritik der reinen Vernunft
Geschichte der
Philosophie
Datum
29.10.01
03.11.01
16.08.01
12.09.01
12.09.01
06.12.01
12.10.01
Jahr
1973
1937
1940
Fachbereich
Deutsch
Deutsch
Deutsch
1995 Philosophie
1958 Philosophie
1952 Philosophie
Tabellenspezifikation
12
Datenbanken
Leser:
KB
LNr
0
1
2
3
...
13
14
15
Name
Christ
Eberle
Friedrich
Frisch
Vorname
Benjamin
Gerrit
Andy
Johannes
Teubner
Thielen
Wollenweber
Ruth
Clemens
Lisa
GebJahr
83
84
83
84
Stamm
kursleit
ROE
TM
HB
TM
84 HEI
84 TM
84 TM
Das logische Schema einer Tabelle wird durch eine endliche
Menge von Attributspezifikationen (Attributname; Datentyp)
festgelegt.
TABELLE Leser
LNr:
Name:
Vorname:
GebJahr:
Stammkurs:
Zahl
Zeichenkette
Zeichenkette
Zahl
Zeichenkette
13
Datentypen / Datenstrukturen
Ein Datentyp legt einen Wertebereich fest einschließlich der
Operationen, die auf die Werte angewandt werden dürfen.
Datenbanken
Bsp.: Datentyp Zahl
KB
Eine Datenstruktur legt den Aufbau von komplexen
Wertebereichen aus elementaren Wertebereichen fest.
Bsp.: Datenstruktur Tabelle (bzw. Relation)
Datenbanken
14
Relation
Ein Relationenschema ist eine endliche Folge (A1:W1; A2:W2;
...; An:Wn) von Attributspezifikationen. Dabei wird jedes
Attribut durch einen Attributnamen und einen zugehörigen
Wertebereich (Datentyp) festgelegt. Die Attributwerte
müssen atomar sein (d. h. es sind keine zusammengesetzen
Attributwerte erlaubt).
Bsp.: (LNr: Zahl; Name: Zeichenkette; Vorname: Zeichenkette)
Ein Tupel (zu einem gegebenen Relationenschema) enthält
zu jedem Attribut genau einen Attributwert.
Bsp.: (2; “Schmitt”; “Otto”)
KB
Relation
15
Datenbanken
Sei (A1:W1; A2:W2; ...; An:Wn) ein gegebenes Relationenschema mit den Attributnamen A1; ...; An und den
zugehörigen (endlichen) Wertebereichen W1; ...; Wn.
Unter dem (kartesischen) Produkt W1 ...  Wn versteht man
die Menge aller möglichen Tupel (w1; ... ; wn) mit wi Wi.
KB
Eine Relation zum Relationenschema (A1:W1; A2:W2; ...;
An:Wn) ist eine Teilmenge des Produkts W1 ...  Wn.
Bsp.:
{
(1; “Meier”; “Karin”),
(2; “Schmitt”; “Otto”),
(3; “Breuer”; “Hans”)
}
Relation
16
Eine Relation kann in Tabellenform dargestellt werden.
Datenbanken
{
KB
}
(1; “Meier”; “Karin”),
(2; “Schmitt”; “Otto”),
(3; “Breuer”; “Hans”)
LNr
Name
1 Meier
2 Schmitt
3 Breuer
Vorname
Karin
Otto
Hans
Beachte:
Die Reihenfolge der Zeilen (Tupel) ist ohne Bedeutung.
Die Reihenfolge der Spalten (Attribute) ist ohne Bedeutung.
17
Relationale Datenbank
Eine relationale Datenbank besteht aus einer endlichen
Menge von Relationen.
Datenbanken
Bem.: Das relationale Datenmodell wurde 1970 von E. F.
Codd entwickelt.
KB
Datenbank Bibliothek:
- Relation Leser
- Relation Buch
- Relation Ausleihe
Schlüssel
18
Datenbanken
Primärschlüssel:
KB
Ein (Primär-) Schlüssel für eine Tabelle ist ein Attribut oder eine
Attributkombination, mit dem / mit der jeder Datensatz der
Tabelle eindeutig identifiziert werden kann. Schlüssel müssen
immer minimal gewählt werden; d. h. man kann auf kein
Attribut verzichten.
Leser
LNr
0
1
2
3
...
13
14
15
Ausleihe
Name
Christ
Eberle
Friedrich
Frisch
Vorname
Benjamin
Gerrit
Andy
Johannes
Teubner
Thielen
Wollenweber
Ruth
Clemens
Lisa
GebJahr
83
84
83
84
Stamm
kursleit
ROE
TM
HB
TM
84 HEI
84 TM
84 TM
LNr
4
8
11
13
13
14
15
Sig
D2
M1
P1
D5
Ph2
D1
M3
Datum
29.10.01
03.11.01
16.08.01
12.09.01
12.09.01
06.12.01
12.10.01
Schlüssel
19
Fremdschlüssel:
Datenbanken
Wird ein Primärschlüssel einer Tabelle in einer anderen Tabelle
benutzt, so stellt er dort einen Fremdschlüssel dar. Mit Hilfe von
Fremdschlüsseln werden Bezüge zwischen Tabellen hergestellt.
KB
Ausleihe
LNr
4
8
11
13
13
14
15
Sig
D2
M1
P1
D5
Ph2
D1
M3
Datum
29.10.01
03.11.01
16.08.01
12.09.01
12.09.01
06.12.01
12.10.01
Referentielle Integrität
20
Datenbanken
Buch
Ausleihe
Sig
D1
D2
D3
...
Ph1
Ph2
Ph3
LNr
4
8
11
13
13
14
15
Autor
Goethe
Mann
Mann
Gardner
Kant
Russell
Sig
D0
M1
P1
D5
Ph2
D1
M3
Titel
Faust
Dr. Faustus
Der Zauberberg
Sofies Welt
Kritik der reinen Vernunft
Geschichte der
Philosophie
Jahr
1973
1937
1940
Fachbereich
Deutsch
Deutsch
Deutsch
1995 Philosophie
1958 Philosophie
1952 Philosophie
Datum
29.10.01
03.11.01
16.08.01
12.09.01
12.09.01
06.12.01
12.10.01
Referentielle Integrität
Wenn in einer Tabelle ein Fremdschlüssel vorhanden ist, dann
muss jeder Fremdschlüsselwert auch als Primärschlüsselwert in
der korrespondierenden Tabelle vorkommen.
KB
21
Übungen - Aufgabe 1
Miniwelt „Schule“
Datenbanken
Herr P. Müller (MP) unterrichtet die Klasse 5a (Raum M21) in den
Fächern Mathematik und NWU. Frau A. Albrecht (AL) unterrichtet die
5a in Französisch. Sie ist auch Klassenlehrerin der 5a. Die
Französischstunden finden Mo 3 | Di 2 | Mi 6 | Fr 1 statt. (...)
KB
Entwerfen Sie ein relationales Datenmodell zu dieser Miniwelt und
implementieren Sie es mit Access. Erstellen Sie hierzu die
entsprechenden Tabellen (in der Entwurfsansicht), geben Sie einige
Testdaten ein und verknüpfen Sie die Tabellen (Primärschlüssel
festlegen und Beziehungen knüpfen).
22
Übungen - Aufgabe 2
Datenbanken
Miniwelt „Sportverein“
KB
Der Sportverein ist in Abteilungen (Leichtathletik, Turnen, Fußball, ...)
aufgeteilt. Jede Abteilung bietet z. T. mehrere Sportgruppen an (z. B.
bietet die Abteilung Fußball eine A-Jugend, B-Jugend,
Altherrengruppe, ... an). Jede Sportgruppe wird von einem Trainer
geleitet. Jede Abteilung hat einen Vorsitzenden. Trainer und
Vorsitzender sind Mitglieder des Vereins. Jedes Mitglied wird über
eine Mitgliedsnummer und die üblichen Daten erfasst.
...
Entwerfen Sie ein relationales Datenmodell zu dieser Miniwelt und
implementieren Sie es mit Access.
Aufgabe 1 - Lösungsvorschlag
23
Miniwelt „Schule“
Datenbanken
Herr P. Müller (MP) unterrichtet die Klasse 5a (Raum M21) in den
Fächern Mathematik und NWU. Frau A. Albrecht (AL) unterrichtet die
5a in Französisch. Sie ist auch Klassenlehrerin der 5a. Die
Französischstunden finden Mo 3 | Di 2 | Mi 6 | Fr 1 statt. (...)
Kürzel
AL
BEC
MP
...
Bez
5a
5b
5c
...
Klasse
5a
5a
5a
5a
5a
...
KB
Name
Albrecht
Becker
Müller
Stufe
Vorname
Anni
Klaus
Peter
5
5
5
Klassenlehrer
AL
MP
BEC
Fach
FR
FR
FR
FR
NWU
AL
AL
AL
AL
MP
Telefon
45678
12345
23456
Lehrer
Tag
DI
FR
MI
MO
MI
Stunde
3
2
6
1
1
Datenbanken
24
KB
Teil 2
Abfragen
Zielsetzung
25
Es soll möglich sein, Abfragen an die Bibliotheksdatenbank zu
stellen.
Z.B.:
Datenbanken
Ist das Buch X ausgeliehen?
KB
Wer hat das Buch X ausgeliehen?
...
Relationales Datenmodell
26
Datenbanken
Leser
Buch
Ausleihe
LNr
0
1
2
3
...
13
14
15
Name
Christ
Eberle
Friedrich
Frisch
Vorname
Benjamin
Gerrit
Andy
Johannes
Teubner
Thielen
Wollenweber
Ruth
Clemens
Lisa
Sig
D1
D2
D3
...
Ph1
Ph2
Ph3
Autor
Goethe
Mann
Mann
LNr
4
8
11
13
13
14
15
KB
Gardner
Kant
Russell
Sig
D2
M1
P1
D5
Ph2
D1
M3
GebJahr
83
84
83
84
Stamm
kursleit
ROE
TM
HB
TM
84 HEI
84 TM
84 TM
Titel
Faust
Dr. Faustus
Der Zauberberg
Sofies Welt
Kritik der reinen Vernunft
Geschichte der
Philosophie
Datum
29.10.01
03.11.01
16.08.01
12.09.01
12.09.01
06.12.01
12.10.01
Jahr
1973
1937
1940
Fachbereich
Deutsch
Deutsch
Deutsch
1995 Philosophie
1958 Philosophie
1952 Philosophie
Datenbanken
27
KB
Relationales Datenmodell
Query by Example
28
Abfrage: Welche Leser haben ein Buch ausgeliehen?
Datenbanken
QbE:
QbE: Grafik-basierte Erstellung von Abfragen
KB
Query by Example
29
Abfrage: Welche Leser haben ein Buch ausgeliehen?
Datenbanken
Ergebnis der Abfrage: neue Tabelle (Dynaset)
KB
Name
Frölich
Hellriegel
Martin
Teubner
Teubner
Thielen
Wollenweber
Vorname
Daniel
Daniel
Tobias
Ruth
Ruth
Clemens
Lisa
Sig
D2
M1
P1
D5
Ph2
D1
M3
Beachte: Die neue Tabelle wird i. a. nicht gespeichert.
30
Übungen - Aufgabe 3
Datenbanken
Erstellen Sie zu den folgenden Aufgaben QbE-basierte Abfragen.
Welche Leser gibt es?
Welche Leser sind 84 geboren?
Welche Leser sind vor 84 geboren?
Welche Leser gibt es? Ausgabe aller Leser (Name, Vorname und Geburtsjahr)
sortiert nach dem Geburtsjahr
Welche Bücher von Goethe sind in der Bibliothek vorhanden?
Welche Bücher sind ausgeliehen? (sortierte Ausgabe)
Welche Bücher hat die Leserin Lisa Wollenweber ausgeliehen?
Welche Leser haben ein Buch ausgeliehen? (Ausgabe mit / ohne Duplikate)
Welche Leser haben ein Buch vor mehr als 60 Tagen ausgeliehen? (Hinweis:
Datum()-Operator benutzen)
...
KB
Welche Bücher hat Leser X ausgeliehen?
Wer hat Buch X ausgeliehen?
Welche Bücher sind vom Autor X vorhanden?
Wer hat welche Bücher vor dem Datum X ausgeliehen? Ausgabe sortiert nach
Stammkursleitern
...
31
SQL - Structured Query Language
Abfrage: Welche Leser haben ein Buch ausgeliehen?
Datenbanken
QbE:
SQL:
KB
SELECT Leser.Name, Leser.Vorname, Ausleihe.Sig
FROM Leser INNER JOIN Ausleihe
ON Leser.LNr = Ausleihe.LNr;
SQL
Datenbanken
32
Aufgabe
SQL-Ausdruck
Bestimme Vorname und
Nachname aller Leser.
SELECT Leser.Vorname, Leser.Name
FROM Leser;
Bestimme die Daten aller
Leser, die im Stammkurs
von Frau Römer sind.
SELECT *
FROM Leser
WHERE ((Leser.Stammkursleiter)="ROE");
Bestimme die Daten aller
Bücher, die ausgeliehen
sind.
SELECT *
FROM Buch INNER JOIN Ausleihe ON Buch.Sig =
Ausleihe.Sig;
SELECT *
FROM Buch, Ausleihe
WHERE (Buch.Sig = Ausleihe.Sig);
KB
SQL - Syntax
33
Grundstruktur einer SQL-Auswahlabfrage:
Datenbanken
<SQL-Auswahlabfrage> ::=
SELECT [ALL | DISTINCT] <Attributliste>
FROM <Referenztabellen>
[WHERE <Bedingung>]
[GROUP BY <Attributliste>]
[HAVING <Bedingung>]
Erläuterung
< ... >
FROM
[ ... ]
... | ...
KB
:
:
:
:
noch zu erklärendes Symbol
Bestandteil der Sprache
optionales Element
Alternative
SELECT-Klausel
34
Datenbanken
Grundstruktur
SELECT [ALL | DISTINCT] <Attributliste>
FROM <Referenztabelle>
[WHERE <Bedingung>]
[GROUP BY <Attributliste>]
[HAVING <Bedingung>]
Beispiele
SELECT Leser.Vorname, Leser.Name
FROM Leser;
SELECT Vorname, Name
FROM Leser;
SELECT DISTINCT Name
FROM Leser;
KB
SELECT *
FROM Leser;
FROM-Klausel
35
Datenbanken
Grundstruktur
SELECT [ALL | DISTINCT] <Attributliste>
FROM <Referenztabelle>
[WHERE <Bedingung>]
[GROUP BY <Attributliste>]
[HAVING <Bedingung>]
Beispiele
SELECT *
FROM Leser;
SELECT *
FROM Buch INNER JOIN Ausleihe ON Buch.Sig = Ausleihe.Sig;
SELECT *
FROM Leser, Buch
KB
36
WHERE-Klausel
Datenbanken
SELECT Titel
FROM Buch
WHERE (Jahr <1990);
SELECT Titel
FROM Buch
WHERE ((Jahr <1990) AND (Jahr > 1950));
SELECT Titel
FROM Buch
WHERE (NOT (Autor=“Goethe“));
SELECT Name, Vorname
FROM Leser
WHERE (Vorname IN (“Franz“, “Heinz“, “Franz“));
SELECT Autor, Titel
FROM Buch
WHERE (Sig IN (SELECT Sig
FROM Buch INNER JOIN Ausleihe ON ... ));
KB
SQL - Semantik
37
Informelle Beschreibung der Bedeutung:
Datenbanken
SELECT ...
FROM ...
[WHERE ...]
// Attribute der erzeugten Tabelle
// Tabelle, aus der die Daten stammen
// Bedingung, die die Datensätze erfüllen
müssen
[GROUP BY ...] // Partitionierung in Gruppen
[HAVING ...]
// Auswahl von Gruppen
Formale Beschreibung der Bedeutung:
Relationenalgebra
Objekte: Relationen
Operationen: erzeugen aus Relationen neue Relationen
KB
Operationen auf Relationen
38
Datenbanken
Mit Hilfe von Operationen lassen sich aus gegebenen
Relationen neue Relationen erzeugen. Folgende
Grundoperationen werden üblicherweise benötigt:
KB
-
Projektion
Selektion
kartesisches Produkt
Verbund (join)
Vereinigung, Durchschnitt, Differenz
SELECT-Klausel
39
Ausgangsrelation: Buch
Datenbanken
Sig
D1
D2
...
Ph3
KB
Autor
Goethe
Mann
Titel
Faust
Dr. Faustus
Jahr
1973
1937
Fachbereich
Deutsch
Deutsch
Russell
Geschichte der ...
1952
Philosophie
SQL-Ausdruck:
SELECT Autor, Titel
FROM Buch;
Ergebnisrelation:
Autor
Goethe
Mann
Mann
Titel
Faust
Dr. Faustus
Der Zauberberg
Russell
Geschichte der ...
Projektion
40
Ausgangsrelation: Buch
Datenbanken
Sig
D1
D2
...
Ph3
Titel
Faust
Dr. Faustus
Jahr
1973
1937
Fachbereich
Deutsch
Deutsch
Russell
Geschichte der ...
1952
Philosophie
Projektion:
Autor, Titel
Ergebnisrelation: Autor, Titel(Buch)
Autor
Goethe
Mann
Mann
...
Russell
KB
Autor
Goethe
Mann
Titel
Faust
Dr. Faustus
Der Zauberberg
Geschichte der ...
Mit Hilfe einer Projektion
lassen sich Attributwerte
einer Relation auswählen.
WHERE-Klausel
41
Ausgangsrelation: Buch
Datenbanken
Sig
D1
D2
...
Ph3
Titel
Faust
Dr. Faustus
Jahr
1973
1937
Fachbereich
Deutsch
Deutsch
Russell
Geschichte der ...
1952
Philosophie
SQL-Ausdruck:
SELECT *
FROM BUCH
WHERE (Autor = „Goethe“);
Ergebnisrelation: (Autor=”Goethe”)(Buch)
Sig
D1
KB
Autor
Goethe
Mann
Autor
Goethe
Titel
Faust
Jahr
1973
Fachbereich
Deutsch
Selektion
42
Ausgangsrelation: Buch
Datenbanken
Sig
D1
D2
...
Ph3
Titel
Faust
Dr. Faustus
Jahr
1973
1937
Fachbereich
Deutsch
Deutsch
Russell
Geschichte der ...
1952
Philosophie
Selektion:
(Autor=”Goethe”)
Ergebnisrelation: (Autor=”Goethe”)(Buch)
Sig
D1
KB
Autor
Goethe
Mann
Autor
Goethe
Titel
Faust
Jahr
1973
Fachbereich
Deutsch
Mit Hilfe einer Selektion kann man bestimmte Tupel aus einer
Relation herausfiltern.
Produkt
43
Datenbanken
Ausgangsrelationen: Buch, Leser
KB
Sig
D1
D2
...
Autor
Goethe
Mann
Titel
Faust
Dr. Faustus
Jahr
1973
1937
LNr
0
1
...
Name
Christ
Eberle
Vorname GebJahr Stamm...
Benjamin 83
ROE
Gerrit
84
TM
Fachbereich
Deutsch
Deutsch
Ergebnisrelation: Buch  Leser // Kombination der Relationen
Sig
D1
D1
...
D1
D2
D2
...
Autor
Goethe
Goethe
Titel
Faust
Faust
Jahr
1973
1973
Goethe
Mann
Mann
Faust
1973
Dr. Fau... 1937
Dr. Fau... 1937
Fach... LNr
Deutsch 0
Deutsch 1
Name
Christ
Eberle
Deutsch 15
Deutsch 0
Deutsch 1
Wollen...
Christ
Eberle
...
INNER JOIN
44
Datenbanken
Ausgangsrelationen: Buch, Ausleihe
Sig
D1
D2
...
Autor
Goethe
Mann
Titel
Faust
Dr. Faustus
LNr
4
8
...
Sig
D2
M1
Datum
29.10.01
03.11.01
Jahr
1973
1937
Fachbereich
Deutsch
Deutsch
SQL-Ausdruck:
SELECT *
FROM Buch INNER JOIN Ausleihe ON Buch.Sig = Ausleihe.Sig;
Ergebnisrelationen:
KB
Sig
...
D2
...
Autor
Titel
Jahr
Mann
Dr. Fau... 1937
Fach...
LNr
Deutsch 4
Datum
29.10.01
Verbund
45
Datenbanken
Ausgangsrelationen: Buch, Ausleihe
Sig
D1
D2
...
Autor
Goethe
Mann
Titel
Faust
Dr. Faustus
LNr
4
8
...
Sig
D2
M1
Datum
29.10.01
03.11.01
Verbund / join:

Jahr
1973
1937
Fachbereich
Deutsch
Deutsch
Mit Hilfe eines Verbundes
(natural join) lassen sich
Relationen mit einem
gemeinsamen Attribut
verschmelzen.
Ergebnisrelationen: Buch  Ausleihe
KB
Sig
...
D2
...
Autor
Titel
Jahr
Mann
Dr. Fau... 1937
Fach...
LNr
Deutsch 4
Datum
29.10.01
Datenbanken
46
KB
Mengenoperationen
Zwei Relationen R und S (über demselben Relationenschema)
können mit den üblichen Mengenoperationen verknüpft
werden:
- Vereinigung: R  S
- Durchschnitt: R  S
- Differenz:
R\S
Datenbanken
47
KB
Relationenalgebra und SQL
Autor, Titel(Buch)
SELECT Autor, Titel
FROM Buch
(Autor=”Goethe”)(Buch)
SELECT *
FROM Buch
WHERE (Autor = “Goethe”)
Buch  Ausleihe
SELECT *
FROM Buch INNER JOIN Ausleihe
ON Buch.Sig = Ausleihe.Sig
Buch  Leser
SELECT *
FROM Buch, Leser
Buch1  Buch2
Buch1 UNION Buch2
48
SQL als Programmiersprache
Ausgangsrelationen
Datenbanken
Programm:
KB
SQL-Ausdruck
SQLInterpreter
Ergebnisrelation
SQL: Sprache zur Programmierung von Abfragen
49
Übungen - Aufgabe 3
Datenbanken
Wir betrachten hier die folgenden Tabellen zur Modellierung der Miniwelt
„Unterrichtsverteilung“:
Erstellen Sie SQL-Ausdrücke zu den folgenden Abfrageaufträgen:
KB
50
Übungen - Aufgabe 3
(1) Bestimme Name und Vorname sämtlicher Lehrer.
(2) Bestimme alle Lehrer (nur Kürzel), die montags in der 3. Stunde
Unterricht haben.
Datenbanken
(3) Bestimme die Namen aller Lehrer, die eine 6. Klasse leiten.
KB
(4) Bestimme, welche Lehrer in den 8. Klassen Physik unterrichten. Gib den
Lehrernamen und die Klasse jeweils aus.
(5) Bestimme alle Lehrer (Namen und Vornamen), die keine Klasse leiten.
(6) Bestimme, wann die 10a ihre Deutschstunden hat.
51
Aufgabe 3 - Lösungsvorschlag
(1) Bestimme Name und Vorname sämtlicher Lehrer.
SELECT Name, Vorname
FROM Lehrer
Datenbanken
(2) Bestimme alle Lehrer (nur Kürzel), die montags in der 3. Stunde
Unterricht haben.
KB
SELECT Kürzel
FROM Lehrer INNER JOIN Unterricht ON Lehrer.Kürzel = Unterricht.Lehrer
WHERE ((Tag = Mo) AND (Stunde = 3))
(3) Bestimme die Namen aller Lehrer, die eine 6. Klasse leiten.
SELECT Name
FROM Lehrer INNER JOIN Klasse ON Lehrer.Kürzel = Klasse.Klassenlehrer
WHERE (Stufe = 6)
52
Aufgabe 3 - Lösungsvorschlag
Datenbanken
(4) Bestimme, welche Lehrer in den 8. Klassen Physik unterrichten. Gib den
Lehrernamen und die Klasse jeweils aus.
SELECT Lehrer.Name, Unterricht.Klasse
FROM (Lehrer INNER JOIN Unterricht ON Lehrer.Kürzel = Unterricht.Lehrer)
INNER JOIN Klasse ON Unterricht.Klasse = Klasse.Bez
WHERE ((Klasse.Stufe = 8) AND ((Unterricht.Fach = „Physik“)
(5) Bestimme alle Lehrer (Namen und Vornamen), die keine Klasse leiten.
SELECT Name, Vorname
FROM Lehrer
WHERE (NOT Kürzel IN
SELECT Klassenlehrer
FROM Klasse)
(6) Bestimme, wann die 10a ihre Deutschstunden hat.
SELECT Tag, Stunde
FROM Unterricht
WHERE (Klasse = „10a“)
KB
Übungen - Aufgabe 4
53
Gegeben sind die folgenden Relationen:
R:
S:
Datenbanken
A
a
b
c
d
B
b
b
a
c
C
A
1
2
3
4
5
6
D
a
a
c
d
a
c
3
1
3
6
4
2
Wir betrachten die folgende Abfrage:
SELECT B, D
FROM R  S
WHERE (D < 4)
Beschreiben Sie diesen SQL-Ausdruck mit Hilfe der Operationen der
Relationenalgebra. Entwickeln Sie dann Schritt für Schritt durch Anwendung
der jeweiligen Operationen die Ergebnistabelle.
KB
Aufgabe 4 - Lösungsvorschlag
54
R:
S:
A
Datenbanken
a
b
c
d
B
C
b
b
a
c
1
2
3
4
5
6
SQL-Ausdruck:
SELECT B, D
FROM R  S
WHERE (D < 4)
B,D(D < 4)(R  S):
B
KB
b
b
a
a
A
D
3
1
3
2
D
a
a
c
d
a
c
3
1
3
6
4
2
Zielsetzung
55
Die Bibliotheksdatenbank soll um die Möglichkeit erweitert
werden, die folgenden Aktionen automatisiert durchzuführen:
- Buch ausleihen
Datenbanken
- Buch zurückgeben
KB
Beachte:
Man benötigt hierzu sog. Manipulationsabfragen, d.h.
Abfragen, die bestehende Tabellen verändern oder neue
Tabellen erzeugen.
Manipulationsabfragen
56
Tabellenerstellungsabfragen übertragen Daten in eine neue Tabelle.
SQL: SELECT <Attributliste> INTO <Tabellenname>
QbE:
Datenbanken
Löschabfragen löschen Daten in einer Tabelle.
SQL: DELETE <Attributliste> FROM <Tabellenname> WHERE <Bedingung>
QbE:
Anfügeabfragen fügen Daten aus einer bestehenden in eine bestehende
Tabelle ein.
SQL: INSERT INTO <Tabellenname> SELECT <Attributliste> FROM ...
QbE:
Aktualisierungsabfragen ändern Daten in einer bestehenden Tabelle.
SQL: UPDATE <Tabellenname> SET Attribut = Ausdruck, ...
QbE:
KB
Beachte: Access-SQL unterscheidet sich z.T. erheblich von Standard-SQL!
57
Buch zurückgeben
Löschung des mit Parametern eingegebenen Datensatzes aus
der Tabelle „Ausleihe“
Datenbanken
AusleiheLöschen:
KB
DELETE Ausleihe.LNr, Ausleihe.Sig
FROM Ausleihe
WHERE (((Ausleihe.LNr)=[Lesernummer:]) AND
((Ausleihe.Sig)=[Buchsignatur:]));
Buch ausleihen
58
Datenbanken
Schritt 1: Aktualisierung einer Hilfstabelle „Daten“, die die
Ausleihdaten aufnehmen soll: Eingabe von Lesernummer und
Buchsignatur mit Hilfe von Parametern; Ergänzung des
aktuellen Datums;
AusleiheAufnehmen:
UPDATE Daten
SET Daten.LNr = [Lesernummer:], Daten.Sig =
[Buchsignatur:], Daten.Datum = Date();
Daten: (Hilfstabelle)
LNr
5
KB
Sig
Ph1
Datum
31.12.01
Buch ausleihen
59
Schritt 2: Anfügen der Datensätze aus der Hilfstabelle an die
bestehende Tabelle „Ausleihe“;
Datenbanken
AusleiheÜbertragen:
KB
INSERT INTO Ausleihe ( LNr, Sig, Datum )
SELECT Daten.LNr, Daten.Sig, Daten.Datum
FROM Daten;
Ausleihe:
LNr
4
4
5
6
...
Sig
D2
P2
Ph1
D3
Datum
16.09.01
30.12.01
31.12.01
30.12.01
60
Automatisierung mit Makros
Datenbanken
Ein Makro ist eine Gruppe von Aktionen, die jeweils eine
bestimmte Operation ausführen. Mit Hilfe von Makros kann
man häufig vorkommende Aufgaben automatisieren, z.B.
zwei Manipulationsabfragen direkt hintereinander
durchführen.
Makro „BuchAusleihen“
AusleiheAufnehmen
AusleiheÜbertragen
Makro „BuchZurückgeben“
AusleiheLöschen
KB
61
Übungen - Aufgabe 5
Die Bibliotheksdatenbank soll wie folgt erweitert werden:
Datenbanken
Zurückgegebene Ausleihen sollen (mit dem Rückgabedatum
versehen) in einer zusätzlichen Tabelle archiviert werden.
KB
Die Operation „Buch zurückgeben“ soll automatisch den
Datensatz aus der Tabelle „Ausleihe“ löschen und ihn in die
Tabelle „Archiv“ einfügen.
Die Bibliotheksdatenbank soll wie folgt erweitert werden:
Es besteht die Möglichkeit, Bücher vorzubestellen. Wird ein
vorbestelltes Buch zurückgegeben, so erhält derjenige, der
es als erster vorbestellt hatte, eine Nachricht, dass das Buch
für ihn bereitliegt.
Datenbanken
62
KB
Teil 3
Datenschutz
Datenbanken
63
Zielsetzung
Fallstudie
Lehrer X muss bis Ende der Woche seine Epochalnoten
machen. Bei einigen Schülerinnen und Schülern ist er sich
seiner Sache noch nicht ganz sicher. Er geht in die
Schulbibliothek und lässt sich von der Bibliothekarin eine
Liste der Bücher seines Faches erstellen, die die betroffenen
Schülerinnen und Schüler im letzten Halbjahr ausgeliehen
hatten bzw. haben. Aufgrund dieser Informationen kann er
jetzt besser beurteilen, wie groß das Interesse dieser
Schülerinnen und Schüler an den im Unterricht besprochenen
Themen war.
Ziel:
Beurteilung des Vorgangs unter Datenschutzaspekten
KB
64
Datenschutz - was ist das?
Datenbanken
kein
Schutz von Daten
KB
sondern
Schutz des Bürgers vor der Verletzung seiner
Persönlichkeitsrechte
Grundgesetz: Recht auf informationelle Selbstbestimmung
Der Einzelne kann selbst über die Preisgabe und
Verwendung seiner persönlichen Daten entscheiden
65
Ein Blick zurück ..
Datenbanken
Vor 1978: generelle Erlaubnis
Die Verarbeitung personenbezogener Daten ist erlaubt,
sofern sie nicht durch Gesetze eingeschränkt ist.
KB
1.1.1978: Bundesdatenschutzgesetz (BDSG)
Wandel in der Rechtsauffassung
Ab 1978: grundsätzlicges Verbot
Die Verarbeitung personenbezogener Daten ist verboten,
sofern sie nicht durch Gesetze erlaubt wird.
1983: Ergänzung des Grundgesetzes
Informationelle Selbstbestimmung als Grundrecht
66
Rechte und Gesetze
Grundgesetz
(Recht auf informationelle Selbstbestimmung)
Datenbanken
Ausgestaltung durch Gesetze und
Regelungen
Öffentlicher Bereich
- BDGS (Abschnitt 2)
- LDSG
- spezielle Regelungen
Privater Bereich
- BDGS (Abschnitt 3)
- spezielle Regelungen
Spezielle Regelungen haben
Vorrang vor allgemeinen
Gesetzen.
KB
67
Interessenkonflikte
Individualinteresse
Datenbanken
Recht auf informationelle
Selbstbestimmung:
KB
Gemeinschaftsinteresse
Aufgaben eines Staates:
Schutz der Bürger vor
- Erhebung
- Speicherung
- Verwendung
- Weitergabe
seiner persönlichen Daten
- Erfüllung gesetzlicher Aufgaben (Sozialleistungen,...)
- Gewährleistung von Sicherheit (Verbrechensbek., ...)
- Mitwirkung der Bürger
(Wahlen, ...)
- Planung
(Rentenentwicklung, ...
Bereitschaft der Bürger zur
Preisgabe unverzichtbarer
Daten
Instrumente zur Kontrolle
unnötiger und rechtswidriger
Vorgänge
68
Datenschutzgesetze
Datenbanken
Individualinteresse
KB
Gemeinschaftsinteresse
Recht auf informationelle
Selbstbestimmung
Aufgaben, Pflichten,
allgemeine Interessen, ...
legen die Rechte der
Betroffenen fest
legen die Bedingungen fest,
unter denen eine
Verarbeitung von Daten durch
- öffentliche Stellen
- nicht-öffentliche Stellen
zulässig ist
Was sind Daten?
69
BDSG §3:
Datenbanken
Daten
Akte
Ein Datensatz
mit vielen
Merkmalen
Datei
Viele
Datensätze,
nach mehreren
Merkmalen
auswertbar
Liste
Viele
Datensätze,
nach einem
Merkmal ausgewertet
Datenschutzregelungen beziehen sich meist auf Dateien!
KB
Personenbezogene Daten
70
BDSG §3:
Personenbezogene Daten sind
Datenbanken
persönliche (z. B. Anschrift, Beruf, Straftaten, Krankheiten, ...)
oder
sachliche (z. B. Vermögen, Schulden, Gehaltsangaben, ...)
Verhältnisse einer
bestimmten (Person ist unmittelbar erkennbar)
oder
bestimmbaren (Person kann durch weitere Daten ermittelbar)
natürlichen Person. (also keine juristische Person, etwa Firma)
(Betroffener)
KB
71
Anwendungsbereiche der Gesetze
Erheben von Daten:
(Beschaffen von Daten über den Betroffenen)
Datenbanken
Verarbeiten von Daten:
KB
(Speichern, Verändern, Übermitteln, Sperren und Löschen
personenbezogener Daten, ungeachtet der dabei
angewendeten Verfahren)
Nutzen von Daten:
(Verwendung personenbezogener Daten, soweit es sich nicht
um Verarbeitung handelt; z. B. Kenntnisnahme eines
Bildschirminhalts)
Datenbanken
72
KB
Datenverarbeitung nicht-öffentlicher Stellen
§ 28 Datenspeicherung, -übermittlung und -nutzung für
eigene Zwecke
(1) Das Speichern, Verändern oder Übermitteln personenbezogener
Daten oder ihre Nutzung als Mittel für die Erfüllung eigener
Geschäftszwecke ist zulässig
1. im Rahmen der Zweckbestimmung eines Vertragsverhältnisses oder
vertragsähnlichen Vertrauensverhältnisses mit dem Betroffenen,
2. soweit es zur Wahrung berechtigter Interessen der speichernden
Stelle erforderlich ist und kein Grund zu der Annah-me besteht, daß
das schutzwürdige Interesse des Betroffenen an dem Ausschluß der
Verarbeitung oder Nutzung überwiegt,
3. wenn die Daten aus allgemein zugänglichen Quellen entnommen
werden können oder die speichernde Stelle sie veröffentlichen dürfte,
es sei denn, daß das schutzwürdige Interesse des Betroffenen an
dem Ausschluß der Verarbeitung oder Nutzung offensichtlich
überwiegt,
4. wenn es im Interesse der speichernden Stelle zur Durchführung
wissenschaftlicher Forschung erforderlich ist (...).
Datenbanken
73
KB
Datenverarbeitung nicht-öffentlicher Stellen
§ 28 Datenspeicherung, -übermittlung und -nutzung für
eigene Zwecke
(2) Die Übermittlung oder Nutzung ist auch zulässig
1. a) soweit es zur Wahrung berechtigter Interessen eines Dritten
oder öffentlicher Interessen erforderlich ist oder
b) wenn es sich um listenmäßig oder sonst zusammengefaßte Daten
über Angehörige einer Personengruppe handelt, die sich auf eine
- Angabe über die Zugehörigkeit des Betroffenen zu dieser Personengruppe,
- Berufs-, Branchen- oder Geschäftsbezeichnung,
- Namen,
- Titel,
- akademische Grade,
- Anschrift,
- Geburtsjahr
beschränken und kein Grund zu der Annahme besteht, daß der
Betroffene ein schutzwürdiges Interesse an dem Ausschluß der
Übermittlung hat. (...)
74
Datenverarbeitung öffentlicher Stellen
Datenbanken
§ 13 Erhebung von Daten
(1) Das Erheben personenbezogener Daten ist zulässig, wenn ihre
Kenntnis zur Erfüllung der Aufgaben der erhebenden Stellen
erforderlich ist. (...)
KB
§ 14 Datenspeicherung, -veränderung und -nutzung
(1) Das Speichern, Verändern oder Nutzen personenbezogener Daten
ist zulässig, wenn es zur Erfüllung der in der Zuständigkeit der
speichernden Stelle liegenden Aufgaben erforderlich ist und es für die
Zwecke erfolgt, für die die Daten erhoben worden sind. Ist keine
Erhebung vorausgegangen, dürfen die Daten nur für die Zwecke
geändert oder genutzt werden, für die sie gespeichert worden
sind.(...)
75
Rechte der Betroffenen
- Auskunft (über die gespeicherten Daten)
- Berichtigung (unrichtiger Daten)
Datenbanken
- Löschung (von Daten bei unzulässiger Speicherung, ...)
KB
- Sperrung (bei Nichtfeststellbarkeit der Richtigkeit, ...)
- Unterlassungs- und Beseitigungsanspruch
- Schadensersatz
- Einsicht und Auskunft in das Datenschutzregister
- Anrufung des Landesbeauftragten für den Datenschutz
76
Maßnahmen zum Datenschutz
Zugangskontrolle: Unbefugten ist der Zugang zu
Datenverarbeitungsanlagen, mit denen personenbezogene
Daten verarbeitet werden, zu verwehren.
Datenbanken
Datenträgerkontrolle: Es ist zu verhindern, dass Datenträger
unbefugt gelesen, kopiert, verändert oder entfernt werden.
KB
Speicherkontrolle: Das unbefugte Speichern und das
unbefugte Verändern gespeicherter persinenbezogener Daten
ist zu verhindern.
Benutzerkontrolle: Nur befugte Personen dürfen
Datenverarbeitungssysteme benutzen.
Zugriffskontrolle: Es ist zu gewährleisten, dass die zur
Benutzung eines Datenverarbeitungssystems Berechtigten
ausschließlich auf die ihrer Zugriffsberechtigung unterliegenden
Daten zugreifen können.
77
Maßnahmen zum Datenschutz
Datenbanken
Übermittlungskontrolle: Es muss überprüft und festgestellt
werden können, an welche Stellen personenbezogene Daten durch
Einrichtungen zur Datenübertragung übermittelt werden können.
KB
Eingabekontrolle: Es muss überprüft und festgestellt werden
können, wann und von wem personenbezogene Daten in
Datenverarbeitungssysteme eingegeben wurden.
Auftragskontrolle: Es muss gewährleistet werden, dass im Auftrag
verarbeitete Daten nur entsprechend den Weisungen des
Auftraggebers verarbeitet werden.
Transportkontrolle: Es soll verhindert werden, dass
personenbezogene Daten bei der Übermittlung sowie beim Transport
von Datenträgern unbefugt gelesen, kopiert, verändert oder gelöscht
werden.
Organisationskontrolle: Die innerbehördliche oder
innerbetriebliche Organisation ist so zu gestalten, dass sie den
besonderen Anforderungen des Datenschutzes gerecht wird.Daten
zugreifen können.
Datenbanken
78
KB
Teil 4
Entity-Relationship-Modellierung
79
Zielsetzung
Datenbanken
Der Entwurf relationaler Datenmodelle soll systematisiert
werden.
KB
Im folgenden wird die sog. Entity-Relationship-Modellierung
vorgestellt. Ziel einer ER-Modellierung ist es, die
Informationen über die Miniwelt möglichst einfach und
strukturiert zu beschreiben.
Das ER-Modell wurde 1976 von P. Chen entwickelt.
Miniwelt „Bibliothek“
Datenbanken
80
Objekte
KB
Beziehungen
Objekte
81
Strukturiertes Datenmodell
Datenbanken
LNr:
3
Name:
Müller
Vorname: Peter
...
8.1.2002
LNr:
1
Name:
Meier
Vorname: Karla
...
Titel:
...
Autor:
Rel1
Bibel
Sig:
M1
Autor:
Euklid
Titel: Elemente
...
LNr:
6
Name: Schmitt
Vorname: Otto
...
Objekte
KB
Sig:
16.2.2002
Beziehungen
Sig:
P1
Autor: Einstein
Titel: Relativität
...
Objekte
82
Entity-Relationship-Modell
Datenbanken
LNr:
3
Name:
Müller
Vorname: Peter
...
Sig:
8.1.2002
Bibel
Sig:
M1
Autor:
Euklid
Titel: Elemente
...
LNr:
6
Name: Schmitt
Vorname: Otto
...
LNr:
1
Name:
Meier
Vorname: Karla
...
Titel:
...
Autor:
Rel1
16.2.2002
Sig:
P1
Autor: Einstein
Titel: Relativität
...
Klassenbildung
Leser
KB
Ausleihe
Buch
Entity-Relationship-Modell
83
Spezifikation der Klassen mit Hilfe von Attributen:
Datenbanken
Leser
KB
LNr
Name
Ausleihe
...
Datum
Buch
Sig
Autor
...
84
Objekt- und Beziehungsklassen
Datenbanken
Leser
KB
Ausleihe
Buch
Eine Objektklasse (eine Entitätenklasse / ein Objekttyp) ist
eine Zusammenfassung von Entitäten mit gleichen
Eigenschaften.
Eine Beziehungsklasse (eine Relationenklasse / ein
Beziehungstyp) ist eine Zusammenfassung von gleichartigen
Relationen / Beziehungen.
Attribute
85
Datenbanken
Leser
KB
LNr
Name
Ausleihe
...
Datum
Buch
Sig
Autor
Die Eigenschaften aller Objekte / Beziehungen einer
Objektklasse / Beziehungsklasse werden mit Hilfe von
Attributen erfasst.. Man unterscheidet zwischen
beschreibenden und identifizierenden Attributen.
...
86
Mehrwertige Beziehungen
Datenbanken
Kunde
bucht
Reise
Mitarbeiter
Eine Beziehung kann auch zwischen Objekten aus 3, 4, ...
Objektklassen bestehen.
KB
87
Rekursive Beziehungen
Heim
Datenbanken
Verein
spielt gegen
Gast
Eine Beziehung kann auch zwischen Objekten einer
Objektklasse bestehen.
KB
88
Beziehungen als Objekte
Datenbanken
Leser
Ausleihe
Buch
betrifft
Mahnung
Eine Beziehung kann auch als Objekt in einer anderen
Beziehung auftreten.
KB
Generalisierungshierarchie
89
Kürzel
Name
...
Datenbanken
Person
ist
Schüler
ErzBer
KB
Ausleihe
ist
Lehrer
PersNr
Buch
Die ist-Beziehung verknüpft
Objektklassen (nicht
Objekte).
Die Spezialisierungsklasse
erbt die Attribute der
Generalisierungsklasse.
Übungen - Aufgabe 7
90
Erstellen Sie zu den folgenden Miniwelten jeweils ein ERModell:
Datenbanken
Miniwelt „Schule“
KB
Herr P. Müller unterrichtet die Klasse 9a in den Fächern Mathematik und
Physik. Frau A. Albrecht unterrichtet die 9a in Französisch. Sie ist auch
Klassenlehrerin der 9a. Die Französischstunden finden Mo 3 | Di 2 | Mi 6 | Fr
1 statt. ...
Miniwelt „Schule“
T. Martin hat die Kurse 12M2, 12E1, 12Ch1, 12in1, 12sp2, ... belegt. Den
Kurs 12in1 besucht er dabei freiwillig. Stammkurs von T. Martin ist der Kurs
12M2. Dieser wird von F. Trautmann geleitet.
91
Übungen - Aufgabe 8
Datenbanken
Identifizieren Sie in den folgenden Miniwelten Objekte und
Beziehungen und stellen Sie diese in einem ER-Diagramm
dar.
KB
Miniwelt „Kino “
Der Film “Enigma” (Produzent Mick Jagger) läuft ab dem 26.1.2002 im Saal
“Movie 2” des Kinocenters “Cinema KL”. Für den Saal “Movie 2” ist samstags
Sven Knohsalla als Vorführer eingeteilt. (...)
Miniwelt „Flugreservierung“
Anna Wollenweber aus Kaiserslautern (Burgstraße 4) bucht am 2.2.2002 den
Flug RY201 nach London. Dieser Flug wird von der Maschine LX23 (Boing
737) durchgeführt. A. Wollenweber wird der Sitzplatz A36 (Fensterplatz) in
diesem Flugzeug zugewiesen. (...)
Übungen - Aufgabe 9
92
Worin besteht der Unterschied zwischen den beiden
Modellen?
Datenbanken
Leser
LNr
...
Leser
LNr
KB
Name
Ausleihe
Name
Datum
Buch
Sig
Ausleihe
...
Datum
Autor
...
Buch
Sig
Autor
...
93
Übungen - Aufgabe 10
Datenbanken
Erstellen Sie zu den folgenden Miniwelten jeweils ein ERModell:
KB
Miniwelt „Arztpraxis “
Die drei Ärzte Mager, Mewes und Mises führen eine Gemeinschaftspraxis. Sie
wollen mit Hilfe einer Datenbank Informationen der folgenden Art erfassen:
Dr. Elisabeth Mager (kurz Ma) behandelt am 21.2.2002 den Patienten Willi
Schäfer (Patientennummer 3012). Im Rahmen dieser Behandlung werden die
folgenden Leistungen erbracht: Beratung, symptombezogene Untersuchung,
Schutzimpfung. Jede dieser Leistungen ist über eine Nummer identifizierbar
und kostet eine bestimmte Gebühr.
Miniwelt „Zugfahrt“
Während der Zugfahrt werden die folgenden Stationen erreicht: 7.30
Saarbrücken; 8.10 Kaiserslautern; 8.30 Mannheim; ... ; 14.00 Berlin. Die
Zugfahrt wird während der Teilstrecke Saarbrücken - Frankfurt von Schaffner
Peter Schmitt begleitet. Während der Teilstrecke Frankfurt - Hannover wird
sie von Schaffner Karl Meier begleitet. Die gesamte Fahrt wird von Lokführer
Winfried Schuster durchgeführt. Alle Personen, Schaffner Schmitt und Meier
sowie Lokführer Schuster gehören zum Personal der DB. (...)
Aufgabe 7 - Lösungsvorschlag
94
Miniwelt „Schule“
Datenbanken
Herr P. Müller (MP) unterrichtet die Klasse 9a in den Fächern
Mathematik und Physik. Frau A. Albrecht (AL) unterrichtet die 9a in
Französisch. Sie ist auch Klassenlehrerin der 9a. Die
Französischstunden finden Mo 3 | Di 2 | Mi 6 | Fr 1 statt. (...)
leitet
Lehrer
Kürzel
Klasse
unterrichtet
Name
...
Fach
KB
Stunde
Bez
...
Aufgabe 7 - Lösungsvorschlag
95
Miniwelt „Schule“
Datenbanken
T. Martin (#31) besucht die Kurse 12M2, 12E1, 12Ch1, 12in1, .... Den
Kurs 12in1 besucht er dabei freiwillig. Stammkurs von T. Martin ist der
Kurs 12M2. Dieser wird von F. Trautmann unterrichtet. (...)
Kürzel
Name
Schüler
freiwillig
besucht
LK
StK
Kurs
Lehrer
unterrichtet
Bez
KB
Kürzel
Name
...
96
Aufgabe 8 - Lösungsvorschlag
Vorführer
Datenbanken
betreut
Film
läuft in
Saal
istTeilvon
Kino
KB
97
Aufgabe 8 - Lösungsvorschlag
Datenbanken
Kunde
erhält
Sitz
KB
bucht
Flug
führt_aus
istTeilvon
Flugzeug
98
Aufgabe 9 - Lösungsvorschlag
Datenbanken
LNr:
3
Name:
Müller
Vorname: Peter
...
LNr:
6
Name: Schmitt
Vorname: Otto
...
LNr:
1
Name:
Meier
Vorname: Karla
...
Sig:
8.1.2002
25.4.2002
16.2.2002
Titel:
...
Autor:
Rel1
Bibel
Sig:
M1
Autor:
Euklid
Titel: Elemente
...
Sig:
P1
Autor: Einstein
Titel: Relativität
...
Werden Ausleihen archiviert, so kann ein Buch mehrfach von
demselben Leser ausgeliehen werden. Zur Identifikation einer
Ausleihbeziehung benötigt man dann neben der Lesernummer und der
Signatur des Buches auch das Ausleihdatum.
KB
Aufgabe 10 - Lösungsvorschlag
99
Datum
Datenbanken
Arzt
Kürzel
Behandlung
PNr
Name
umfasst
Leistung
LNr
KB
Patient
Art
Gebühr
Name
...
100
Aufgabe 10 - Lösungsvorschlag
Zugfahrt
Schaffner
betreut
Datenbanken
ist Teil
ist
Start
Halt
Teilfahrt
Ziel
führt_aus
Personal
ist
Lokführer
KB
Datenbanken
101
KB
Teil 5
Vom ER-Modell zum relationalen Datenmodell
Zielsetzung
102
Datenbanken
Ziel ist es, ein relationales Datenmodell zur Miniwelt
„Unterrichtsverteilung“ zu erstellen. Wir gehen von dem
unten aufgeführten ER-Modell aus.
leitet
Lehrer
Klasse
unterrichtet
Kürzel
Name
Bez
...
Fach
KB
...
Art
...
Tabellen zum ER-Modell
103
leitet
Lehrer
Klasse
Datenbanken
unterrichtet
Kürzel
Bez
...
Fach
Kürzel
AL
BEC
MP
...
Bez
KB
Name
5a
5a
5a
5a
5a
...
Name
Albrecht
Becker
Müller
Vorname
Anni
Klaus
Peter
Fach
FR
FR
FR
FR
NWU
AL
AL
AL
AL
MP
Tag
DI
FR
MI
MO
MI
...
...
Telefon
45678
12345
23456
Kürzel
Art
Bez
5a
5b
5c
...
Stunde
3
2
6
1
1
Stufe
5
5
5
Kürzel
AL
MP
BEC
Kardinalitäten
Datenbanken
104
KB
Lehrer
leitet
unterrichtet
Klasse
Beziehungstypen
Datenbanken
105
A
( Lehrer leitet Klasse )
B
1:1-Beziehung
Jedes Objekt der Klasse A steht mit höchstens einem
Objekt der Klasse B in Beziehung.
KB
Jedes Objekt der Klasse B steht mit höchstens einem Objekt
der Klasse A in Beziehung.
Beziehungstypen
Datenbanken
106
A
( Lehrer leitet Klasse )
B
1:n-Beziehung
Jedes Objekt der Klasse A steht mit beliebig vielen Objekten
der Klasse B in Beziehung.
KB
Jedes Objekt der Klasse B steht mit höchstens einem Objekt
der Klasse A in Beziehung.
Beziehungstypen
Datenbanken
107
A
( Lehrer unterrichtet Klasse )
B
m:n-Beziehung
Jedes Objekt der Klasse A steht mit beliebig vielen Objekten
der Klasse B in Beziehung.
KB
Jedes Objekt der Klasse B steht mit beliebig vielen Objekten
der Klasse A in Beziehung.
Kardinalitäten
108
1
leitet
n
Lehrer
Klasse
Datenbanken
m
KB
Kürzel
Name
unterrichtet
n
Bez
...
Fach
...
Art
...
Kardinalitäten
109
min, max
1,1
leitet
0,n
Datenbanken
Lehrer
KB
Klasse
1,m
Kürzel
Name
unterrichtet
0,n
Bez
...
Fach
...
Art
...
110
Transformation in Tabellenmodelle
Objektklasse
E:
S
Datenbanken
E
KB
S
A1
A2
A1
A2
111
Transformation in Tabellenmodelle
Beziehungsklasse (Standard-Tabellenmodell)
Datenbanken
E1
S1
R:
R
A1
S1
S2
A1
A2
A2
E2
S2
Integritätsbedingungen:
KB
R[S1]  E1[S1]
R[S2]  E2[S2]
112
Transformation in Tabellenmodelle
N:1-Beziehungsklasse (reduziertes Tabellenmodell)
E1
S1
Datenbanken
n
E1:
S1
...
...
...
...
S2
R
E2:
S2
1
E2
S2
Referentielle Integrität:
KB
E1[S2]  E2[S2]
113
Transformation in Tabellenmodelle
IS-A-Beziehung
Datenbanken
E1
S
A1
E1:
S
A1
A2
B1
...
...
A2
is-a
E2:
S
E2
B1
KB
Integritätsbedingung:
E2[S]  E1[S]
114
Übungen - Aufgabe 11
Legen Sie die Beziehungstypen sinnvoll fest, ergänzen Sie
passende Attribute und skizzieren Sie ein relationales
Datenmodell zum ER-Modell.
Datenbanken
leitet
KB
Abteilung
istTeilvon
Mitglied
nimmt teil
Gruppe
trainiert
benutzt
Sportstätte
115
Aufgabe 11 - Lösungsvorschlag
Festlegung der Beziehungstypen:
n
Datenbanken
leitet
Abteilung
1
1
istTeilvon
n
Mitglied
m
n
nimmt teil
1
n
trainiert
Gruppe
n
benutzt
m
KB
Sportstätte
116
Aufgabe 11 - Lösungsvorschlag
Tabelle Mitglied
(MNr: Zahl; Name: Zeichenkette; ...)
Datenbanken
Tabelle Abteilung
(ABez: ZK; MNr: Zahl {Leiter}; ...)
Tabelle Gruppe
(GBez: ZK; MNr: Zahl {Trainer}; ABez: ZK {Abt.}; ...)
Tabelle Sportstätte
(SBez: ZK; ...)
Tabelle Teilnahme
(MNr: Zahl; GBez: ZK; ...)
Tabelle Benutzung
(Gbez: ZK; SBez: ZK; ...)
KB
117
Übungen - Aufgabe 12
Miniprojekt Datenbanken
Datenbanken
Erstellen Sie eine relationale Datenbank zu einer Miniwelt
ihrer Wahl (z. B. „Arztpraxis“ / „Zugfahrt“ / ...).
KB
Gehen Sie vom ER-Modell aus und entwickeln Sie hieraus ein
geeignetes Tabellenmodell.
Geben Sie einige Testdaten ein und erstellen Sie für den
Kontext sinnvolle Abfragen, Makros, ...
118
Aufgabe 12 - Lösungsvorschlag
Tabelle Personal
(PNr: Zahl; Name: Zeichenkette; ...)
Datenbanken
Tabelle Lokführer
(PNr: Zahl; Fahrerlaubnis: ZK; ...)
Tabelle Schaffner
(PNr: Zahl; Prüfung: Datum; ...)
Tabelle Halt
(Ort: ZK; Ankunft: Uhrzeit; Abfahrt: Uhrzeit; ...)
Tabelle Teilfahrt
(Start: ZK; Ziel: ZK; ...)
Tabelle SchaffnerBetreuung
(Start: ZK; Ziel: ZK; PNr: ZK; ...)
KB
Tabelle LokFührung
(Start: ZK; Ziel: ZK; PNr: ZK; ...)
119
Literaturhinweise
Datenbanken
Es gibt eine große Anzahl umfangreicher Fachbücher zur
Thematik Datenbanken.
...
Bei der Vorbereitung habe ich eher kompaktere Darstellungen
benutzt:
- Helmut Balzert: Lehrbuch der Software-Technik. Spektrum.
- Horn / Kerner / Forbrig: Informatik. Fachbuchverlag Leipzig.
Schulbücher zur Thematik gibt es fast keine:
- R. Baumann: Datenbanken und Informationssysteme. Klett
(Reihe: Arbeitshefte Informatik)
Einführungen in ACCESS gibt es mehr als genug.
Schulbezogene Einführungen: z. B. aus der Reihe datadidactLernmodule
KB