Taschenbuch Datenbanken
von: Thomas Kudraß
Carl Hanser Fachbuchverlag, 2015
ISBN: 9783446440265
Sprache: Deutsch
576 Seiten, Download: 10515 KB
Format: PDF, auch als Online-Lesen
Taschenbuch Datenbanken | 7 | ||
1 Datenbanken: Grundlagen und Überblick | 23 | ||
1.1 Dateien und Dateisysteme | 23 | ||
1.2 Terminologie | 24 | ||
1.3 Merkmale eines DBMS | 27 | ||
1.3.1 Aufgaben eines DBMS | 27 | ||
1.3.2 Vorteile des Datenbankeinsatzes | 28 | ||
1.3.3 Nachteile von Datenbanksystemen | 29 | ||
1.3.4 Produkte | 29 | ||
1.4 Architektur eines Datenbanksystems | 30 | ||
1.4.1 Architekturen | 30 | ||
1.4.2 Schemaarchitektur | 31 | ||
1.4.2.1 Datenbankschema | 31 | ||
1.4.2.2 Drei-Ebenen-Architektur | 32 | ||
1.4.3 Datenunabhängigkeit | 33 | ||
1.5 Benutzerrollen bei Entwurf und Betrieb von Datenbanken | 34 | ||
1.6 Datenbanken und Informationssysteme | 36 | ||
1.7 Fachgebiet Datenbanken im Überblick | 37 | ||
1.7.1 Themenbereiche und Zusammenhänge | 37 | ||
1.7.2 Einordnung des Fachs innerhalb der Informatik | 39 | ||
1.8 Historische Entwicklung | 41 | ||
1.8.1 Frühzeit | 42 | ||
1.8.2 Prärelationale DBMS | 42 | ||
1.8.3 Durchbruch der relationalen Datenbanken | 43 | ||
1.8.4 Neue Anwendungsfelder für Datenbanken | 44 | ||
1.8.5 Neuzeit | 44 | ||
1.9 Datenbanken in der Forschung | 45 | ||
1.9.1 Fachverbände | 45 | ||
1.9.2 Aktuelle Forschungstrends | 46 | ||
2 Informationsmodellierung | 48 | ||
2.1 Datenbankentwurf | 48 | ||
2.1.1 Phasenmodell | 48 | ||
2.1.2 Anforderungsanalyse | 49 | ||
2.1.3 Konzeptioneller Entwurf | 50 | ||
2.1.4 Logischer Entwurf | 51 | ||
2.1.5 Datendefinition | 52 | ||
2.1.6 Physischer Entwurf | 53 | ||
2.1.7 Implementierung und Wartung | 53 | ||
2.2 Grundlagen des Entity-Relationship-Modells (ERM) | 53 | ||
2.2.1 Semantische Datenmodelle | 54 | ||
2.2.2 Grundkonzepte des klassischen ERM | 54 | ||
2.2.2.1 Konzepte auf der Instanzebene | 55 | ||
2.2.2.2 Konzepte auf der Typebene | 56 | ||
2.2.2.3 Rollenmodellierung | 57 | ||
2.2.3 Kardinalitäten von Beziehungstypen | 58 | ||
2.2.3.1 Kardinalitäten im klassischen ERM | 58 | ||
2.2.3.2 Intervalle und Komplexitätsgrade | 58 | ||
2.2.4 Existenzabhängigkeit vs. Optionalität | 59 | ||
2.2.5 Rekursive und n-äre Beziehungstypen | 60 | ||
2.2.5.1 Rekursive Beziehungstypen | 60 | ||
2.2.5.2 N-äre Beziehungstypen | 61 | ||
2.2.6 Attribute | 62 | ||
2.2.7 Modellierungsbeispiel | 63 | ||
2.3 Erweiterungen des ERM | 64 | ||
2.3.1 Erweiterungen bei Attributen | 64 | ||
2.3.2 Generalisierung und Spezialisierung | 65 | ||
2.3.3 Aggregation | 68 | ||
2.3.4 Modellierung zeitlicher Aspekte | 69 | ||
3 Relationales Datenmodell | 71 | ||
3.1 Konzepte und Grundbegriffe des relationalen Datenmodells | 71 | ||
3.1.1 Relationen, Tupel, Attribute und Wertebereiche | 71 | ||
3.1.2 Eigenschaften von Relationen | 73 | ||
3.2 Integritätsbedingungen | 74 | ||
3.2.1 Grundbegriffe | 74 | ||
3.2.2 Entitätsintegrität | 75 | ||
3.2.3 Referenzielle Integrität | 75 | ||
3.2.3.1 Begriff | 75 | ||
3.2.3.2 Regeln für Fremdschlüssel | 76 | ||
3.2.3.3 Gewährleistung der referenziellen Integrität bei kritischen DML-Operationen | 77 | ||
3.3 Abbildung des EERM auf das relationale Datenmodell | 79 | ||
3.3.1 Problemstellung | 79 | ||
3.3.2 Abbildungsregeln für Attribute und Entitytypen | 79 | ||
3.3.3 Abbildungsregeln für Beziehungstypen | 80 | ||
3.3.4 Abbildungsregeln für die Generalisierung | 83 | ||
3.4 Optimierung von Relationen | 84 | ||
3.4.1 Problemstellung | 84 | ||
3.4.2 Anomalien bei DML-Operationen auf Relationen | 85 | ||
3.4.3 Abhängigkeiten | 86 | ||
3.4.3.1 Funktionale Abhängigkeiten | 86 | ||
3.4.3.2 Mehrwertige Abhängigkeiten | 87 | ||
3.4.4 Verbundtreue und Abhängigkeitstreue | 88 | ||
3.4.5 Normalformenlehre | 89 | ||
3.4.5.1 Erste Normalform (1NF) | 89 | ||
3.4.5.2 Zweite Normalform (2NF) | 90 | ||
3.4.5.3 Dritte Normalform (3NF) | 91 | ||
3.4.5.4 Boyce-Codd-Normalform (BCNF) | 92 | ||
3.4.5.5 Vierte Normalform (4NF) | 93 | ||
3.4.5.6 Fünfte Normalform (5NF) | 94 | ||
3.4.5.7 Denormalisierung | 96 | ||
3.5 Operationen der Relationenalgebra | 96 | ||
3.5.1 Einführung | 96 | ||
3.5.2 Relationenorientierte Operationen | 97 | ||
3.5.3 Mengenoperationen | 99 | ||
3.5.4 Relationenalgebra und relationale Sprachen | 100 | ||
3.5.5 Relationenkalkül | 101 | ||
4 Die Datenbanksprache SQL | 103 | ||
4.1 Grundkonzepte | 103 | ||
4.2 Historie | 105 | ||
4.3 Spezifikationsdokumente | 106 | ||
4.4 Beispieldatenbank | 107 | ||
4.5 Datenbankanfragen | 107 | ||
4.5.1 Einführende Beispielanfragen | 108 | ||
4.5.2 Grundgerüst von Anfragen | 109 | ||
4.5.3 Anfragen mit Aggregatfunktionen | 111 | ||
4.5.4 Anfragen mit Tabellenfunktionen | 112 | ||
4.5.5 Anfragen mit Mengenoperationen | 112 | ||
4.5.6 Anfragen mit Verbundoperationen | 114 | ||
4.5.7 Verschachtelte Anfragen | 116 | ||
4.5.8 Rekursive Anfragen | 118 | ||
4.5.9 Anfragen mit sortierter Ausgabe | 119 | ||
4.6 Datenmanipulation | 120 | ||
4.6.1 Einfügen von Tabellenzeilen | 120 | ||
4.6.2 Ändern von Tabellenzeilen | 121 | ||
4.6.3 Löschen von Tabellenzeilen | 122 | ||
4.6.4 Zusammenführen von Tabellenzeilen | 122 | ||
4.7 Datendefinition | 123 | ||
4.7.1 SQL-Datentypen | 123 | ||
4.7.2 Erzeugen und Löschen von Schemata | 128 | ||
4.7.3 Erzeugen, Ändern und Löschen von Tabellen | 128 | ||
4.7.4 Erzeugen und Löschen von Domänen | 131 | ||
4.7.5 Erzeugen und Löschen von Integritätsbedingungen | 132 | ||
4.7.6 Erzeugen und Löschen von Sichten | 134 | ||
4.7.7 Erzeugen und Löschen von Routinen | 135 | ||
4.7.7.1 Prozedurale SQL-Konstrukte | 135 | ||
4.7.7.2 Erzeugen von SQL-Routinen | 139 | ||
4.7.7.3 Erzeugen von externen Routinen | 140 | ||
4.7.7.4 Löschen von Routinen | 140 | ||
4.7.8 Erzeugen und Löschen von Triggern | 141 | ||
4.7.9 Erzeugen und Löschen von Sequenzgeneratoren | 142 | ||
4.8 Transaktionssteuerung | 142 | ||
4.8.1 Transaktionsanweisungen | 143 | ||
4.8.2 Isolationsebenen | 144 | ||
4.8.3 Überprüfung von Integritätsbedingungen | 145 | ||
4.9 Zugriffskontrolle | 145 | ||
4.9.1 Vergabe von Zugriffsrechten | 145 | ||
4.9.2 Zurücknahme von Zugriffsrechten | 147 | ||
4.9.3 Erzeugen und Löschen von Rollen | 147 | ||
5 Datenbank-Anwendungsprogrammierung | 148 | ||
5.1 Grundlagen der Datenbank-Anwendungsprogrammierung | 148 | ||
5.1.1 Impedance Mismatch | 148 | ||
5.1.2 Einbettungstechniken | 149 | ||
5.1.3 Einbettungsarten | 149 | ||
5.1.3.1 Statische Programmierspracheneinbettung | 149 | ||
5.1.3.2 Dynamische Programmierspracheneinbettung | 150 | ||
5.1.4 Architekturansätze | 151 | ||
5.1.4.1 Fat-Client-Architektur | 152 | ||
5.1.4.2 Thin-Client-Architektur | 152 | ||
5.1.4.3 Thin-Client-Architektur mit Applikationsserver | 154 | ||
5.2 Embedded SQL | 155 | ||
5.2.1 Grundidee und Architektur | 155 | ||
5.2.2 Syntax | 156 | ||
5.2.3 Host-Variablen | 156 | ||
5.2.4 Das Cursor-Konzept | 156 | ||
5.2.5 Statische Einbettung | 158 | ||
5.2.6 Dynamische Einbettung | 159 | ||
5.2.7 Indikatorvariablen | 160 | ||
5.2.8 SQLJ | 160 | ||
5.3 Aufrufschnittstellen | 162 | ||
5.3.1 Überblick | 162 | ||
5.3.2 SQL/CLI | 162 | ||
5.3.3 JDBC | 164 | ||
5.3.3.1 Treibertypen | 165 | ||
5.3.3.2 Verbindung aufbauen | 165 | ||
5.3.3.3 Verbindung schließen | 167 | ||
5.3.3.4 Transaktionen | 167 | ||
5.3.3.5 Leseanweisungen – das ResultSet | 168 | ||
5.3.3.6 Änderungen | 169 | ||
5.3.3.7 Zugriff auf Metadaten | 171 | ||
5.4 Relationale Datenbankprogrammiersprachen | 172 | ||
5.4.1 Datenbankinterne Ansätze | 172 | ||
5.4.1.1 SQL/PSM | 172 | ||
5.4.1.2 Benutzerdefinierte Routinen | 173 | ||
5.4.1.3 Trigger | 174 | ||
5.4.2 4GL-Programmiersprachen | 178 | ||
5.4.2.1 Überblick | 178 | ||
5.4.2.2 Beispiel: ABAP | 178 | ||
5.5 Objektrelationale Abbildung | 181 | ||
5.5.1 Java Persistence API (JPA) | 183 | ||
5.5.1.1 Schemaabbildung | 184 | ||
5.5.1.2 Datenzugriff | 185 | ||
5.5.1.3 Formulieren von Anfragen | 187 | ||
5.5.2 JDO – Java Data Objects | 188 | ||
5.5.3 Entity Beans | 192 | ||
6 Datenbanken im Web | 193 | ||
6.1 Grundlagen des Web | 193 | ||
6.2 Eigenschaften von Webanwendungen | 195 | ||
6.2.1 Anforderungen | 196 | ||
6.2.2 Webseiten | 196 | ||
6.2.3 Dynamische Webseiten | 199 | ||
6.2.4 Adressierung | 201 | ||
6.2.5 Kommunikation | 202 | ||
6.3 Datenbankanbindung im Web | 204 | ||
6.3.1 Architekturen | 205 | ||
6.3.2 Programmierung | 206 | ||
6.3.3 Überblick | 208 | ||
6.4 Datenbankanbindung über Datenexport | 210 | ||
6.5 Clientseitige Datenbankanbindung | 210 | ||
6.5.1 Skripteinbettung | 211 | ||
6.5.2 Programmeinbettung | 213 | ||
6.5.3 Weitere Techniken | 216 | ||
6.6 Serverseitige Datenbankanbindung | 216 | ||
6.6.1 Webseitengeneratoren | 216 | ||
6.6.2 Skripteinbettung | 219 | ||
6.6.3 Programmeinbettung | 223 | ||
6.6.4 Applikationsserver | 225 | ||
6.6.5 Webservices | 227 | ||
7 Komponenten eines Datenbankmanagementsystems | 231 | ||
7.1 Architektur von DBMS | 231 | ||
7.1.1 Schichtenmodell | 231 | ||
7.1.2 Prozessarchitektur | 233 | ||
7.2 Pufferverwaltung | 234 | ||
7.2.1 Notwendigkeit und Aufgabe | 235 | ||
7.2.2 Speicherzuteilung | 236 | ||
7.2.3 Seitenersetzung | 237 | ||
7.3 Speicher- und Zugriffssystem | 238 | ||
7.3.1 Aufgabe | 239 | ||
7.3.2 Seiten und Sätze | 239 | ||
7.3.3 Adressierung von Sätzen | 241 | ||
7.4 Anfrageprozessor | 242 | ||
7.4.1 Basisoperatoren | 242 | ||
7.4.1.1 Unäre Operatoren | 243 | ||
7.4.1.2 Binäre Operatoren | 245 | ||
7.4.2 Anfrageplanung und -optimierung | 246 | ||
7.4.3 Kosten und Statistiken | 251 | ||
7.5 Transaktionsverwaltung | 253 | ||
7.5.1 Aufgabe | 253 | ||
7.5.2 Serialisierbarkeit | 255 | ||
7.5.3 Sperrverfahren | 257 | ||
7.5.4 Nicht sperrende Verfahren | 261 | ||
7.6 Recovery | 263 | ||
7.6.1 Fehlerklassen | 263 | ||
7.6.2 Recovery-Strategien | 264 | ||
7.6.3 Logging | 265 | ||
7.6.4 Wiederanlauf im Fehlerfall | 268 | ||
7.6.5 Schattenspeicherverfahren | 270 | ||
7.7 Datenbanktechniken für moderne Hardware-Architekturen | 270 | ||
8 Dateiorganisation und Indexe | 273 | ||
8.1 Organisation von Dateien | 273 | ||
8.1.1 Formen der Dateiorganisation | 273 | ||
8.1.2 Dateiorganisationsformen im Vergleich | 273 | ||
8.1.2.1 Basisoperationen | 274 | ||
8.1.2.2 Kosten | 274 | ||
8.2 Zugriffsstrukturen | 275 | ||
8.2.1 Grundlagen von Zugriffsverfahren | 275 | ||
8.2.2 Eigenschaften von Indexen | 276 | ||
8.3 Baumbasierte Verfahren | 278 | ||
8.3.1 ISAM-Bäume | 278 | ||
8.3.2 Balancierte Mehrwegbäume | 279 | ||
8.3.3 Digitale Bäume | 281 | ||
8.4 Hash-Verfahren | 282 | ||
8.4.1 Prinzip des Hashing | 282 | ||
8.4.2 Erweiterbares Hashing | 283 | ||
8.4.3 Weitere Hash-Verfahren | 284 | ||
8.5 Mehrdimensionale Zugriffsverfahren | 285 | ||
8.5.1 Mehrdimensionale Baumverfahren | 285 | ||
8.5.2 Grid-File | 285 | ||
8.6 Clusterung und Partitionierung | 287 | ||
8.6.1 Clusterung | 287 | ||
8.6.2 Partitionierung | 287 | ||
8.7 Umsetzung in SQL-Systemen | 288 | ||
8.7.1 Definition von Tabellen | 289 | ||
8.7.2 Definition von Indexen | 289 | ||
9 Optimierung von Datenbanken und Leistungsbewertung | 291 | ||
9.1 Motivation der Datenbankoptimierung | 291 | ||
9.1.1 Kosten von Datenbankanfragen | 292 | ||
9.1.2 Optimierungspotenzial | 293 | ||
9.1.3 Zielbestimmung der Datenbankoptimierung | 294 | ||
9.2 Phasen der Datenbankoptimierung | 296 | ||
9.3 Phase 1.1 – Optimierung des Datenbankschemas | 297 | ||
9.3.1 Konzeptuelles Schema | 298 | ||
9.3.1.1 Attribute | 298 | ||
9.3.1.2 Tabellen | 298 | ||
9.3.1.3 Redundanz | 300 | ||
9.3.2 Externes Schema | 301 | ||
9.3.2.1 Sichten | 302 | ||
9.3.2.2 Prozedurale SQL-Erweiterungen | 302 | ||
9.3.3 Internes Schema | 302 | ||
9.3.3.1 Materialisierte Sichten | 302 | ||
9.3.3.2 Zugriffspfadstrukturen | 303 | ||
9.4 Phase 1.2 – Anwendungsoptimierung | 305 | ||
9.4.1 Optimierung von Unternehmensfunktionen | 305 | ||
9.4.2 Optimierung der Anwendung | 305 | ||
9.4.3 Optimierungen im Mehrbenutzerbetrieb | 306 | ||
9.4.4 Formulierung von SQL-Anweisungen | 308 | ||
9.5 Phase 2 – Hauptspeicheroptimierung | 310 | ||
9.5.1 Gestaltung des Datenbankpuffers | 310 | ||
9.5.1.1 Komponenten des Datenbankpuffers | 311 | ||
9.5.1.2 Größe des Datenbankpuffers | 312 | ||
9.5.1.3 Blockfüllgrad | 312 | ||
9.5.2 Schreiben des Datenbankpuffers | 313 | ||
9.5.2.1 Sicherungspunkt-Intervalle | 313 | ||
9.5.2.2 Protokolldatei | 314 | ||
9.5.3 Optimierer | 314 | ||
9.5.3.1 Statistiken | 315 | ||
9.5.3.2 Planhinweise (Hints) | 315 | ||
9.6 Phase 3 – Optimierung der Sekundärspeicherzugriffe | 316 | ||
9.6.1 Zusammenspiel mit dem Betriebssystem | 316 | ||
9.6.2 Verteilung der Eingabe-/Ausgabelast | 317 | ||
9.6.2.1 Verteilung der Daten- und Indexdateien | 317 | ||
9.6.2.2 Verteilung der Daten | 317 | ||
9.6.2.3 Verteilung der Protokolldatei | 318 | ||
9.6.2.4 RAID-Level | 318 | ||
9.6.3 Optimierung physischer Speicherstrukturen | 319 | ||
9.6.3.1 Blockgröße | 319 | ||
9.6.3.2 Cluster-Techniken | 320 | ||
9.6.3.3 Kompressions-Techniken | 321 | ||
9.6.3.4 Reorganisation | 321 | ||
9.7 Leistungsbewertung | 322 | ||
9.7.1 Transaction Processing Performance Council | 323 | ||
9.7.2 Vergleichbarkeit der Benchmark-Ergebnisse | 324 | ||
10 Objektrelationale Datenbanken | 326 | ||
10.1 Objektorientierte Konzepte | 326 | ||
10.1.1 Objekte | 326 | ||
10.1.2 Methoden | 327 | ||
10.1.3 Kapselung | 327 | ||
10.1.4 Objektidentität | 327 | ||
10.1.5 Klassen | 328 | ||
10.1.6 Spezialisierung | 329 | ||
10.2 Objektorientierung in Datenbanken | 330 | ||
10.3 Objektrelationale Standard-SQL-Konzepte | 331 | ||
10.3.1 Typkonstruktoren | 332 | ||
10.3.2 Distinct-Typen | 334 | ||
10.3.3 Strukturierte Typen | 334 | ||
10.3.4 Methoden | 337 | ||
10.3.5 Benutzerdefinierte Konstruktoren | 339 | ||
10.3.6 Benutzerdefinierte Casts | 340 | ||
10.3.7 Benutzerdefinierte Ordnungen | 341 | ||
10.3.8 Typisierte Tabellen | 342 | ||
10.3.9 Typisierte Sichten | 343 | ||
10.4 Objektrelationale Anfragen | 345 | ||
10.4.1 Anfragen auf Kollektionen | 345 | ||
10.4.2 Anfragen mit Pfadausdrücken | 346 | ||
10.4.3 Anfragen mit Methodenaufrufen | 346 | ||
10.4.4 Anfragen auf flachen Tabellenextensionen | 347 | ||
10.4.5 Typspezifische Anfragen | 347 | ||
10.4.6 Anfragen mit temporärer Typanpassung | 347 | ||
11 XML und Datenbanken | 349 | ||
11.1 Überblick über XML | 349 | ||
11.1.1 Der XML-Standard und verwandte Standards | 349 | ||
11.1.2 XML Schema | 351 | ||
11.2 Anfragesprachen für XML | 354 | ||
11.2.1 Pfadausdrücke (XPath und XQuery) | 355 | ||
11.2.2 XQuery | 356 | ||
11.3 XML und relationale Datenbanksysteme | 360 | ||
11.3.1 Relationale Speicherung von XML | 360 | ||
11.3.2 SQL/XML | 362 | ||
11.3.3 Realisierung in kommerziellen Systemen | 365 | ||
11.4 Reine XML-Datenbanksysteme | 370 | ||
12 NoSQL-Datenbanksysteme | 372 | ||
12.1 Motivation und Grundbegriffe | 372 | ||
12.2 Klassifikation | 373 | ||
12.2.1 Key-Value-Datenbanksysteme | 374 | ||
12.2.1.1 Datenmodell und Schema | 374 | ||
12.2.1.2 Anfragen und Datenmanipulation | 375 | ||
12.2.1.3 Einsatzbereiche und Systeme | 375 | ||
12.2.2 Dokumentenorientierte Datenbanksysteme | 376 | ||
12.2.2.1 Datenmodell und Schema | 376 | ||
12.2.2.2 Anfragen und Datenmanipulation | 377 | ||
12.2.2.3 Einsatzbereiche und Systeme | 378 | ||
12.2.3 Column-Family-Datenbanksysteme | 378 | ||
12.2.3.1 Datenmodell und Schema | 378 | ||
12.2.3.2 Anfragen und Datenmanipulation | 381 | ||
12.2.3.3 Einsatzbereiche und Systeme | 381 | ||
12.2.4 Weitere NoSQL-Datenbanksysteme | 382 | ||
12.3 Datenmodellierung | 382 | ||
12.3.1 Generelle Aspekte der Datenmodellierung in NoSQL-Datenbanksystemen | 382 | ||
12.3.2 Datenmodellierung für dokumentenorientierte Datenbanken | 384 | ||
12.3.3 Datenmodellierung für Column-Family-Datenbanken | 386 | ||
12.3.3.1 Eingebettete Speicherung in Column-Family-Daten-banksystemen | 386 | ||
12.3.3.2 Spaltenfamilien | 388 | ||
12.3.4 Datenmodellierung für Key-Value-Datenbanken | 389 | ||
12.4 Anwendungsentwicklung mit NoSQL-Datenbanksystemen | 389 | ||
12.4.1 MapReduce | 390 | ||
12.4.1.1 MapReduce-Prinzip | 391 | ||
12.4.1.2 MapReduce-Beispiel | 392 | ||
12.4.1.3 MapReduce-Frameworks | 393 | ||
12.4.1.4 MapReduce-Trends | 393 | ||
12.4.2 Schema-Management | 393 | ||
12.5 Skalierbarkeit, Verfügbarkeit und Konsistenz | 394 | ||
12.6 Auswahl eines geeigneten Datenbanksystems | 396 | ||
12.6.1 Kriterienkatalog | 396 | ||
12.6.2 Performance | 396 | ||
12.6.3 Polyglotte Persistenz | 397 | ||
13 Verteilte und föderierte Datenbanksysteme | 398 | ||
13.1 Überblick, Grundbegriffe, Abgrenzung | 398 | ||
13.1.1 Verteilte vs. parallele Datenbanksysteme | 399 | ||
13.1.2 Verteilte vs. föderierte Datenbanksysteme | 401 | ||
13.2 Schemaarchitektur und Entwurf verteilter Datenbanksysteme | 404 | ||
13.3 Fragmentierung | 405 | ||
13.3.1 Horizontale Fragmentierung | 405 | ||
13.3.2 Vertikale Fragmentierung | 407 | ||
13.3.3 Kombinierte Fragmentierung | 407 | ||
13.4 Verteilungstransparenz | 408 | ||
13.4.1 Vorteile verteilter Datenbanksysteme | 408 | ||
13.4.2 Transparenzeigenschaften verteilter Datenbanksysteme | 408 | ||
13.5 Verteilte Anfrageverarbeitung | 409 | ||
13.5.1 Datenlokalisierung | 411 | ||
13.5.2 Globale Optimierung der Join-Auswertung | 413 | ||
13.6 Transaktionsverwaltung in verteilten Datenbanksystemen | 416 | ||
13.6.1 Koordination | 416 | ||
13.6.2 Synchronisation | 418 | ||
13.6.3 Deadlock-Behandung | 419 | ||
13.6.4 Synchronisation bei Replikation | 420 | ||
13.7 Föderierte Datenbanksysteme | 421 | ||
13.7.1 Autonomie und Heterogenität | 422 | ||
13.7.2 Architektur föderierter DBS | 423 | ||
13.7.3 Integrationsprozess | 424 | ||
13.7.4 Anfrageverarbeitung in föderierten DBS | 425 | ||
13.7.5 Synchronisation in föderierten DBS | 426 | ||
13.8 Cloud-Datenbanken | 427 | ||
13.8.1 Cloud Data Management und Big Data | 427 | ||
13.8.2 Das CAP-Theorem | 428 | ||
13.8.3 Database as a Service (DBaaS) | 429 | ||
13.8.4 Skalierbarkeit und Verfügbarkeit | 430 | ||
13.9 Trends | 432 | ||
14 Data Warehouse | 434 | ||
14.1 Architektur | 434 | ||
14.1.1 Datenquellen | 434 | ||
14.1.2 Back-End-Bereich | 434 | ||
14.1.2.1 Monitore | 435 | ||
14.1.2.2 Extraktionskomponenten | 436 | ||
14.1.2.3 Transformationskomponente | 437 | ||
14.1.2.4 Ladekomponente | 438 | ||
14.1.3 Datenbank | 438 | ||
14.1.3.1 Data Warehouse | 438 | ||
14.1.3.2 Data Marts | 440 | ||
14.1.3.3 Archiv-Datenbank | 441 | ||
14.1.4 Front-End-Werkzeuge | 441 | ||
14.1.4.1 Berichts- und Anfragewerkzeuge | 441 | ||
14.1.4.2 OLAP-Werkzeuge | 442 | ||
14.1.4.3 Data-Mining-Werkzeuge | 442 | ||
14.1.4.4 Sonstige Front-End-Werkzeuge | 442 | ||
14.1.5 Sonstige Werkzeuge | 443 | ||
14.1.5.1 DWS-Manager | 443 | ||
14.1.5.2 Metadaten-Repository | 443 | ||
14.2 Multidimensionale Datenmodelle | 444 | ||
14.2.1 Statische Aspekte | 444 | ||
14.2.2 Dynamische Aspekte | 448 | ||
14.3 Speicherung und Schemagestaltung | 450 | ||
14.3.1 Relationale Speicherung | 450 | ||
14.3.2 Multidimensionale Speicherung | 451 | ||
14.3.3 Spaltenorientierte Speicherung | 452 | ||
14.4 Erweiterung relationaler Datenbanken | 455 | ||
14.4.1 Materialisierte Sichten | 456 | ||
14.4.2 Partitionierung | 457 | ||
14.4.3 Bitmap-Index | 459 | ||
14.4.4 SQL-Erweiterungen zum Einfügen | 460 | ||
14.4.5 Komplexes Gruppieren | 461 | ||
14.4.6 Star Query | 462 | ||
14.4.7 Bulk Loader | 464 | ||
15 Data Mining | 465 | ||
15.1 KDD-Prozess | 465 | ||
15.2 Clustering | 466 | ||
15.2.1 Definition und Beispiele | 466 | ||
15.2.2 Anforderungen und Probleme | 467 | ||
15.2.3 Verfahren | 467 | ||
15.2.3.1 Partitionierende Verfahren | 468 | ||
15.2.3.2 Hierarchische Verfahren | 469 | ||
15.2.3.3 Dichtebasierte Methoden | 472 | ||
15.3 Assoziationsanalyse | 472 | ||
15.3.1 Definition und Beispiel | 472 | ||
15.3.2 Anforderungen und Probleme | 472 | ||
15.3.3 Verfahren | 473 | ||
15.4 Klassifikation | 476 | ||
15.4.1 Definition und Beispiele | 476 | ||
15.4.2 Anforderungen | 476 | ||
15.4.3 Verfahren | 477 | ||
15.4.3.1 Entscheidungsbaum-Klassifikatoren | 477 | ||
15.4.3.2 Regelbasierte Klassifikatoren | 477 | ||
15.4.3.3 Weitere Verfahren | 478 | ||
15.5 Anomalieentdeckung | 478 | ||
15.5.1 Definition und Beispiele | 478 | ||
15.5.2 Anforderungen und Probleme | 479 | ||
15.5.3 Verfahren | 479 | ||
15.5.3.1 Grafische und statistikbasierte Verfahren | 480 | ||
15.5.3.2 Distanzbasierte Ansätze | 480 | ||
16 Multimedia-Datenbanken | 482 | ||
16.1 Einführung | 482 | ||
16.2 Mediendaten | 486 | ||
16.3 Suche nach Mediendaten | 489 | ||
16.3.1 Textsuche | 489 | ||
16.3.2 Bildsuche | 491 | ||
16.3.3 Audiosuche | 492 | ||
16.3.4 Videosuche | 493 | ||
16.4 Mediendatentypen | 494 | ||
16.5 Einbettung in Datenbanksysteme | 498 | ||
16.5.1 Schemastrukturen | 498 | ||
16.5.2 Anfrageformulierung | 500 | ||
16.6 Einsatz | 501 | ||
17 Geodatenbanken | 503 | ||
17.1 Geodaten | 503 | ||
17.1.1 Eigenschaften von Geodaten | 503 | ||
17.1.2 Metadaten | 505 | ||
17.2 Datenschemata | 506 | ||
17.2.1 Standardisierung | 506 | ||
17.2.2 ISO 19107 Spatial Schema | 506 | ||
17.2.3 ISO 19125 Simple Feature Access | 508 | ||
17.2.3.1 Datenschema | 508 | ||
17.2.3.2 Datenrepräsentationen | 510 | ||
17.2.4 ISO/IEC 13249-3 SQL/MM Spatial | 511 | ||
17.2.5 Räumliche Bezugssysteme | 512 | ||
17.2.5.1 EPSG-Bezugssysteme | 514 | ||
17.2.5.2 Lineare Bezugssysteme | 514 | ||
17.3 Funktionen | 514 | ||
17.3.1 Geometrische Funktionen | 515 | ||
17.3.2 Topologische Prädikate | 516 | ||
17.3.2.1 Boolesches Modell | 516 | ||
17.3.2.2 Dimensionsmodell | 517 | ||
17.4 Räumliche Anfragen | 519 | ||
17.4.1 Räumliche Basisanfragen | 519 | ||
17.4.1.1 Räumliche Selektion | 519 | ||
17.4.1.2 Räumlicher Verbund | 520 | ||
17.4.1.3 Nächste-Nachbarn-Anfrage | 521 | ||
17.4.2 Mehrstufige Anfragebearbeitung | 521 | ||
17.4.3 Approximationen | 522 | ||
17.5 Räumliche Indexe | 524 | ||
17.5.1 Grundtechniken | 524 | ||
17.5.1.1 Clipping | 524 | ||
17.5.1.2 Punkttransformationen | 525 | ||
17.5.1.3 Raumfüllende Kurven | 525 | ||
17.5.1.4 Überlappende Blockregionen | 526 | ||
17.5.2 Quadtrees | 527 | ||
17.5.3 R-Bäume | 529 | ||
17.6 Geodatenbanksysteme | 531 | ||
Abkürzungsverzeichnis | 533 | ||
Literaturverzeichnis | 538 | ||
Sachwortverzeichnis | 558 |