Daten – Bank 4. Vorlesungprg2/SS2019/folien/teil2/6_db_2019.pdf · Dr. Karsten Tolle –PRG2...

25
Daten – Bank 6. Vorlesung

Transcript of Daten – Bank 4. Vorlesungprg2/SS2019/folien/teil2/6_db_2019.pdf · Dr. Karsten Tolle –PRG2...

Page 1: Daten – Bank 4. Vorlesungprg2/SS2019/folien/teil2/6_db_2019.pdf · Dr. Karsten Tolle –PRG2 –SS 2019 13 Prinzipien des digitalen Speicherns I Ein Datensatz sollte offensichtlich/eindeutig

Daten – Bank

6. Vorlesung

Page 2: Daten – Bank 4. Vorlesungprg2/SS2019/folien/teil2/6_db_2019.pdf · Dr. Karsten Tolle –PRG2 –SS 2019 13 Prinzipien des digitalen Speicherns I Ein Datensatz sollte offensichtlich/eindeutig

Dr. Karsten Tolle – PRG2 – SS 2019 2

Repetitorium:

• Wer: Tung Le Trong

• Wann: 30.7.2018 (Dienstag)

• Genauer wann …: von 10-18 Uhr

• Wo: H IV

Page 3: Daten – Bank 4. Vorlesungprg2/SS2019/folien/teil2/6_db_2019.pdf · Dr. Karsten Tolle –PRG2 –SS 2019 13 Prinzipien des digitalen Speicherns I Ein Datensatz sollte offensichtlich/eindeutig

Dr. Karsten Tolle – PRG2 – SS 2019 3

Evaluation: Arbeitsaufwand0 0 0

3

1

4

1

11

0

8

2

6

1 1

0

2

1

2

0

1 1

0 0 0 0 0 0 0 0 0

1

0 , 5 0 1 , 0 0 1 , 5 0 2 , 0 0 2 , 5 0 3 , 0 0 3 , 5 0 4 , 0 0 4 , 5 0 5 , 0 0 5 , 5 0 6 , 0 0 6 , 5 0 7 , 0 0 7 , 5 0 8 , 0 0 8 , 5 0 9 , 0 0 9 , 5 01 0 , 0 01 0 , 5 01 1 , 0 01 1 , 5 01 2 , 0 01 2 , 5 01 3 , 0 01 3 , 5 01 5 , 0 01 4 , 5 01 5 , 0 01 5 , 5 0

Durchschnitt: 5,37 Stunden

Page 4: Daten – Bank 4. Vorlesungprg2/SS2019/folien/teil2/6_db_2019.pdf · Dr. Karsten Tolle –PRG2 –SS 2019 13 Prinzipien des digitalen Speicherns I Ein Datensatz sollte offensichtlich/eindeutig

Dr. Karsten Tolle – PRG2 – SS 2019 4

CPU – z.B. AMD Ryzen 9 3900X • Hersteller AMD • Taktfrequenz 3.8 GHz • Level 1 Cache 12 x 32 KByte L1D; 12 x 64 KByte• Level 2 Cache 12 x 512 KByte• Level 3 Cache 65.536 KByte

RAM – z.B. 8GB für Intel DH67BL• max. Speichertaktung 1600 MHz

