Datenbanksysteme SS 2015 - Uni OS

Datenbanksysteme SS 2015
Oliver Vornberger
Institut für Informatik
Universität Osnabrück
Vorlesung vom 13.04.2015
1
Organisation
• Vorlesung: Mo + Di, 10:15 Uhr, 31/E06
• Übung: Do 10:15 in 31/E05 + 12:15 Uhr in 69/E18
• Übungsleiter: Nils Haldenwang
• Tutoren: Miriam Beutel, Svantje Jung, Lukas Kalbertodt,
Dominik Lips, Niels Meyering, Manuel Schwarz
• Übungsblatt am Dienstag
• Besprechung in Übung am Donnerstag (alt + neu)
• Testate montags, dienstags, mittwochs in 31/E53
• Klausur am Montag, 13. Juli 2015
• Datenbankpraktikum 31.08. bis 18.09.2015
2
stud.ip
https://studip.uni-osnabrueck.de
3
Literatur
• Alfons Kemper, André Eickler:
"Datenbanksysteme - Eine Einführung"
Oldenbourg Verlag, München,
9. Auflage, 2013, 39.80 €
• Ramez Elmasri, Shamkant Navathe:
"Grundlagen von Datenbanksystemen"
Person Studium IT,
Bachelorausgabe, 2009, 34.95 €
4
Begleitmaterial
•
•
•
•
Skript in PDF (mas2tex)
Skript in HTML (media2mult)
Powerpointfolien in PDF
Matterhorn-Video-Mitschnitt (Streaming, mp4, mp3)
http://www-lehre.inf.uos.de/~dbs/2015
5
Checkliste
6
Classroomquiz
7
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
Einführung
Konzeptuelle Modellierung
Logische Datenmodelle
Physikalische Datenorganisation
Mehrdimensionale Suchstrukturen
Das Relationale Modell
SQL
Datenintegrität
Datenbankapplikationen
XML
Ruby on Rails
Relationale Entwurfstheorie
Transaktionsverwaltung
Mehrbenutzersynchronisation
Recovery
Objektorientierte Datenbanken
Gliederung
8
Kapitel 1: Einführung
Programm 1
...
Programm n
Programm 1
Physikalische Datei 1
Physikalische Datei n
Logische Datei 1
...
Programm n
DBMS
Logische Datei n
Daten
basis
9
Kapitel 2:
Konzeptuelle Modellierung
voraussetzen
Vorgänger
Nachfolger
MatrNr
Name
VorlNr
Studenten
hören
Vorlesungen
Sem
Titel
Note
prüfen
lesen
PersNr
Name
SWS
Rang
Assistenten
arbeitenFür
Professoren
Raum
Fachgebiet
PersNr
Name
10
Kapitel 3:
Logische Datenmodelle
•
•
•
•
Hierarchisches Modell
Netzwerkmodell
Relationales Modell
Objektorientiertes Modell
11
Kapitel 4:
Physikalische Datenorganisation
12
Kapitel 5:
Mehrdimensionale Suchstrukturen
G
A E
8
E
G
F
F
6
A
4
C
B
2
B C
D
2
4
6
8
10
12
14
D
13
Kapitel 6:
Das Relationale Modell
VorlNr
Titel
5001
5041
5043
5049
4052
5052
5216
5259
5022
4630
Grundzüge
Ethik
Erkenntnistheorie
Mäeutik
Logik
Wissenschaftstheorie
Bioethik
Der Wiener Kreis
Glaube und Wissen
Die 3 Kritiken
SWS
4
4
3
2
4
3
2
2
2
4
gelesenVon
2137
2125
2126
2125
2125
2126
2126
2133
2134
2137
14
Kapitel 7:
SQL
select titel, sws
from Professoren, Vorlesungen
where persnr=gelesenvon
and
name='Sokrates'
15
Kapitel 8:
Datenintegrität
Logik
Sokrates
Mäeutik
Ethik
FOREIGN KEY gelesenvon
references Professoren(persnr)
on delete cascade
16
Kapitel 9:
Datenbankapplikationen
MS Access
…
JDBC
…
PHP
…
17
Kapitel 10:
XML
<personen>
<person persnr="P4711" sex="w">
<vorname>Susi</vorname>
<nachname>Sorglos</nachname>
<photo src="erika.gif"/>
</person>
<person persnr="P4712" chef="P4711" sex="m">
<vorname>Willi</vorname>
<nachname>Wacker</nachname>
<photo src="willi.gif"/>
</person>
</personen>
18
Kapitel 11:
Ruby on Rails
19
Kapitel 12:
Relationale Entwurfstheorie
Rang
Name
PersNr
Straße
PLZ
Ort
Raum
BLand
Vorwahl
Landesregierung
20
Kapitel 13:
Transaktionsverwaltung
potentiell
inkarnieren
verdrängen
wartend
aktiv
einbringen
beenden
abgeschlossen
festschreiben
persistent
neustarten
wiederholbar
abbrechen
abbrechen
zurücksetzen
gescheitert
zurücksetzen
aufgegeben
21
Kapitel 14:
Recovery
DBMS-Puffer
Hintergrundspeicher
Einlagerung
A'
PA
D
A'
C'
D
PC
Auslagerung
C
PB
B
22
Kapitel 15:
Mehrbenutzersynchronisation
T1
T2
read(A, a1)
a1 := a1 – 300
write(A, a1)
read(A, a2 )
a2 := a2 * 1.03
write(A, a2)
read(B, b1)
. . .
abort
23
Kapitel 16:
Objektorientierte Datenbanken
id1
Professoren
PersNr:
2137
Name:
"Kant"
Rang:
"C4"
residiertIn:
id9
hatGeprueft:
liest:
id2
VorlNr:
Titel:
SWS:
gelesenVon:
Vorlesungen
5001
"Grundzüge"
4
id1
{. . . }
{id2
, id3 }
id3
VorlNr:
Titel:
Vorlesungen
4630
"Die 3 Kritiken"
SWS:
4
gelesenVon:
id1
Hoerer:
{. . .}
Hoerer:
{. . .}
Nachfolger:
{. . .}
Nachfolger:
{. . .}
Vorgaenger:
{. . .}
Vorgaenger:
{. . .}
24
Kapitel 1:
Einführung
25
Definition
Datenbanksystem = computergestütztes System mit
• Datenbasis zur Beschreibung eines Ausschnitts der
Realwelt
• Programme zum geregelten Zugriff auf die
Datenbasis
(Datenbankverwaltungssystem,
data base management system = DBMS)
26
Motivation
Separate Abspeicherung
von miteinander in Beziehung stehenden Daten 
•
•
•
•
•
•
•
•
Redundanz
Inkonsistenz
Integritätsverletzung
Verknüpfungseinschränkung
Mehrbenutzerprobleme
Verlust von Daten
Sicherheitsprobleme
Hohe Entwicklungskosten
27
Isolierte Dateien versus zentrale Datenbasis
Programm 1
...
Programm n
Programm 1
Programm n
..
.
Physikalische Datei 1
Physikalische Datei n
Logische Datei 1
DBMS
Logische Datei n
Daten
basis
28
Datenabstraktion
externe Ebene
konzeptuelle Ebene
interne Ebene
Sicht 1
Sicht 2
Sicht n
Gesamtsicht
physikalische Speicherung
29
Transformationsregeln
… für Verbindungen zwischen den Ebenen
Bundesbahn:
konzeptuelles Schema = Kursbuch
externes Schema
= Städteverbindungen Osnabrück
internes Schema
= Abbildung auf Dateisystem
Personaldatei:
konzeptuelle Ebene
= Angestellte
Name, Wohnort, Geburtsdatum
externes Schema
= Geburtstagsliste mit
Name, Datum, Alter
internes Schema
= Abbildung auf Dateisystem
30
Datenunabhängigkeit
• Physische Datenunabhängigkeit:
bei Änderung des internen Schemas keine
Änderung des externen Schemas
• Logische Datenunabhängigkeit:
bei Änderungen des konzeptuellen Schemas
keine Änderung des externen Schemas
31
Schema versus Ausprägung
• Datenbankschema
= Struktur der abspeicherbaren Daten
• Datenbankausprägung
= momentan gültiger Zustand der Datenbasis
32
Modellierungskonzepte
Externes
Schema
reale
Welt
Konzeptuelles
Schema
Logisches
Schema
Internes
Schema
Datenbanksystem
33
Entity-Relationship-Modell
• entity:
Gegenstand des Denkens und der Anschauung
• relationship:
Beziehung zwischen den entities
34
ER-Diagramm
Attribut
Nachname
Vorname
Studienfach
PLZ
Mat-Nr
Studenten
Entity-Typ
Name
wohnen
in
Orte
Relationship-Typ
35
Logisches Schema
• Das hierarchische Modell
z. B. IMS von IBM
• Das Netzwerkmodell
z. B. UDS von Siemens
• Das relationale Modell
z. B. Access von Microsoft
• Das objektorientierte Modell
z. B. O2 von O2 Technology
36
Architektur eines DBMS
Naive Benutzer
Anwendung
Experten
Programmierer Administratoren
Interaktive
Abfrage
Präcompiler
DMLCompiler
Verwaltungs
werkzeug
DDLCompiler
Anfragebearbeitung
Schemaverwaltung
Datenbankmanager
Mehrbenutzersynch.
Fehlerbehandlung
Filemanager
Logdateien
Indexe
Datenbasis
Datenwörterbuch
37