Datenbanksysteme

Werbung
Datenbanksysteme
Vorlesung im SS '99
[Version vom 22. Juli 1999]
Oliver Vornberger
Praktische Informatik
Fachbereich Mathematik/Informatik
Universitat Osnabruck
2
Literatur
Date, C.J:
An Introduction to Database Systems,
Addison-Wesley, 6. Auage 1995.
Elmasri R. & S. Navathe:
Fundamentals of Database Systems ,
Benjamin/Cummings Publishing Company, 2. Auage 1994 (3. Auage erscheint Herbst
99).
Hamilton G., R. Cattell, M. Fisher:
JDBC. Datenbankzugri mit Java ,
Addison-Wesley, Bonn, 1998
Heuer, A. & G. Saake:
Datenbanken - Konzepte und Sprachen ,
International Thompson Publishing, 1. korrigierter Nachdruck 1997.
Kemper, A. & A. Eickler:
Datenbanksysteme - Eine Einfuhrung
Oldenbourg, 2. aktualisierte Auage 1997.
Schlager, G. & W. Stucky:
Datenbanksysteme: Konzepte und Modelle
Teubner Studienbuch Informatik, 2. Auage 1983
Silberschatz, A. & H.F. Korth & S. Sudarshan:
Database System Concepts,
Mc Graw-Hill, 1991.
Ullman, J. D.:
Principles of Data and Knowledge-Base Systems,
Computer Science Press, 1988.
Vossen, G.:
Datenmodelle, Datenbanksprachen und Datenbank-Management-Systeme,
Addison-Wesley, 2.aktualisierte Ausgabe 1994.
Die Vorlesung orientiert sich uberwiegend an dem Buch von Kemper/Eickler. Zahlreiche Beispiele und Graken wurden von dort u bernommen. 10 Exemplare sind in der Lehrbuchsammlung vorhanden (Standort: N-LB, Signatur: TWY/Kem).
HTML-Version
Der Inhalt dieser Vorlesung und die dazu gehorenden U bungsaufgaben konnen online abgerufen werden unter http://www-lehre.informatik.uni-osnabrueck.de/~dbs
3
Danksagung
Ich danke ...
:::
:::
:::
Frau Astrid Heinze fur sorgfaltiges Erfassen zahlreicher Texte, Graken und Tabellen.
den Studenten Ralf Kunze, Stefan Rauch und Benjamin Stark fur Installation und
Erprobung diverser Software-Beispiele.
Herrn Viktor Herzog fur die Konvertierung des Skripts nach HTML.
Osnabruck, im Juli 1999
(Oliver Vornberger)
4
Inhaltsverzeichnis
1 Einfuhrung
1.1
1.2
1.3
1.4
1.5
1.6
1.7
Denition . . . . . . .
Motivation . . . . . .
Datenabstraktion . . .
Transformationsregeln
Datenunabhangigkeit .
Modellierungskonzepte
Architektur . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
2 Konzeptuelle Modellierung
2.1
2.2
2.3
2.4
2.5
2.6
2.7
2.8
Das Entity-Relationship-Modell . . . . .
Schlussel . . . . . . . . . . . . . . . . . .
Charakterisierung von Beziehungstypen
Die (min, max)-Notation . . . . . . . . .
Existenzabhangige Entity-Typen . . . .
Generalisierung . . . . . . . . . . . . . .
Aggregation . . . . . . . . . . . . . . . .
Konsolidierung . . . . . . . . . . . . . .
3 Logische Datenmodelle
3.1
3.2
3.3
3.4
Das Hierarchische Datenmodell . .
Das Netzwerk-Datenmodell . . . .
Das Relationale Datenmodell . . .
Das Objektorientierte Datenmodell
.
.
.
.
.
.
.
.
4 Physikalische Datenorganisation
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
4.1 Grundlagen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
11
11
11
12
13
14
14
16
19
19
20
20
21
22
23
24
25
29
29
31
32
33
35
35
INHALTSVERZEICHNIS
6
4.2
4.3
4.4
4.5
4.6
4.7
Heap-File . . . . . . .
Hashing . . . . . . . .
Erweiterbares Hashing
ISAM . . . . . . . . .
B*-Baum . . . . . . .
Sekundar-Index . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
5 Mehrdimensionale Suchstrukturen
5.1
5.2
5.3
5.4
5.5
5.6
Problemstellung . . . . . . . . . . . . . . . .
k-d-Baum . . . . . . . . . . . . . . . . . . .
Gitterverfahren mit konstanter Gittergroe
Grid File . . . . . . . . . . . . . . . . . . .
Aufspalten und Mischen beim Grid File . .
Verwaltung geometrischer Objekte . . . . .
6 Das Relationale Modell
6.1
6.2
6.3
6.4
6.5
6.6
6.7
6.8
Denition . . . . . . . . . . . . . . . .
Umsetzung in ein relationales Schema
Verfeinerung des relationalen Schemas
Abfragesprachen . . . . . . . . . . . .
Relationenalgebra . . . . . . . . . . . .
Relationenkalkul . . . . . . . . . . . .
Der relationale Tupelkalkul . . . . . .
Der relationale Domanenkalkul . . . .
7 Relationale Anfragesprachen
7.1
7.2
7.3
7.4
7.5
7.6
7.7
7.8
7.9
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Oracle Datenbank . . . . . . . . . . . . . . . . . . . .
SQL . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Datentypen in Oracle . . . . . . . . . . . . . . . . . .
Schemadenition . . . . . . . . . . . . . . . . . . . . .
Aufbau einer SQL-Query zum Anfragen . . . . . . . .
SQL-Queries zum Anfragen . . . . . . . . . . . . . . .
SQL-Queries zum Einfugen, Modizieren und Loschen
SQL-Queries zum Anlegen von Sichten . . . . . . . . .
Query by Example . . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
37
37
40
41
44
48
49
49
50
53
53
54
58
61
61
62
63
67
67
72
73
73
75
75
76
77
77
78
79
85
85
87
INHALTSVERZEICHNIS
7
8 Datenintegritat
8.1
8.2
8.3
8.4
8.5
Grundlagen . . . . . . . . . . .
Referentielle Integritat . . . . .
Referentielle Integritat in SQL
Statische Integritat in SQL . .
Trigger . . . . . . . . . . . . . .
9 Datenbankapplikationen
9.1
9.2
9.3
9.4
9.5
MS-Access . . . .
PL/SQL . . . . .
Embedded SQL .
JDBC . . . . . .
Cold Fusion . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
10 Relationale Entwurfstheorie
10.1
10.2
10.3
10.4
10.5
10.6
10.7
10.8
Funktionale Abhangigkeiten . . . . . . . .
Schlussel . . . . . . . . . . . . . . . . . . .
Bestimmung funktionaler Abhangigkeiten
Schlechte Relationenschemata . . . . . . .
Zerlegung von Relationen . . . . . . . . .
Erste Normalform . . . . . . . . . . . . .
Zweite Normalform . . . . . . . . . . . . .
Dritte Normalform . . . . . . . . . . . . .
11 Transaktionsverwaltung
11.1
11.2
11.3
11.4
11.5
11.6
Begrie . . . . . . . . . . . . . . . . .
Operationen auf Transaktionsebene . .
Abschlu einer Transaktion . . . . . .
Eigenschaften von Transaktionen . . .
Transaktionsverwaltung in SQL . . . .
Zustandsubergange einer Transaktion
12 Mehrbenutzersynchronisation
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
89
89
89
90
92
94
95
. 95
. 97
. 99
. 104
. 111
.
.
.
.
.
.
.
.
.
.
.
.
.
.
127
127
128
129
132
132
134
135
136
139
139
139
140
140
140
141
143
12.1 Multiprogramming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
12.2 Fehler bei unkontrolliertem Mehrbenutzerbetrieb . . . . . . . . . . . . . . . . 143
12.2.1 Lost Update . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
INHALTSVERZEICHNIS
8
12.3
12.4
12.5
12.6
12.7
12.8
12.9
12.2.2 Dirty Read . . . . . . . . . . . . . . . .
12.2.3 Phantomproblem . . . . . . . . . . . . .
Serialisierbarkeit . . . . . . . . . . . . . . . . .
Theorie der Serialisierbarkeit . . . . . . . . . .
Algorithmus zum Testen auf Serialisierbarkeit:
Sperrbasierte Synchronisation . . . . . . . . . .
Verklemmungen (Deadlocks) . . . . . . . . . . .
Hierarchische Sperrgranulate . . . . . . . . . .
Zeitstempelverfahren . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
13 Recovery
13.1 Fehlerklassen . . . . . . . . . . . . . . . . . . . .
13.1.1 Lokaler Fehler einer Transaktion . . . . .
13.1.2 Fehler mit Hauptspeicherverlust . . . . .
13.1.3 Fehler mit Hintergrundspeicherverlust . .
13.2 Die Speicherhierarchie . . . . . . . . . . . . . . .
13.2.1 Ersetzen von Puerseiten . . . . . . . . .
13.2.2 Zuruckschreiben von Puerseiten . . . . .
13.2.3 Einbringstrategie . . . . . . . . . . . . . .
13.3 Protokollierung der A nderungsoperationen . . . .
13.3.1 Struktur der Log-Eintrage . . . . . . . . .
13.3.2 Beispiel einer Log-Datei . . . . . . . . . .
13.3.3 Logische versus physische Protokollierung
13.3.4 Schreiben der Log-Information . . . . . .
13.3.5 WAL-Prinzip . . . . . . . . . . . . . . . .
13.4 Wiederanlauf nach einem Fehler . . . . . . . . .
13.5 Lokales Zurucksetzen einer Transaktion . . . . .
13.6 Sicherungspunkte . . . . . . . . . . . . . . . . . .
13.7 Verlust der materialisierten Datenbasis . . . . . .
14 Sicherheit
14.1
14.2
14.3
14.4
Legislative Manahmen . . .
Organisatorische Manahmen
Authentisierung . . . . . . . .
Zugriskontrolle . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
144
144
145
147
148
150
152
153
156
159
159
159
159
160
161
161
161
162
162
162
163
163
164
164
165
166
167
167
169
169
169
170
170
INHALTSVERZEICHNIS
9
14.5 Auditing . . . . . . . . . . . . . . . . . . . .
14.6 Kryptographie . . . . . . . . . . . . . . . .
14.6.1 Public Key Systems . . . . . . . . .
14.6.2 Das RSA-Verfahren . . . . . . . . .
14.6.3 Korrektheit des RSA-Verfahrens . .
14.6.4 Ezienz des RSA-Verfahrens . . . .
14.6.5 Sicherheit des RSA-Verfahrens . . .
14.6.6 Implementation des RSA-Verfahrens
14.6.7 Anwendungen des RSA-Verfahrens .
15 Objektorientierte Datenbanken
15.1 Schwachen relationaler Systeme . . . . . . .
15.2 Vorteile der objektorientierten Modellierung
15.3 Der ODMG-Standard . . . . . . . . . . . .
15.4 Eigenschaften von Objekten . . . . . . . . .
15.5 Denition von Attributen . . . . . . . . . .
15.6 Denition von Beziehungen . . . . . . . . .
15.7 Extensionen und Schlussel . . . . . . . . . .
15.8 Modellierung des Verhaltens . . . . . . . . .
15.9 Vererbung . . . . . . . . . . . . . . . . . . .
15.10Beispiel einer Typhierarchie . . . . . . . . .
15.11Verfeinerung und spates Binden . . . . . . .
15.12Mehrfachvererbung . . . . . . . . . . . . . .
15.13Die Anfragesprache OQL . . . . . . . . . .
15.14C++-Einbettung . . . . . . . . . . . . . . .
16 Data Warehouse
16.1
16.2
16.3
16.4
16.5
16.6
16.7
Datenbankentwurf fur Data Warehouse .
Star Join . . . . . . . . . . . . . . . . .
Roll-Up/Drill-Down-Anfragen . . . . . .
Materialisierung von Aggregaten . . . .
Der Cube-Operator . . . . . . . . . . . .
Data Warehouse-Architekturen . . . . .
Data Mining . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
172
173
174
174
174
175
177
177
178
179
179
181
182
182
183
184
188
188
189
191
193
194
195
197
201
202
204
204
206
207
208
208
10
INHALTSVERZEICHNIS
Herunterladen