Relationale Datenbanken I Datenbankdesign mit dem Entity-Relashionship-Modell.

34
Relationale Datenbanken I Datenbankdesign mit dem Entity-Relashionship-Modell

Transcript of Relationale Datenbanken I Datenbankdesign mit dem Entity-Relashionship-Modell.

Page 1: Relationale Datenbanken I Datenbankdesign mit dem Entity-Relashionship-Modell.

Relationale Datenbanken I

Datenbankdesign mit demEntity-Relashionship-Modell

Page 2: Relationale Datenbanken I Datenbankdesign mit dem Entity-Relashionship-Modell.
Page 3: Relationale Datenbanken I Datenbankdesign mit dem Entity-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

Page 4: Relationale Datenbanken I Datenbankdesign mit dem Entity-Relashionship-Modell.

BeispielWelche Fächer besucht eine bestimmte Schülerin?

Mit unverknüpfbaren Tabellen (z.B. Excel) liesse sich das nicht (oder nur von Hand) herausfinden.

Page 5: Relationale Datenbanken I Datenbankdesign mit dem Entity-Relashionship-Modell.

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

Page 6: Relationale Datenbanken I Datenbankdesign mit dem Entity-Relashionship-Modell.

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... ... ...

Page 7: Relationale Datenbanken I Datenbankdesign mit dem Entity-Relashionship-Modell.

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

Page 8: Relationale Datenbanken I Datenbankdesign mit dem Entity-Relashionship-Modell.

Entity-Relationship-Modell:Beispiel Universität

«Objekte»: Studenten, Assistenten, Professoren, Vorlesungen, ...

«Beziehungen»: lesen, hören, arbeiten für, prüfen, ...

Page 9: Relationale Datenbanken I Datenbankdesign mit dem Entity-Relashionship-Modell.

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

Page 10: Relationale Datenbanken I Datenbankdesign mit dem Entity-Relashionship-Modell.

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

Page 11: Relationale Datenbanken I Datenbankdesign mit dem Entity-Relashionship-Modell.

Entity/Relationship-Modellierung

Entity (Gegenstandstyp)

Relationship

(Beziehungstyp)

Attribut (Eigenschaft)

Schlüssel (Identifikation)

Rolle

Page 12: Relationale Datenbanken I Datenbankdesign mit dem Entity-Relashionship-Modell.

Entity/Relationship-Modellierung

Entity (Gegenstandstyp)

Relationship

(Beziehungstyp)

Attribut (Eigenschaft)

Schlüssel (Identifikation)

Rolle

Studenten

hören

MatrNr

Name

Hörer

Page 13: Relationale Datenbanken I Datenbankdesign mit dem Entity-Relashionship-Modell.

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

Page 14: Relationale Datenbanken I Datenbankdesign mit dem Entity-Relashionship-Modell.

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

Page 15: Relationale Datenbanken I Datenbankdesign mit dem Entity-Relashionship-Modell.

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.

Page 16: Relationale Datenbanken I Datenbankdesign mit dem Entity-Relashionship-Modell.

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

Page 17: Relationale Datenbanken I Datenbankdesign mit dem Entity-Relashionship-Modell.

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]}

Page 18: Relationale Datenbanken I Datenbankdesign mit dem Entity-Relashionship-Modell.

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:{[ ]}

Page 19: Relationale Datenbanken I Datenbankdesign mit dem Entity-Relashionship-Modell.

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]}

Page 20: Relationale Datenbanken I Datenbankdesign mit dem Entity-Relashionship-Modell.

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]}

Page 21: Relationale Datenbanken I Datenbankdesign mit dem Entity-Relashionship-Modell.

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

Page 22: Relationale Datenbanken I Datenbankdesign mit dem Entity-Relashionship-Modell.

Verfeinerung des relationalen Schemas

1:N-Beziehung Initial-Entwurf

Vorlesungen : {[VorlNr, Titel, SWS]}Professoren : {[PersNr, Name, Rang, Raum]}lesen: {[VorlNr, PersNr]}

Professoren Vorlesungenlesen1 N

Page 23: Relationale Datenbanken I Datenbankdesign mit dem Entity-Relashionship-Modell.

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!

Page 24: Relationale Datenbanken I Datenbankdesign mit dem Entity-Relashionship-Modell.

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

Page 25: Relationale Datenbanken I Datenbankdesign mit dem Entity-Relashionship-Modell.

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

Page 26: Relationale Datenbanken I Datenbankdesign mit dem Entity-Relashionship-Modell.

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

Page 27: Relationale Datenbanken I Datenbankdesign mit dem Entity-Relashionship-Modell.

Relationstypen

E1E2R

... ...

R E1 x E2

1:N

N:M

E1 E21:1

N:1

Page 28: Relationale Datenbanken I Datenbankdesign mit dem Entity-Relashionship-Modell.

Mehrfach-Relationen:Beispiel: betreuen

Studenten betreuen

Note

Seminarthemen

Professoren

1

1N

Page 29: Relationale Datenbanken I Datenbankdesign mit dem Entity-Relashionship-Modell.

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

Page 30: Relationale Datenbanken I Datenbankdesign mit dem Entity-Relashionship-Modell.

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.

Page 31: Relationale Datenbanken I Datenbankdesign mit dem Entity-Relashionship-Modell.

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

Page 32: Relationale Datenbanken I Datenbankdesign mit dem Entity-Relashionship-Modell.

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

Page 33: Relationale Datenbanken I Datenbankdesign mit dem Entity-Relashionship-Modell.

Relationale Modellierung der Generalisierung

Fachgebiet

Assistenten

Professoren

Raum Rang

is_a Angestellte

PersNr Name

Angestellte: {[PersNr, Name]}

Professoren: {[PersNr, Rang, Raum]}

Assistenten: {[PersNr, Fachgebiet]}

Page 34: Relationale Datenbanken I Datenbankdesign mit dem Entity-Relashionship-Modell.

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