 
                                Optimierung der Datenbankstruktur
einer Web-Anwendung zur Analyse
von Fertigungsprozessen
Vortrag Seminararbeit
Fabian Ripplinger
Aachen, 22.01.2014
© WZL/Fraunhofer IPT
Agenda
1
Ziel der Arbeit
2
Grundlagen
3
Umsetzung
4
Ergebnis
5
Zusammenfassung und Ausblick
© WZL/Fraunhofer IPT
Seite 3
Ziel der Arbeit
Übergeordnetes
Gesamtziel
 Performance Verbesserung der Datenbankzugriffe in WoPS+
Detaillierte Ziele
Verbesserung der Performance durch:
 Ein anderes Datenbanksystem
 Eine veränderte Datenbankstruktur
 Geeignete Indizierung
© WZL/Fraunhofer IPT
Seite 4
WoPS+
Beschreibung der Software
Eingabedaten
Web-Tool
Auswertungen
Auswertungen
Simulation
Konfiguration
Bildquelle: http://cdn.flaticon.com/png/256/1829.png; http://cdns2.freepik.com/free-photo/slots-representing-configuration_318-9479.jpg
© WZL/Fraunhofer IPT
Seite 5
Agenda
1
Ziel der Arbeit
2
Grundlagen
2.1 ACID und BASE
2.2 Normalisierung
2.3 Indizes
3
Umsetzung
4
Ergebnis
5
Zusammenfassung und Ausblick
© WZL/Fraunhofer IPT
Seite 7
ACID und BASE
Eigenschaften eines Datenbanksystems
ACID
 Atomicity: Jede Transaktion wird entweder
ganz oder gar nicht ausgeführt.
 Consistency: Die Daten sind zu jeder Zeit
 Soft state: Daten können sich verändern,
konsistent.
 Isolation: Transaktionen beeinflussen sich
nicht gegenseitig.
 Durability: Die Daten sind garantiert dauerhaft
abgespeichert.
Relationale DBS
© WZL/Fraunhofer IPT
BASE
 Basically Available: Die Daten werden auf
mehreren Systemen gespeichert. Somit ist
eine Version der Daten immer erreichbar.
obwohl gerade kein User auf das System
zugreift.
 Eventually Consistent: Nicht jede Version der
Daten ist immer auf dem neusten Stand.
NoSQL-DBS
Seite 8
Agenda
1
Ziel der Arbeit
2
Grundlagen
2.1 ACID und BASE
2.2 Normalisierung
2.3 Indizes
3
Umsetzung
4
Ergebnis
5
Zusammenfassung und Ausblick
© WZL/Fraunhofer IPT
Seite 9
1. Normalform
1. Normalform verletzt
CD_ID
Albumtitel
Interpret
Jahr der
Gründung
Titelliste
4711
Not That Kind
Anastacia
1999
{1. Not That Kind, 2. I’m Outta Love, 3. Cowboys & Kisses}
4712
Wish You Were Here
Pink Floyd
1964
{1. Shine On You Crazy Diamond}
4713
Freak of Nature
Anastacia
1999
{1. Paid my Dues}
1. Normalform erfüllt
CD_ID
Albumtitel
Interpret
Jahr der Gründung
Track
Titel
4711
Not That Kind
Anastacia
1999
1
Not That Kind
4711
Not That Kind
Anastacia
1999
2
I’m Outta Love
4711
Not That Kind
Anastacia
1999
3
Cowboys & Kisses
4712
Wish You Were Here
Pink Floyd
1964
1
Shine On You Crazy Diamond
4713
Freak of Nature
Anastacia
1999
1
Paid my Dues
Bedingungen: Alle Attribute sind atomar, also nicht weiter zerlegbar.
© WZL/Fraunhofer IPT
Seite 10
2. Normalform
2. Normalform verletzt
CD_ID
Albumtitel
Interpret
Jahr der Gründung
Track
Titel
4711
Not That Kind
Anastacia
1999
1
Not That Kind
4711
Not That Kind
Anastacia
1999
2
I’m Outta Love
4711
Not That Kind
Anastacia
1999
3
Cowboys & Kisses
4712
Wish You Were Here
Pink Floyd
1964
1
Shine On You Crazy Diamond
4713
Freak of Nature
Anastacia
1999
1
Paid my Dues
2. Normalform erfüllt
CD_ID
Track
Titel
4711
1
Not That Kind
CD_ID
Albumtitel
Interpret
Jahr der Gründung
4711
2
I’m Outta Love
4711
Not That Kind
Anastacia
1999
4711
3
Cowboys & Kisses
4712
Wish You Were Here
Pink Floyd
1964
4712
1
Shine On You Crazy Diamond
4713
Freak of Nature
Anastacia
1999
4713
1
Paid my Dues
Bedingungen: 1. Normalform erfüllt.
Jedes Nichtschlüsselattribut ist voll funktional abhängig vom Primärschlüssel.
© WZL/Fraunhofer IPT
Seite 11
3. Normalform
3. Normalform verletzt
CD_ID
Albumtitel
Interpret
Jahr der Gründung
4711
Not That Kind
Anastacia
1999
4712
Wish You Were Here
Pink Floyd
1964
4713
Freak of Nature
Anastacia
1999
3. Normalform erfüllt
Interpret_ID
Interpret
Jahr der Gründung
311
Anastacia
1999
312
Pink Floyd
1964
CD_ID
Track
Titel
4711
1
Not That Kind
4711
2
I’m Outta Love
CD_ID
Albumtitel
Interpret_ID
4711
3
Cowboys & Kisses
4711
Not That Kind
311
4712
1
Shine On You Crazy Diamond
4712
Wish You Were Here
312
4713
1
Paid my Dues
4713
Freak of Nature
311
Bedingungen: 2. Normalform erfüllt. Kein Nichtschlüsselattribut ist von einem anderen
Nichtschlüsselattribut funktional abhängig.
© WZL/Fraunhofer IPT
Seite 12
Agenda
1
Ziel der Arbeit
2
Grundlagen
2.1 ACID und BASE
2.2 Normalisierung
2.3 Indizes
3
Umsetzung
4
Ergebnis
5
Zusammenfassung und Ausblick
© WZL/Fraunhofer IPT
Seite 13
Indizes
Gruppierter Index
 Nur einer pro Tabelle
