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 |