41
Dr. Karsten Tolle – PRG2 – SS 2017 1 Repetitorium: Wer: Tung Le Trong Wann: 21.7.2017 (Freitag) Genauer wann …: von 10-18 Uhr Wo: H IV

Garten - Daten – Was ist das? Wer braucht das?prg2/SS2017/... · 2017. 7. 4. · Ein Schlüssel (key) einer Relation r(R) ist eine minimale Teilmenge K von R, so dass für je zwei

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Garten - Daten – Was ist das? Wer braucht das?prg2/SS2017/... · 2017. 7. 4. · Ein Schlüssel (key) einer Relation r(R) ist eine minimale Teilmenge K von R, so dass für je zwei

Dr. Karsten Tolle – PRG2 – SS 2017 1

Repetitorium:

• Wer: Tung Le Trong

• Wann: 21.7.2017 (Freitag)

• Genauer wann …: von 10-18 Uhr

• Wo: H IV

Page 2: Garten - Daten – Was ist das? Wer braucht das?prg2/SS2017/... · 2017. 7. 4. · Ein Schlüssel (key) einer Relation r(R) ist eine minimale Teilmenge K von R, so dass für je zwei

Dr. Karsten Tolle – PRG2 – SS 2017 2

Klausuranmeldung bis 17. Juli

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

– Mathematik, Geographie

• Lehramt - bitte eine kurze eMail an: [email protected]

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

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

Page 3: Garten - Daten – Was ist das? Wer braucht das?prg2/SS2017/... · 2017. 7. 4. · Ein Schlüssel (key) einer Relation r(R) ist eine minimale Teilmenge K von R, so dass für je zwei

Daten – Bank

4. Vorlesung

Page 4: Garten - Daten – Was ist das? Wer braucht das?prg2/SS2017/... · 2017. 7. 4. · Ein Schlüssel (key) einer Relation r(R) ist eine minimale Teilmenge K von R, so dass für je zwei

Dr. Karsten Tolle – PRG2 – SS 2017 4

Bisher …

SQL:

• create

• insert

• select

(0,n) (0,n) Person

AusweisNr. Name Vorname

lebt_in

von bis

Ort

PLZ Ortsname

Page 5: Garten - Daten – Was ist das? Wer braucht das?prg2/SS2017/... · 2017. 7. 4. · Ein Schlüssel (key) einer Relation r(R) ist eine minimale Teilmenge K von R, so dass für je zwei

Dr. Karsten Tolle – PRG2 – SS 2017 5

Heute …

SQL:

• create

• insert

• select

(0,n) (0,n) Person

AusweisNr. Name Vorname

lebt_in

von bis

Ort

PLZ Ortsname

• 1. Normalform

• Schlüssel und Funktionale Abhängigkeiten

Datenaustauschformate

Page 6: Garten - Daten – Was ist das? Wer braucht das?prg2/SS2017/... · 2017. 7. 4. · Ein Schlüssel (key) einer Relation r(R) ist eine minimale Teilmenge K von R, so dass für je zwei

Dr. Karsten Tolle – PRG2 – SS 2017 6

Daten(austausch)formate

• … wie speichere ich Daten in eine Datei, um diese zwischen Systemen auszutauschen?

Page 7: Garten - Daten – Was ist das? Wer braucht das?prg2/SS2017/... · 2017. 7. 4. · Ein Schlüssel (key) einer Relation r(R) ist eine minimale Teilmenge K von R, so dass für je zwei

Dr. Karsten Tolle – PRG2 – SS 2017 7

CSV (Comma Separated Values)

CSV-Dateien dienen zum Speichern/Austausch einer Tabellen oder einer Liste unterschiedlich langer Listen.

id,vorname,nachname,telefon1,Max,Mustermann,938479283472,Peter,Mustermann,92378409238473,Miss,Mustermann,9832488

Page 8: Garten - Daten – Was ist das? Wer braucht das?prg2/SS2017/... · 2017. 7. 4. · Ein Schlüssel (key) einer Relation r(R) ist eine minimale Teilmenge K von R, so dass für je zwei

eXtensible Markup Language (XML) – a simple example

<?xml version="1.0" ?>