Nicht gruppierter Index
 Mehrere pro Tabelle
 Kann mehrere Spalten enthalten
 Bezieht sich immer nur auf eine Spalte
 Die Reihenfolge der Spalten ist wichtig
 Wird getrennt von den Daten verwaltet
 Daten werden sortiert abgelegt
 Abgespeichert als B-Baum
Indizes können die Suche und das Sortieren nach bestimmten Spalten beschleunigen.
Der Verwaltungsaufwand für Indizes ist nicht zu vernachlässigen.
Bildquelle: http://use-the-index-luke.com/de/sql/anatomie/index-baum
© WZL/Fraunhofer IPT
Seite 14
Agenda
1
Ziel der Arbeit
2
Grundlagen
3
Umsetzung
3.1 Wahl der Datenbank
3.2 Änderungen an der Struktur
3.3 Indizes
4
Ergebnis
5
Zusammenfassung und Ausblick
© WZL/Fraunhofer IPT
Seite 15
Umsetzung
Aufbau
System
 Alle nicht benötigten Programme deaktiviert
 Datenbank und Tool laufen auf einem System
 Netzwerk Auslastung hat keinen Einfluss
 Immer nur ein Client
WoPS+
 Beispiel Firmendatensatz mit 150.000 Zeilen
 Gemessen wird die Zeit vom Einlesen der Daten
