Relationales Modell

Werbung
Das Datenmodell
Ausschnitt der
Realen Miniwelt
Manuelle/intellektuelle
Modellierung
Konzeptuelles Schema
(E/R- oder UML-Schema) Halbautomatische
Transformation
Relationales
S h
Schema
XML
S h
Schema
Netzwerk
S h
Schema
Datenbanksysteme für Hörer anderer Fachrichtungen WS 2016/2017
Objektorientiertes
S h
Schema
08.11.2016
Das
as relationale
e at o a e Datenmodell
ate
ode
MatrNr
VorlNr
Name
Studenten
Studenten
MatrNr Name
26120 Fichte
25403 Jonas
...
...
N
hören
hören
MatrNr VorlNr
25403 5022
26120 5001
...
...
M
Vorlesungen
Titel
Vorlesungen
VorlNr
Titel
5001 Grundzüge
5022 Glaube und Wissen
...
...
Datenbanksysteme für Hörer anderer Fachrichtungen WS 2016/2017
08.11.2016
Historische Entwicklung relationaler DBMS
• Codasyl, Anfang 1960: netzwerkartiges Datenmodell
• IMS, Mitte 1960: hierarchisches Datenmodell
• Ted Codd, 1970: Grundlage relationales Datenmodell
• System R, Mitte 1970: relationales Datenbanksystem
(
(Forschungsprototyp)
g p
yp)
• Genealogie-Poster:
www.hpi.de/naumann/projects/rdbms-genealogy.html
p
p j
g
gy
Datenbanksysteme für Hörer anderer Fachrichtungen WS 2016/2017
08.11.2016
Historische Entwicklung relationaler DBMS
Datenbanksysteme für Hörer anderer Fachrichtungen WS 2016/2017
08.11.2016
Historische Entwicklung relationaler DBMS
Kommerzielle relationale Datenbanksysteme,
y
Fokus OLTP
•
•
•
•
•
Oracle V2, Ende 1970
Ingres
g
((Berkeley),
y) Ende 1970  PostgreSQL
g
SQL/DS, Anfang 1980: IBM  DB2
MS SQL Server, 1990 ((aus Sybase)
y
)
MySQL, Ende 1990
 ab Ende 1990: Objektrelationale Erweiterungen
