E-Book, Deutsch, 576 Seiten
ISBN: 978-3-446-44026-5
Verlag: Carl Hanser
Format: PDF
Kopierschutz: Wasserzeichen (»Systemvoraussetzungen)
-wendet sich an Studierende von Universitäten, Hochschulen und Berufsakademien sowie an Softwareingenieure und Praktiker der Informationstechnik
-gibt einen fachlich fundierten Überblick über die Grundlagen und Anwendungen von Datenbanken und spannt den Bogen über Datenbankentwurf, die Anfragesprache SQL bis zu Anwendungs- und Webprogrammierung, Implementierungstechniken, verteilte Datenbanken und Business Intelligence
-behandelt neben Grundlagen und Technologien relationaler Datenbanken auch darüber hinausgehende Entwicklungen wie objektorientierte und XML-Erweiterungen sowie Geo- und Multimedia-Datenbanken
-vermittelt Datenbankwissen in konzentrierter und übersichtlicher Form aus Anwender- und aus Entwicklerperspektive
-dient dem schnellen Nachschlagen von Fachbegriffen
-eignet sich als kompaktes und gut strukturiertes Nachschlagewerk auch besonders zur Prüfungsvorbereitung
-enthält in der 2. Auflage zahlreiche Überarbeitungen, Aktualisierungen und neue Schwerpunkte wie NoSQL
-wird ergänzt und aktualisiert durch eine Website: www.tb-datenbanken.de
Autoren/Hrsg.
Weitere Infos & Material
1;Taschenbuch Datenbanken;7
1.1;1 Datenbanken: Grundlagen und Überblick;23
1.1.1;1.1 Dateien und Dateisysteme;23
1.1.2;1.2 Terminologie;24
1.1.3;1.3 Merkmale eines DBMS;27
1.1.3.1;1.3.1 Aufgaben eines DBMS ;27
1.1.3.2;1.3.2 Vorteile des Datenbankeinsatzes ;28
1.1.3.3;1.3.3 Nachteile von Datenbanksystemen ;29
1.1.3.4;1.3.4 Produkte ;29
1.1.4;1.4 Architektur eines Datenbanksystems;30
1.1.4.1;1.4.1 Architekturen ;30
1.1.4.2;1.4.2 Schemaarchitektur ;31
1.1.4.2.1;1.4.2.1 Datenbankschema ;31
1.1.4.2.2;1.4.2.2 Drei-Ebenen-Architektur ;32
1.1.4.3;1.4.3 Datenunabhängigkeit ;33
1.1.5;1.5 Benutzerrollen bei Entwurf und Betrieb von Datenbanken;34
1.1.6;1.6 Datenbanken und Informationssysteme;36
1.1.7;1.7 Fachgebiet Datenbanken im Überblick;37
1.1.7.1;1.7.1 Themenbereiche und Zusammenhänge ;37
1.1.7.2;1.7.2 Einordnung des Fachs innerhalb der Informatik ;39
1.1.8;1.8 Historische Entwicklung;41
1.1.8.1;1.8.1 Frühzeit ;42
1.1.8.2;1.8.2 Prärelationale DBMS ;42
1.1.8.3;1.8.3 Durchbruch der relationalen Datenbanken ;43
1.1.8.4;1.8.4 Neue Anwendungsfelder für Datenbanken ;44
1.1.8.5;1.8.5 Neuzeit ;44
1.1.9;1.9 Datenbanken in der Forschung;45
1.1.9.1;1.9.1 Fachverbände ;45
1.1.9.2;1.9.2 Aktuelle Forschungstrends ;46
1.2;2 Informationsmodellierung;48
1.2.1;2.1 Datenbankentwurf;48
1.2.1.1;2.1.1 Phasenmodell ;48
1.2.1.2;2.1.2 Anforderungsanalyse ;49
1.2.1.3;2.1.3 Konzeptioneller Entwurf ;50
1.2.1.4;2.1.4 Logischer Entwurf ;51
1.2.1.5;2.1.5 Datendefinition ;52
1.2.1.6;2.1.6 Physischer Entwurf ;53
1.2.1.7;2.1.7 Implementierung und Wartung ;53
1.2.2;2.2 Grundlagen des Entity-Relationship-Modells (ERM);53
1.2.2.1;2.2.1 Semantische Datenmodelle ;54
1.2.2.2;2.2.2 Grundkonzepte des klassischen ERM ;54
1.2.2.2.1;2.2.2.1 Konzepte auf der Instanzebene ;55
1.2.2.2.2;2.2.2.2 Konzepte auf der Typebene ;56
1.2.2.2.3;2.2.2.3 Rollenmodellierung ;57
1.2.2.3;2.2.3 Kardinalitäten von Beziehungstypen ;58
1.2.2.3.1;2.2.3.1 Kardinalitäten im klassischen ERM ;58
1.2.2.3.2;2.2.3.2 Intervalle und Komplexitätsgrade ;58
1.2.2.4;2.2.4 Existenzabhängigkeit vs. Optionalität ;59
1.2.2.5;2.2.5 Rekursive und n-äre Beziehungstypen ;60
1.2.2.5.1;2.2.5.1 Rekursive Beziehungstypen ;60
1.2.2.5.2;2.2.5.2 N-äre Beziehungstypen ;61
1.2.2.6;2.2.6 Attribute ;62
1.2.2.7;2.2.7 Modellierungsbeispiel ;63
1.2.3;2.3 Erweiterungen des ERM;64
1.2.3.1;2.3.1 Erweiterungen bei Attributen ;64
1.2.3.2;2.3.2 Generalisierung und Spezialisierung ;65
1.2.3.3;2.3.3 Aggregation ;68
1.2.3.4;2.3.4 Modellierung zeitlicher Aspekte ;69
1.3;3 Relationales Datenmodell;71
1.3.1;3.1 Konzepte und Grundbegriffe des relationalen Datenmodells;71
1.3.1.1;3.1.1 Relationen, Tupel, Attribute und Wertebereiche ;71
1.3.1.2;3.1.2 Eigenschaften von Relationen ;73
1.3.2;3.2 Integritätsbedingungen;74
1.3.2.1;3.2.1 Grundbegriffe ;74
1.3.2.2;3.2.2 Entitätsintegrität ;75
1.3.2.3;3.2.3 Referenzielle Integrität ;75
1.3.2.3.1;3.2.3.1 Begriff ;75
1.3.2.3.2;3.2.3.2 Regeln für Fremdschlüssel ;76
1.3.2.3.3;3.2.3.3 Gewährleistung der referenziellen Integrität bei kritischen DML-Operationen ;77
1.3.3;3.3 Abbildung des EERM auf das relationale Datenmodell;79
1.3.3.1;3.3.1 Problemstellung ;79
1.3.3.2;3.3.2 Abbildungsregeln für Attribute und Entitytypen ;79
1.3.3.3;3.3.3 Abbildungsregeln für Beziehungstypen ;80
1.3.3.4;3.3.4 Abbildungsregeln für die Generalisierung ;83
1.3.4;3.4 Optimierung von Relationen;84
1.3.4.1;3.4.1 Problemstellung ;84
1.3.4.2;3.4.2 Anomalien bei DML-Operationen auf Relationen ;85
1.3.4.3;3.4.3 Abhängigkeiten ;86
1.3.4.3.1;3.4.3.1 Funktionale Abhängigkeiten ;86
1.3.4.3.2;3.4.3.2 Mehrwertige Abhängigkeiten ;87
1.3.4.4;3.4.4 Verbundtreue und Abhängigkeitstreue ;88
1.3.4.5;3.4.5 Normalformenlehre ;89
1.3.4.5.1;3.4.5.1 Erste Normalform (1NF) ;89
1.3.4.5.2;3.4.5.2 Zweite Normalform (2NF) ;90
1.3.4.5.3;3.4.5.3 Dritte Normalform (3NF) ;91
1.3.4.5.4;3.4.5.4 Boyce-Codd-Normalform (BCNF) ;92
1.3.4.5.5;3.4.5.5 Vierte Normalform (4NF) ;93
1.3.4.5.6;3.4.5.6 Fünfte Normalform (5NF) ;94
1.3.4.5.7;3.4.5.7 Denormalisierung ;96
1.3.5;3.5 Operationen der Relationenalgebra;96
1.3.5.1;3.5.1 Einführung ;96
1.3.5.2;3.5.2 Relationenorientierte Operationen ;97
1.3.5.3;3.5.3 Mengenoperationen ;99
1.3.5.4;3.5.4 Relationenalgebra und relationale Sprachen ;100
1.3.5.5;3.5.5 Relationenkalkül ;101
1.4;4 Die Datenbanksprache SQL;103
1.4.1;4.1 Grundkonzepte;103
1.4.2;4.2 Historie;105
1.4.3;4.3 Spezifikationsdokumente;106
1.4.4;4.4 Beispieldatenbank;107
1.4.5;4.5 Datenbankanfragen;107
1.4.5.1;4.5.1 Einführende Beispielanfragen ;108
1.4.5.2;4.5.2 Grundgerüst von Anfragen ;109
1.4.5.3;4.5.3 Anfragen mit Aggregatfunktionen ;111
1.4.5.4;4.5.4 Anfragen mit Tabellenfunktionen ;112
1.4.5.5;4.5.5 Anfragen mit Mengenoperationen ;112
1.4.5.6;4.5.6 Anfragen mit Verbundoperationen ;114
1.4.5.7;4.5.7 Verschachtelte Anfragen ;116
1.4.5.8;4.5.8 Rekursive Anfragen ;118
1.4.5.9;4.5.9 Anfragen mit sortierter Ausgabe ;119
1.4.6;4.6 Datenmanipulation;120
1.4.6.1;4.6.1 Einfügen von Tabellenzeilen ;120
1.4.6.2;4.6.2 Ändern von Tabellenzeilen ;121
1.4.6.3;4.6.3 Löschen von Tabellenzeilen ;122
1.4.6.4;4.6.4 Zusammenführen von Tabellenzeilen ;122
1.4.7;4.7 Datendefinition;123
1.4.7.1;4.7.1 SQL-Datentypen ;123
1.4.7.2;4.7.2 Erzeugen und Löschen von Schemata ;128
1.4.7.3;4.7.3 Erzeugen, Ändern und Löschen von Tabellen ;128
1.4.7.4;4.7.4 Erzeugen und Löschen von Domänen ;131
1.4.7.5;4.7.5 Erzeugen und Löschen von Integritätsbedingungen ;132
1.4.7.6;4.7.6 Erzeugen und Löschen von Sichten ;134
1.4.7.7;4.7.7 Erzeugen und Löschen von Routinen ;135
1.4.7.7.1;4.7.7.1 Prozedurale SQL-Konstrukte ;135
1.4.7.7.2;4.7.7.2 Erzeugen von SQL-Routinen ;139
1.4.7.7.3;4.7.7.3 Erzeugen von externen Routinen ;140
1.4.7.7.4;4.7.7.4 Löschen von Routinen ;140
1.4.7.8;4.7.8 Erzeugen und Löschen von Triggern ;141
1.4.7.9;4.7.9 Erzeugen und Löschen von Sequenzgeneratoren ;142
1.4.8;4.8 Transaktionssteuerung;142
1.4.8.1;4.8.1 Transaktionsanweisungen ;143
1.4.8.2;4.8.2 Isolationsebenen ;144
1.4.8.3;4.8.3 Überprüfung von Integritätsbedingungen ;145
1.4.9;4.9 Zugriffskontrolle;145
1.4.9.1;4.9.1 Vergabe von Zugriffsrechten ;145
1.4.9.2;4.9.2 Zurücknahme von Zugriffsrechten ;147
1.4.9.3;4.9.3 Erzeugen und Löschen von Rollen ;147
1.5;5 Datenbank-Anwendungsprogrammierung;148
1.5.1;5.1 Grundlagen der Datenbank-Anwendungsprogrammierung;148
1.5.1.1;5.1.1 Impedance Mismatch ;148
1.5.1.2;5.1.2 Einbettungstechniken ;149
1.5.1.3;5.1.3 Einbettungsarten ;149
1.5.1.3.1;5.1.3.1 Statische Programmierspracheneinbettung ;149
1.5.1.3.2;5.1.3.2 Dynamische Programmierspracheneinbettung ;150
1.5.1.4;5.1.4 Architekturansätze ;151
1.5.1.4.1;5.1.4.1 Fat-Client-Architektur ;152
1.5.1.4.2;5.1.4.2 Thin-Client-Architektur ;152
1.5.1.4.3;5.1.4.3 Thin-Client-Architektur mit Applikationsserver ;154
1.5.2;5.2 Embedded SQL;155
1.5.2.1;5.2.1 Grundidee und Architektur ;155
1.5.2.2;5.2.2 Syntax ;156
1.5.2.3;5.2.3 Host-Variablen ;156
1.5.2.4;5.2.4 Das Cursor-Konzept ;156
1.5.2.5;5.2.5 Statische Einbettung ;158
1.5.2.6;5.2.6 Dynamische Einbettung ;159
1.5.2.7;5.2.7 Indikatorvariablen ;160
1.5.2.8;5.2.8 SQLJ ;160
1.5.3;5.3 Aufrufschnittstellen;162
1.5.3.1;5.3.1 Überblick ;162
1.5.3.2;5.3.2 SQL/CLI ;162
1.5.3.3;5.3.3 JDBC ;164
1.5.3.3.1;5.3.3.1 Treibertypen ;165
1.5.3.3.2;5.3.3.2 Verbindung aufbauen ;165
1.5.3.3.3;5.3.3.3 Verbindung schließen ;167
1.5.3.3.4;5.3.3.4 Transaktionen ;167
1.5.3.3.5;5.3.3.5 Leseanweisungen – das ResultSet ;168
1.5.3.3.6;5.3.3.6 Änderungen ;169
1.5.3.3.7;5.3.3.7 Zugriff auf Metadaten ;171
1.5.4;5.4 Relationale Datenbankprogrammiersprachen;172
1.5.4.1;5.4.1 Datenbankinterne Ansätze ;172
1.5.4.1.1;5.4.1.1 SQL/PSM ;172
1.5.4.1.2;5.4.1.2 Benutzerdefinierte Routinen ;173
1.5.4.1.3;5.4.1.3 Trigger ;174
1.5.4.2;5.4.2 4GL-Programmiersprachen ;178
1.5.4.2.1;5.4.2.1 Überblick ;178
1.5.4.2.2;5.4.2.2 Beispiel: ABAP ;178
1.5.5;5.5 Objektrelationale Abbildung;181
1.5.5.1;5.5.1 Java Persistence API (JPA) ;183
1.5.5.1.1;5.5.1.1 Schemaabbildung ;184
1.5.5.1.2;5.5.1.2 Datenzugriff ;185
1.5.5.1.3;5.5.1.3 Formulieren von Anfragen ;187
1.5.5.2;5.5.2 JDO – Java Data Objects ;188
1.5.5.3;5.5.3 Entity Beans ;192
1.6;6 Datenbanken im Web;193
1.6.1;6.1 Grundlagen des Web;193
1.6.2;6.2 Eigenschaften von Webanwendungen;195
1.6.2.1;6.2.1 Anforderungen ;196
1.6.2.2;6.2.2 Webseiten ;196
1.6.2.3;6.2.3 Dynamische Webseiten ;199
1.6.2.4;6.2.4 Adressierung ;201
1.6.2.5;6.2.5 Kommunikation ;202
1.6.3;6.3 Datenbankanbindung im Web;204
1.6.3.1;6.3.1 Architekturen ;205
1.6.3.2;6.3.2 Programmierung ;206
1.6.3.3;6.3.3 Überblick ;208
1.6.4;6.4 Datenbankanbindung über Datenexport;210
1.6.5;6.5 Clientseitige Datenbankanbindung;210
1.6.5.1;6.5.1 Skripteinbettung ;211
1.6.5.2;6.5.2 Programmeinbettung ;213
1.6.5.3;6.5.3 Weitere Techniken ;216
1.6.6;6.6 Serverseitige Datenbankanbindung;216
1.6.6.1;6.6.1 Webseitengeneratoren ;216
1.6.6.2;6.6.2 Skripteinbettung ;219
1.6.6.3;6.6.3 Programmeinbettung ;223
1.6.6.4;6.6.4 Applikationsserver ;225
1.6.6.5;6.6.5 Webservices ;227
1.7;7 Komponenten eines Datenbankmanagementsystems;231
1.7.1;7.1 Architektur von DBMS;231
1.7.1.1;7.1.1 Schichtenmodell ;231
1.7.1.2;7.1.2 Prozessarchitektur ;233
1.7.2;7.2 Pufferverwaltung;234
1.7.2.1;7.2.1 Notwendigkeit und Aufgabe ;235
1.7.2.2;7.2.2 Speicherzuteilung ;236
1.7.2.3;7.2.3 Seitenersetzung ;237
1.7.3;7.3 Speicher- und Zugriffssystem;238
1.7.3.1;7.3.1 Aufgabe ;239
1.7.3.2;7.3.2 Seiten und Sätze ;239
1.7.3.3;7.3.3 Adressierung von Sätzen ;241
1.7.4;7.4 Anfrageprozessor;242
1.7.4.1;7.4.1 Basisoperatoren ;242
1.7.4.1.1;7.4.1.1 Unäre Operatoren ;243
1.7.4.1.2;7.4.1.2 Binäre Operatoren ;245
1.7.4.2;7.4.2 Anfrageplanung und -optimierung ;246
1.7.4.3;7.4.3 Kosten und Statistiken ;251
1.7.5;7.5 Transaktionsverwaltung;253
1.7.5.1;7.5.1 Aufgabe ;253
1.7.5.2;7.5.2 Serialisierbarkeit ;255
1.7.5.3;7.5.3 Sperrverfahren ;257
1.7.5.4;7.5.4 Nicht sperrende Verfahren ;261
1.7.6;7.6 Recovery;263
1.7.6.1;7.6.1 Fehlerklassen ;263
1.7.6.2;7.6.2 Recovery-Strategien ;264
1.7.6.3;7.6.3 Logging ;265
1.7.6.4;7.6.4 Wiederanlauf im Fehlerfall ;268
1.7.6.5;7.6.5 Schattenspeicherverfahren ;270
1.7.7;7.7 Datenbanktechniken für moderne Hardware-Architekturen;270
1.8;8 Dateiorganisation und Indexe;273
1.8.1;8.1 Organisation von Dateien;273
1.8.1.1;8.1.1 Formen der Dateiorganisation ;273
1.8.1.2;8.1.2 Dateiorganisationsformen im Vergleich ;273
1.8.1.2.1;8.1.2.1 Basisoperationen ;274
1.8.1.2.2;8.1.2.2 Kosten ;274
1.8.2;8.2 Zugriffsstrukturen;275
1.8.2.1;8.2.1 Grundlagen von Zugriffsverfahren ;275
1.8.2.2;8.2.2 Eigenschaften von Indexen ;276
1.8.3;8.3 Baumbasierte Verfahren;278
1.8.3.1;8.3.1 ISAM-Bäume ;278
1.8.3.2;8.3.2 Balancierte Mehrwegbäume ;279
1.8.3.3;8.3.3 Digitale Bäume ;281
1.8.4;8.4 Hash-Verfahren;282
1.8.4.1;8.4.1 Prinzip des Hashing ;282
1.8.4.2;8.4.2 Erweiterbares Hashing ;283
1.8.4.3;8.4.3 Weitere Hash-Verfahren ;284
1.8.5;8.5 Mehrdimensionale Zugriffsverfahren;285
1.8.5.1;8.5.1 Mehrdimensionale Baumverfahren ;285
1.8.5.2;8.5.2 Grid-File ;285
1.8.6;8.6 Clusterung und Partitionierung;287
1.8.6.1;8.6.1 Clusterung ;287
1.8.6.2;8.6.2 Partitionierung ;287
1.8.7;8.7 Umsetzung in SQL-Systemen;288
1.8.7.1;8.7.1 Definition von Tabellen ;289
1.8.7.2;8.7.2 Definition von Indexen ;289
1.9;9 Optimierung von Datenbanken und Leistungsbewertung;291
1.9.1;9.1 Motivation der Datenbankoptimierung;291
1.9.1.1;9.1.1 Kosten von Datenbankanfragen ;292
1.9.1.2;9.1.2 Optimierungspotenzial ;293
1.9.1.3;9.1.3 Zielbestimmung der Datenbankoptimierung ;294
1.9.2;9.2 Phasen der Datenbankoptimierung;296
1.9.3;9.3 Phase 1.1 – Optimierung des Datenbankschemas;297
1.9.3.1;9.3.1 Konzeptuelles Schema ;298
1.9.3.1.1;9.3.1.1 Attribute ;298
1.9.3.1.2;9.3.1.2 Tabellen ;298
1.9.3.1.3;9.3.1.3 Redundanz ;300
1.9.3.2;9.3.2 Externes Schema ;301
1.9.3.2.1;9.3.2.1 Sichten ;302
1.9.3.2.2;9.3.2.2 Prozedurale SQL-Erweiterungen ;302
1.9.3.3;9.3.3 Internes Schema ;302
1.9.3.3.1;9.3.3.1 Materialisierte Sichten ;302
1.9.3.3.2;9.3.3.2 Zugriffspfadstrukturen ;303
1.9.4;9.4 Phase 1.2 – Anwendungsoptimierung;305
1.9.4.1;9.4.1 Optimierung von Unternehmensfunktionen ;305
1.9.4.2;9.4.2 Optimierung der Anwendung ;305
1.9.4.3;9.4.3 Optimierungen im Mehrbenutzerbetrieb ;306
1.9.4.4;9.4.4 Formulierung von SQL-Anweisungen ;308
1.9.5;9.5 Phase 2 – Hauptspeicheroptimierung;310
1.9.5.1;9.5.1 Gestaltung des Datenbankpuffers ;310
1.9.5.1.1;9.5.1.1 Komponenten des Datenbankpuffers ;311
1.9.5.1.2;9.5.1.2 Größe des Datenbankpuffers ;312
1.9.5.1.3;9.5.1.3 Blockfüllgrad ;312
1.9.5.2;9.5.2 Schreiben des Datenbankpuffers ;313
1.9.5.2.1;9.5.2.1 Sicherungspunkt-Intervalle ;313
1.9.5.2.2;9.5.2.2 Protokolldatei ;314
1.9.5.3;9.5.3 Optimierer ;314
1.9.5.3.1;9.5.3.1 Statistiken ;315
1.9.5.3.2;9.5.3.2 Planhinweise (Hints) ;315
1.9.6;9.6 Phase 3 – Optimierung der Sekundärspeicherzugriffe;316
1.9.6.1;9.6.1 Zusammenspiel mit dem Betriebssystem ;316
1.9.6.2;9.6.2 Verteilung der Eingabe-/Ausgabelast ;317
1.9.6.2.1;9.6.2.1 Verteilung der Daten- und Indexdateien ;317
1.9.6.2.2;9.6.2.2 Verteilung der Daten ;317
1.9.6.2.3;9.6.2.3 Verteilung der Protokolldatei ;318
1.9.6.2.4;9.6.2.4 RAID-Level ;318
1.9.6.3;9.6.3 Optimierung physischer Speicherstrukturen ;319
1.9.6.3.1;9.6.3.1 Blockgröße ;319
1.9.6.3.2;9.6.3.2 Cluster-Techniken ;320
1.9.6.3.3;9.6.3.3 Kompressions-Techniken ;321
1.9.6.3.4;9.6.3.4 Reorganisation ;321
1.9.7;9.7 Leistungsbewertung;322
1.9.7.1;9.7.1 Transaction Processing Performance Council ;323
1.9.7.2;9.7.2 Vergleichbarkeit der Benchmark-Ergebnisse ;324
1.10;10 Objektrelationale Datenbanken;326
1.10.1;10.1 Objektorientierte Konzepte;326
1.10.1.1;10.1.1 Objekte ;326
1.10.1.2;10.1.2 Methoden ;327
1.10.1.3;10.1.3 Kapselung ;327
1.10.1.4;10.1.4 Objektidentität ;327
1.10.1.5;10.1.5 Klassen ;328
1.10.1.6;10.1.6 Spezialisierung ;329
1.10.2;10.2 Objektorientierung in Datenbanken;330
1.10.3;10.3 Objektrelationale Standard-SQL-Konzepte;331
1.10.3.1;10.3.1 Typkonstruktoren ;332
1.10.3.2;10.3.2 Distinct-Typen ;334
1.10.3.3;10.3.3 Strukturierte Typen ;334
1.10.3.4;10.3.4 Methoden ;337
1.10.3.5;10.3.5 Benutzerdefinierte Konstruktoren ;339
1.10.3.6;10.3.6 Benutzerdefinierte Casts ;340
1.10.3.7;10.3.7 Benutzerdefinierte Ordnungen ;341
1.10.3.8;10.3.8 Typisierte Tabellen ;342
1.10.3.9;10.3.9 Typisierte Sichten ;343
1.10.4;10.4 Objektrelationale Anfragen;345
1.10.4.1;10.4.1 Anfragen auf Kollektionen ;345
1.10.4.2;10.4.2 Anfragen mit Pfadausdrücken ;346
1.10.4.3;10.4.3 Anfragen mit Methodenaufrufen ;346
1.10.4.4;10.4.4 Anfragen auf flachen Tabellenextensionen ;347
1.10.4.5;10.4.5 Typspezifische Anfragen ;347
1.10.4.6;10.4.6 Anfragen mit temporärer Typanpassung ;347
1.11;11 XML und Datenbanken;349
1.11.1;11.1 Überblick über XML;349
1.11.1.1;11.1.1 Der XML-Standard und verwandte Standards ;349
1.11.1.2;11.1.2 XML Schema ;351
1.11.2;11.2 Anfragesprachen für XML;354
1.11.2.1;11.2.1 Pfadausdrücke (XPath und XQuery) ;355
1.11.2.2;11.2.2 XQuery ;356
1.11.3;11.3 XML und relationale Datenbanksysteme;360
1.11.3.1;11.3.1 Relationale Speicherung von XML ;360
1.11.3.2;11.3.2 SQL/XML ;362
1.11.3.3;11.3.3 Realisierung in kommerziellen Systemen ;365
1.11.4;11.4 Reine XML-Datenbanksysteme;370
1.12;12 NoSQL-Datenbanksysteme;372
1.12.1;12.1 Motivation und Grundbegriffe;372
1.12.2;12.2 Klassifikation;373
1.12.2.1;12.2.1 Key-Value-Datenbanksysteme ;374
1.12.2.1.1;12.2.1.1 Datenmodell und Schema ;374
1.12.2.1.2;12.2.1.2 Anfragen und Datenmanipulation ;375
1.12.2.1.3;12.2.1.3 Einsatzbereiche und Systeme ;375
1.12.2.2;12.2.2 Dokumentenorientierte Datenbanksysteme ;376
1.12.2.2.1;12.2.2.1 Datenmodell und Schema ;376
1.12.2.2.2;12.2.2.2 Anfragen und Datenmanipulation ;377
1.12.2.2.3;12.2.2.3 Einsatzbereiche und Systeme ;378
1.12.2.3;12.2.3 Column-Family-Datenbanksysteme ;378
1.12.2.3.1;12.2.3.1 Datenmodell und Schema ;378
1.12.2.3.2;12.2.3.2 Anfragen und Datenmanipulation ;381
1.12.2.3.3;12.2.3.3 Einsatzbereiche und Systeme ;381
1.12.2.4;12.2.4 Weitere NoSQL-Datenbanksysteme ;382
1.12.3;12.3 Datenmodellierung;382
1.12.3.1;12.3.1 Generelle Aspekte der Datenmodellierung in NoSQL-Datenbanksystemen ;382
1.12.3.2;12.3.2 Datenmodellierung für dokumentenorientierte Datenbanken ;384
1.12.3.3;12.3.3 Datenmodellierung für Column-Family-Datenbanken ;386
1.12.3.3.1;12.3.3.1 Eingebettete Speicherung in Column-Family-Daten-banksystemen ;386
1.12.3.3.2;12.3.3.2 Spaltenfamilien ;388
1.12.3.4;12.3.4 Datenmodellierung für Key-Value-Datenbanken ;389
1.12.4;12.4 Anwendungsentwicklung mit NoSQL-Datenbanksystemen;389
1.12.4.1;12.4.1 MapReduce ;390
1.12.4.1.1;12.4.1.1 MapReduce-Prinzip ;391
1.12.4.1.2;12.4.1.2 MapReduce-Beispiel ;392
1.12.4.1.3;12.4.1.3 MapReduce-Frameworks ;393
1.12.4.1.4;12.4.1.4 MapReduce-Trends ;393
1.12.4.2;12.4.2 Schema-Management ;393
1.12.5;12.5 Skalierbarkeit, Verfügbarkeit und Konsistenz;394
1.12.6;12.6 Auswahl eines geeigneten Datenbanksystems;396
1.12.6.1;12.6.1 Kriterienkatalog ;396
1.12.6.2;12.6.2 Performance ;396
1.12.6.3;12.6.3 Polyglotte Persistenz ;397
1.13;13 Verteilte und föderierte Datenbanksysteme;398
1.13.1;13.1 Überblick, Grundbegriffe, Abgrenzung;398
1.13.1.1;13.1.1 Verteilte vs. parallele Datenbanksysteme ;399
1.13.1.2;13.1.2 Verteilte vs. föderierte Datenbanksysteme ;401
1.13.2;13.2 Schemaarchitektur und Entwurf verteilter Datenbanksysteme;404
1.13.3;13.3 Fragmentierung;405
1.13.3.1;13.3.1 Horizontale Fragmentierung ;405
1.13.3.2;13.3.2 Vertikale Fragmentierung ;407
1.13.3.3;13.3.3 Kombinierte Fragmentierung ;407
1.13.4;13.4 Verteilungstransparenz;408
1.13.4.1;13.4.1 Vorteile verteilter Datenbanksysteme ;408
1.13.4.2;13.4.2 Transparenzeigenschaften verteilter Datenbanksysteme ;408
1.13.5;13.5 Verteilte Anfrageverarbeitung;409
1.13.5.1;13.5.1 Datenlokalisierung ;411
1.13.5.2;13.5.2 Globale Optimierung der Join-Auswertung ;413
1.13.6;13.6 Transaktionsverwaltung in verteilten Datenbanksystemen;416
1.13.6.1;13.6.1 Koordination ;416
1.13.6.2;13.6.2 Synchronisation ;418
1.13.6.3;13.6.3 Deadlock-Behandung ;419
1.13.6.4;13.6.4 Synchronisation bei Replikation ;420
1.13.7;13.7 Föderierte Datenbanksysteme;421
1.13.7.1;13.7.1 Autonomie und Heterogenität ;422
1.13.7.2;13.7.2 Architektur föderierter DBS ;423
1.13.7.3;13.7.3 Integrationsprozess ;424
1.13.7.4;13.7.4 Anfrageverarbeitung in föderierten DBS ;425
1.13.7.5;13.7.5 Synchronisation in föderierten DBS ;426
1.13.8;13.8 Cloud-Datenbanken;427
1.13.8.1;13.8.1 Cloud Data Management und Big Data ;427
1.13.8.2;13.8.2 Das CAP-Theorem ;428
1.13.8.3;13.8.3 Database as a Service (DBaaS) ;429
1.13.8.4;13.8.4 Skalierbarkeit und Verfügbarkeit ;430
1.13.9;13.9 Trends;432
1.14;14 Data Warehouse;434
1.14.1;14.1 Architektur;434
1.14.1.1;14.1.1 Datenquellen ;434
1.14.1.2;14.1.2 Back-End-Bereich ;434
1.14.1.2.1;14.1.2.1 Monitore ;435
1.14.1.2.2;14.1.2.2 Extraktionskomponenten ;436
1.14.1.2.3;14.1.2.3 Transformationskomponente ;437
1.14.1.2.4;14.1.2.4 Ladekomponente ;438
1.14.1.3;14.1.3 Datenbank ;438
1.14.1.3.1;14.1.3.1 Data Warehouse ;438
1.14.1.3.2;14.1.3.2 Data Marts ;440
1.14.1.3.3;14.1.3.3 Archiv-Datenbank ;441
1.14.1.4;14.1.4 Front-End-Werkzeuge ;441
1.14.1.4.1;14.1.4.1 Berichts- und Anfragewerkzeuge ;441
1.14.1.4.2;14.1.4.2 OLAP-Werkzeuge ;442
1.14.1.4.3;14.1.4.3 Data-Mining-Werkzeuge ;442
1.14.1.4.4;14.1.4.4 Sonstige Front-End-Werkzeuge ;442
1.14.1.5;14.1.5 Sonstige Werkzeuge ;443
1.14.1.5.1;14.1.5.1 DWS-Manager ;443
1.14.1.5.2;14.1.5.2 Metadaten-Repository ;443
1.14.2;14.2 Multidimensionale Datenmodelle;444
1.14.2.1;14.2.1 Statische Aspekte ;444
1.14.2.2;14.2.2 Dynamische Aspekte ;448
1.14.3;14.3 Speicherung und Schemagestaltung;450
1.14.3.1;14.3.1 Relationale Speicherung ;450
1.14.3.2;14.3.2 Multidimensionale Speicherung ;451
1.14.3.3;14.3.3 Spaltenorientierte Speicherung ;452
1.14.4;14.4 Erweiterung relationaler Datenbanken;455
1.14.4.1;14.4.1 Materialisierte Sichten ;456
1.14.4.2;14.4.2 Partitionierung ;457
1.14.4.3;14.4.3 Bitmap-Index ;459
1.14.4.4;14.4.4 SQL-Erweiterungen zum Einfügen ;460
1.14.4.5;14.4.5 Komplexes Gruppieren ;461
1.14.4.6;14.4.6 Star Query ;462
1.14.4.7;14.4.7 Bulk Loader ;464
1.15;15 Data Mining;465
1.15.1;15.1 KDD-Prozess;465
1.15.2;15.2 Clustering;466
1.15.2.1;15.2.1 Definition und Beispiele ;466
1.15.2.2;15.2.2 Anforderungen und Probleme ;467
1.15.2.3;15.2.3 Verfahren ;467
1.15.2.3.1;15.2.3.1 Partitionierende Verfahren ;468
1.15.2.3.2;15.2.3.2 Hierarchische Verfahren ;469
1.15.2.3.3;15.2.3.3 Dichtebasierte Methoden ;472
1.15.3;15.3 Assoziationsanalyse;472
1.15.3.1;15.3.1 Definition und Beispiel ;472
1.15.3.2;15.3.2 Anforderungen und Probleme ;472
1.15.3.3;15.3.3 Verfahren ;473
1.15.4;15.4 Klassifikation;476
1.15.4.1;15.4.1 Definition und Beispiele ;476
1.15.4.2;15.4.2 Anforderungen ;476
1.15.4.3;15.4.3 Verfahren ;477
1.15.4.3.1;15.4.3.1 Entscheidungsbaum-Klassifikatoren ;477
1.15.4.3.2;15.4.3.2 Regelbasierte Klassifikatoren ;477
1.15.4.3.3;15.4.3.3 Weitere Verfahren ;478
1.15.5;15.5 Anomalieentdeckung;478
1.15.5.1;15.5.1 Definition und Beispiele ;478
1.15.5.2;15.5.2 Anforderungen und Probleme ;479
1.15.5.3;15.5.3 Verfahren ;479
1.15.5.3.1;15.5.3.1 Grafische und statistikbasierte Verfahren ;480
1.15.5.3.2;15.5.3.2 Distanzbasierte Ansätze ;480
1.16;16 Multimedia-Datenbanken;482
1.16.1;16.1 Einführung;482
1.16.2;16.2 Mediendaten;486
1.16.3;16.3 Suche nach Mediendaten;489
1.16.3.1;16.3.1 Textsuche ;489
1.16.3.2;16.3.2 Bildsuche ;491
1.16.3.3;16.3.3 Audiosuche ;492
1.16.3.4;16.3.4 Videosuche ;493
1.16.4;16.4 Mediendatentypen;494
1.16.5;16.5 Einbettung in Datenbanksysteme;498
1.16.5.1;16.5.1 Schemastrukturen ;498
1.16.5.2;16.5.2 Anfrageformulierung ;500
1.16.6;16.6 Einsatz;501
1.17;17 Geodatenbanken;503
1.17.1;17.1 Geodaten;503
1.17.1.1;17.1.1 Eigenschaften von Geodaten ;503
1.17.1.2;17.1.2 Metadaten ;505
1.17.2;17.2 Datenschemata;506
1.17.2.1;17.2.1 Standardisierung ;506
1.17.2.2;17.2.2 ISO 19107 Spatial Schema ;506
1.17.2.3;17.2.3 ISO 19125 Simple Feature Access ;508
1.17.2.3.1;17.2.3.1 Datenschema ;508
1.17.2.3.2;17.2.3.2 Datenrepräsentationen ;510
1.17.2.4;17.2.4 ISO/IEC 13249-3 SQL/MM Spatial ;511
1.17.2.5;17.2.5 Räumliche Bezugssysteme ;512
1.17.2.5.1;17.2.5.1 EPSG-Bezugssysteme ;514
1.17.2.5.2;17.2.5.2 Lineare Bezugssysteme ;514
1.17.3;17.3 Funktionen;514
1.17.3.1;17.3.1 Geometrische Funktionen ;515
1.17.3.2;17.3.2 Topologische Prädikate ;516
1.17.3.2.1;17.3.2.1 Boolesches Modell ;516
1.17.3.2.2;17.3.2.2 Dimensionsmodell ;517
1.17.4;17.4 Räumliche Anfragen;519
1.17.4.1;17.4.1 Räumliche Basisanfragen ;519
1.17.4.1.1;17.4.1.1 Räumliche Selektion ;519
1.17.4.1.2;17.4.1.2 Räumlicher Verbund ;520
1.17.4.1.3;17.4.1.3 Nächste-Nachbarn-Anfrage ;521
1.17.4.2;17.4.2 Mehrstufige Anfragebearbeitung ;521
1.17.4.3;17.4.3 Approximationen ;522
1.17.5;17.5 Räumliche Indexe;524
1.17.5.1;17.5.1 Grundtechniken ;524
1.17.5.1.1;17.5.1.1 Clipping ;524
1.17.5.1.2;17.5.1.2 Punkttransformationen ;525
1.17.5.1.3;17.5.1.3 Raumfüllende Kurven ;525
1.17.5.1.4;17.5.1.4 Überlappende Blockregionen ;526
1.17.5.2;17.5.2 Quadtrees ;527
1.17.5.3;17.5.3 R-Bäume ;529
1.17.6;17.6 Geodatenbanksysteme;531
1.18;Abkürzungsverzeichnis;533
1.19;Literaturverzeichnis;538
1.20;Sachwortverzeichnis;558
-Datenbanken: Grundlagen und Überblick
-Informationsmodellierung
-Relationales Datenmodell
-Die Datenbanksprache SQL
-Datenbankanwendungsprogrammierung
-Datenbanken im Web
-Komponenten eines Datenbankmanagementsystems
-Dateiorganisation und Indexe
-Optimierung von Datenbanken und Leistungsbewertung
-Objektrelationale Datenbanken
-XML und Datenbanken
-Verteilte und föderierte Datenbanksysteme
-Data Warehouse
-Data Mining
-Multimedia-Datenbanken
-Geodatenbanken
-Datenbanken in OLTP-Systemen