und der nötigen Berechnungen
Bildquelle: http://www.downloadclipart.net/large/915-monitor-and-computer-design.png; http://t3n.de/news/wp-content/uploads/2010/07/symbolbild-datenbank.jpg
© WZL/Fraunhofer IPT
Seite 16
Agenda
1
Ziel der Arbeit
2
Grundlagen
3
Umsetzung
3.1 Wahl der Datenbank
3.2 Änderungen an der Struktur
3.3 Indizes
4
Ergebnis
5
Zusammenfassung und Ausblick
© WZL/Fraunhofer IPT
Seite 17
Wahl der Datenbank
Oracle und MySQL eignen sich für den Vergleich.
Die Wahl ist auf Oracle gefallen
© WZL/Fraunhofer IPT
Seite 18
Agenda
1
Ziel der Arbeit
2
Grundlagen
3
Umsetzung
3.1 Wahl der Datenbank
3.2 Änderungen an der Struktur
3.3 Indizes
4
Ergebnis
5
Zusammenfassung und Ausblick
© WZL/Fraunhofer IPT
Seite 19
Änderungen an der Struktur
Arbeitsplan
Arbeitsplan_sim
Auftrags Nr. Vorgang Arbeitsplatz Hauptzeit User Projekt Nr.
A_1
10
5
400.0
12
49
A_1
20
8
375.0
12
49
A_2
10
2
200.0
12
49
ID
1
2
3
FK
1
1
2
2
3
3
Vorgangsstart
Vorgangsende Projekt Szenario Nr.
01.01.2012 05:33 02.01.2012 03:48 49
0
02.01.2012 06:00 02.01.2012 16:40 49
1
02.01.2012 03:48 03.01.2012 00:40 49
0
02.01.2012 16:40 03.01.2012 13:31 49
1
31.12.2011 17:07 01.01.2012 22:13 49
0
03.01.2012 00:20 03.01.2012 05:20 49
1
User
12
12
12
12
12
12
Arbeitsplan
Auftragsnummer
A_1
A_1
A_1
A_1
A_2
A_2
Vorgang
10
10
20
20
10
10
Arbeitsplatz
5
5
8
8
2
2
Hauptzeit
400.0
400.0
375.0
375.0
200.0
200.0
User
12
12
12
12
12
12
Projektnummer
49
49
49
49
49
49
Vorgangsstart
01.01.2012 05:33
02.01.2012 06:00
02.01.2012 03:48
02.01.2012 16:40
31.12.2011 17:07
03.01.2012 00:20
Vorgangsende Szenario Nr.
02.01.2012 03:48
0
02.01.2012 16:40
1
03.01.2012 00:40
0
03.01.2012 13:31
1
01.01.2012 22:13
0
03.01.2012 05:20
1
Durch die Denormalisierung können viele Verbundoperationen eingespart werden
© WZL/Fraunhofer IPT
Seite 20
Agenda
1
Ziel der Arbeit
2
Grundlagen
3
Umsetzung
3.1 Wahl der Datenbank
3.2 Änderungen an der Struktur
3.3 Indizes
4
Ergebnis
5
Zusammenfassung und Ausblick
© WZL/Fraunhofer IPT
Seite 21
Indizes
Benutzer
Firmendatensätze
Simulierte Szenarien
Szenario
Szenario
Projekt
Szenario
User
Projekt
Szenario
Ein gruppierte Index mit den Spalten User-ID, Projekt-ID und Szenario-ID erscheint sinnvoll.
Weitere nicht gruppierte Indizes werden nicht benötigt.
© WZL/Fraunhofer IPT
Seite 22
Agenda
1
Ziel der Arbeit
2
Grundlagen
3
Umsetzung
4
Ergebnis
5
Zusammenfassung und Ausblick
© WZL/Fraunhofer IPT
Seite 23
Ergebnis der Arbeit
Wechsel zu Oracle
300
Gefüllte Datenbank
(50 Firmensätze)
⌀-Werte in Sekunden ⌀-Werte in Sekunden
250
in Sekunden
Leere Datenbank
200
150
100
50
0
Ausgangssituation
174 (100%)
242 (100%)
Oracle Datenbank
179 (102,87%)
247 (102,1%)
Durchschnitt
Standardabweichung
Der Wechsel zu einer Oracle Datenbank brachte keinen großen Unterschied.
Die Ergebnisse waren im Mittel sogar etwas schlechter als vorher.
© WZL/Fraunhofer IPT
Seite 24
Ergebnis der Arbeit
Wechsel zur neuen Datenbankstruktur
300
Gefüllte Datenbank
(50 Firmensätze)
⌀-Werte in Sekunden ⌀-Werte in Sekunden
250
in Sekunden
Leere Datenbank
200
150
100
50
0
Ausgangssituation
174 (100%)
242 (100%)
Veränderte Struktur
133 (76,44%)
162 (66,94%)
Durchschnitt
Standardabweichung
Die Veränderungen an der Datenbankstruktur ergaben eine Verbesserung von ca. 33%.
Außerdem ist die Standardabweichung niedriger.
© WZL/Fraunhofer IPT
Seite 25
Ergebnis der Arbeit
Veränderungen an der Indizierung
300
Gefüllte Datenbank
(50 Firmensätze)
⌀-Werte in Sekunden ⌀-Werte in Sekunden
250
in Sekunden
Leere Datenbank
200
150
100
50
0
Ausgangssituation
174 (130,83%)
242 (149,38%)
Veränderte Struktur
133 (100%)
162 (100%)
Veränderte
155(116,54%)
173 (106,8%)
Durchschnitt
Standardabweichung
Indizierung
Der Verwaltungsaufwand der Indizes ist deutlich messbar.
Mit steigender Datenmenge erhöht sich der Nutzen von Indizes.
© WZL/Fraunhofer IPT
Seite 26
Agenda
1
Ziel der Arbeit
2
Grundlagen
3
Umsetzung
4
Ergebnis
5
Zusammenfassung und Ausblick
© WZL/Fraunhofer IPT
Seite 27
Zusammenfassung und Ausblick
 Ein Wechsel zu einer Oracle Datenbank lohnt sich in unserem
Beispiel nicht.
 Da MySQL ebenfalls den Anforderungen entsprach, sollte es im
Anschluss ebenfalls getestet werden.
 Denormalisierung der Tabellen „Arbeitsplan“ und „Fauf“
beschleunigt den Vorgang. Dafür muss mehr auf die Konsistenz
geachtet werden.
 Mit der Indizierung waren die Messungen etwas langsamer.
Jedoch sollte es bei größeren Datenmengen schneller werden.
© WZL/Fraunhofer IPT
Seite 28
Herzlichen Dank!
Fabian Ripplinger
© WZL/Fraunhofer IPT
Quellen
http://use-the-index-luke.com/de/sql/anatomie/index-baum
http://cdn.flaticon.com/png/256/1829.png
http://cdns2.freepik.com/free-photo/slots-representing-configuration_318-9479.jpg
http://t3n.de/news/wp-content/uploads/2010/07/symbolbild-datenbank.jpg
http://www.downloadclipart.net/large/915-monitor-and-computer-design.png
© WZL/Fraunhofer IPT
Seite 30