Zusatzfolien zu B-Bäumen. 2 3 4 Einfügen eines neuen Objekts (Datensatz) in einen B-Baum.
Daten – Bank 4. Vorlesungprg2/SS2019/folien/teil2/6_db_2019.pdf · Dr. Karsten Tolle –PRG2...
-
Upload
truongkien -
Category
Documents
-
view
216 -
download
1
Transcript of Daten – Bank 4. Vorlesungprg2/SS2019/folien/teil2/6_db_2019.pdf · Dr. Karsten Tolle –PRG2...
Daten – Bank
6. Vorlesung
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
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
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
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.
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.
Dr. Karsten Tolle – PRG2 – SS 2019 7
Geonamesselect count(*) from geoname; 180554
select * from geoname where name like 'Fra%';
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!
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%';
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
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
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
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.
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
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
…
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
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
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!
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!
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!
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
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
Dr. Karsten Tolle – PRG2 – SS 2019 23
Reverse Engineering • Basierend auf Foreign Keys!
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, …
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!