Festplatte (aus Wikipedia: https://de.wikipedia.org/wiki/Festplattenlaufwerk )

Kategorie ModellGröße(GB)

Drehzahlmittl. Zugriffszeit

Desktop2019

WD6003FZBX

6.000 7.200 14,4 ms

Page 5: Daten – Bank 4. Vorlesungprg2/SS2019/folien/teil2/6_db_2019.pdf · Dr. Karsten Tolle –PRG2 –SS 2019 13 Prinzipien des digitalen Speicherns I Ein Datensatz sollte offensichtlich/eindeutig

Dr. Karsten Tolle – PRG2 – SS 2019 5

Vergleich von Nano- vs Millisekunde

1 Nanosekunde (ns) = 1000 Pikosekunden = 0,000 000 001 Sekunden

1 Mikrosekunde (μs) = 1000 Nanosekunden = 0,000 001 Sekunden

1 Millisekunde (ms) = 1000 Mikrosekunden = 0,001 Sekunden

In einer Nanosekunde (10-9 s) legt das Licht die Strecke von etwa 30 cm zurück.

In einer Mikrosekunde also 1000 * 30 cm 30.000 cm = 300 m.

In einer Millisekunde also 1000 * 300 m 300.000 m = 300 km.

Page 6: Daten – Bank 4. Vorlesungprg2/SS2019/folien/teil2/6_db_2019.pdf · Dr. Karsten Tolle –PRG2 –SS 2019 13 Prinzipien des digitalen Speicherns I Ein Datensatz sollte offensichtlich/eindeutig

Dr. Karsten Tolle – PRG2 – SS 2019 6

Vergleich von Nano- vs Millisekunde (2)

1 Nanosekunde (ns) = 1000 Pikosekunden (ps) = 0,000 000 001 Sekunden

1 Mikrosekunde (μs) = 1000 Nanosekunden = 0,000 001 Sekunden

1 Millisekunde (ms) = 1000 Mikrosekunden = 0,001 Sekunden

333 ps (3,33 · 10-10) – Taktzeit für einen Prozessor mit 3 GHz Taktfrequenz

[ 3,8 GHz = 2,6315789473684⋅10-10 s(p) (https://www.unitjuggler.com/frequency-umwandeln-von-GHz-nach-s(p).html?val=3,8 ) ]

1 ns ~ 3 Takte

1 ms ~ 1000 * 1000 * 3 Takte = 3.000.000 Takte = 3 Millionen Takte

20 ns ~ 60 Takte

14,4 ms ~ 43,2 Millionen Takte

Für Datenbanksysteme ist meist die Anzahl der Blockzugriffe entscheidend.

Page 7: Daten – Bank 4. Vorlesungprg2/SS2019/folien/teil2/6_db_2019.pdf · Dr. Karsten Tolle –PRG2 –SS 2019 13 Prinzipien des digitalen Speicherns I Ein Datensatz sollte offensichtlich/eindeutig

Dr. Karsten Tolle – PRG2 – SS 2019 7

Geonamesselect count(*) from geoname; 180554

select * from geoname where name like 'Fra%';

Page 8: Daten – Bank 4. Vorlesungprg2/SS2019/folien/teil2/6_db_2019.pdf · Dr. Karsten Tolle –PRG2 –SS 2019 13 Prinzipien des digitalen Speicherns I Ein Datensatz sollte offensichtlich/eindeutig

Dr. Karsten Tolle – PRG2 – SS 2019 8

Geonames

~ 50 Byte pro DSBlock ~ 4000 Byte ~ 80 DS pro Block

180554 DS / 80 mind. 2257 Blöcke

select * from geoname where Name like 'Fra%'; 450 DS im Ergebnis

Anzahl zu lesender Blöcke ist mind. 2257!

Page 9: Daten – Bank 4. Vorlesungprg2/SS2019/folien/teil2/6_db_2019.pdf · Dr. Karsten Tolle –PRG2 –SS 2019 13 Prinzipien des digitalen Speicherns I Ein Datensatz sollte offensichtlich/eindeutig

Dr. Karsten Tolle – PRG2 – SS 2019 9

Geonames mit Index

Index auf Name

Anzahl zu lesender Blöcke ist maximal 450 (#DS im Ergebnis) plus Index!

BTreeüblich

select * from district where Name like 'Fra%';

Page 10: Daten – Bank 4. Vorlesungprg2/SS2019/folien/teil2/6_db_2019.pdf · Dr. Karsten Tolle –PRG2 –SS 2019 13 Prinzipien des digitalen Speicherns I Ein Datensatz sollte offensichtlich/eindeutig

Dr. Karsten Tolle – PRG2 – SS 2019 10

Beispiel aus der Praxis

Tabelle ‘myTable’ mit:

Attributen: a, b und c1.000.000 Einträgen

Index auf Attribut ‘a’

Anfrage:

SELECT a,b,c FROM myTableWHERE a > 19850

Page 11: Daten – Bank 4. Vorlesungprg2/SS2019/folien/teil2/6_db_2019.pdf · Dr. Karsten Tolle –PRG2 –SS 2019 13 Prinzipien des digitalen Speicherns I Ein Datensatz sollte offensichtlich/eindeutig

Dr. Karsten Tolle – PRG2 – SS 2019 11

Beispiel aus der Praxis

In einem Beispiel waren ca. 50% der Einträge unterAttribut ‘a’ mit dem Wert 19870 belegt.

Ausführungszeit lag bei 10 Minuten!

Nutzung des Index hier nicht sinnvoll!

Ausführungszeit ohne Index ~15sec

Ignore index: SELECT a,b,c FROM myTable IGNORE INDEX (<index_on_a>)

WHERE a > 19850

Page 12: Daten – Bank 4. Vorlesungprg2/SS2019/folien/teil2/6_db_2019.pdf · Dr. Karsten Tolle –PRG2 –SS 2019 13 Prinzipien des digitalen Speicherns I Ein Datensatz sollte offensichtlich/eindeutig

Dr. Karsten Tolle – PRG2 – SS 2019 12

Add/create index

ALTER TABLE student ADD INDEX my_index (vname ASC, nname ASC);

==

CREATE INDEX my_index ON student(vname ASC, nname ASC);

… wieder Entfernen:

DROP INDEX index_name ON tbl_name;

also: DROP INDEX my_index ON student;

DROP INDEX index_name ON tbl_name

Page 13: Daten – Bank 4. Vorlesungprg2/SS2019/folien/teil2/6_db_2019.pdf · Dr. Karsten Tolle –PRG2 –SS 2019 13 Prinzipien des digitalen Speicherns I Ein Datensatz sollte offensichtlich/eindeutig

Dr. Karsten Tolle – PRG2 – SS 2019 13

Prinzipien des digitalen Speicherns I

Ein Datensatz sollte offensichtlich/eindeutig und schnell mit dem Objekt, welches es repräsentiert, in Verbindung gebracht werden können.

ISBN TITLE

3-12-517154-7

ISBN Number

Man beachte die Nutzung/Kontext! Für eine Bücherei wäre die ISBN-Nummer nicht ausreichend, da es von einem Buch mehrere Exemplare geben kann.

Page 14: Daten – Bank 4. Vorlesungprg2/SS2019/folien/teil2/6_db_2019.pdf · Dr. Karsten Tolle –PRG2 –SS 2019 13 Prinzipien des digitalen Speicherns I Ein Datensatz sollte offensichtlich/eindeutig

Dr. Karsten Tolle – PRG2 – SS 2019 14

Prinzipien des digitalen Speicherns II

Atomisierung der Daten – teile die Daten in ihrekleinste Einheit auf 1. Normalform

ISBN AUTHORS TITLE …

0-13-221211-0 Jeffrey Hoffer, MaryPrescott and Fred

McFadden

ISBN TITLE …

0-13-221211-0

…ISBN AUTHOR_ID

0-13-221211-0 1

0-13-221211-0 2

0-13-221211-0 3

ID VName NName

1 Jeffrey Hoffer

2 Mary Prescott

3 Fred McFadden

Page 15: Daten – Bank 4. Vorlesungprg2/SS2019/folien/teil2/6_db_2019.pdf · Dr. Karsten Tolle –PRG2 –SS 2019 13 Prinzipien des digitalen Speicherns I Ein Datensatz sollte offensichtlich/eindeutig

Dr. Karsten Tolle – PRG2 – SS 2019 15

Prinzipien des digitalen Speicherns III

… ein weiteres Beispiel (aus der Realität).

… RULER … …

Hadrian (Sabina)

Bedeutet: Hadrian war der Prägeherr undprägte die Münze für (zu ehren von) Sabina.

… RULER COINED_FOR …

Hadrian Sabina

Page 16: Daten – Bank 4. Vorlesungprg2/SS2019/folien/teil2/6_db_2019.pdf · Dr. Karsten Tolle –PRG2 –SS 2019 13 Prinzipien des digitalen Speicherns I Ein Datensatz sollte offensichtlich/eindeutig

Dr. Karsten Tolle – PRG2 – SS 2019 16

Prinzipien des digitalen Speicherns IV

Handhabung unsicherer Informationen:

… RULER … …

Hadrian?

… ?Nero

Nero

Bedeutung: … nicht wirklich sicher / abgeleitetaus anderen Informationen.

… RULER QUALIFICATION …

Hadrian uncertain

… Nero inferred

Nero certain

Page 17: Daten – Bank 4. Vorlesungprg2/SS2019/folien/teil2/6_db_2019.pdf · Dr. Karsten Tolle –PRG2 –SS 2019 13 Prinzipien des digitalen Speicherns I Ein Datensatz sollte offensichtlich/eindeutig

Dr. Karsten Tolle – PRG2 – SS 2019 17

Prinzipien des digitalen Speicherns VKonsistenz in der Namensgebung für Tabellen und Attribute.

ID … CODE …

coinlist metal_information

ID … ID …

coin_list metal_information

besser

Page 18: Daten – Bank 4. Vorlesungprg2/SS2019/folien/teil2/6_db_2019.pdf · Dr. Karsten Tolle –PRG2 –SS 2019 13 Prinzipien des digitalen Speicherns I Ein Datensatz sollte offensichtlich/eindeutig

Dr. Karsten Tolle – PRG2 – SS 2019 18

Prinzipien des digitalen Speicherns VIAusnutzung der referenziellen Integrität wo immer möglich!

„ANTONINVS PIVS“vs

„ANTONINVS PIVS “vs

„ANTONINVS PIVS“vs

„ANTONINVS PIVS “… Unterschied ist kaum

sichtbar! … aber vorhanden!

Page 19: Daten – Bank 4. Vorlesungprg2/SS2019/folien/teil2/6_db_2019.pdf · Dr. Karsten Tolle –PRG2 –SS 2019 13 Prinzipien des digitalen Speicherns I Ein Datensatz sollte offensichtlich/eindeutig

Dr. Karsten Tolle – PRG2 – SS 2019 19

Man beachte die Situation …

Kunde ( Name Vorname Strasse Stadt)

select * from Kunde;

vs

select Name, Vorname, Strasse, Stadt from Kunde;Nicht in Programmen!

Page 20: Daten – Bank 4. Vorlesungprg2/SS2019/folien/teil2/6_db_2019.pdf · Dr. Karsten Tolle –PRG2 –SS 2019 13 Prinzipien des digitalen Speicherns I Ein Datensatz sollte offensichtlich/eindeutig

Dr. Karsten Tolle – PRG2 – SS 2019 20

Sicherheit beachten

• … gibt es existierende Module/Bibliotheken? (Patches beachten)

• … Benutzer, Rollen, Grant/Revoke … nur zulassen was nötig ist.

• … keine unnötigen Infos nach draußen!

• … testen und testen lassen!

Page 21: Daten – Bank 4. Vorlesungprg2/SS2019/folien/teil2/6_db_2019.pdf · Dr. Karsten Tolle –PRG2 –SS 2019 13 Prinzipien des digitalen Speicherns I Ein Datensatz sollte offensichtlich/eindeutig

Dr. Karsten Tolle – PRG2 – SS 2019 21

Unterschiede: Rel. Modell - OO

Rel. Modell OO

Identität Primary Key / Daten Object Identifier (intern)

Generalisierung Wird nicht direktunterstützt!

Vererbung enthalten

Datenkapselung Wird nicht direkt unterstützt!

Zugriff nur über Methoden

Beziehungen zwischen Objekten

Teilweise durch ForeignKeys

über Methoden, Attribute

Interaktionen zwischen Objekten

Wird nicht direkt unterstützt!

über Methoden

Trigger und Stored Procedures können dies teilweise simulieren!

… weiterführende Literatur: http://www.cs.utexas.edu/~wcook/Drafts/2005/PLDBProblem.pdf

Page 22: Daten – Bank 4. Vorlesungprg2/SS2019/folien/teil2/6_db_2019.pdf · Dr. Karsten Tolle –PRG2 –SS 2019 13 Prinzipien des digitalen Speicherns I Ein Datensatz sollte offensichtlich/eindeutig

Dr. Karsten Tolle – PRG2 – SS 2019 22

OR-Mapping

Framework Beschreibung

Java Persistence API (JPA) Ist eine Schnittstelle für die objektrelationale Abbildung

von POJOs (Plain old Java Object).

Wurde im Rahmen der EJB 3.0 von der Software

Expert Group als Teil der JSR 220 entwickelt

und herausgegeben. Sie soll die besten Ideen der

APIs von Hibernate, Toplink und JDO beinhalten.

Hibernate (Nhibernate

für .NET)

Open-Source Framework für Java entwickelt von der

JBoss Community. Setzt auch die JPA um (Hibernate

EntityManager). Hibernate wird von den meisten als

die Referenz für die Lösung des IM im Open-Source-

Bereich für Java gesehen.

DB Prog.OR-Mapper

Page 23: Daten – Bank 4. Vorlesungprg2/SS2019/folien/teil2/6_db_2019.pdf · Dr. Karsten Tolle –PRG2 –SS 2019 13 Prinzipien des digitalen Speicherns I Ein Datensatz sollte offensichtlich/eindeutig

Dr. Karsten Tolle – PRG2 – SS 2019 23

Reverse Engineering • Basierend auf Foreign Keys!

Page 24: Daten – Bank 4. Vorlesungprg2/SS2019/folien/teil2/6_db_2019.pdf · Dr. Karsten Tolle –PRG2 –SS 2019 13 Prinzipien des digitalen Speicherns I Ein Datensatz sollte offensichtlich/eindeutig

Dr. Karsten Tolle – PRG2 – SS 2019 24

Zusammenfassung …

SQL:• create, insert, select• Datentypen• Primary Key• Foreign Key• Views• Index• …

(0,n) (0,n) Person

AusweisNr. Name Vorname

lebt_in

von bis

Ort

PLZ Ortsname

• 1. Normalform• Schlüssel und Funktionale

Abhängigkeiten• 2. Normalform

Sicherheit• Grant/Revoke• my.ini Settings• …

Datenaustauschformate:CSV, JSON, XML, …

Page 25: Daten – Bank 4. Vorlesungprg2/SS2019/folien/teil2/6_db_2019.pdf · Dr. Karsten Tolle –PRG2 –SS 2019 13 Prinzipien des digitalen Speicherns I Ein Datensatz sollte offensichtlich/eindeutig

Dr. Karsten Tolle – PRG2 – SS 2019 25

Klausur

• PRG-2 Klausur am Montag den 05. August Start: 9:00 Uhr

• Wo: Hörsaalgebäude Bockenheim Vorlesungsräume HIII, HIV, HV und HVI

• Studierendenausweis mitbringen!

• … bei Krankheit Attest besorgen!