Datenbanksysteme für Hörer anderer Fachrichtungen WS 2016/2017
08.11.2016
Historische Entwicklung DBMS
Spezialisierte Systeme:
• Objektorientierte
j
DBMS ((ab Ende 1980))
• XML DBMS (ab Ende 1990)
• Hauptspeicherdatenbanksysteme
p p
y
((ab Ende 1990))
• Analytische Datenbanksysteme (Fokus OLAP)
((ab Anfang
g 2000))
Hybride
y
Systeme:
y
• OLTP & OLAP: HyPer, SAP HANA
((Hauptspeicher-DBS,
p p
Mehrprozessorarchitektur)
p
)
Datenbanksysteme für Hörer anderer Fachrichtungen WS 2016/2017
08.11.2016
G
Grundlagen
dl
des
d relationalen
l ti
l Modells
M d ll
Seien D1, D2, ..., Dn Domänen (~Wertebereiche)
( Wertebereiche)
Relation: R  D1 x ... x Dn
Bsp.: Telefonbuch  string x string x integer
T
Tupel:
l tR
Bsp.:
p t = („
(„Mickey
y Mouse“,, „Main
„
Street“,, 4711))
Schema: legt die Struktur der gespeicherten Daten fest
Bsp.: Telefonbuch: {[Name: string, Adresse: string,
Telefon#: integer]}
Datenbanksysteme für Hörer anderer Fachrichtungen WS 2016/2017
08.11.2016
Relation
Telefonbuch
Name
Straße
Mickey Mouse
Main Street
Minnie Mouse
Broadway
Donald Duck
Broadway
...
...
Telefon#
4711
94725
95672
...
• Ausprägung: der aktuelle Zustand der Datenbasis
• Schlüssel: minimale Menge von Attributen, deren Werte ein
p eindeutig
g identifizieren
Tupel
• Primärschlüssel: wird unterstrichen
• Einer
e de
der Schlüsselkandidaten
Sc üsse a d date wird
da
als
s Primärschlüssel
ä sc üsse ausge
ausgewählt
ä t
• Hat eine besondere Bedeutung bei der Referenzierung von Tupeln
Datenbanksysteme für Hörer anderer Fachrichtungen WS 2016/2017
08.11.2016
Uni-Schema
voraussetzen
Nachf l
folger
Vorgänger
MatrNr
N
N
Name
Semester
Studenten
N
hören
M
M
Note
Name
Fachgebiet
1
Assistenten
N
arbeitenFür
N
SWS
Titel
lesen
prüfen
PersNr
M
Vorlesungen
N
VorlNr
1
1
Professoren
PersNr
Name
Rang
Raum
Abbildungsregeln (1)
Entitymengen auf Relationen:
Entitymenge
E
tit
E mit
it Attributen
Att ib t Ai aus Domänen
D ä
Di (1 ≤ i ≤ k)
 k-stellige Relation E(A1:D1, ..., Ak:Dk).
Übernahme der Schlüsselattribute
Datenbanksysteme für Hörer anderer Fachrichtungen WS 2016/2017
08.11.2016
Relationale Darstellung von
E tit
Entitymengen
Studenten: {[MatrNr:integer,
{[MatrNr:integer Name: string,
string
Semester: integer]}
Vorlesungen: {[VorlNr:integer, Titel: string,
SWS: integer]}
Professoren: {[
{[PersNr:integer,
g , Name: string,
g,
Rang: string, Raum: integer]}
Assistenten: {[PersNr:integer, Name: string,
Fachgebiet:
g
string]}
g]}
Datenbanksysteme für Hörer anderer Fachrichtungen WS 2016/2017
08.11.2016
Relationale Darstellung von
Beziehungen
A11
E1
A1k
1
...
AR1
R
A
A21
E2
A2 k
2
...
...
A11,...., A1k , A21,..., A2k
R:{[

1
Schlüsselvon E1
R
kR
En
An1
...
A nk
n
R
1
R
kR
,..., An1 ,..., Ankn , A ,..., A ]}
  
2
Schlüsselvon E 2
Schlüsselvon E n
Datenbanksysteme für Hörer anderer Fachrichtungen WS 2016/2017
Attributevon R
08.11.2016
Beziehungen unseres Beispiel-Schemas
MatrNr
VorlNr
Name
Studenten
Semester
N
hören
M
Vorlesungen
SWS
Titel
hören (N:M): {[MatrNr: integer, VorlNr: integer]}
Datenbanksysteme für Hörer anderer Fachrichtungen WS 2016/2017
08.11.2016
Ausprägung Beziehung hören
Studenten
MatrNr
...
26120
...
27550
...
...
...
MatrNr
Studenten
N
hören
MatrNr VorlNr
26120 5001
27550 5001
27550 4052
28106 5041
28106 5052
28106 5216
28106 5259
29120 5001
29120 5041
29120 5049
29555 5022
25403 5022
29555 5001
Vorlesungen
VorlNr
...
5001
...
4052
...
...
...
VorlNr
hören
Datenbanksysteme für Hörer anderer Fachrichtungen WS 2016/2017
M
Vorlesungen
08.11.2016
Beziehungen unseres Beispiel-Schemas
Professoren
1
l
lesen
N
Vorlesungen
lesen (1:N): {[PersNr: integer, VorlNr: integer]}
arbeitenFür (N:1): {[AssistentenPersNr: integer,
integer
ProfPersNr: integer]}
voraussetzen
t
(N M) {[Vorgänger:
(N:M):
{[V ä
iinteger,
t
N
Nachfolger:
hf l
iinteger]}
t
]}
prüfen (N:M:1): {[MatrNr: integer, VorlNr: integer,
PersNr: integer, Note: decimal]}
Datenbanksysteme für Hörer anderer Fachrichtungen WS 2016/2017
08.11.2016
Frage: 1:1 Beziehung?
Männer
1
h i t
heiraten
1
PersNr
Frauen
PersNr
heiraten (1:1): {[???]}
Datenbanksysteme für Hörer anderer Fachrichtungen WS 2016/2017
08.11.2016
Verfeinerte Abbildungsregeln
Relationships auf Relationen (cont‘d):
(cont d):
1:1-Beziehung:
Relationship R zwischen 2 Entities E und F
F.
 keine Relation aus R, stattdessen Primärschlüssel von
E in Relation in F oder umgekehrt.
1:n-Beziehung:
Relationship R zwischen 2 Entities E und F.
 Keine Relation R, statt dessen Primärschlüssel von E
in Relation F als Fremdschlüssel aufnehmen. Fall R
eigene Attribute hat, müssen diese auch in F
aufgenommen werden.
Datenbanksysteme für Hörer anderer Fachrichtungen WS 2016/2017
08.11.2016
Verfeinerung des relationalen
S h
Schemas
Professoren
1
l
lesen
N
Vorlesungen
1:N-Beziehung
1
NB i h
Initial-Entwurf
Professoren : {[PersNr, Name, Rang, Raum]}
Vorlesungen : {[VorlNr, Titel, SWS]}
lesen: {[PersNr , VorlNr]}
Datenbanksysteme für Hörer anderer Fachrichtungen WS 2016/2017
08.11.2016
Verfeinerung des relationalen
Schemas
1:N-Beziehung
Initial Entwurf
Initial-Entwurf
Professoren : {[PersNr, Name, Rang, Raum]}
Vorlesungen : {[VorlNr,
{[VorlNr Titel,
Titel SWS]}
lesen: {[PersNr , VorlNr]}
Verfeinerung
V
f i
durch
d hZ
Zusammenfassung
f
Professoren : {[PersNr, Name, Rang, Raum]}
Vorlesungen : {[VorlNr, Titel, SWS,
g
gelesenVon]}
}
Regel: Relationen mit gleichem Schlüssel kann man
zusammenfassen
... aber nur diese und keine anderen!
Datenbanksysteme für Hörer anderer Fachrichtungen WS 2016/2017
08.11.2016
Ausprägung von Professoren
und Vorlesung
PersNr
2125
2126
2127
2133
2134
2136
2137
Professoren
Name
Rang Raum
Sokrates
C4 226
Russel
C4 232
Kopernikus C3 310
P
Popper
C3
52
Augustinus C3 309
Curie
C4
36
Kant
C4
7
Professoren
1
Vorlesungen
V lN
VorlNr
Tit l
Titel
SWS G
Gelesen
l
Von
5001
Grundzüge
4
2137
5041
Ethik
4
2125
5043 Erkenntnistheorie
3
2126
5049
Mä tik
Mäeutik
2
2125
4052
Logik
4
2125
5052 Wissenschaftstheorie 3
2126
5216
Bioethik
5259 Der Wiener Kreis
5022 Glaube und Wissen
4630
Die 3 Kritiken
lesen
Datenbanksysteme für Hörer anderer Fachrichtungen WS 2016/2017
N
2
2
2
4
2126
2133
2134
2137
Vorlesungen
l
08.11.2016
Warum nicht andersherum?
PersNr
2125
2125
2125
...
2134
2136
Professoren
Name
Rang Raum
Sokrates
C4 226
Sokrates
C4 226
Sokrates
C4 226
...
...
...
Augustinus C3 309
Curie
C4
36
Professoren
1
liest
5041
5049
4052
...
5022
??
lesen
VorlNr
V
lN
5001
5041
5043
5049
4052
5052
5216
5259
5022
4630
Vorlesungen
Tit l
Titel
SWS
Grundzüge
4
Ethik
4
Erkenntnistheorie
3
Mäeutik
2
Logik
4
Wissenschaftstheorie 3
Bi thik
Bioethik
2
Der Wiener Kreis
2
Glaube und Wissen
2
Die 3 Kritiken
4
N
Datenbanksysteme für Hörer anderer Fachrichtungen WS 2016/2017
Vorlesungen
l
08.11.2016
FolgenAnomalien
PersNr
2125
2125
2125
...
2134
2136
Professoren
Name
Rang Raum
Sokrates
C4 226
Sokrates
C4 226
Sokrates
C4 226
...
...
...
Augustinus C3 309
Curie
C4
36
liest
5041
5049
4052
...
5022
??
VorlNr
5001
5041
5043
5049
4052
5052
5216
5259
5022
4630
Vorlesungen
Titel
SWS
Grundzüge
4
Ethik
4
Erkenntnistheorie
3
Mäeutik
2
Logik
4
Wissenschaftstheorie 3
Bioethik
2
Der Wiener Kreis
2
Glaube und Wissen
2
Di 3 Kritiken
Die
K itik
4
Update-Anomalie: Was passiert wenn Sokrates umzieht
Lösch-Anomalie:
Lösch
Anomalie: Was passiert wenn „Glaube
Glaube und Wissen“
Wissen wegfällt
Einfügeanomalie: Curie ist neu und liest noch keine Vorlesungen
Datenbanksysteme für Hörer anderer Fachrichtungen WS 2016/2017
08.11.2016
Umsetzung Generalisierung
Geb-Tag
Person
Name
is_a
Patient
Kassen-Nr
Arzt
Urlaubstage
Di k
Diskussion
i
Datenbanksysteme für Hörer anderer Fachrichtungen WS 2016/2017
08.11.2016
Relationale Modellierung der
Generalisierung
Fachgebiet
c geb e
Assistenten
i
iss_a
Professoren
Raum
Rang
Angestellte
g
PersNr
Name
Angestellte: {[PersNr, Name]}
Professoren: {[PersNr, Rang, Raum]}
Assistenten {[PersNr,
Assistenten:
Pe sN Fachgebiet]}
Datenbanksysteme für Hörer anderer Fachrichtungen WS 2016/2017
08.11.2016
Relationale Modellierung
schwacher Entitytypen
St denten 1
Studenten
Note
N Prüfungen
Prüf ngen
ablegen
bl
PrüfTeil
MatrNr
V lN
VorlNr
N
umfassen
M
Vorlesungen
N
abhalten
M
PersNr
Professoren
Entity-Mengen Studenten, Prüfungen:
Studenten: {[MatrNr: integer, … ]}
Prüfungen: {[MatrNr: integer, PrüfTeil: string, Note: integer]}
Datenbanksysteme für Hörer anderer Fachrichtungen WS 2016/2017
08.11.2016
Relationale Modellierung
schwacher Entitytypen
St denten 1
Studenten
Note
N Prüfungen
Prüf ngen
ablegen
bl
PrüfTeil
MatrNr
V lN
VorlNr
N
umfassen
M
Vorlesungen
N
abhalten
M
PersNr
Professoren
RelShips umfassen und abhalten:
Global eindeutiger Schlüssel der Relation Prüfung =
MatrNr und PrüfTeil
muss als Fremdschlüssel in die Relationen
umfassen und abhalten übernommen werden
Datenbanksysteme für Hörer anderer Fachrichtungen WS 2016/2017
08.11.2016
Relationale Modellierung
schwacher Entitytypen
Studenten
1
ablegen
N
Note
Prüfungen
PrüfTeil
N
MatrNr
umfassen
VorlNr
M
Vorlesungen
N
abhalten
M
PersNr
Professoren
umfassen: {[MatrNr: integer, PrüfTeil: string, VorlNr: integer]}
abhalten:
bh lt {[MatrNr:
{[M t N integer,
i t
P üfT il string,
PrüfTeil:
t i PersNr:
P N integer]}
i t
]}
Datenbanksysteme für Hörer anderer Fachrichtungen WS 2016/2017
08.11.2016
Relationale Modellierung
schwacher Entitytypen
Studenten
1
ablegen
N
Note
Prüfungen
PrüfTeil
N
MatrNr
umfassen
VorlNr
M
Vorlesungen
N
abhalten
M
PersNr
Professoren
R lShi ablegen
RelShip
bl
?
Datenbanksysteme für Hörer anderer Fachrichtungen WS 2016/2017
08.11.2016
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
C3
52
26830
Aristoxenos
8
2134 Augustinus
C3
309
27550 Schopenhauer
6
2136
Curie
C4
36
28106
3
2137
Kant
C4
7
29120 Theophrastos
2
29555
2
Popper
hören
Carnap
Feuerbach
Titel
SWS gelesen
Von
5001
00
G d
Grundzüge
4
2 3
2137
5041
Ethik
4
2125
5043
Erkenntnistheorie
3
2126
5049
Mä tik
Mäeutik
2
2125
4052
Logik
4
2125
5052 Wissenschaftstheorie
3
2126
5216
Bi thik
Bioethik
2
2126
MatrNr
VorlNr
voraussetzen
5259
Der Wiener Kreis
2
2133
26120
5001
Vorgänger Nachfolger
5022
Glaube und Wissen
2
2134
27550
5001
5001
5041
4630
Di 3 Kritiken
Die
K itik
4
2137
27550
4052
5001
5043
28106
5041
5001
5049
PersNr
Name
Fachgebiet
Boss
28106
5052
5041
5216
3002
Platon
Ideenlehre
2125
28106
5216
5043
5052
3003
Aristoteles
Syllogistik
2125
28106
5259
5041
5052
3004
Wittgenstein
Sprachtheorie
2126
29120
5001
5052
5259
3005
Rhetikus
Planetenbewegung
2127
29120
5041
prüfen
3006
Newton
Keplersche Gesetze
2127
29120
5049
MatrNr VorlNr PersNr Note
3007
Spinoza
Gott und Natur
2126
25403
5022
28106
5001
2126
1
29555
5022
25403
5041
2125
2
29555
5001
27550
4630
2137
2
Assistenten
Herunterladen