49
Daten – Bank 3. Vorlesung

Daten – Bankprg2/SS2016/folien/...Dr. Karsten Tolle – PRG2 – SS 2016 3 Bisher … (0,n) (0,n) AusweisNr. Name Vorname Person lebt_in von bis Ort PLZ OrtsnameDr. Karsten Tolle

  • Upload
    others

  • View
    1

  • Download
    1

Embed Size (px)

Citation preview

Page 1: Daten – Bankprg2/SS2016/folien/...Dr. Karsten Tolle – PRG2 – SS 2016 3 Bisher … (0,n) (0,n) AusweisNr. Name Vorname Person lebt_in von bis Ort PLZ OrtsnameDr. Karsten Tolle

Daten – Bank

3. Vorlesung

Page 2: Daten – Bankprg2/SS2016/folien/...Dr. Karsten Tolle – PRG2 – SS 2016 3 Bisher … (0,n) (0,n) AusweisNr. Name Vorname Person lebt_in von bis Ort PLZ OrtsnameDr. Karsten Tolle

Dr. Karsten Tolle – PRG2 – SS 2016 2

Klausuranmeldung bis 10. Juli

• Anmeldung online über QIS/LFS (Details unter: http://go.uni-frankfurt.de) für Studierende der:– Informatik, Bioinformatik, Physik

– Mathematik, Geographie

• Anmeldung per Zettel (PDF auf PRG2-Seite):– Alle anderen (Linguistik, Lehramt, …)!

… im Briefkasten des Prüfungsamtes Informatik einwerfen (Robert-Mayer-Str. 11-15 –Erdgeschoss)

Page 3: Daten – Bankprg2/SS2016/folien/...Dr. Karsten Tolle – PRG2 – SS 2016 3 Bisher … (0,n) (0,n) AusweisNr. Name Vorname Person lebt_in von bis Ort PLZ OrtsnameDr. Karsten Tolle

Dr. Karsten Tolle – PRG2 – SS 2016 3

Bisher …

(0,n) (0,n)

AusweisNr. Name Vorname

Person lebt_in

von bis

Ort

PLZ Ortsname

GeoPosition

SQL:• create• insert• select

Page 4: Daten – Bankprg2/SS2016/folien/...Dr. Karsten Tolle – PRG2 – SS 2016 3 Bisher … (0,n) (0,n) AusweisNr. Name Vorname Person lebt_in von bis Ort PLZ OrtsnameDr. Karsten Tolle

Dr. Karsten Tolle – PRG2 – SS 2016 4

ER-Modell gegeben

Frage 1: Wie daraus Tabellen (Relationen) bauen?

Frage 2: Welche Alternativen habe ich?

(0,n) (0,n) Person

AusweisNr. Name Vorname

lebt_in

von bis

Ort

PLZ Ortsname

Page 5: Daten – Bankprg2/SS2016/folien/...Dr. Karsten Tolle – PRG2 – SS 2016 3 Bisher … (0,n) (0,n) AusweisNr. Name Vorname Person lebt_in von bis Ort PLZ OrtsnameDr. Karsten Tolle

Dr. Karsten Tolle – PRG2 – SS 2016 5

E (Schlüssel, Attribut_A, Attribut_B)

ER-Abbildung zu Relationen

Entitätstypen

• Ein Entitätstyp wird zu einer Relation (Tabelle), dessen Relationenschemaaus allen Attributen des Entitätstyps besteht.

• Jedes Tupel der Tabelle entspricht dann genau einer Entität des Entitätstyps.

• Etwaige Schlüssel werden übernommen und üblicherweise an den Anfang des Relationenschemas gestellt und unterstrichen.

„Regel“:

Entitätstyp E

Schlüssel Attribut_A Attribut_B

Page 6: Daten – Bankprg2/SS2016/folien/...Dr. Karsten Tolle – PRG2 – SS 2016 3 Bisher … (0,n) (0,n) AusweisNr. Name Vorname Person lebt_in von bis Ort PLZ OrtsnameDr. Karsten Tolle

Dr. Karsten Tolle – PRG2 – SS 2016 6

Beispiel

Angestellter

PersNr Name Vorname

ANGESTELLTER (PersNr, Name, Vorname)

PersNr Name Vorname

001 Jon Lucas

003 Jon Smith

103 Lucas Jon

ANGESTELLTER

Page 7: Daten – Bankprg2/SS2016/folien/...Dr. Karsten Tolle – PRG2 – SS 2016 3 Bisher … (0,n) (0,n) AusweisNr. Name Vorname Person lebt_in von bis Ort PLZ OrtsnameDr. Karsten Tolle

Dr. Karsten Tolle – PRG2 – SS 2016 7

BEZIEHUNG (Schlüssel1, Schlüssel2, B1, B2)

Entität_1 Entität_2 Beziehung

Schlüssel1 A_1

Schlüssel2 A_2

(0,n) (0,n)

B1 B2

ENTITÄT_1 (Schlüssel1, A_1)�

ENTITÄT_2 (Schlüssel2, A_2)

Schlüssel für die Tabelle/Relation Beziehung?

Beziehungstyp

Page 8: Daten – Bankprg2/SS2016/folien/...Dr. Karsten Tolle – PRG2 – SS 2016 3 Bisher … (0,n) (0,n) AusweisNr. Name Vorname Person lebt_in von bis Ort PLZ OrtsnameDr. Karsten Tolle

Dr. Karsten Tolle – PRG2 – SS 2016 8

Schlüssel• Ein Schlüssel identifiziert eine Entität. Er besteht aus einer

Menge von Attributen, deren Werte alle Instanzen einer Entität eindeutig bestimmen. (aus ER!)

• Ein Schlüssel (key) einer Relation r(R) ist eine minimale Teilmenge K von R, so dass für je zwei verschiedene Tupel t1,

t2 ∈ r gilt:• t1(K) ≠ t2(K) und

• keine echte Teilmenge K' von K hat diese Eigenschaft.

• Ein Schlüssel kann als Integritätsbedingung angesehen werden. Falls K Schlüssel von r(R), t1 ∈ r, t1(K) = t2(K), t1 ≠ t2

dann darf t2 nicht in r(R) eingefügt werden.

Page 9: Daten – Bankprg2/SS2016/folien/...Dr. Karsten Tolle – PRG2 – SS 2016 3 Bisher … (0,n) (0,n) AusweisNr. Name Vorname Person lebt_in von bis Ort PLZ OrtsnameDr. Karsten Tolle

Dr. Karsten Tolle – PRG2 – SS 2016 9

Schlüssel?

Name

NM103

NM117

NM123

SR9

Raum

TutorName Raum Wochentag Startzeit

Sadik NM117 Montag 08:15

Alina NM117 Montag 12:15

Max NM117 Donnerstag 14:15

Max SR9 Donnerstag 12:15

Tutorium

Ein Schlüssel kann als Integritätsbedingung angesehen werden. Falls K Schlüssel von r(R), t1 ∈ r, t1(K) = t2(K), t1 ≠ t2 dann dürfte t2 nicht in r(R) eingefügt werden.

Page 10: Daten – Bankprg2/SS2016/folien/...Dr. Karsten Tolle – PRG2 – SS 2016 3 Bisher … (0,n) (0,n) AusweisNr. Name Vorname Person lebt_in von bis Ort PLZ OrtsnameDr. Karsten Tolle

Dr. Karsten Tolle – PRG2 – SS 2016 10

• K ist ein Oberschlüssel (super key) der Relation, falls K einen Schlüssel enthält.

• … also aus Schlüssel � Oberschlüssel (aber nicht umgekehrt)

Oberschlüssel

Oberschlüssel

Schlüssel

Page 11: Daten – Bankprg2/SS2016/folien/...Dr. Karsten Tolle – PRG2 – SS 2016 3 Bisher … (0,n) (0,n) AusweisNr. Name Vorname Person lebt_in von bis Ort PLZ OrtsnameDr. Karsten Tolle

Dr. Karsten Tolle – PRG2 – SS 2016 11

Wichtig für Normalformen (später)!

• Eine Relation kann mehrere Schlüssel besitzen. Man spricht dann auch von Schlüsselkandidaten.

• Im Allgemeinen wird ein Schlüssel als Primärschlüssel

ausgezeichnet. Dieser wird im Relationenschema durch Unterstreichen gekennzeichnet.

Page 12: Daten – Bankprg2/SS2016/folien/...Dr. Karsten Tolle – PRG2 – SS 2016 3 Bisher … (0,n) (0,n) AusweisNr. Name Vorname Person lebt_in von bis Ort PLZ OrtsnameDr. Karsten Tolle

Dr. Karsten Tolle – PRG2 – SS 2016 12

Beispiel

PERSON (AusweisNr, Name, Vorname)

ORT (PLZ, Ortsname)

LEBT_IN (AusweisNr, PLZ, von, bis)

(0,n) (0,n) Person

AusweisNr Name Vorname

lebt_in

von bis

Ort

PLZ Ortsname

Schlüssel für LEBT_IN?

Page 13: Daten – Bankprg2/SS2016/folien/...Dr. Karsten Tolle – PRG2 – SS 2016 3 Bisher … (0,n) (0,n) AusweisNr. Name Vorname Person lebt_in von bis Ort PLZ OrtsnameDr. Karsten Tolle

Dr. Karsten Tolle – PRG2 – SS 2016 13

Beispiel mit Instanzen

PLZ Ortsname

501 Buli

503 Wali

603 Kali

AusweisNr PLZ von bis

001 501 23.12.2000 25.12.2010

003 501 17.08.2004 Null

001 503 01.01.1999 01.01.2012

AusweisNr Name Vorname

001 Jon Lucas

003 Jon Smith

103 Lucas Jon

Jon Lucas (001) lebt(e)_in Buli (501), vom 23.12.2000 bis zum 25.12.2010!

PERSON ORT

LEBT_IN

Page 14: Daten – Bankprg2/SS2016/folien/...Dr. Karsten Tolle – PRG2 – SS 2016 3 Bisher … (0,n) (0,n) AusweisNr. Name Vorname Person lebt_in von bis Ort PLZ OrtsnameDr. Karsten Tolle

Dr. Karsten Tolle – PRG2 – SS 2016 14

PLZ Ortsname

501 Buli

503 Wali

603 Kali

AusweisNr PLZ von bis

001 501 23.12.2000 25.12.2010

003 501 17.08.2004 Null

001 503 01.01.1999 01.01.2012

001 501 01.01.2012 Null

AusweisNr Name Vorname

001 Jon Lucas

003 Jon Smith

103 Lucas Jon

Jon Lucas (001) lebt(e)_in Buli (501), vom 23.12.2000 bis zum 25.12.2010!

PERSON ORT

LEBT_IN

Jon Lucas (001) lebt(e)_in Buli (501), vom 01.01.2012 bis heute!

Attribut „von“ der Relation

muss auch Teil des Schlüssels

sein!

Page 15: Daten – Bankprg2/SS2016/folien/...Dr. Karsten Tolle – PRG2 – SS 2016 3 Bisher … (0,n) (0,n) AusweisNr. Name Vorname Person lebt_in von bis Ort PLZ OrtsnameDr. Karsten Tolle

Dr. Karsten Tolle – PRG2 – SS 2016 15

BEZIEHUNG (Schlüssel1, Schlüssel2, B1, B2)�

BEZIEHUNG (Schlüssel1, Schlüssel2, B1, B2)

(0,n) und (0,n)

Entität_1 Entität_2 Beziehung

Schlüssel1 A_1

Schlüssel2 A_2

(0,n) (0,n)

B1 B2

ENTITÄT_1 (Schlüssel1, A_1)�

ENTITÄT_2 (Schlüssel2, A_2)

Je nach Situation Teil desSchlüssels oder nicht!

Page 16: Daten – Bankprg2/SS2016/folien/...Dr. Karsten Tolle – PRG2 – SS 2016 3 Bisher … (0,n) (0,n) AusweisNr. Name Vorname Person lebt_in von bis Ort PLZ OrtsnameDr. Karsten Tolle

Dr. Karsten Tolle – PRG2 – SS 2016 16

(0,1) und (0,n)

�ENTITÄT_1 (Schlüssel1, A_1)

ENTITÄT_2 (Schlüssel2, A_2)

BEZIEHUNG (Schlüssel1, Schlüssel2, B)

Entität_1 Entität_2 Beziehung

Schlüssel1 A_1

Schlüssel2 A_2

(0,1) (0,n)

B

Page 17: Daten – Bankprg2/SS2016/folien/...Dr. Karsten Tolle – PRG2 – SS 2016 3 Bisher … (0,n) (0,n) AusweisNr. Name Vorname Person lebt_in von bis Ort PLZ OrtsnameDr. Karsten Tolle

Dr. Karsten Tolle – PRG2 – SS 2016 17

Beispiel

(0,1) (0,n) Buch

BuchNr Titel Autor

verliehen an

Datum

Entleiher

Nummer Name

BUCH (BuchNr, Titel, Autor)ENTLEIHER (Nummer, Name)VERLIEHEN_AN(BuchNr, Nummer, Datum)

Page 18: Daten – Bankprg2/SS2016/folien/...Dr. Karsten Tolle – PRG2 – SS 2016 3 Bisher … (0,n) (0,n) AusweisNr. Name Vorname Person lebt_in von bis Ort PLZ OrtsnameDr. Karsten Tolle

Dr. Karsten Tolle – PRG2 – SS 2016 18

Beispiel mit Instanzen

Nummer Name

501 Bully

503 Wally

603 Kally

BuchNr Nummer Datum

001 501 23.05.2013

103 603 17.08.2013

003 503 01.01.2014

BuchNr Titel Autor

001 Vom Winde Lucas

003 Per Anhalter Smith

103 Vom Winde Lucas

Das Buch (001) wurde verliehen an Bully, Datum 23.05.2013.

BUCH ENTLEIHER

VERLIEHEN_AN

Page 19: Daten – Bankprg2/SS2016/folien/...Dr. Karsten Tolle – PRG2 – SS 2016 3 Bisher … (0,n) (0,n) AusweisNr. Name Vorname Person lebt_in von bis Ort PLZ OrtsnameDr. Karsten Tolle

Dr. Karsten Tolle – PRG2 – SS 2016 19

Einheitliche und ausdrucksstarke Schreibweisen beibehalten …

(0,1) (0,n) Buch

BuchNr Titel Autor

verliehen an

Rückgabe Datum

Entleiher

EntleiherNr Nachname

BUCH (BuchNr, Titel, Autor)ENTLEIHER (EntleiherNr, Name)VERLIEHEN_AN(BuchNr, EntleiherNr, RückgabeDatum)

Page 20: Daten – Bankprg2/SS2016/folien/...Dr. Karsten Tolle – PRG2 – SS 2016 3 Bisher … (0,n) (0,n) AusweisNr. Name Vorname Person lebt_in von bis Ort PLZ OrtsnameDr. Karsten Tolle

Dr. Karsten Tolle – PRG2 – SS 2016 20

… oder auch so …

(0,1) (0,n) Buch

Nr Titel Autor

verliehen an

RückgabeDatum

Entleiher

Nr Nachname

BUCH (Nr, Titel, Autor)ENTLEIHER (Nr, Name)VERLIEHEN_AN(BuchNr, EntleiherNr, RückgabeDatum)

Page 21: Daten – Bankprg2/SS2016/folien/...Dr. Karsten Tolle – PRG2 – SS 2016 3 Bisher … (0,n) (0,n) AusweisNr. Name Vorname Person lebt_in von bis Ort PLZ OrtsnameDr. Karsten Tolle

Dr. Karsten Tolle – PRG2 – SS 2016 21

Hier sind nur noch zwei Relationen notwendig!

(1,1)

�ENTITÄT_1 (Schlüssel1, A_1, Schlüssel2, B)

ENTITÄT_2 (Schlüssel2, A_2)

Entität_1 Entität_2 Beziehung

Schlüssel1 A_1

Schlüssel2 A_2

(1,1) (0,n)

B

Page 22: Daten – Bankprg2/SS2016/folien/...Dr. Karsten Tolle – PRG2 – SS 2016 3 Bisher … (0,n) (0,n) AusweisNr. Name Vorname Person lebt_in von bis Ort PLZ OrtsnameDr. Karsten Tolle

Dr. Karsten Tolle – PRG2 – SS 2016 22

Beispiel

PERSON (AusweisNr., Name, Vorname, PLZ, GebDatum)ORT (PLZ, Ortsname)

(1,1) (0,n)Person

AusweisNr. Name Vorname

geborenin

Datum

Ort

PLZ Ortsname

Page 23: Daten – Bankprg2/SS2016/folien/...Dr. Karsten Tolle – PRG2 – SS 2016 3 Bisher … (0,n) (0,n) AusweisNr. Name Vorname Person lebt_in von bis Ort PLZ OrtsnameDr. Karsten Tolle

Dr. Karsten Tolle – PRG2 – SS 2016 23

… aber auch möglich! (geht immer☺)

Entität_1 Entität_2 Beziehung

Schlüssel1 A_1

Schlüssel2 A_2

(1,1) (0,n)

B

ENTITÄT_1(Schlüssel1, A_1)

ENTITÄT_2 (Schlüssel2, A_2)

BEZIEHUNG (Schlüssel1, Schlüssel2, B)

�PERSON (AusweisNr., Name, Vorname)ORT (PLZ, Ortsname)GEBOREN_IN (AusweisNr., PLZ, Datum)

(1,1) (0,n)Person

AusweisNr. Name Vorname

geborenin

Datum

Ort

PLZ Ortsname

Page 24: Daten – Bankprg2/SS2016/folien/...Dr. Karsten Tolle – PRG2 – SS 2016 3 Bisher … (0,n) (0,n) AusweisNr. Name Vorname Person lebt_in von bis Ort PLZ OrtsnameDr. Karsten Tolle

Dr. Karsten Tolle – PRG2 – SS 2016 24

… Unterschied?

PERSON (AusweisNr., Name, Vorname)ORT (PLZ, Ortsname)GEBOREN_IN (AusweisNr., PLZ, Datum)

PERSON (AusweisNr., Name, Vorname, PLZ, GebDatum)ORT (PLZ, Ortsname)

(1,1) (0,n)Person

AusweisNr. Name Vorname

geborenin

Datum

Ort

PLZ Ortsname

Page 25: Daten – Bankprg2/SS2016/folien/...Dr. Karsten Tolle – PRG2 – SS 2016 3 Bisher … (0,n) (0,n) AusweisNr. Name Vorname Person lebt_in von bis Ort PLZ OrtsnameDr. Karsten Tolle

Dr. Karsten Tolle – PRG2 – SS 2016 25

… und hier?

PERSON (AusweisNr., Name, Vorname)ORT (PLZ, Ortsname)GEBOREN_IN (AusweisNr., PLZ, Datum)

PERSON (AusweisNr., Name, Vorname, PLZ, Datum)ORT (PLZ, Ortsname)

(0,1) (0,n)Person

AusweisNr. Name Vorname

geborenin

Datum

Ort

PLZ Ortsname

Page 26: Daten – Bankprg2/SS2016/folien/...Dr. Karsten Tolle – PRG2 – SS 2016 3 Bisher … (0,n) (0,n) AusweisNr. Name Vorname Person lebt_in von bis Ort PLZ OrtsnameDr. Karsten Tolle

Dr. Karsten Tolle – PRG2 – SS 2016 26

ENTITÄT_1 (Schlüssel1, A_1, Schlüssel2, B)ENTITÄT_2 (Schlüssel2, A_2)

(1,1) und (0,1)

Sind beide min-Kardinalitäten = 0, so muss das allgemeine Verfahren ((0,n) und (0,n)) angewendet werden.

Ist nur eine min-Kardinalität = 1, so wendet man die Abbildung der one-to-many bzw. many-to-one Beziehung an.

Entität_1 Entität_2 Beziehung

Schlüssel1 A_1

Schlüssel2 A_2

(1,1) (0,1)

B

Page 27: Daten – Bankprg2/SS2016/folien/...Dr. Karsten Tolle – PRG2 – SS 2016 3 Bisher … (0,n) (0,n) AusweisNr. Name Vorname Person lebt_in von bis Ort PLZ OrtsnameDr. Karsten Tolle

Dr. Karsten Tolle – PRG2 – SS 2016 27

Beispiel

(1,1) (0,1) Abteilung

AbteilungsNr. Bezeichnung

geleitet von

seit

Mitarbeiter

Pers.Nr. Name

ABTEILUNG (AbteilungsNr., Bezeichnung, Pers.Nr., seit)MITARBEITER (Pers.Nr., Name)

Page 28: Daten – Bankprg2/SS2016/folien/...Dr. Karsten Tolle – PRG2 – SS 2016 3 Bisher … (0,n) (0,n) AusweisNr. Name Vorname Person lebt_in von bis Ort PLZ OrtsnameDr. Karsten Tolle

Dr. Karsten Tolle – PRG2 – SS 2016 28

(1,1) und (1,1)

Entität_1 Entität_2 Beziehung

Schlüssel1 A_1

Schlüssel2 A_2

(1,1) (1,1)

B

ENTITÄT_1_2 (Schlüssel1, A_1, Schlüssel2, A_2, B)

oderENTITÄT_1_2 (Schlüssel1, A_1, Schlüssel2, A_2, B)

Nur noch eine Relation notwendig!

Page 29: Daten – Bankprg2/SS2016/folien/...Dr. Karsten Tolle – PRG2 – SS 2016 3 Bisher … (0,n) (0,n) AusweisNr. Name Vorname Person lebt_in von bis Ort PLZ OrtsnameDr. Karsten Tolle

Dr. Karsten Tolle – PRG2 – SS 2016 29

Beispiel

(1,1) (1,1) Ausweis

AusweisNr. Behörde

gehört

Ablauf- Datum

Person

ID Nachname

PERSON (AusweisNr., Behörde, Ablaufdatum, ID, Nachname)

Page 30: Daten – Bankprg2/SS2016/folien/...Dr. Karsten Tolle – PRG2 – SS 2016 3 Bisher … (0,n) (0,n) AusweisNr. Name Vorname Person lebt_in von bis Ort PLZ OrtsnameDr. Karsten Tolle

Dr. Karsten Tolle – PRG2 – SS 2016 30

Sonderfälle

(3,5) (0,1) Auto

KFZ-Kennzeichen Hersteller

hat_Räder Rad

Fabr.-Nr. Breite

(Hier sind RAD1 – RAD3 verbindlich, also NOT NULL, während RAD4 und RAD5 durchaus Nullwerte beinhalten dürfen.)

AUTO (KFZ-Kennzeichen, Hersteller, RAD1, ... RAD5)RAD (Fabr.-Nr., Breite)

Page 31: Daten – Bankprg2/SS2016/folien/...Dr. Karsten Tolle – PRG2 – SS 2016 3 Bisher … (0,n) (0,n) AusweisNr. Name Vorname Person lebt_in von bis Ort PLZ OrtsnameDr. Karsten Tolle

Dr. Karsten Tolle – PRG2 – SS 2016 31

Überführung in SQL

PERSON (AusweisNr., Name, Vorname)

ORT (PLZ, Ortsname)

LEBT_IN (AusweisNr., PLZ, von, bis)

(0,n) (0,n) Person

AusweisNr. Name Vorname

lebt_in

von bis

Ort

PLZ Ortsname

Page 32: Daten – Bankprg2/SS2016/folien/...Dr. Karsten Tolle – PRG2 – SS 2016 3 Bisher … (0,n) (0,n) AusweisNr. Name Vorname Person lebt_in von bis Ort PLZ OrtsnameDr. Karsten Tolle

Dr. Karsten Tolle – PRG2 – SS 2016 32

PLZ Ortsname

501 Buli

503 Wali

603 Kali

AusweisNr PLZ von bis

001 501 23.12.2000 25.12.2010

003 501 17.08.2004 Null

001 503 01.01.1999 01.01.2012

001 501 01.01.2012 Null

AusweisNr Name Vorname

001 Jon Lucas

003 Jon Smith

103 Lucas Jon

PERSON ORT

LEBT_IN

Fragen:1. Welche Datentypen für die Attribute?2. Welche Attribute dürfen Null-Values enthalten?3. Wie erzeuge ich die referenzielle Integrität?

Page 33: Daten – Bankprg2/SS2016/folien/...Dr. Karsten Tolle – PRG2 – SS 2016 3 Bisher … (0,n) (0,n) AusweisNr. Name Vorname Person lebt_in von bis Ort PLZ OrtsnameDr. Karsten Tolle

Dr. Karsten Tolle – PRG2 – SS 2016 33

PLZ Ortsname

501 Buli

503 Wali

603 Kali

AusweisNr PLZ von bis

001 501 23.12.2000 25.12.2010

003 501 17.08.2004 Null

001 503 01.01.1999 01.01.2012

001 501 01.01.2012 Null

ORTLEBT_IN

z.B. varchar(40)oder besser varchar(45)? … Ist auch „01“ ein gültiger Wert?

Llanfairpwllgwyngyllgogerychwyrndrobwllllantysiliogogogoch ist ein walisischer Ortsname in Irland mit 58 Zeichen.

“Die längste Ortsbezeichnung[9] besitzt ein neuseeländischer Hügel namensTaumatawhakatangihangakoauauotamateaturipukakapikimaungahoronukupokaiwhenuakitanatahu (83 Zeichen), überboten vom offiziell verständlicherweise selten verwendeten Namen von Bangkok, Krung Thep Mahanakhon Amon Rattanakosin Mahinthara Ayuthaya Mahadilok Phop Noppharat Ratchathani Burirom

Udomratchaniwet Mahasathan Amon Piman Awatan Sathit Sakkathattiya Witsanukam Prasit (168 Zeichenohne Leerzeichen, 21 Wörter).[10] Europas längsten Ortsnamen trägt die walisische OrtschaftLlanfairpwllgwyngyllgogerychwyrndrobwllllantysiliogogogoch (58 Zeichen), wobei diese eineStädtepartnerschaft mit dem niederländischen Dorf Ee und dem französischen Dorf Y einging.”

Aus: https://de.wikipedia.org/wiki/Ortsname#Lange_und_kurze_Ortsnamen

Page 34: Daten – Bankprg2/SS2016/folien/...Dr. Karsten Tolle – PRG2 – SS 2016 3 Bisher … (0,n) (0,n) AusweisNr. Name Vorname Person lebt_in von bis Ort PLZ OrtsnameDr. Karsten Tolle

Dr. Karsten Tolle – PRG2 – SS 2016 34

PLZ Ortsname

501 Buli

503 Wali

603 Kali

AusweisNr PLZ von bis

001 501 23.12.2000 25.12.2010

003 501 17.08.2004 Null

001 503 01.01.1999 01.01.2012

001 501 01.01.2012 Null

ORTLEBT_IN

Werte hier sollen eine Referenzauf Objekte darstellen. Sie solltenenthalten sein in der Tabelle ORT!

Solche Verweise auf Schlüssel anderer Tabellen nennt man „Fremdschlüssel“!

Page 35: Daten – Bankprg2/SS2016/folien/...Dr. Karsten Tolle – PRG2 – SS 2016 3 Bisher … (0,n) (0,n) AusweisNr. Name Vorname Person lebt_in von bis Ort PLZ OrtsnameDr. Karsten Tolle

Dr. Karsten Tolle – PRG2 – SS 2016 35

PLZ Ortsname

501 Buli

503 Wali

603 Kali

AusweisNr PLZ von bis

001 501 23.12.2000 25.12.2010

003 501 17.08.2004 Null

001 503 01.01.1999 01.01.2012

001 501 01.01.2012 Null

ORTLEBT_IN

CREATE TABLE lebt_in (AusweisNr INT NOT NULL ,PLZ INT NOT NULL ,von DATE NOT NULL ,bis DATE NULL ,PRIMARY KEY (AusweisNr, PLZ, von) ,

FOREIGN KEY (PLZ) REFERENCES ort (PLZ),

FOREIGN KEY (AusweisNr) REFERENCES person (AusweisNr));

Page 36: Daten – Bankprg2/SS2016/folien/...Dr. Karsten Tolle – PRG2 – SS 2016 3 Bisher … (0,n) (0,n) AusweisNr. Name Vorname Person lebt_in von bis Ort PLZ OrtsnameDr. Karsten Tolle

Dr. Karsten Tolle – PRG2 – SS 2016 36

Definition

Referenzielle Integrität bedeutet die Konsistenz zwischen verbundenen Tabellen. Referenzielle

Integrität wird durch die Kombination von Primärschlüssel und Fremdschlüssel erzwungen. Um die referenzielle Integrität zu erhalten darf jedes Feld einer Tabelle, das als Fremdschlüssel deklariert worden ist, nur Werte des entsprechenden Primärschlüssels der „Eltern Tabelle“ annehmen.

Page 37: Daten – Bankprg2/SS2016/folien/...Dr. Karsten Tolle – PRG2 – SS 2016 3 Bisher … (0,n) (0,n) AusweisNr. Name Vorname Person lebt_in von bis Ort PLZ OrtsnameDr. Karsten Tolle

Dr. Karsten Tolle – PRG2 – SS 2016 37

Abbildung der Generalisierung

Oberklasse

Schlüssel Attribut_A Attribut_B

Subklasse_2

Attribut_A_2

Subklasse_1

Attribut_A_1 Attribut_B_1

Es gibt unterschiedliche Möglichkeitendies ins rel. Modell abzubilden.

nicht klausurrelevant

Page 38: Daten – Bankprg2/SS2016/folien/...Dr. Karsten Tolle – PRG2 – SS 2016 3 Bisher … (0,n) (0,n) AusweisNr. Name Vorname Person lebt_in von bis Ort PLZ OrtsnameDr. Karsten Tolle

Dr. Karsten Tolle – PRG2 – SS 2016 38

Generalisierung ER � rel. Modell

Konto

Kto.-Nr. Kunde Kto.Stand

Sparkonto

Zinssatz

Girokonto

Kreditrahmen

Möglichkeit 1:

KONTO (Kto.Nr., Kunde, Kto.Stand)GIROKONTO (Kto.Nr., Kunde, Kto.Stand, Kreditrahmen)SPARKONTO (Kto.Nr., Kunde, Kto.Stand, Zinssatz)

Möglichkeit 2:

KONTO (Kto.Nr., Kunde, Kto.Stand)GIROKONTO (Kto.Nr., Kreditrahmen)SPARKONTO (Kto.Nr., Zinssatz)

Möglichkeit 3:

KONTO (Kto.Nr., Kunde, Kto.Stand, Kreditrahmen, Zinssatz)

manchmal auch mit Type-Spalten (diese enthalten einfach true/false Info):KONTO (Kto.Nr., Kunde, Kto.Stand, Giro, Spar, Kreditrahmen, Zinssatz)

nicht klausurrelevant☺

Verknüpfung zwischen

Kto.Nr. über Fremdschlüssel!

Page 39: Daten – Bankprg2/SS2016/folien/...Dr. Karsten Tolle – PRG2 – SS 2016 3 Bisher … (0,n) (0,n) AusweisNr. Name Vorname Person lebt_in von bis Ort PLZ OrtsnameDr. Karsten Tolle

Dr. Karsten Tolle – PRG2 – SS 2016 39

Zusammenfassung

• Übersetzung ER-Modell ins Relationenmodell(nicht eindeutig!)

• Referenzielle Integrität mit Fremdschlüssel

Page 40: Daten – Bankprg2/SS2016/folien/...Dr. Karsten Tolle – PRG2 – SS 2016 3 Bisher … (0,n) (0,n) AusweisNr. Name Vorname Person lebt_in von bis Ort PLZ OrtsnameDr. Karsten Tolle

Dr. Karsten Tolle – PRG2 – SS 2016 40

PLZ Ortsname

501 Buli

503 Wali

603 Kali

AusweisNr PLZ von bis

001 501 23.12.2000 25.12.2010

003 501 17.08.2004 Null

001 503 01.01.1999 01.01.2012

001 501 01.01.2012 Null

AusweisNr Name Vorname

001 Jon Lucas

003 Jon Smith

103 Lucas Jon

PERSON ORT

LEBT_IN

Wieder verbinden in Anfragen?

Welche Personen leben aktuell in Buli?select A1,A2, ... ,An

from R1, R2, ... ,Rm

[where conditions]

[group by clause]

[having clause]

[order by clause];

Page 41: Daten – Bankprg2/SS2016/folien/...Dr. Karsten Tolle – PRG2 – SS 2016 3 Bisher … (0,n) (0,n) AusweisNr. Name Vorname Person lebt_in von bis Ort PLZ OrtsnameDr. Karsten Tolle

Dr. Karsten Tolle – PRG2 – SS 2016 41

PLZ Ortsname

501 Buli

503 Wali

603 Kali

AusweisNr PLZ von bis

001 501 23.12.2000 25.12.2010

003 501 17.08.2004 Null

001 503 01.01.1999 01.01.2012

001 501 01.01.2012 Null

AusweisNr Name Vorname

001 Jon Lucas

003 Jon Smith

103 Lucas Jon

PERSON ORT

LEBT_IN

Wieder verbinden in Anfragen?

Welche Personen leben aktuell in Buli?

SELECT p.* FROM lebt_in l, person p, ort o where

o.Ortsname = 'Buli' ando.plz = l.plz andp.ausweisnr = l.ausweisnr andl.bis is null;

Page 42: Daten – Bankprg2/SS2016/folien/...Dr. Karsten Tolle – PRG2 – SS 2016 3 Bisher … (0,n) (0,n) AusweisNr. Name Vorname Person lebt_in von bis Ort PLZ OrtsnameDr. Karsten Tolle

Dr. Karsten Tolle – PRG2 – SS 2016 42

PLZ Ortsname

501 Buli

503 Wali

603 Kali

AusweisNr PLZ von bis

001 501 23.12.2000 25.12.2010

003 501 17.08.2004 Null

001 503 01.01.1999 01.01.2012

001 501 01.01.2012 Null

AusweisNr Name Vorname

001 Jon Lucas

003 Jon Smith

103 Lucas Jon

PERSON ORT

LEBT_IN

Wieder verbinden in Anfragen?

Welche Personen leben aktuell in Buli?

SELECT p.* FROM lebt_in l join person p on (l.ausweisnr=p.ausweisnr) join ort o on (o.plz=l.plz) where

o.Ortsname = 'Buli' and l.bis is null;

Page 43: Daten – Bankprg2/SS2016/folien/...Dr. Karsten Tolle – PRG2 – SS 2016 3 Bisher … (0,n) (0,n) AusweisNr. Name Vorname Person lebt_in von bis Ort PLZ OrtsnameDr. Karsten Tolle

Dr. Karsten Tolle – PRG2 – SS 2016 43

Wichtige DBMS 2007• Oracle

• IBM DB2

• Microsoft SQL Server

• … Company Revenue 2007 Market share2007

Oracle 8,343 Mrd. Dollar 37,6%

IBM 4,879 Mrd. Dollar 22,0%

Microsoft 4,670 Mrd. Dollar 21,0%

aus Computerwoche Nr. 3 vom 16. Januar 2009Zahlen beziehen sich nur auf DBMS-Geschäft

Page 44: Daten – Bankprg2/SS2016/folien/...Dr. Karsten Tolle – PRG2 – SS 2016 3 Bisher … (0,n) (0,n) AusweisNr. Name Vorname Person lebt_in von bis Ort PLZ OrtsnameDr. Karsten Tolle

Dr. Karsten Tolle – PRG2 – SS 2016 44

Top 10 Enterprise Database Systems

to Consider in 2015

http://www.serverwatch.com/server-trends/Top-10-Enterprise-Database-Systems-in-2015.html

Page 45: Daten – Bankprg2/SS2016/folien/...Dr. Karsten Tolle – PRG2 – SS 2016 3 Bisher … (0,n) (0,n) AusweisNr. Name Vorname Person lebt_in von bis Ort PLZ OrtsnameDr. Karsten Tolle

Dr. Karsten Tolle – PRG2 – SS 2016 45

1970 1980 1990 2000 2005 2010 2012 2015 Zeit

DBMS EvolutionDatei basiert

Hierarchische DBMS

Netzwerk DBMS

Relationale DBMS

Objektorientierte DBMS

Objektrelationale DBMS

XML DBMS

Big Data,

Hadoop

NoSQL/NewSQLDocument StoresKey-Value Store

Graph DatenbankIn-Memory

Page 46: Daten – Bankprg2/SS2016/folien/...Dr. Karsten Tolle – PRG2 – SS 2016 3 Bisher … (0,n) (0,n) AusweisNr. Name Vorname Person lebt_in von bis Ort PLZ OrtsnameDr. Karsten Tolle

Dr. Karsten Tolle – PRG2 – SS 2016 46

Reference: H. Lim, Y. Han, and S. Babu, “How to Fit when No One Size Fits.,” in CIDR, 2013.

Page 47: Daten – Bankprg2/SS2016/folien/...Dr. Karsten Tolle – PRG2 – SS 2016 3 Bisher … (0,n) (0,n) AusweisNr. Name Vorname Person lebt_in von bis Ort PLZ OrtsnameDr. Karsten Tolle

Geschätzte Kosten für Ausfallzeiten (Downtimes) Stand: 2002!!!!

Nach: Craig S. MullinsDatabase Administration – The Complete Guide to Practices and Procedures2002 – Addison-Wesley – ISBN 0-201-74129-6

Geschäftsfeld Geschätzte Kosten pro Stunde

Aktienhandel $6,45 Millionen

Kreditkarten-Gesellschaften $2,6 Millionen

Home Shopping Channel $113.750

Katalog Verkaufs Center $90.000

Fluglinien Reservierung $89.500

Versand Service $28.250

Geldautomat Service $14.500

Page 48: Daten – Bankprg2/SS2016/folien/...Dr. Karsten Tolle – PRG2 – SS 2016 3 Bisher … (0,n) (0,n) AusweisNr. Name Vorname Person lebt_in von bis Ort PLZ OrtsnameDr. Karsten Tolle

Kosten für Ausfallzeiten (Downtimes)

Nach: Craig S. MullinsDatabase Administration – The Complete Guide to Practices and Procedures2002 – Addison-Wesley – ISBN 0-201-74129-6

Ausfallzeiten pro Jahr

Verfügbarkeit Minuten Stunden Kosten pro Jahr*

99,999% 5 0,08 8.000 $

99,99% 53 0,88 88.000 $

99,9% 526 8,77 887.000 $

99,5% 2628 43,8 4.380.000 $

99% 5256 87,6 8.760.000 $

* Bei Kosten für eine Stunde Ausfallzeit von 100.000 $

Page 49: Daten – Bankprg2/SS2016/folien/...Dr. Karsten Tolle – PRG2 – SS 2016 3 Bisher … (0,n) (0,n) AusweisNr. Name Vorname Person lebt_in von bis Ort PLZ OrtsnameDr. Karsten Tolle

Dr. Karsten Tolle – PRG2 – SS 2016 49

Klausuranmeldung bis 10. Juli

• Anmeldung online über QIS/LFS (Details unter: http://go.uni-frankfurt.de) für Studierende der:– Informatik, Bioinformatik, Physik

– Mathematik, Geographie

• Anmeldung per Zettel (PDF auf PRG2-Seite):– Alle anderen (Linguistik, Lehramt, …)!

… im Briefkasten des Prüfungsamtes Informatik einwerfen (Robert-Mayer-Str. 11-15 –Erdgeschoss)