<contact>

<address type="business">

<name>Tolle</name>

<firstname>Karsten</firstname>

<street>Robert-Mayer-Str.</street>

<town>Frankfurt</town>

</address>

</contact>

… erste W3C Recommendation von 1998!

Page 9: Garten - Daten – Was ist das? Wer braucht das?prg2/SS2017/... · 2017. 7. 4. · Ein Schlüssel (key) einer Relation r(R) ist eine minimale Teilmenge K von R, so dass für je zwei

Dr. Karsten Tolle – PRG2 – SS 2017 9

XML Syntax and Grammar

[1] document ::= prolog element Misc*

...

[3] S ::= (#x20 | #x9 | #xD | #xA)+ | space, carriage returns, line feeds, or tabs

[4] NameChar ::= Letter | Digit | '.' | '-' | '_' | ':' | CombiningChar | Extender

[5] Name ::= (Letter | '_' | ':') (NameChar)*

[6] Names ::= Name (#x20 Name)*

[7] Nmtoken ::= (NameChar)+

[8] Nmtokens ::= Nmtoken (#x20 Nmtoken)*

...

[89] Extender ::= #x00B7 | #x02D0 | #x02D1 | #x0387 | #x0640 | #x0E46

| #x0EC6 | #x3005 | [#x3031-#x3035] | [#x309D-#x309E] | [#x30FC-#x30FE]

Siehe auch: https://www.w3.org/TR/xml/

Page 10: Garten - Daten – Was ist das? Wer braucht das?prg2/SS2017/... · 2017. 7. 4. · Ein Schlüssel (key) einer Relation r(R) ist eine minimale Teilmenge K von R, so dass für je zwei

Dr. Karsten Tolle – PRG2 – SS 2017 10

JavaScript Object Notation (JSON)

{"contact": {"address": {"-type": "business","name": "Tolle","firstname": "Karsten","street": "Robert-Mayer-Str.","town": "Frankfurt"

}}

}

<?xml version="1.0" ?>

<contact>

<address type="business">

<name>Tolle</name>

<firstname>Karsten</firstname>

<street>Robert-Mayer-Str.</street>

<town>Frankfurt</town>

</address>

</contact>

http://www.utilities-online.info/xmltojson/

… erstmals 2005 vorgestellt!

Page 11: Garten - Daten – Was ist das? Wer braucht das?prg2/SS2017/... · 2017. 7. 4. · Ein Schlüssel (key) einer Relation r(R) ist eine minimale Teilmenge K von R, so dass für je zwei

Dr. Karsten Tolle – PRG2 – SS 2017 11

Tools … ?

• MySQL Workbench

• Heidi SQL

• OpenRefine (Google)

• …

Page 12: Garten - Daten – Was ist das? Wer braucht das?prg2/SS2017/... · 2017. 7. 4. · Ein Schlüssel (key) einer Relation r(R) ist eine minimale Teilmenge K von R, so dass für je zwei

Dr. Karsten Tolle – PRG2 – SS 2017 12

Wie viele Eintragungen gibt für die PLZ = 37308 ?

PLZ ORT STRASSE_NR

30419 Hannover Schaumburgstr. 2

30419 Hannover Quetlinburger Weg 12

37308 Schirmberg Bergstraße 1

37308 Bodenrode Hauptstraße 12

37308 Geismar Bergstraße 1

35279 Neustadt Gartenstraße 7

53577 Neustadt Gartenstraße 7

Wie viele Eintragungen gibt es pro PLZ?

select PLZ, count(*) from Adresse where PLZ = 37308;

PLZ count(*)

37308 3

Adresse

Page 13: Garten - Daten – Was ist das? Wer braucht das?prg2/SS2017/... · 2017. 7. 4. · Ein Schlüssel (key) einer Relation r(R) ist eine minimale Teilmenge K von R, so dass für je zwei

Dr. Karsten Tolle – PRG2 – SS 2017 13

SQL - Anfragen

• group by PLZ

select A1,A2, ... ,An

from R1, R2, ... ,Rm

[where conditions]

[group by clause]

[having clause]

[order by clause];

PLZ ORT STRASSE_NR

30419 Hannover Schaumburgstr. 2

30419 Hannover Quetlinburger Weg 12

37308 Schirmberg Bergstraße 1

37308 Bodenrode Hauptstraße 12

37308 Geismar Bergstraße 1

35279 Neustadt Gartenstraße 7

53577 Neustadt Gartenstraße 7

Page 14: Garten - Daten – Was ist das? Wer braucht das?prg2/SS2017/... · 2017. 7. 4. · Ein Schlüssel (key) einer Relation r(R) ist eine minimale Teilmenge K von R, so dass für je zwei

Dr. Karsten Tolle – PRG2 – SS 2017 14

Group by …• zum Gruppieren nach Spaltenwerte

Wie viele Eintragungen gibt es pro PLZ?

select PLZ, count(*) from Adresse group by PLZ;

PLZ count(*)

30419 2

37308 3

35279 1

53577 1

Adresse

PLZ ORT STRASSE_NR

30419 Hannover Schaumburgstr. 2

30419 Hannover Quetlinburger Weg 12

37308 Schirmberg Bergstraße 1

37308 Bodenrode Hauptstraße 12

37308 Geismar Bergstraße 1

35279 Neustadt Gartenstraße 7

53577 Neustadt Gartenstraße 7

Page 15: Garten - Daten – Was ist das? Wer braucht das?prg2/SS2017/... · 2017. 7. 4. · Ein Schlüssel (key) einer Relation r(R) ist eine minimale Teilmenge K von R, so dass für je zwei

Dr. Karsten Tolle – PRG2 – SS 2017 15

Group by …• zum Gruppieren nach Spaltenwerte

PLZ ORT STRASSE_NR

30419 Hannover Schaumburgstr. 2

30419 Hannover Quetlinburger Weg 12

37308 Schirmberg Bergstraße 1

37308 Bodenrode Hauptstraße 12

37308 Geismar Bergstraße 1

35279 Neustadt Gartenstraße 7

53577 Neustadt Gartenstraße 7

Wie viele Eintragungen gibt es pro Kombination aus PLZ und ORT?

select PLZ, Ort, count(*) from Adresse group by PLZ, Ort;

PLZ ORT count(*)

30419 Hannover 2

37308 Schirmberg 1

37308 Bodenrode 1

37308 Geismar 1

35279 Neustadt 1

53577 Neustadt 1

Page 16: Garten - Daten – Was ist das? Wer braucht das?prg2/SS2017/... · 2017. 7. 4. · Ein Schlüssel (key) einer Relation r(R) ist eine minimale Teilmenge K von R, so dass für je zwei

Dr. Karsten Tolle – PRG2 – SS 2017 16

Group by … having …• zum Gruppieren nach Spaltenwerte mit

Bedingung an die Gruppe!PLZ ORT STRASSE_NR

30419 Hannover Schaumburgstr. 2

30419 Hannover Quetlinburger Weg 12

37308 Schirmberg Bergstraße 1

37308 Bodenrode Hauptstraße 12

37308 Geismar Bergstraße 1

35279 Neustadt Gartenstraße 7

53577 Neustadt Gartenstraße 7

Wie viele Eintragungen gibt es pro Kombination aus PLZ und ORT,beschränkt auf die Gruppen mit mindestens 2 Einträgen?

select PLZ, Ort, count(*) from Adresse group by PLZ, Ort having count(*) >= 2;

PLZ ORT count(*)

30419 Hannover 2

Page 17: Garten - Daten – Was ist das? Wer braucht das?prg2/SS2017/... · 2017. 7. 4. · Ein Schlüssel (key) einer Relation r(R) ist eine minimale Teilmenge K von R, so dass für je zwei

Dr. Karsten Tolle – PRG2 – SS 2017 17

Funktionen …

Wie viele Arbeitslose gibt es pro Bundesland?-- Summe aller AL pro Bundeslandselect name, sum(arbeitslose) as 'Anzahl der Arbeitslosen' from bundeslaender b, gemeindedaten g where b.ags = substring(g.ags from 1 for 2)group by b.ags;

gemeindedaten bundeslaender

MySQL Funktion: SUBSTRING(<attribut> FROM <start> FOR <anzahl>)SUBSTRING(AGS FROM 1 FOR 2) liefert die ersten beiden Zeichen

Page 18: Garten - Daten – Was ist das? Wer braucht das?prg2/SS2017/... · 2017. 7. 4. · Ein Schlüssel (key) einer Relation r(R) ist eine minimale Teilmenge K von R, so dass für je zwei

Dr. Karsten Tolle – PRG2 – SS 2017 18

Nutzung von Views

Empno Vorname Nachname Gehalt

1 Ines Müller 75000

2 Fred Wagner 60000

3 Ingo Meyer 72000

4 Max Müller 26000

Mitarbeiter

select Vorname, Nachname from Mitarbeiter;

Vorname Nachname

Ines Müller

Fred Wagner

Ingo Meyer

Max Müller

Ergebnis einer SQL-Select-Anfrage istimmer wieder eine Relation (Tabelle)!

CREATE VIEW Mitarbeiter_Namen ASselect Vorname, Nachname from Mitarbeiter;

Page 19: Garten - Daten – Was ist das? Wer braucht das?prg2/SS2017/... · 2017. 7. 4. · Ein Schlüssel (key) einer Relation r(R) ist eine minimale Teilmenge K von R, so dass für je zwei

Dr. Karsten Tolle – PRG2 – SS 2017 19Mitarbeiter_Dept

Empno Vorname Nachname Gehalt

1 Ines Müller 75000

2 Fred Wagner 60000

3 Ingo Meyer 72000

4 Max Müller 26000

Depno Name Head …

1 Finanzen 2

2 Einkauf 1

3 HR 1

Empno Depno …

1 2

1 3

2 1

3 3

4 2

CREATE VIEW Mitarbeiter_Dept ASselect m.Empno, m.Nachname, d.Name as Abtfrom Mitarbeiter m, Abteilung d, Arbeitet_in awhere m.Empno = a.Empnoand a.Depno = d.Depno;

Mitarbeiter Abteilung

Arbeitet_in

Empno Nachname Abt

1 Müller Einkauf

1 Müller HR

2 Wagner Finanzen

3 Meyer HR

4 Müller Einkauf

Mitarbeiter_Dept

Page 20: Garten - Daten – Was ist das? Wer braucht das?prg2/SS2017/... · 2017. 7. 4. · Ein Schlüssel (key) einer Relation r(R) ist eine minimale Teilmenge K von R, so dass für je zwei

Dr. Karsten Tolle – PRG2 – SS 2017 20

FIRSTNME LASTNME BIRTH STREET NUMBER TOWN ZIP

Jon Lucas 12.03.1969 {Zeil, Lange Str.}

{12, 114} {Frankfurt, Frankfurt}

{60313,60313}

Lucas Jon 24.12.1980 Gräfstr. 27 Frankfurt 60325

… … … … … … …

Page 21: Garten - Daten – Was ist das? Wer braucht das?prg2/SS2017/... · 2017. 7. 4. · Ein Schlüssel (key) einer Relation r(R) ist eine minimale Teilmenge K von R, so dass für je zwei

Dr. Karsten Tolle – PRG2 – SS 2017 21

1. Normalform

Definition:

Ein Relationenschema R ist in 1. Normalform (1NF), wenn die Wertebereiche aller Attribute von R atomar sind.

1.NF

Wertebereiche atomar

Page 22: Garten - Daten – Was ist das? Wer braucht das?prg2/SS2017/... · 2017. 7. 4. · Ein Schlüssel (key) einer Relation r(R) ist eine minimale Teilmenge K von R, so dass für je zwei

Dr. Karsten Tolle – PRG2 – SS 2017 22

1. Normalform

FIRSTNME LASTNME BIRTH STREET NUMBER TOWN ZIP

Jon Lucas 12.03.1969 Zeil 12 Frankfurt 60313

Jon Lucas 12.03.1969 Lange Str. 114 Frankfurt 60313

Lucas Jon 24.12.1980 Gräfstr. 27 Frankfurt 60325

… … … … … … …

FIRSTNME LASTNME BIRTH STREET NUMBER TOWN ZIP

Jon Lucas 12.03.1969 {Zeil, Lange Str.}

{12, 114} {Frankfurt, Frankfurt}

{60313,60313}

Lucas Jon 24.12.1980 Gräfstr. 27 Frankfurt 60325

… … … … … … …

Page 23: Garten - Daten – Was ist das? Wer braucht das?prg2/SS2017/... · 2017. 7. 4. · Ein Schlüssel (key) einer Relation r(R) ist eine minimale Teilmenge K von R, so dass für je zwei

Dr. Karsten Tolle – PRG2 – SS 2017 23

Diskutieren

Page 24: Garten - Daten – Was ist das? Wer braucht das?prg2/SS2017/... · 2017. 7. 4. · Ein Schlüssel (key) einer Relation r(R) ist eine minimale Teilmenge K von R, so dass für je zwei

Dr. Karsten Tolle – PRG2 – SS 2017 24

Nachteile nicht 1. NF

• Finden wird erschwert bis unmöglich

• Sortierungen werden sinnlos bis unmöglich

Page 25: Garten - Daten – Was ist das? Wer braucht das?prg2/SS2017/... · 2017. 7. 4. · Ein Schlüssel (key) einer Relation r(R) ist eine minimale Teilmenge K von R, so dass für je zwei

Dr. Karsten Tolle – PRG2 – SS 2017 25

Schlüssel ?

PLZ ORT STRASSE NR

30419 Hannover Schaumburgstr. 2

30419 Hannover Quetlinburger Weg 12

37308 Bodenrode Hauptstraße 12

35279 Neustadt Gartenstraße 7

Page 26: Garten - Daten – Was ist das? Wer braucht das?prg2/SS2017/... · 2017. 7. 4. · Ein Schlüssel (key) einer Relation r(R) ist eine minimale Teilmenge K von R, so dass für je zwei

Dr. Karsten Tolle – PRG2 – SS 2017 26

Schlüssel ?

PLZ ORT STRASSE NR

30419 Hannover Schaumburgstr. 2

30419 Hannover Quetlinburger Weg 12

37308 Bodenrode Hauptstraße 12

37308 Geismar Bergstraße 1

35279 Neustadt Gartenstraße 7

Page 27: Garten - Daten – Was ist das? Wer braucht das?prg2/SS2017/... · 2017. 7. 4. · Ein Schlüssel (key) einer Relation r(R) ist eine minimale Teilmenge K von R, so dass für je zwei

Dr. Karsten Tolle – PRG2 – SS 2017 27

Schlüssel ?

keine Abhängigkeiten

Schlüssel: PLZ, ORT, STRASSE, NR

PLZ ORT STRASSE NR

30419 Hannover Schaumburgstr. 2

30419 Hannover Quetlinburger Weg 12

37308 Schirmberg Bergstraße 1

37308 Bodenrode Hauptstraße 12

37308 Geismar Bergstraße 1

35279 Neustadt Gartenstraße 7

53577 Neustadt Gartenstraße 7

Page 28: Garten - Daten – Was ist das? Wer braucht das?prg2/SS2017/... · 2017. 7. 4. · Ein Schlüssel (key) einer Relation r(R) ist eine minimale Teilmenge K von R, so dass für je zwei

Dr. Karsten Tolle – PRG2 – SS 2017 28

Fahrzeuge der Firma AB

HERSTELLER KENNZEICHEN ZUGEL_GES_GEW FÜHRERSCHEIN

VW F-AB 123 bis 3.5t B

MB F-AB 234 bis 7.5t C1

MB F-AB 235 bis 7.5t C1

MAN F-AB 236 bis 12t C

MB F-AB 239 bis 12t C

… … …

Abhängigkeiten?

Page 29: Garten - Daten – Was ist das? Wer braucht das?prg2/SS2017/... · 2017. 7. 4. · Ein Schlüssel (key) einer Relation r(R) ist eine minimale Teilmenge K von R, so dass für je zwei

Dr. Karsten Tolle – PRG2 – SS 2017 29

Fahrzeuge der Firma AB

HERSTELLER KENNZEICHEN ZUGEL_GES_GEW FÜHRERSCHEIN

VW F-AB 123 3.5 B

MB F-AB 234 7.5 C1

MB F-AB 235 7.5 C1

MAN F-AB 236 12 C

MB F-AB 239 12 C

MB F-AB 230 17 C

… … … …

… aus ZUGEL_GES_GEW folgt hier FÜHRERSCHEIN:ZUGEL_GES_GEW FÜHRERSCHEIN… umgekehrt nicht! bis 17 Tonnen

Page 30: Garten - Daten – Was ist das? Wer braucht das?prg2/SS2017/... · 2017. 7. 4. · Ein Schlüssel (key) einer Relation r(R) ist eine minimale Teilmenge K von R, so dass für je zwei

Dr. Karsten Tolle – PRG2 – SS 2017 30

Seien X und Y Teilmengen von R.

Eine Relation r(R) erfüllt (satisfies) die funktionale Abhängigkeit(functional dependency) FD X Y, wenn für je zwei (beliebige) Tupel u, v r(R) gilt:

u(X) = v(X) u(Y) = v(Y).

X Y u(X) = v(X) u(Y) = v(Y)

Funktionale Abhängigkeit (FD)

Page 31: Garten - Daten – Was ist das? Wer braucht das?prg2/SS2017/... · 2017. 7. 4. · Ein Schlüssel (key) einer Relation r(R) ist eine minimale Teilmenge K von R, so dass für je zwei

Dr. Karsten Tolle – PRG2 – SS 2017 31

Beispiel

Gegeben ist die Relation r(R):

Geben Sie an, welche der folgenden Abhängigkeiten r nicht widerspricht:

A B C D E

a1 b1 c1 d1 e1

a1 b2 c2 d2 e1

a2 b1 c3 d2 e1

a2 b1 c4 d3 e1

a3 b2 c5 d1 e1

A DAB DC BDEE AA EA BC

Page 32: Garten - Daten – Was ist das? Wer braucht das?prg2/SS2017/... · 2017. 7. 4. · Ein Schlüssel (key) einer Relation r(R) ist eine minimale Teilmenge K von R, so dass für je zwei

Dr. Karsten Tolle – PRG2 – SS 2017 32

Axiome von Armstrong

1. β ⊆ α ⇛ 𝛼 → 𝛽 (Reflexivität)

2. 𝛼 → 𝛽 ⇛ 𝛼𝛾 → 𝛽𝛾 (Erweiterungsregel)

3. 𝛼 → 𝛽 ∧ 𝛽 → 𝛾 ⇛ 𝛼 → 𝛾 (Transitivität)

Page 33: Garten - Daten – Was ist das? Wer braucht das?prg2/SS2017/... · 2017. 7. 4. · Ein Schlüssel (key) einer Relation r(R) ist eine minimale Teilmenge K von R, so dass für je zwei

Dr. Karsten Tolle – PRG2 – SS 2017 33

FDs?

Stadt Stadt Kreis, Stadt Kreis, Stadt…Stadt KreisKreis BundeslandStadt Bundesland

Stadt Kreis Bundesland

Rüsselsheim Groß-Gerau Hessen

Mörfelden-Walldorf Groß-Gerau Hessen

Dietzenbach Offenbach Hessen

Dreieich Offenbach Hessen

Walldorf (Baden) Rhein-Neckar-Kreis Baden-Württemberg

Page 34: Garten - Daten – Was ist das? Wer braucht das?prg2/SS2017/... · 2017. 7. 4. · Ein Schlüssel (key) einer Relation r(R) ist eine minimale Teilmenge K von R, so dass für je zwei

Dr. Karsten Tolle – PRG2 – SS 2017 34

Übung FDs – Situation welche FDs gelten?

• Briefe und PortoBrief_ID Gewicht_in_gr Porto_in_euro

1 18 0,70

2 12 1,45

3 7 0,70

4 19 0,85

5 75 1,45

Brief_ID Gewicht_in_gr Porto_in_euro

1 18 0,70

2 12 1,45

3 7 0,70

4 19 0,85

5 75 1,45

6 ?? 0,70

7 23 ??

Page 35: Garten - Daten – Was ist das? Wer braucht das?prg2/SS2017/... · 2017. 7. 4. · Ein Schlüssel (key) einer Relation r(R) ist eine minimale Teilmenge K von R, so dass für je zwei

Dr. Karsten Tolle – PRG2 – SS 2017 35

Übung FDs – Situation welche FDs gelten?

• Briefe und Porto

Brief_ID L_in_cm B_in_cm H_in_cm Gewicht_in_gr Porto_in_euro

1 15 11,5 0,1 18 0,70

2 15 11,5 1,5 12 1,45

3 15 11,5 0,2 7 0,70

4 15 11,5 0,4 23 0,85

5 15 11,5 1,5 75 1,45

Page 36: Garten - Daten – Was ist das? Wer braucht das?prg2/SS2017/... · 2017. 7. 4. · Ein Schlüssel (key) einer Relation r(R) ist eine minimale Teilmenge K von R, so dass für je zwei

http://www.deutschepost.de/de/b/briefe-in-deutschland.html

Page 37: Garten - Daten – Was ist das? Wer braucht das?prg2/SS2017/... · 2017. 7. 4. · Ein Schlüssel (key) einer Relation r(R) ist eine minimale Teilmenge K von R, so dass für je zwei

Dr. Karsten Tolle – PRG2 – SS 2017 37

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.

Ein Schlüssel (key) einer Relation r(R) ist eine minimale Teilmenge Kvon 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 dürfte t2 nicht in r(R) eingefügt werden.

Page 38: Garten - Daten – Was ist das? Wer braucht das?prg2/SS2017/... · 2017. 7. 4. · Ein Schlüssel (key) einer Relation r(R) ist eine minimale Teilmenge K von R, so dass für je zwei

Dr. Karsten Tolle – PRG2 – SS 2017 38

Schlüssel

Gegeben seien ein Relationenschema R und eine Menge F von FDs.

X R ist ein Oberschlüssel für R

X R

X ist ein Schlüssel für R

X R und X minimal (AX: X\A R)

Page 39: Garten - Daten – Was ist das? Wer braucht das?prg2/SS2017/... · 2017. 7. 4. · Ein Schlüssel (key) einer Relation r(R) ist eine minimale Teilmenge K von R, so dass für je zwei

Dr. Karsten Tolle – PRG2 – SS 2017 39

Wie finde ich alle Schlüssel wenn FDs gegeben?

Gegeben Relationschema R und eine Menge F von FDs

z.B. R = (A, B, C, D, E) und FD = {AB, CDAC}

Gibt es Attribute, die nicht auf der rechten Seite der FDs vorkommen?Falls ja, gehören diese zu jedem Schlüssel!

Hier: D und E

… ist dies bereits ein Schlüssel, sind wir fertig!

Page 40: Garten - Daten – Was ist das? Wer braucht das?prg2/SS2017/... · 2017. 7. 4. · Ein Schlüssel (key) einer Relation r(R) ist eine minimale Teilmenge K von R, so dass für je zwei

Dr. Karsten Tolle – PRG2 – SS 2017 40

Gegeben Relationschema R und eine Menge F von FDs

z.B. R = (A, B, C, D, E) und FD = {AB, CDAC}

Gibt es Attribute, die nicht auf der rechten Seite der FDs vorkommen?Falls ja, gehören diese zu jedem Schlüssel!

Hier: D und E (kann aber auch ∅ sein)

… ist dies kein Schlüssel kombinatorisch ausprobieren. Bem.: Auch C gehört hier zu allen Schlüsseln!

Es steht zwar auf der rechten Seite, jedoch auch links.In diesem Fall darf man das C rechts streichen (nicht aber links).

Schlüssel = {CDE}

Page 41: Garten - Daten – Was ist das? Wer braucht das?prg2/SS2017/... · 2017. 7. 4. · Ein Schlüssel (key) einer Relation r(R) ist eine minimale Teilmenge K von R, so dass für je zwei

Dr. Karsten Tolle – PRG2 – SS 2017 41

Übung

R = (A, B, C, D, E)

a. FD = {ABD, CDAC, ED}

b. FD = {AEBD, CDAC, ED}

a. Schlüssel = {CE}b. Schlüssel = {AC, CD, CE}