Upload
klaus-schneider
View
107
Download
1
Embed Size (px)
Citation preview
Relationale Datenbanken I
Datenbankdesign mit demEntity-Relashionship-Modell
Was sind relationale Datenbanken?
Relationale Datenbanken sind der am weitesten verbreitete Typ von Datenbanken.
Relationale Datenbanken speichern Daten in Tabellen.
Bei der Suche nach bestimmten Informationen können die Inhalte verschiedener Tabellen miteinander verknüpft werden.
Tabellen, die nicht verknüpft werden können, bilden keine Datenbank
BeispielWelche Fächer besucht eine bestimmte Schülerin?
Mit unverknüpfbaren Tabellen (z.B. Excel) liesse sich das nicht (oder nur von Hand) herausfinden.
Wo benutzt man Datenbanken? Behörden (Steuer, Einwohner, Verkehr, Polizei, Schulen,
Sozialämter, Spitäler, Justiz usw.) Unternehmen (Kundenverwaltung, Lagerverwaltung,
Rechnungswesen, Lieferantenverwaltung, Angestelltenverwaltung usw.)
Detailhandel (Kaufverhalten) Vereine (Mitglieder, Anlässe, Rechnungen) Archive, Bibliotheken, Museen Wissenschaft (Geographie, Biologie (insb. Genetik),
Medizin, Geschichte, Literatur usw.) Internet (Suchmaschinen, soziale Netzwerke usw.) an vielen weiteren Orten
Aufbau einer Tabelle
Einzelne Einträge werden Tupel genannt
Bsp.: („Mickey Mouse“, „Main Street“, 4711)
Schema: legt die Struktur der gespeicherten Daten fest
Bsp.: Telefonbuch: {[Name:String, Adresse:String, Telefonnummer:Integer]}
(String = Zeichenkette, Integer = Ganzzahl)
TelefonbuchName Straße Telefon#
Mickey Mouse Main Street 4711Mini Mouse Broadway 94725
Donald Duck Broadway 95672... ... ...
TelefonbuchName Straße Telefon#
Mickey Mouse Main Street 4711Mini Mouse Broadway 94725
Donald Duck Broadway 95672... ... ...
• Schlüssel: minimale Menge von Attributen, deren Werte ein Tupel eindeutig identifizieren
• Primärschlüssel: wird unterstrichen
•Einer der Schlüsselkandidaten wird als Primärschlüssel ausgewählt
•Wird für die Referenzierung von Tupeln (also Verweise auf Tabellenzeilen) verwendet
Ausprägung: der aktuelle Inhalt einer Tabelle
Entity-Relationship-Modell:Beispiel Universität
«Objekte»: Studenten, Assistenten, Professoren, Vorlesungen, ...
«Beziehungen»: lesen, hören, arbeiten für, prüfen, ...
a) Objekte: z.B. Professoren
Attribute (Eigenschaften):
PersonalNummer
• Typ: Integer
• Länge: 8
• Wertebereich: 0...99'999'999
• Identifizierend: ja
Name
Typ: String
Länge: 50
Identifizierend: nein
Professoren teilen sich einige Attribute mit anderen Angestellten, z.B. Assistenten
Gehalt
• Typ: Dezimalzahl
• Länge: (8,2)
• Identifizierend: nein
Rang
• Typ: String
• Länge: 4
• Identifizierend: nein
b) Beziehungen: z.B. „prüfen“
Beteiligte Objekte:
- Professor als Prüfer
- Student als Prüfling
- Vorlesung als Prüfungsstoff
Attribute (Eigenschaften) der Beziehung:
- Datum
- Uhrzeit
- Note
Entity/Relationship-Modellierung
Entity (Gegenstandstyp)
Relationship
(Beziehungstyp)
Attribut (Eigenschaft)
Schlüssel (Identifikation)
Rolle
Entity/Relationship-Modellierung
Entity (Gegenstandstyp)
Relationship
(Beziehungstyp)
Attribut (Eigenschaft)
Schlüssel (Identifikation)
Rolle
Studenten
hören
MatrNr
Name
Hörer
Entity/Relationship-Modellierung
Entity (Gegenstandstyp)
Relationship
(Beziehungstyp)
Attribut (Eigenschaft)
Schlüssel (Identifikation)
(Rolle)
Studenten
Vorlesungen
hören
VorlNr Titel SWS
MatrNr Name Semester
Hörer
Lehrveranstaltung
Studenten
Assistenten
MatrNr
PersNr
Semester
Name
Name
Fachgebiet
Note
hören
prüfen
arbeitenFür Professoren
Vorlesungen
lesen
voraussetzen
ECTS
VorlNr
Titel
Raum
Rang
PersNr
Nach-folgerVorgänger
Name
Uni-Schema
Universitätsschema in „deutsch“ Studenten haben eine MatrNr, Name und Semester.
Die MatrNr identifiziert einen Studenten eindeutig. Vorlesungen haben eine VorlNr und einen Titel sowie
einen Wert (ECTS). Die VorlNr identifiziert eine Vorlesung eindeutig.
Professoren haben eine PersNr, Name, Rang und Raum. Die PersNr identifiziert einen Professor eindeutig.
Assistenten haben eine PersNr, Name und Fachgebiet. Die PersNr identifizier einen Assistenten eindeutig.
Studenten hören Vorlesungen. Vorlesungen setzen andere Vorlesungen voraus. Professoren lesen Vorlesungen. Assistenten arbeiten für Professoren. Studenten werden von Professoren über Vorlesungen
geprüft. Sie erhalten hierbei eine Note.
Eigenschaften von ER Anforderungen
ER Diagramme sind einfach zu erstellenER Diagramme sind einfach zu ändernER Diagramme sind intuitiv verständlich (auch vom
Laien!)ER Diagramme drücken das Wesentliche aus
Technische AnforderungEinfachheitUnterstützung durch Tools (z.B. Visio)Graphisch Informationstheoretische Mächtigkeit
Relationale Darstellung von Entitytypen
Studenten: {[MatrNr:integer, Name: string, Semester: integer]}
Vorlesungen: {[VorlNr:integer, Titel: string, ECTS: integer]}
Professoren: {[PersNr:integer, Name: string, Rang: string, Raum: integer]}
Assistenten: {[PersNr:integer, Name: string, Fachgebiet: string]}
Relationale Darstellung von Beziehungen
A11 E1
R
... AR1
EnE2 An1
A21
... ...
...
...
11kA
R
RkA
nnkA22kA
R von Attribute
1
E von Schlüssel
1
E von Schlüssel
221
E von Schlüssel
111 ,...,,,...,,...,,...,,,....,
n2
2
1
1
Rk
Rnknkk Rn
AAAAAAAAR:{[ ]}
Beziehungen unseres Beispiel-Schemas
hören : {[MatrNr: integer, VorlNr: integer]}
lesen : {[PersNr: integer, VorlNr: integer]}
arbeitenFür : {[AssistentenPersNr: integer, ProfPersNr:
integer]}
voraussetzen : {[Vorgänger: integer, Nachfolger: integer]}
prüfen : {[MatrNr: integer, VorlNr: integer, PersNr: integer, Note: decimal]}
Schlüssel der Relationen
hören : {[MatrNr: integer, VorlNr: integer]}
lesen : {[PersNr: integer, VorlNr: integer]}
arbeitenFür : {[AssistentenPersNr: integer, ProfPersNr:
integer]}
voraussetzen : {[Vorgänger: integer, Nachfolger: integer]}
prüfen : {[MatrNr: integer, VorlNr: integer, PersNr: integer, Note: decimal]}
Ausprägung der Beziehung hörenStudenten
MatrNr ...26120 ...27550 ...
... ...
hörenMatrNr VorlNr26120 500127550 500127550 405228106 504128106 505228106 521628106 525929120 500129120 504129120 504929555 502225403 502229555 5001
VorlesungenVorlNr ...5001 ...4052 ...
... ...
Studentenhören
VorlesungenMN
MatrNr VorlNr
Verfeinerung des relationalen Schemas
1:N-Beziehung Initial-Entwurf
Vorlesungen : {[VorlNr, Titel, SWS]}Professoren : {[PersNr, Name, Rang, Raum]}lesen: {[VorlNr, PersNr]}
Professoren Vorlesungenlesen1 N
Verfeinerung des relationalen Schemas
1:N-Beziehung Initial-Entwurf
Vorlesungen : {[VorlNr, Titel, SWS]}Professoren : {[PersNr, Name, Rang, Raum]}lesen: {[VorlNr, PersNr]}
Verfeinerung durch ZusammenfassungVorlesungen : {[VorlNr, Titel, SWS,
gelesenVon]}Professoren : {[PersNr, Name, Rang, Raum]}
RegelRelationen mit gleichem Schlüssel kann man
zusammenfassenaber nur diese und keine anderen!
Ausprägung von Professoren und Vorlesung
ProfessorenPersN
rName Ran
gRaum
2125 Sokrates C4 2262126 Russel C4 2322127 Kopernikus C3 3102133 Popper C3 522134 Augustinus C3 3092136 Curie C4 362137 Kant C4 7
VorlesungenVorlN
rTitel SWS Gelesen
Von5001 Grundzüge 4 21375041 Ethik 4 21255043 Erkenntnistheorie 3 21265049 Mäeutik 2 21254052 Logik 4 21255052 Wissenschaftstheo
rie3 2126
5216 Bioethik 2 21265259 Der Wiener Kreis 2 21335022 Glaube und
Wissen2 2134
4630 Die 3 Kritiken 4 2137
Professoren Vorlesungenlesen1 N
Vorsicht: So geht es NICHT
ProfessorenPersN
rName Ran
gRaum liest
2125 Sokrates C4 226 50412125 Sokrates C4 226 50492125 Sokrates C4 226 4052
... ... ... ... ...2134 Augustinus C3 309 50222136 Curie C4 36 ??
VorlesungenVorlN
rTitel SWS
5001 Grundzüge 45041 Ethik 45043 Erkenntnistheorie 35049 Mäeutik 24052 Logik 45052 Wissenschaftstheo
rie3
5216 Bioethik 25259 Der Wiener Kreis 25022 Glaube und
Wissen2
4630 Die 3 Kritiken 4
Professoren Vorlesungenlesen1 N
Vorsicht: So geht es NICHT:FolgenAnomalien
Update-Anomalie: Was passiert wenn Sokrates umzieht Lösch-Anomalie: Was passiert wenn „Glaube und
Wissen“ wegfällt Einfügeanomalie: Curie ist neu und liest noch keine
Vorlesungen
ProfessorenPersN
rName Ran
gRaum liest
2125 Sokrates C4 226 50412125 Sokrates C4 226 50492125 Sokrates C4 226 4052
... ... ... ... ...2134 Augustinus C3 309 50222136 Curie C4 36 ??
VorlesungenVorlN
rTitel SWS
5001 Grundzüge 45041 Ethik 45043 Erkenntnistheorie 35049 Mäeutik 24052 Logik 45052 Wissenschaftstheo
rie3
5216 Bioethik 25259 Der Wiener Kreis 25022 Glaube und
Wissen2
4630 Die 3 Kritiken 4
Relationstypen
E1E2R
... ...
R E1 x E2
1:N
N:M
E1 E21:1
N:1
Mehrfach-Relationen:Beispiel: betreuen
Studenten betreuen
Note
Seminarthemen
Professoren
1
1N
Ausprägung der Beziehung betreuenProfessoren
Seminarthemen
p1
p2
p3
p4
t1
t2
t3
t4
s1
s2
s3
s4
b1
b2
b3
b4
b5
b6
Studenten
Gestrichelte Linienmarkieren illegale Ausprägungen
Dadurch erzwungene Konsistenzbedingungen
1. Studenten dürfen bei demselben Professor bzw. derselben Professorin nur ein Seminarthema "ableisten" (damit ein breites Spektrum abgedeckt wird).
2. Studenten dürfen dasselbe Seminarthema nur einmal bearbeiten – sie dürfen also nicht bei anderen Professoren ein schon einmal erteiltes Seminarthema nochmals bearbeiten.
Es sind aber folgende Datenbankzustände nach wie vor möglich:
Professoren können dasselbe Seminarthema „wiederverwenden“ – also dasselbe Thema auch mehreren Studenten erteilen.
Dasselbe Thema kann von mehreren Professoren vergeben werden – aber an unterschiedliche Studenten.
Studenten
Assistenten
MatrNr
PersNr
Semester
Name
Name
Fachgebiet
Note
hören
prüfen
arbeitenFür Professoren
Vorlesungen
lesen
voraussetzen
SWS
VorlNr
Titel
Raum
Rang
PersNr
Nach-folger
Vor-gänger
Name
1
N
1
1
N N
N
M
M
MN
Uni-Schema mit Kardinalitäten
Die relationale Uni-DBProfessoren
PersNr Name Rang Raum
2125 Sokrates C4 226
2126 Russel C4 232
2127 Kopernikus C3 310
2133 Popper C3 52
2134 Augustinus C3 309
2136 Curie C4 36
2137 Kant C4 7
Studenten
MatrNr Name Semester
24002 Xenokrates 18
25403 Jonas 12
26120 Fichte 10
26830 Aristoxenos 8
27550 Schopenhauer
6
28106 Carnap 3
29120 Theophrastos
2
29555 Feuerbach 2
Vorlesungen
VorlNr Titel SWS gelesenvon
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
voraussetzen
Vorgänger Nachfolger
5001 5041
5001 5043
5001 5049
5041 5216
5043 5052
5041 5052
5052 5259
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
Assistenten
PerslNr
Name Fachgebiet Boss
3002 Platon Ideenlehre 2125
3003 Aristoteles Syllogistik 2125
3004 Wittgenstein Sprachtheorie 2126
3005 Rhetikus Planetenbewegung
2127
3006 Newton Keplersche Gesetze
2127
3007 Spinoza Gott und Natur 2126
prüfen
MatrNr VorlNr PersNr Note
28106 5001 2126 1
25403 5041 2125 2
27550 4630 2137 2
Relationale Modellierung der Generalisierung
Fachgebiet
Assistenten
Professoren
Raum Rang
is_a Angestellte
PersNr Name
Angestellte: {[PersNr, Name]}
Professoren: {[PersNr, Rang, Raum]}
Assistenten: {[PersNr, Fachgebiet]}
Studenten
MatrNr
Semester
Name hören Vorlesungen
voraussetzen
SWS
VorlNr
Titel
Nach-folgerVorgänger
Note prüfen lesen
Name
Fachgebiet
Assistenten arbeitenFür ProfessorenRaum
Rang
is-a
Angestellte
PersNr
N M
N M
N M N
N
11
1