DB2 Version 10 for z/OS

Werbung
DB2- Theorie und Praxis : Inhaltsverzeichnis

I
Inhaltsverzeichnis
DB2-Theorie und Praxis - Band 1 Themenbereiche
1
1  Relationales Modell
3
Grafischer Wegweiser durch den Band 1
Einstiegs-Grafik in die Thematik für Band 1
1
2
1.1  Grafischer Wegweiser durch das Kapitel 1 - Relationales Modell
1.2  Allgemeine Entwicklungsgeschichte
1.2.1  Entwicklung innerhalb IBM
1.2.2  Entwicklung außerhalb IBM
1.2.3 Produkt-Kompatibilität
3
4
4
4
5
Kompatibilität zwischen den IBM-DB2-Produkten
Kompatibilität zwischen Fremdhersteller-Produkten und DB2-Produkten
5
5
1.2.4  Entwicklungsgeschichte von DB2 für MVS, OS/390 und z/OS
6
Grober Überblick der DB2-Versions- und Release-Entwicklungen
Die wesentlichen Komponenten der Release-Entwicklungen
6
7
Version 2 - Release 1
Version 2 - Release 2
Version 2 - Release 3
Version 3
Version 4
Version 5 - DB2 for OS/390
Version 6 - DB2 Universal Database (UDB) for OS/390
7
7
8
9
10
11
12
Version 6 nach GA - nach der generellen Verfügbarkeit von V6
14
Version 7 - DB2 Universal Database (UDB) for OS/390 and z/OS
15
Version 7 nach GA - nach der generellen Verfügbarkeit
17
Version 8 - DB2 Universal Database (UDB) for z/OS
18
Version 8 nach GA - nach der generellen Verfügbarkeit
22
Version 9 - DB2 Version 9.1 for z/OS
23
Version 9 nach GA - nach der generellen Verfügbarkeit
28
Version 10 - DB2 10 for z/OS
29
Version 10 nach GA - nach der generellen Verfügbarkeit
38
1.3  Terminologie
1.3.1  Informationsablage in Tabellenform
39
39
Tabelle (Table, Relation)
39
Spalte/Column (Attribut)
39
Zeile/Row (Tupel) 40
Datenwert/Value40
Primary-Key (PK)
41
Foreign-Key (FK) und referenzielle Integrität (RI)
41
Abbildung der Primary- und Foreign-Key-Beziehungen (Beispiel-Tabellen des Buches und ihre logischen Beziehungen)
Informationelle referenzielle Integrität (Informational RI)
42
43
Index44
Daten-Repräsentation und -Ablage
45
1.3.2  Informationsbeziehungen durch Werteinhalte
1.3.3  Relationale Sprachschnittstelle
45
46
SQL48
© Copyright DGD GmbH Germany 65201 Wiesbaden
DB2- Theorie und Praxis : Inhaltsverzeichnis

II
QUEL49
QBE50
1.4  Charakteristiken eines relationalen DBMS
1.4.1  Anforderungen an ein relationales DBMS
51
51
Codd’sches Anforderungsprofil - RM/V2 51
1.4.2  Zusammenfassung wesentlicher Zielsetzungen, Leistungen und Schwächen des Relationen-Modells
Zielsetzungen des Relationen-Modells
Standards im Bereich des Relationen-Modells
Schwächen des Relationen-Modells
61
61
61
62
1.5  Vergleich der Datenhaltungs- und Bereitstellungs-Konzepte
1.5.1  Gruppierung konventioneller Datenhaltungs- und Bereitstellungs- und DBMS-Typen
1.5.2  Terminologievergleich konventionelle Systeme - RDBMS
1.5.3  Problembereiche konventioneller Datenhaltungs- und DBMS-Typen
Strukturierte DBMS
63
63
63
64
64
Lineare DBMS (relational-orientierte Systeme)
65
1.5.4  Komplexe DBMS: Objektorientierte Datenbank-Systeme (OODBMS)
1.6  Speicherung und Verarbeitung von komplexen Objekten (LOBs / Large Objects)
1.6.1  Die Abbildung der Realität in der IT durch strukturierte und unstrukturierte Modelle
1.6.2  Ein komplexes Objekt ist immer zerlegbar (zumindest theoretisch - praktisch manchmal nicht empfehlenswert)
Der Einfluss der Zeit auf komplexe Objekte
67
70
70
71
72
1.6.3  Kategorisierung komplexer Objekte
1.6.4  Speicherung komplexer Objekte mit DB2: Large Objects (LOBs)
1.6.5  Problematiken beim Design und der Speicherung komplexer Objekte
1.7  Speicherung und Verarbeitung von XML-Dokumenten
1.7.1  XML-Terminologie 1.7.2  Ein XML-Dokument unterliegt einem strukturierten hierarchischen Modell
1.7.3  Zielsetzung und Aufgabenstellung von XML
1.7.4  Sind die Ziele des Relationen-Modells mit XML vergleichbar?
Eine völlig unterschiedliche Herangehensweise
Unterschiedliche Eignungen
73
74
75
76
76
77
79
80
80
81
1.8 Fazit
1.9  Standardisierung von Datenbank-Methoden und Techniken
1.9.1 Standardisierungs-Organisationen
1.9.2  Wichtige allgemeine Standards
82
84
84
84
Datenbank-Standards85
ANSI/SPARC Architektur oder auch Drei-Schema-Architektur
86
SQL-Standards87
SQL-Standard: SQL 89
89
SQL-Standard: SQL92 (SQL2)
89
SQL-Standard: 1999/SQL3 (grober Auszug)
91
SQL-Standard: 2003 (relevanter Auszug)
92
SQL-Standard: 2006 (relevanter Auszug)
94
SQL-Standard: 2008 (relevanter Auszug)
95
Die Auswirkungen der bisherigen SQL-Standardisierungsmaßnahmen 96
2  DB2-System-Aufbau
97
2.1  Grafischer Wegweiser durch das Kapitel 2 - DB2-System-Aufbau
97
© Copyright DGD GmbH Germany 65201 Wiesbaden
DB2- Theorie und Praxis : Inhaltsverzeichnis

2.2  DB2-System-Komponenten und Zusatz-Produkte
2.2.1 DB2-System-Komponenten
2.2.2  DB2-Zusatz-Produkte von IBM
III
98
98
99
Zusatz-Features99
Objekt- bzw. Daten-Management-Tools
100
2.2.3  Sonstige Tools diverser Software-Hersteller
101
Entwicklungswerkzeuge für die PAEs
Verwaltungswerkzeuge für die DBADMs
101
101
2.3  Betriebssystem-Komponenten
2.3.1  System-Schichten von z/OS
2.3.2  DB2-Subsystem (Lokation oder Server)
2.3.3 DB2-Adressraum-Konzept
103
103
104
106
Sonstige Betriebssystem-Komponenten
107
Trägersysteme (Allied Agents)
107
DB2-System-Adressräume108
System-Dienste (System Services - MSTR = Master)
Datenbank-Dienste (Database Services - DBM1 = Database Manager)
Internal Resource-Lock-Manager (IRLM)
Administrativer Task Scheduler (ADMT)
Distributed Data Facilities (DDF)
108
108
108
108
109
Adressräume für Routinen (Stored Procedures und/oder User-defined Functions)
110
2.4  Allied Agents: Ankoppelbare Trägersysteme
2.4.1  Attachment-Facility, Connection und Thread
2.4.2  Zugriff auf DB2-Ressourcen aus Anwendungen heraus
111
111
112
Schnittstellen zu den Trägersystem-Typen
112
Batch-Schnittstelle mit CAF (DSNALI)
CICS-Schnittstelle (DSNCLI)
TSO-Schnittstelle (DSNELI)
Recoverable Resource Manager-Schnittstelle (DSNRLI)
Universelle Schnittstelle (DSNULI)
IMS-Schnittstelle (DFSLI000)
112
112
112
112
112
113
Dateiverarbeitungsmöglichkeiten der Trägersystem-Typen
113
2.5  Verteilung (distributing) und gemeinsame Nutzung (sharing) der DB2-Daten
2.5.1  Verteilung der DB2-Daten (distributed data)
Die Client-Server-Architektur (C/S)
DRDA - Distributed Relational Database Architecture
114
114
115
116
DRDA - Level
Remote-Zugriff über dreiteilige Objekt-Namen/ALIAS oder nach CONNECT
DB2-Privat-Protokoll und DRDA-Protokoll Technologische Grenzen der Verteilung von Daten
117
118
119
119
2.5.2  Gemeinsame Nutzung der DB2-Daten (DS - Data Sharing)
120
Betrieb mehrerer z/OS-Systeme
Data-Sharing: Group und Member
120
120
Argumente für Data Sharing
Grundsätzliche Anforderungen an ein Data-Sharing-Verfahren
121
122
Technische Lösung des DB2 Data Sharings
123
Data Sharing benötigt einen Parallel Sysplex
123
© Copyright DGD GmbH Germany 65201 Wiesbaden
DB2- Theorie und Praxis : Inhaltsverzeichnis

IV
Aufgaben-Abgrenzung zwischen Membern und dem Coupling Facility
124
Speicher-Strukturen einer Data Sharing Group
125
Die Konsistenzbewahrung bei Data Sharing (DS)
126
Sischer is sischer: Struktur-Duplizierung und Duplexed GBP
127
Einflüsse einer Data Sharing Group auf die System-Administration
Objekte und Namenskonventionen einer Data Sharing Group
128
129
Gruppen-Objekte und ihre Namen
129
Member-Objekte und ihre Namen
130
2.6  DB2-Ressource-Management durch den DB2 Administrativen Task Scheduler
2.6.1 Aufgabenstellung
2.6.2  Komponenten des Task Schedulers
131
131
131
System-Architektur131
ADMT-DB2-System-Komponenten132
Automatisierung von Utilities im Rahmen der Administrations- Scheduler Tasks (Autonomic Stored Procedures)
Planbare Ressourcen Architektur in einer Data Sharing Group
2.7  Synchronisation mehrerer Ressource-Manager: RRS - Resource Recovery Services
2.7.1 RRS-Aufgabenstellung
2.7.2  Programm-Typen für die RRS-Synchronisations-Aufgaben
2.8  DB2-Daten-Objekt-Typen
2.8.1  Meta-Objekt-Typen für die Speicherung von Daten
Verwaltung der Meta-Daten
133
134
135
136
136
137
138
138
139
Anlegen, Änderung und Löschung von Meta-Daten
139
CREATE - Anlegen von Meta-Daten
139
ALTER - Änderung von Meta-Daten
140
Online-Schema-Evolution: Realtime-Änderung
140
DROP - Löschung von Meta-Daten
140
Schema, Eigentümer und Ersteller von Daten-Objekt-Typen
141
Autorisierungs-Id, Schema, Ersteller (creator) und Eigentümer (owner)
141
Das Zusammenspiel der Spezialregister
142
Versionsführung für Meta-Objekte (Versionierung)
143
Wie kann man sich eine Versionsführung vorstellen?
143
Wie muss man sich die DB2-Versionsführung vorstellen?
144
Relevante Katalog-Informationen der Versionsführung
145
Test-Beispiele der DB2-Versionsführung
146
Im DB2 existieren vielfältige Versionen und Versionierungen
147
Katalog-Änderungen im Schwebezustand (Pending Changes)
148
Domain-Konzept und Daten-Typen
150
Grundsätzliche Überlegungen und Ausgangssituation
Builtin Daten-Typen
150
150
LOB = Large Object
150
XML = XML-Dokument
151
Benutzerdefinierte Daten-Typen (UDT = User-defined Data-Types)
152
Definition der Daten-Typen
152
Automatisch generierte Cast-Funktionen
153
Nutzungsmöglichkeit der Distinct Data-Types
154
User-defined LOB-Data Types
154
User-defined XML-Data Types
154
Vergleichbarkeit und Konvertierbarkeit der Daten-Typen
155
Konvertierungen zwischen verschiedenen Daten-Typen
156
Benutzer-orientierte Daten-Objekt-Typen
157
© Copyright DGD GmbH Germany 65201 Wiesbaden
DB2- Theorie und Praxis : Inhaltsverzeichnis

Tabelle/Table (Base Table)
V
157
Definition der Tabellen-Spalten
158
Die Rolle des PKs
160
Einrichtung referenzieller Beziehungen (referential constraint)
160
Einrichtung von Check-Constraints
162
Maschinelle Vergabe von Werten durch DB2
163
Nummern-Vergabe: ROWID, IDENTITY, SEQUENCE
163
Verwaltung von technischen Gültigkeitszeiträumen: PERIOD-Klausel für SYSTEM_TIME
163
GENERATED-Klausel für die automatische Generierung von Werten (GENERATED ALWAYS und GENERATED BY DEFAULT)
164
Zuordnung einer Tabelle zu einem Tablespace
167
Definition einer Partitioned Table (table-kontrollierte Partitionierung)
168
Änderung von Tabellen- und Spalten-Charakteristiken
170
Änderung des Daten-Typs einer Spalte
171
SQL-DDL-Unterstützung für die Basis-Tabelle
175
Temporal Tables (Tabellen mit Gültigkeitszeiten)
177
Einleitung177
Gültigkeits-Zeitleisten-Behandlung Inklusiv oder Exklusiv: Das ist hier die Frage
177
Unterstützte Datenhaltungs-Konzepte
178
Konzeptioneller Überblick des Modells
179
Fachliche Gültigkeit (BUSINESS_TIME)
179
Manipulations-Regeln für Daten mit fachlichen Zeitleisten
181
Technische Gültigkeit (SYSTEM_TIME)
182
Technische Lösung
184
Technische Komponenten der Datenhaltung
184
Katalog-Metadaten für Temporal Tables 186
Fachliches Zeitkonzept (PERIOD BUSINESS_TIME)
187
Grundsätzliche Aspekte
187
DDL-Definitionen
188
Meta-Informationen des Katalogs
189
Datenzustände für die Test-Beispiele
190
Beispiele für Manipulationen
191
Beispiele für Informations-Bereitstellungen (SELECT)
193
Bi-Temporale Tabellen mit fachlichen Gültigkeiten - PERIOD BUSINESS_TIMES und technischen Gültigkeiten - PERIOD SYSTEM_TIME und Versionierunge (History-Table)
195
Grundsätzliche Aspekte
195
DDL-Definitionen
197
Meta-Informationen des Katalogs
199
Datenzustände für die Test-Beispiele
202
Beispiele für Manipulationen
204
Beispiele für Informations-Bereitstellungen (SELECT)
207
DB2-Temporal Tables - Zusammenfassung
208
Konzepte und unterstützte Funktionalitäten
208
Positive Aspekte
209
Negative Aspekte
209
Fazit210
Clone Table
211
Aufgabenstellung und Funktionsumfang
211
Metadaten und Daten-Instanzen von Base Table und Clone Table
212
Metadaten von Base Table und Clone Table (Katalog-informationen)
212
Daten-Instanzen von Base Table und Clone Table
213
Daten-Definition von Base Table und Clone Table mittels SQL-DDL
214
Daten-Manipulationen und Utility-Unterstützung einer Clone Table
215
EXCHANGE-Statement: Austausch der Daten-Instanzen zwischen Base Table und Clone Table
216
Löschen der Clone Table
216
Restriktionen der Base Table und der Clone Table
217
Fazit217
Temporäre Tabelle
218
CTT - Created Global Temporary Table
219
DTT - Declared Global Temporary Table
220
© Copyright DGD GmbH Germany 65201 Wiesbaden
DB2- Theorie und Praxis : Inhaltsverzeichnis

VI
Temporäre Result Table/Virtual Table
222
Temporäre Result-Table-Typen
222
Positionierung oder Materialisierung einer temporären Result Table
224
DB2-View (Virtual Table)
225
Ist die View-Result-Table read-only oder updateable? 227
View auf View - macht das Sinn?
229
Anwendungs-Unabhängigkeit von physischen Sichten
230
Individuelle Views oder generalisierte Views
231
Nachteile und Grenzen des View-Konzepts
232
Empfehlungen zum View-Konzept
232
MQT - Materialisierte Query Table (Materialisierter View bzw. Materialisierte Result Table)
233
Komponenten einer materialisierten Query Table (MQT)
234
Definition der MQT
235
System- oder benutzer-kontrollierte MQT
237
Einrichtung einer Hash-Organisation für den Direkt-Zugriff mit Hash-Methode
238
Überblick238
Hash-Space: Aufteilung in Fixed Hash-Space und Overflow-Space
239
Katalog-Metadaten für Hash-Komponenten
241
Definition der Hash-Zugriffs-Methode
243
Neue Tabelle anlegen mit Hash-Organisation
243
Bestehende Tabelle mit Hash-Organisation ausstatten
245
SYNONYM247
ALIAS248
Maschinelle Vergabe einer lfd. Nr. durch DB2: SEQUENCE und IDENTITY
249
SEQUENCE251
Systemorientierte DB2-Objekt-Typen
252
Index252
Definition der Index-Spalten
253
Wann wird ein Index aufgebaut und wie wird er verwaltet?
253
Index-Typen254
Basis-Index256
Ein stinknormaler Index besteht aus .......
256
Der Clustering Index organisiert die Datenfolge 257
Partitioning Index und Partitioned Index
259
und nun alle Index-Typen auf einmal
262
DPSI: Data Partitioned Secondary Index
264
Extended Index
267
Scalar Expression Index (Index on Expressions) 268
Interne Organisation eines Indexes
270
Zuordnung eines Indexes zum Indexspace, den Page Sets und Datasets
270
B-Tree-Struktur eines Indexes
271
Änderung von Index-Charakteristiken
273
Löschung eines Indexes
273
Welche Vorteile bietet ein Index, welche Nachteile sind zu beachten?
274
Vorteile eines Indexes
274
Nachteile eines Indexes
275
Empfehlungen zum Index-Einsatz
276
Tablespace277
Aufgabenstellung und relevante Zuordnungen
277
Die Page-Größe und ihre Einflüsse
279
Tablespace-Typen280
Konvertierung eines Tablespace-Typs in einen anderen
283
Vor- und Nachteile der Tablespace-Typen
284
Besonderheiten des Partitioned Tablespaces
286
Physische Charakteristiken pro Partition
286
4096 Partitions und die Konsequenzen
287
© Copyright DGD GmbH Germany 65201 Wiesbaden
DB2- Theorie und Praxis : Inhaltsverzeichnis

VII
Dynamische Partitions: Hinzufügen neue Partition
289
Dynamische Partitions: Rotation
291
Dynamische Partitions: Partition-Werte balancieren
293
Nachträgliche Änderungsmöglichkeiten eines Tablespaces
294
Indexspace295
Aufgabenstellung und relevante Zuordnungen
295
Database297
Storage Group
298
LOB-Objekte: Auxiliary Table, Auxiliary Index, LOB-Tablespace
299
XML-Objekte: XML Table, DocID- und NodeID-Index, XML-Index und XML-Tablespace
301
Unterstützung von Temporal Tables mit XML-Dokumenten
303
XML-Erweiterungen der DB2-Version
10 304
2.8.2 DB2-System-Ressourcen
305
DB2-Directory: Database DSNDB01
DB2-Katalog: Database DSNDB06
Datenspeicherung von System- und Benutzerdaten
Zwischenspeicher für Materialisierungen
306
307
307
308
Workfiles: Workfile Database (DSNDB07)
308
Utility-Arbeitsdateien309
DB2-Log-Dateien309
Bootstrap-Dateien (BSDS)
309
DB2-Bibliotheken309
2.9  Routinen: Stored Procedures und User-defined Functions
2.9.1  Grafischer Wegweiser durch das Kapitel 2 - Routinen: Stored Procedures und User-defined Functions und Trigger
2.9.2  Terminologie und Übersicht
310
310
311
Routinen-Typen311
Aufgabenbereiche und Komponenten von Routinen
312
Unterschiede zwischen Externen Routinen und SQL Routinen
313
2.9.3  Identifikation von Stored Procedures und Functions
314
Schema, SQL-Pfad, Specific Name und External Name
Function Overloading und Function Resolution
314
314
2.9.4  Der Einsatz von Stored Procedures
315
Grobe Zielsetzung einer Stored Procedure
315
Prozedur-Typen316
Entwicklung einer Stored Procedure
317
Definition einer Stored Procedure
319
Namen der Stored Procedure
319
Parameter einer Stored Procedure
319
Übergabe der Parameterwerte
319
Parameter-Typen (Eingabe, Ausgabe oder beides)
321
NULL-Fähigkeit der Parameter
321
PARAMETER STYLE GENERAL, GENERAL WITH NULLS und SQL (Übergabe-Konventionen einer Stored Procedure)
322
Beispiel der Parameterübergabe zwischen PL/I- und COBOL
324
PARAMETER STYLE JAVA
325
Rückgabe einer Ergebnismenge (Query Result Set)
326
CALL-Aufruf-Varianten einer Stored Procedure
327
Statische CALL-Varianten
327
Dynamischer CALL (ODBC bzw. CLI)
327
External Procedure
328
Unterstützte Programmiersprachen
328
© Copyright DGD GmbH Germany 65201 Wiesbaden
DB2- Theorie und Praxis : Inhaltsverzeichnis

VIII
Entwicklungsschritte einer External Stored Procedure
328
Aufrufendes und aufgerufenes Modul
328
Compile und Linkage Editor
328
Definition der Stored Procedure im Katalog
329
SQL Procedure
330
Typen und unterstützte Funktionalitäten
330
SQL External Procedure
331
Unterstützte Programmiersprachen und Sprachmittel
331
Entwicklungsschritte einer SQL External Procedure
332
Data Studio oder Development Center
333
IBM-Stored Procedure DSNTPSMP
333
Explizite Definition mit der JCL-Prozedur DSNHSQL
334
Definition der SQL Stored Procedure im Katalog
334
SQL Native Procedure
335
Unterstützte Programmiersprachen und Sprachmittel
335
Versions-Konzept einer SQL External Procedure
336
Entwicklungsschritte einer SQL External Procedure
337
Definition der SQL Stored Procedure im Katalog
337
Ausführung einer Stored Procedure
338
Adressraum-Konzept338
Starten und Stoppen von Stored Procedures
338
Aufruf einer remote Stored Procedure und Ablauf 339
Vor- und Nachteile von Stored Procedures
Liste der Standard-Stored Procedures (IBM-Supplied Stored Procedures)
Relative Performance-Gewichtung von Stored Procedures mit unterschiedlichen Programmiersprachen 2.9.5  Der Einsatz von benutzerdefinierten Funktionen (User-defined Functions)
Grobe Zielsetzung einer User-defined Function (UDF)
341
342
348
349
349
Funktions-Aufruf und -Ergebnis
349
Funktions-Typen350
Entwicklung einer User-defined Function
353
Definition einer User-defined Function
355
Namen der User-defined Function
355
Inline- oder Non-Inline-Function
355
Parameter einer User-defined Function
356
Übergabe der Parameterwerte
356
Parameter-Typen (Eingabe oder Ausgabe)
356
NULL-Fähigkeit der Parameter
356
PARAMETER STYLE SQL oder JAVA (Übergabe-Konventionen für Funktionen)
357
Beispiel der Parameterübergabe zwischen COBOL und PL/I 359
Aufruf-Varianten einer User-defined Function
360
Externe Aufruf-Varianten der Funktion
360
Interne Aufruf-Typen (CALL-Typ bzw. FINAL CALL-Klausel)
360
Scratchpad: Zwischenspeicher für die internen Aufrufe
363
Thread- und TCB-Konzept für Funktions-Aufrufe
364
TCB-Nutzung beim Funktions-Aufruf
364
TCB-Konzept bei Parallel-Abwicklung
365
DETERMINISTIC oder NOT DETERMINISTIC - das ist hier die Frage
366
Sourced Function
367
Unterstützte Programmiersprachen
367
Entwicklungsschritte einer Sourced Function
367
Definition der Sourced Function im Katalog
367
External Functions
368
Unterstützte Programmiersprachen
368
Entwicklungsschritte einer External Function
368
Aufrufendes und aufgerufenes Funktions-Modul
368
© Copyright DGD GmbH Germany 65201 Wiesbaden
DB2- Theorie und Praxis : Inhaltsverzeichnis

Compile und Linkage Editor
IX
368
External Scalar Function
369
Definition der Scalar Function im Katalog
369
External Table Function
370
Definition der Table Function im Katalog
370
SQL Function
371
SQL Scalar Function
371
Definition der SQL Scalar Function im Katalog
371
SQL Table Function
372
Definition der SQL Scalar Function im Katalog
372
Ausführung einer User-defined Function
373
Adressraum-Konzept373
Starten und Stoppen von User-defined Functions
373
Vor- und Nachteile von User-defined Functions
374
Vor- und Nachteile von External Scalar Functions
Vor- und Nachteile von SQL Scalar Functions
Vor- und Nachteile von External Table Functions
Vor- und Nachteile von SQL Table Functions
374
374
375
375
2.9.6  Mögliche Ressource-Zugriffe
376
Unterstützte SQL-Funktionalität
376
Unterstützung von LOB-Spalten und -Werten
Unterstützung von XML-Spalten und -Werten
376
376
Zugriff auf externe Ressourcen
376
Remote DB2-Objekte
376
Andere relationale Datenbanken
376
CICS-Ressourcen377
IMS-Ressourcen377
WebSphere MQ-Ressourcen
377
Sonstige externe Ressourcen
377
2.9.7  Level-Konzept (Nested Routines)
378
Behandlung von Spezialregistern in Routinen
Fehlerbehandlung von Routinen
379
380
Auswahl relevanter Fehlercodes
381
Bewahrung der Daten-Integrität (COMMIT und ROLLBACK)
382
2.9.8  Erforderliche Privilegien
2.9.9  Package- und Plan-Behandlung
383
384
Behandlung der externen Module
Behandlung von implizit erzeugten Packages
Wechsel der Package
Nutzung verschiedener Programm-Versionen
384
384
384
384
2.9.10  Testmöglichkeiten von SQL-Routinen
385
Allgemeine Problematik
Test-Tools (Debugger)
Besonderheiten beim Test
Routinen-Versionen einer SQL Procedure
385
385
385
385
2.9.11  Zusammenfassung der relevanten Klauseln für die Definition von Routinen
Abwicklungs-Komponenten und Zuordnung der DDL-Parameter-Wirkung
Ausführungs-Steuerung (Optionen) von Routinen
Übersicht der Options-Argumente und Zuordnungen zu den Routinen-Typen © Copyright DGD GmbH Germany 65201 Wiesbaden
386
386
387
387
DB2- Theorie und Praxis : Inhaltsverzeichnis

X
Besonderheiten und Konventionen für Java Applikationen
388
2.9.12 z/OS-Ausführungs-Umgebung
389
Überblick der beteiligten z/OS-System-Komponenten
RRS - Resource Recovery Services
389
390
Die Rolle im Rahmen von Routinen
RRSAF-Attachment: Statisches oder dynamisches Laden
390
391
Language Environment
392
LE-Konzept und relevante Komponenten
392
LE-Run-time-Options392
MSGFILE392
RPTOPTS393
RPTSTG394
Optionen zur Kontrolle des Speichers
395
TEST und NOTEST
Sonstige LE-Besonderheiten
395
395
Workload-managed Adressräume (WLM-established)
396
WLM-Terminologie396
WLM-Aufgabenstellung396
WLM-Komponenten396
WLM-Subsystem-Typen396
WLM-Service-Definitions
397
WLM-Operations-Modus397
WLM-DB2-Environment398
DB2-Installations-Parameter für WLM
398
Parametrisierung für WLM
398
WLM-JCL-Beispiel398
NUMTCB = Anzahl paralleler Tasks
399
Steuerung des WLM-Adressraums
400
Kontrolle und Abbruch aktiver Routinen
400
Wieviele WLM-Environments sind sinnvoll?
401
Privilegien für die Nutzung des WLM-Environments
401
Modul-Eigenschaften in der WLM-Umgebung
402
Threadsafe Module (reentrant) 402
Residente Module
402
Haupt- oder Unter-Routine
402
Austausch der ausführbaren Version einer Routine
403
Testmöglichkeiten in der WLM-Umgebung
404
Allgemeine Problematik
404
Test-Tools (Debugger)
404
Besonderheiten beim Test
404
Vorteile des WLM-Environments
Nachteile des WLM-Environments
Performance-Aspekte bei externen Modulen
405
405
406
2.10  Der Einsatz von Triggern
2.10.1  Zielsetzungen eines Triggers
2.10.2 Trigger-Terminologie
407
407
408
Beispiel eines Triggers
408
Trigger-Charakteristiken408
2.10.3  Übersicht der Trigger-Typen und ihre Charakteristiken
410
Komponenten eines Triggers
Aktivierungszeit: BEFORE
411
412
© Copyright DGD GmbH Germany 65201 Wiesbaden
DB2- Theorie und Praxis : Inhaltsverzeichnis

XI
Allgemeine Regeln
Trigger-Beispiele: Before-Trigger
412
413
Abbildung des Einsatzes
413
Trigger mit Abweisung ungültiger Referenzen (RI-Erweiterung)
414
Trigger zur Einsetzung von Initialwerten bei Einfügungen
415
Trigger mit Übernahme redundanter Daten
415
Trigger mit Aufruf einer Funktion
415
Aktivierungszeit: AFTER
416
Allgemeine Regeln
Trigger-Beispiele: After-Trigger
416
417
Abbildung des Einsatzes
417
Verwaltung von Redundanzen
418
Trigger mit Übergabe einer Transition-Table an eine Funktion 419
Trigger mit Übergabe von Transition-Variablen an eine Funktion 419
Aktivierungszeit: INSTEAD OF
420
Allgemeine Regeln
Trigger-Beispiele: Instead of-Trigger
420
421
Abbildung des Einsatzes
421
Restriktionen eines Instead of Triggers
423
Empfehlungen für den Einsatz eines Instead of Triggers
424
Ereignis-Typen: INSERT, UPDATE und DELETE
Häufigkeit der Funktionsauslösung: ROW oder STATEMENT
425
425
2.10.4  Ablauf der Verarbeitung bei Einsatz eines Triggers
426
Trigger-Aktion427
Trigger-Condition427
Trigger-Body427
Result Table des Triggers
428
Transition-Variablen428
Transition-Tables429
Cascading-Effekte und Trigger-Level bei After Triggern
430
2.10.5 Fehler-Behandlung
431
Fehler-Erkennung und -Signalisierung
Fehler bei der Ausführung der Trigger-Statements
431
432
2.10.6  Aufruf von Routinen aus einem Trigger heraus
433
Aufruf-Techniken433
Behandlung von Spezialregistern
434
2.10.7 Trigger-Package
435
Erzeugen und Löschung einer Trigger-Package
REBIND einer Trigger-Package
Abhängigkeiten einer Trigger-Package
435
435
435
2.10.8 Trigger-Restriktionen
2.10.9  Vor- und Nachteile von Triggern
436
437
3  Methodische und technische Voraussetzungen für DB2
3.1  Grafischer Wegweiser durch das Kapitel 3 - Methodische und technische Voraussetzungen für DB2
3.2  Allgemeine Voraussetzungen für eine DB2-Einführung
3.2.1  Personelle Voraussetzungen
Objekt- (OA) bzw. Daten-Administration (DA)
Datenbank-Administration (DBA)
439
439
440
441
441
441
© Copyright DGD GmbH Germany 65201 Wiesbaden
DB2- Theorie und Praxis : Inhaltsverzeichnis

XII
3.2.2  Organisatorische Voraussetzungen
442
Auswirkung auf die Anwendungs-Entwicklung
442
3.2.3  Technische Voraussetzungen für DB2 Version 10 for z/OS
444
Hardware444
Betriebssystem-Software445
Funktionsspezifische Abhängigkeiten
445
Betriebssystemnahe Standard-Software
445
Transaktions-Management446
DRDA-Verbindungsmöglichkeiten446
Web-Verbindungen446
Anwendungs-Entwicklungs-Tools447
Programmiersprachen447
Migrations-Pfad zur Version 10
448
3.2.4  Was ist neu im DB2?
3.2.5  Migration-Strategie ins DB2
3.3  DB2-Systemkonzept
3.3.1  Single-DBMS oder Multi-DBMS?
3.3.2  Abgrenzung Produktionssystem -Testsystem
450
452
453
453
454
System-Kategorien: Test, Übergabe und Produktion
454
System-Kategorie: Test
System-Kategorie: Übergabe in die Produktion (System-Test)
System-Kategorie: Produktion
455
455
456
Problematiken bei der Übernahme von Test in die Produktion
456
Isolierte Systeme haben trotzdem Kommunikations-Erfordernisse
Koordination der Objekte zwischen Systemen
456
457
Management der Versions-Änderungen (Change Management)
457
Spezielle DB2-Übernahme-Kriterien
457
3.3.3  Datenbank-Hierarchie und Nutzungsmöglichkeiten
3.3.4 Informations-Aktualität
3.3.5  Client-Server-Konzept (C/S)
458
459
460
Zentralisierung versus Dezentralisierung
460
C/S sollte in den Köpfen des Managements beginnen ...
460
C/S benötigt klare Konzepte
461
Argumente für eine dezentrale Organisationsform (Verteilung)
462
Argumente für eine zentrale Organisationsform
462
Fazit462
Varianten der C/S-Verarbeitung
463
Verteilungsaspekte464
Lokale Zuordnung der Ressourcen
Verfügbarkeit und Nutzbarkeit der Ressourcen
464
464
Konsequenzen einer Verteilung
465
3.4  Methodische Voraussetzungen
3.4.1  Abhängigkeiten zwischen Programmen und Daten
466
466
Probleme beim Einsatz konventioneller Datenbank-Systeme
Sind solche Probleme unter DB2 automatisch gelöst?
466
468
Abhängigkeit des SQL-Spracheinsatzes von DB2-Katalog-Informationen
Abhängigkeit bei fehlendem Schichten-Konzept
© Copyright DGD GmbH Germany 65201 Wiesbaden
468
471
DB2- Theorie und Praxis : Inhaltsverzeichnis

Lass die Datenbank loopen!
Auswirkung der Daten-Modellierung auf die Programm-Sicht
XIII
472
473
Sicht auf unnormalisierte Daten
474
Definition einzelner Spalten in Wiederhol-Elementen
474
Variable Zeilen mit VARCHAR- oder LOB-Definitionen
475
Speicherung von XML-Dokumenten
476
Sicht auf normalisierte Daten
477
Sicht auf Daten in der ersten Normalform (1 NF)
477
Sicht auf Daten in höheren Normalformen (2 NF, 3NF)
478
3.4.2  Abbau der Abhängigkeiten durch Methodik-Einsatz
479
Ebenen, Modell- und Ergebnis-Typen im Unternehmens-Modell
Auswirkungen auf das Anwendungs-Design
479
480
Schichten-Modell für Anwendungs-Programme
480
Separierung der Datenzugriffe von sonstigen Funktionen
481
Objektorientierte Verwaltung der Daten
482
Daten-Verwaltung immer über eine zuständige Funktion/Methode
Einsatzmöglichkeit von Standard-Zugriffs-Routinen
483
484
3.4.3  Abbau der Abhängigkeiten durch DB2-Techniken
485
Das Ebenen-Modell von DB2 Katalog-Konzept 485
486
Verlagerung von Programmlogik in den DB2-Katalog
486
Komponenten einer "aktiven Datenbank"
487
Nutzung von Stored Procedures, User-defined Functions und Triggern
488
Integritätsbewahrung als Aufgabenstellung für die Datenbank
488
Verlagerung sämtlicher datennaher Dienste in den DB2-Bereich
489
Argumente für und wider eine "aktive Datenbank"
490
3.4.4  Normungs-Effekte durch internationale Standards
491
Normungs-Effekt durch den SQL-Spracheinsatz
Open Database Connectivity (ODBC) und der CLI-Spracheinsatz
491
491
4  DB2-Sprachschnittstellen
4.1  Grafischer Wegweiser durch das Kapitel 4 - DB2-Sprachschnittstellen
4.2  Benutzergruppen und deren Anforderungen
4.3  DB2-Sprachschnittstellen für die Benutzergruppen
4.3.1  TSO-DSN-Commands: Übersicht
4.3.2 SQL-Statements
492
492
493
494
496
497
SQL-Statement- und Benutzer-Kategorien
497
DCL - Data Control Language
DDL - Data Definition Language
DML - Data Manipulation Language
497
497
498
SQL-Anwendungsformen und Sprach-Schnittstellen
500
Interactive SQL (DB2I)
Embedded SQL (EXEC-Level)
CALL-Level-Interface für C- und C++-Programme (CLI bzw. ODBC)
JDBC-API für Java-Anwendungen
SQLJ-API für Java-Anwendungen
Static SQL
Dynamic SQL
500
500
501
501
501
502
502
Übersicht der SQL-Statements und ihre Einsatzmöglichkeiten
503
4.3.3 DB2-Befehle/DB2-Commands
507
© Copyright DGD GmbH Germany 65201 Wiesbaden
DB2- Theorie und Praxis : Inhaltsverzeichnis

XIV
DB2-System-Commands507
Admin-Scheduler-Commands509
CICS-Commands509
IMS-Commands510
IRLM-Commands510
4.3.4 DB2-Hilfsprogramme/DB2-Utilities
511
DB2-Online-Utilities511
Utility-Control-Statements512
4.3.5  Standalone Utilities/Service Aids
4.3.6  TSO-CLISTs und TSO-DSN-Subcommands
4.4  DB2I: Masken der interaktiven DB2-Oberfläche
4.4.1  Einstiegs-Menü (Primary Option Menu)
4.4.2  D - DB2I-Defaults
512
513
514
514
515
Default-Panel 1
Default-Panel 2
515
516
4.4.3  1 - SPUFI: SQL Processor Using File Input
517
SPUFI-Steuerungsmaske517
SPUFI-Defaults519
Default-Panel 1
Default-Panel 2
519
521
SPUFI-Edit-Maske522
SPUFI-Browse-Maske523
4.4.4  2 - DCLGEN: Declarations Generator
524
Eingabemaske524
Maske mit Zusatz-Optionen
525
Beispiel generierter Ausgaben
526
COBOL-Host-Variablen-Struktur526
SEMINAR-Tabelle526
Variante: Default-Struktur- und Spalten-Namen ohne Label
526
Variante: Default-Struktur- und Spalten-Namen mit Label
527
Variante: Individuelle-Struktur- und Spalten-Namen (Table-Name mit Numerierung)
528
Variante: Individuelle-Struktur- und konkreten Spalten-Namen
529
Alle Daten-Typen
530
PL/I--Host-Variablen-Struktur532
SEMINAR-Tabelle532
Variante: Default-Struktur- und Spalten-Namen ohne Label
532
Variante: Default-Struktur- und Spalten-Namen mit Label
533
Variante: Individuelle-Struktur- und Spalten-Namen (Table-Name mit Numerierung)
534
Variante: Individuelle-Struktur- und konkreten Spalten-Namen
535
Alle Daten-Typen
536
C--Programm-Host-Variablen-Struktur538
SEMINAR-Tabelle538
Variante: Default-Struktur- und Spalten-Namen ohne Label
538
Variante: Default-Struktur- und Spalten-Namen mit Label
539
Variante: Individuelle-Struktur- und Spalten-Namen (Table-Name mit Numerierung)
540
Variante: Individuelle-Struktur- und konkreten Spalten-Namen
541
Alle Daten-Typen
542
4.4.5  3 - Program Preparation
544
Steuerungsmaske544
Program Preparation 'Compile, Link and Run Panel'
545
© Copyright DGD GmbH Germany 65201 Wiesbaden
DB2- Theorie und Praxis : Inhaltsverzeichnis

4.4.6  4 - Precompile
4.4.7  5 - BIND / REBIND / FREE
XV
546
547
1 - BIND PLAN
548
Steuerungsmaske548
Default Panel BIND PLAN
549
Connection Types Panel
550
Package List Panel
551
Ergebnis einer erfolgreichen BIND PLAN-Ausführung
551
2 - REBIND PLAN
552
Steuerungsmaske552
Default-Panel553
3 - FREE PLAN
554
Steuerungsmaske554
4 - BIND PACKAGE
555
Steuerungsmaske555
Default-Panel557
Connection Types Panel
559
Path List Panel
560
Ergebnis einer erfolgreichen BIND PACKAGE-Ausführung
560
5 - REBIND PACKAGE
561
Steuerungsmaske561
Default-Panel563
6 - REBIND TRIGGER PACKAGE
564
Steuerungsmaske564
7 - FREE PACKAGE
565
Steuerungsmaske565
4.4.8  6 - RUN - Aktivierung einer Programm-Ausführung im Foreground oder Batch
Anstoß über Panel
JCL-Beispiel eines Batch-Ausführungs-Jobs
566
566
567
4.4.9  7 - DB2 Commands
568
Vorgabe von DB2-Commands
Ergebnis einer DB2-Command-Ausführung
568
568
4.4.10  8 - Utilities (Online-Utilities)
569
Steuerungsmaske569
Control Statement Data Set Names
570
Data Set Names
571
Ergebnisse der Job-Generierung
572
Generierungs-Informationen572
Generierter Utility-Job
573
5  SQL-DDL-Data Definition Language
5.1  Grafischer Wegweiser durch das Kapitel 5 - SQL-DDL-Data Definition Language
5.2  Dynamische DB2-Objektverwaltung
5.3  Anlegen DB2-Objekt-Typen: CREATE 5.3.1  Defaults beim Anlagen von Objekten
5.3.2  Beispiele CREATE
Systemorientierte Daten-Objekt-Typen
574
574
575
577
577
580
580
STOGROUP, DATABASE und TABLESPACE
580
© Copyright DGD GmbH Germany 65201 Wiesbaden
DB2- Theorie und Praxis : Inhaltsverzeichnis

XVI
INDEX582
Base-Index-Varianten582
Auxiliary-Index, Extended Index und XML-Index
583
Benutzerorientierte Daten-Objekt-Typen
584
Distinct Type
584
Base-Table-Varianten584
Temporal Table und History Table
589
Auxiliary Table 592
XML Table 592
Global Temporary Table 593
MQT - Materialized Query Table 594
Clone Table 595
VIEW596
SYNONYM und ALIAS
597
COMMENT und LABEL
598
SEQUENCE599
Funktionsorientierte Objekt-Typen: Routinen
600
UDF - User-defined Function
STP - Stored Procedure
600
602
Funktionsorientierte Objekt-Typen: Trigger
604
Trigger für die Manipulation von Tabellen: Before und After Trigger
Trigger für die Manipulation von Views: Instead of Trigger
604
605
5.4  Ändern DB2-Objekt-Typen: ALTER und RENAME
5.4.1  Besonderheiten bei Struktur-Veränderungen und Erweiterungen
606
608
Wie verhalten sich die Daten bei Struktur-Veränderungen?
Wie verhalten sich die Daten bei Struktur-Erweiterungen?
Was tun, wenn kein ALTER existiert?
608
608
609
5.4.2  Beispiele ALTER
610
Systemorientierte Daten-Objekt-Typen
610
STOGROUP, DATABASE und TABLESPACE
610
Konvertierung eines Segmented Tablespaces in einen UTS und setzen Objekt in Pending-Change-Status
611
INDEX612
Base-Index612
Auxiliary-Index, Extended Index und XML-Index
612
Benutzerorientierte Daten-Objekt-Typen
613
Distinct Type
613
Base-Table-Varianten613
Temporal Table nachträglich auf Basis-Tabelle definieren
615
Auxiliary Table 616
XML Table 616
Global Temporary Table 616
MQT - Materialized Query Table 617
Clone Table 618
VIEW619
SYNONYM und ALIAS
619
COMMENT und LABEL
619
SEQUENCE620
Funktionsorientierte Objekt-Typen: Routinen
621
UDF - User-defined Function
STP - Stored Procedure
621
622
© Copyright DGD GmbH Germany 65201 Wiesbaden
DB2- Theorie und Praxis : Inhaltsverzeichnis

Funktionsorientierte Objekt-Typen: Trigger
XVII
623
5.4.3  Beispiele RENAME
5.5  Löschen DB2-Objekt-Typen: DROP
5.5.1  Die Auswirkung eines DROP-Kommandos auf andere DB2-Objekte (Abbildung mit referenziellen Effekten)
5.5.2  Beispiele DROP
Systemorientierte Daten-Objekt-Typen
623
624
626
627
627
STOGROUP, DATABASE und TABLESPACE
627
INDEX628
Base-Index628
Auxiliary-Index628
Extended Index und XML-Index
628
Benutzerorientierte Daten-Objekt-Typen
629
Distinct Type
629
Base-Table629
Auxiliary Table 629
XML Table 629
Global Temporary Table 630
MQT - Materialized Query Table 630
Clone Table 631
VIEW631
SYNONYM und ALIAS
631
COMMENT und LABEL
631
SEQUENCE631
Funktionsorientierte Objekt-Typen: Routinen
632
UDF - User-defined Function
STP - Stored Procedure
632
632
Funktionsorientierte Objekt-Typen: Trigger
Objekt-Typ: Package
633
633
6  SQL-DML-Data Manipulation Language
6.1  Grafischer Wegweiser durch das Kapitel 6 - SQL-DML-Data Manipulation Language
6.2  SQL-DML-Sprachspektrum
6.3  SQL-DML-Anwendungsformen und Sprach-Schnittstellen
6.4  SELECT - Datenabfragen
6.4.1 SELECT-Typen
Relevante Komponenten eines SELECT-Statements
Result Table eines SELECT-Statements
Syntaktische Grundformen des SELECT-Statements
Entwicklung und Veränderungen der SELECT-Klauseln in DB2-Version 8 und 9
6.4.2  Syntax des SELECT-Statements
634
634
635
636
637
637
637
637
638
640
641
Grundformat des SELECT-Statements
Die logische Abarbeitungsfolge der SELECT-Parameter
SELECT-Klausel
641
642
643
Bereitstellung von Daten aus einer einzelnen Tabelle
Verdichtung der Result Table (DISTINCT)
Bereitstellung von Daten aus mehreren Tabellen (Join)
643
643
643
FROM-Klausel644
Bereitstellung von Daten aus Basis-Tabellen bzw. Views
644
© Copyright DGD GmbH Germany 65201 Wiesbaden
DB2- Theorie und Praxis : Inhaltsverzeichnis

XVIII
Inner und Outer Join
Nested Table Expression
644
644
WHERE-Klausel645
Einfache Vergleichsoperatoren
645
Subquery645
Row Expression (Row-Value-Expression)
646
ORDER BY-Klausel
GROUP BY-Klausel
646
646
6.4.3  Tabelleninhalte der Beispieltabellen
6.4.4  Einfache SELECT-Abfragebeispiele aus einer Tabelle
647
648
Einfache Spaltenauswahl (PROJECT)
Konstante und arithmetisch errechnete Werte
Vergabe von Namen für Spalten der Result Table
Auswahl bestimmter Zeilen mit WHERE
Variable Auswahl bestimmter Zeilen mit WHERE und CASE
648
648
649
649
650
6.4.5  Boolsche Verknüpfungen und Prädikate
651
AND-Verknüpfung651
OR-Verknüpfung651
NOT-Verknüpfung652
BETWEEN-Prädikat652
IN-Prädikat652
LIKE-Prädikat652
NULL-Prädikat654
DISTINCT-Prädikat654
Mix von Prädikaten und Klammerung
655
6.4.6  Sortierung - ORDER BY
656
Auf- und absteigende Sortierung
Sortierung von abgeleiteten Spalten
Sortierung der Result Table eines Sub-Selects und der endgültigen Result Table
6.4.7  Funktion (Builtin-Function)
656
657
658
659
Aggregate Function
Moving Aggregates (Scalar Aggregate Functions)
Scalar Function
659
661
664
Konvertierungs-Funktion664
DateTime-Function665
Sonstige Funktionen
667
Verschachtelung von Aggregate Functions und Scalar Functions
668
6.4.8  Gruppierung/ GROUP BY
669
HAVING671
6.4.9 Set-Operatoren
674
UNION und UNION ALL
EXCEPT und EXCEPT ALL
INTERSECT und INTERSECT ALL
676
679
680
6.4.10  JOIN Selektion aus mehreren Tabellen
681
Join-Verarbeitungs-Regeln681
Kartesisches Produkt
683
Equi-Join684
© Copyright DGD GmbH Germany 65201 Wiesbaden
DB2- Theorie und Praxis : Inhaltsverzeichnis

Join einer Tabelle mit sich selbst
Inner Join und Outer Join
XIX
685
686
Übersicht der Ergebnis-Typen
Inner Join
Left Outer Join
Right Outer Join
Full Outer Join
Die Wirkung der ON-Klausel
Verknüpfung mehrerer Join-Typen
686
688
688
689
690
691
693
Kombination von Join und Table Expression
695
6.4.11  Scalar Full-Select
696
Möglichkeiten und Risiken
Scalar Full-Select in der WHERE-Bedingung
Scalar Full-Selects und Joins
Scalar Full-Select in der CASE-Expression
696
697
698
699
6.4.12  Table Expression
700
Nested Table Expression
700
Einfaches Beispiel
Nested Table Expression mit Outer Join
Nested Table Expression mit CASE (Statistik-Funktion)
700
702
703
Common Table Expression
704
Einsatzgebiet704
Einfaches Beispiel
704
Einsatz mehrerer Common Table Expressions
Rekursives SQL
Die typische Hierarchie-Abbildung
705
708
708
Aufbau von Test- oder Hilfsdaten
712
Kalender mit Tagen, Wochen und Wochen-Tag
712
Kalender mit Jahr, Woche und Tag nach ISO (wann beginnt die erste Woche im Jahr?)
713
Common Table Expression und INSERT
714
6.4.13  Subquery (Sub-Query)
715
Allgemeine Syntax
Non-correlated Subquery
715
717
Subquery direkt nach einem Vergleichsoperator
Subquery nach IN
Subquery nach EXISTS
Subquery nach ANY bzw. SOME und ALL
717
718
719
720
Correlated Subquery
721
Verarbeitungsunterschiede zu non-correlated Subquery direkt nach einem Vergleichsoperator
Subquery nach EXISTS
721
722
722
6.4.14  SELECT-Unterstützung für Temporal Tables
723
Perioden-Spezifikation der FROM-Klausel
SELECT mit der FOR BUSINESS-Klausel
723
724
Zugriff auf eine einzelne Tabelle
Zugriff auf mehrere Tabellen (Join)
724
726
SELECT mit der FOR SYSTEM-Klausel
728
Zugriff auf eine einzelne Tabelle
Zugriff auf mehrere Tabellen (Join)
728
730
© Copyright DGD GmbH Germany 65201 Wiesbaden
DB2- Theorie und Praxis : Inhaltsverzeichnis

XX
6.5  SQL-Manipulations-Statements
6.5.1  Was versteht man unter Manipulations-Statements?
6.5.2  Temporal Tables fordern eine Abkopplung der fachlichen Änderung von der technischen Manipulations-Vorgabe
Fachlich-Funktionale Konsequenzen für Daten mit Zeitbezug
732
732
733
733
Manipulations-Typen733
Fachliche Manipulations-Festlegungen hinsichtlich der Gültigkeitszeitleisten
734
DB2-Temporal-Table-spezifische Manipulations-Festlegungen
736
DELETE- und UPDATE-Regeln einer DB2-Temporal-Table
738
BUSINESS_PERIOD-Beispiele: UPDATE mit DATE-Charakteristiken
739
BUSINESS_PERIOD-Beispiele: DELETE mit DATE-Charakteristiken
740
SYSTEM_PERIOD-Beispiele: UPDATE
741
BUSINESS_PERIOD-Beispiele: DELETE
743
6.5.3  Übersicht der SQL-Manipulations-Statement-Typen
6.5.4  SELECT-Statement mit SQL Data Change Statement
6.5.5  INSERT - Daten-Einfügung
746
747
748
Der INSERT fordert eine updateable Result Table
748
INSERT-Formate749
Verhalten bei Spalten mit Default-Maßnahmen
750
Beispiele für SQL-Dateneinfügungen
751
INSERT einer einzelnen Zeile
INSERT einer Zeilen-Gruppe (im Anwendungsprogramm)
INSERT mehrerer Zeilen mit SELECT
751
751
752
SELECT mit SQL Data Change Statement (hier: SELECT mit INSERT)
FINAL TABLE mit einer Zeile
754
755
Beispiel: SELECT FROM FINAL TABLE (INSERT ... mit INCLUDE)
756
FINAL TABLE mit mehr als einer Zeile
758
6.5.6  UPDATE - Daten-Veränderung
760
Der UPDATE fordert eine updateable Result Table
760
UPDATE-Formate761
Beispiele für SQL-Datenveränderungen
762
Searched Update
Positioned Update
762
763
SELECT mit SQL Data Change Statement (hier: SELECT mit UPDATE)
6.5.7  DELETE - Daten-Löschung
764
765
Der DELETE fordert eine updateable Result Table
765
DELETE-Formate766
Beispiele für SQL-Datenlöschungen
767
Searched Delete
Positioned Delete
767
768
SELECT mit SQL Data Change Statement (hier: SELECT mit DELETE)
6.5.8  MERGE - Daten einmischen 769
770
Der MERGE fordert eine updateable Result Table
770
MERGE-Formate771
Beispiele für SQL-Daten-Mischvorgänge
772
Einfügung einer Zeile
Änderung einer Zeile
Änderung mehrerer Zeilen
SELECT mit SQL Data Change Statement (hier: SELECT mit MERGE)
772
773
774
775
SELECT mit MERGE in einem Cursor
778
© Copyright DGD GmbH Germany 65201 Wiesbaden
DB2- Theorie und Praxis : Inhaltsverzeichnis

7  SQL-DCL-Data Control Language
7.1  Grafischer Wegweiser durch das Kapitel 7 - SQL-DCL-Data Control Language
7.2  DB2-Zugriffsschutzkonzept
7.2.1 Überblick
XXI
779
779
780
780
Vorüberlegungen780
Welche Ressourcen können von DB2 geschützt werden?
781
Konsequenzen bei einer vollständigen Auslagerung auf einen ESM
783
Aufteilung der Sicherheitsfunktionen zwischen DB2 und einem ESM
784
7.2.2 DB2-Privilegien-Konzept
7.2.3 DB2-Autorisierungs-Konzept
785
786
Übergabe der Autorisierungs-Identifikatoren
Primär-, Sekundär- und Current-Autorisierungs-Id
Zeitpunkt der Autorisierungsprüfung
787
788
789
Autorisierungsprüfung zur Bind-Zeit Autorisierungsprüfung zur Ausführungs-Zeit 789
790
Verhaltensweisen bei Dynamic SQL (Statement Behavior)
791
Wirkung der DYNAMICRULES-Optionen BIND, DEFINEBIND, INVOKEBIND, RUN, DEFINERUN und INVOKERUN
Zusammenfassung der Verhaltensweisen (Statement-Behavior) und Konsequenzen der Autorisierungsprüfungen
7.2.4 Privilegien-Konzept
791
792
793
Privilegien-Struktur793
Explizite Privilegien
794
Grant-Typen und Privilegienbereiche
DB2-Ressource-Typen und ihre Zuordnung der Einzel-Privilegien
795
796
Implizite Privilegien
799
Owner eines Objekts
799
Administrations-Gruppen801
Hierarchie der ADM-Privilegien
804
Explizit zuordenbare ADM-Gruppen
804
Implizit wirkende Einzel-Privilegien ADM-Gruppen
805
7.2.5  Welche Privilegien werden wann benötigt? 806
Erforderliche Privilegien zur Verwaltung der DB2-Objekte
Die erforderlichen Privilegien eines Anwendungsentwicklers
Zusammenspiel von Autorisierungs-Id-Typen und Privilegien
806
807
808
Ausführung von Dynamic SQL-Statements und die erforderlichen Privilegien
Plan- und Package-Aktivitäten
7.3  GRANT - Erteilen DB2-Privilegien
7.3.1  Privilegien-Kategorien und GRANT-Varianten
7.3.2  Hierarchisches GRANT-Konzept
7.3.3 GRANT-Besonderheiten
7.3.4  Beispiele GRANT
808
809
810
810
811
812
813
GRANT-Szenario813
7.4  REVOKE - Aufheben DB2-Privilegien
7.4.1 REVOKE-Varianten
7.4.2  REVOKE und die Cascading Effekte
7.4.3 REVOKE-Besonderheiten
7.4.4  Beispiele REVOKE
815
815
816
819
820
REVOKE-Szenario820
© Copyright DGD GmbH Germany 65201 Wiesbaden
DB2- Theorie und Praxis : Inhaltsverzeichnis

XXII
7.5  DB2-Datenzugriffs-Kontrolle (ACCESS CONTROL)
7.5.1  Column Access Control (Column-Mask) und Row Access Control (Row-Permission) 821
821
Überblick821
Komponenten zur Einrichtung "geschützter" Objekte
822
Column Access Control (Column-Mask) - Maskierung von Ergebniswerten
824
Row Access Control (Row-Permission) - Filterung der Datenzeilen
825
7.6  Trusted Context und Rollen
7.6.1  Trusted Connection
826
826
Komponenten der Definition eines Trusted Contextes
827
Name des Trusted Contextes
827
System-Autorisierungs-Id827
Default-Rolle und ROLE AS OBJECT OWNER
827
ENABLE oder DISABLE
827
Default-Security-Label827
ATTRIBUTES827
WITH USE FOR
828
7.6.2  Die Rolle (ROLE) im Rahmen eines Trusted Contextes
7.6.3  Aktivitäten eines anderen Benutzers mit dessen Objekt-Privilegien durchführen
7.6.4  SQL-Statements und Katalog-Informationen für Trusted Context und Rollen-Konzept
7.7  VIEW - Inhaltsbezogener Datenschutz
7.7.1  Besonderheiten bei der Anwendung in Programmen
7.8  MLS - Multi-Level Security
7.8.1  Probleme bisheriger Zugriffsschutz-Verfahren
7.8.2  MLS-Konzept und relevante Komponenten
Security Kategorie, Security Level und Security Label
829
830
831
832
833
834
834
835
836
7.8.3  MAC - Mandatory Access Control / Mandatory Access Checking
837
Dominanz (Dominate/Dominance)
Äquivalenz (Equivalent)
Nicht verarbeitbar
Inkompatibilität (disjoint oder disjunkt)
Write-down Control
837
837
837
837
837
7.8.4  MLS-Implementierungs-Varianten im DB2
838
MLS und MAC auf Objekt-Ebene
MLS auf Zeilen-Ebene (Row-Level Granularity)
838
839
Write-down Control bei Row-Level Granularity
Behandlung der betroffenen SQL-Statements
839
839
CREATE TABLE/ALTER TABLE
839
DROP TABLE
839
SELECT839
INSERT839
UPDATE840
DELETE840
Behandlung der betroffenen Utilities
841
LOAD841
UNLOAD841
REORG TABLESPACE
841
Behandlung in Triggern
Sonstige Besonderheiten
841
841
© Copyright DGD GmbH Germany 65201 Wiesbaden
DB2- Theorie und Praxis : Inhaltsverzeichnis

XXIII
7.8.5  Zusammenfassung und Konsequenzen des MLS-Konzepts
842
Beispielhafte Ressource- und Benutzer-Definitionen
842
Security-Kategorien842
Security-Level842
Security-Label842
Fazit843
7.8.6  Vor- und Nachteile des MLS-Konzepts
844
Vorteile des MLS-Konzepts
Nachteile des MLS-Konzepts
844
844
7.9  Verschlüsselung von Daten (Encryption)
7.9.1  Komponenten für die Verschlüsselung
7.9.2  Welche Daten eignen sich für DB2-Verschlüsselungs-Techniken?
7.9.3  Definition der Meta-Daten für die Verschlüsselung
7.9.4  Die Rolle des Encryption Passwords und Password Hints
7.9.5 Verschlüsselungs-Konzepte
845
845
845
846
846
847
Verschlüsselung auf Spalten-Ebene
Verschlüsselung auf Daten-Wert-Ebene
847
847
7.9.6  Effekte der Verschlüsselung
848
Behandlung der Prädikate bei Vergleichen
848
Performance-Aspekte848
Kann man auch PKs und FKs verschlüsseln?
849
Wie behandeln Utilities verschlüsselte Daten?
849
8  DB2-Katalog
8.1  Grafischer Wegweiser durch das Kapitel 8 - DB2-Katalog
8.2  Aufbau und Inhalte
8.2.1  Liste der Katalog-Tabellen
8.2.2  Zuordnung der Objekte zu Katalog-Tabellen
8.2.3  Referenzielle Beziehungen der wichtigsten Katalog-Tabellen
8.2.4  Katalog-Informationen zur Unterstützung der Objekt-Administration
Katalog-Spalten mit Informationen zur Speicherorganisation
Katalog-Spalten mit Informationen zur Zugriffspfad-Analyse durch den Optimizer
8.2.5  Statistiken und ihre Nutzungsmöglichkeit
850
850
851
853
859
860
862
862
864
872
Überblick872
Was ist der Zweck der Statistiken?
Übersicht der relevanten Statistik-Informationen (Generelle Statistik-Kategorien)
DB2-Statistik-Kategorien und relevante Komponenten
Speicherung der relevanten Index-Statistik-Informationen
872
873
874
876
Bedeutung von LEAFDIST
877
Bedeutung von LEAFNEAR und LEAFFAR
878
Speicherung der relevanten Daten-Statistik-Informationen
879
Bedeutung von NEAROFFPOSF und FAROFFPOSF
880
Bedeutung von CLUSTERRATIOF
881
Bedeutung von NEARINDREF und FARINDREF
882
Speicherung der relevanten Hash-Statistik-Informationen
883
Kontrolle der Speicher-Organisation
883
Bewertung der Nutzung der Hash-Organisation
887
Speicherung der relevanten LOB-Statistik-Informationen
889
Bedeutung von ORGRATIO
890
© Copyright DGD GmbH Germany 65201 Wiesbaden
DB2- Theorie und Praxis : Inhaltsverzeichnis

XXIV
Aktuelle Statistiken: RTS - Realtime-Statistiken
891
Überblick891
RTS-Komponenten892
Sammeln und Aktualisieren der Statistikdaten
893
Ausschreiben der Statistiken in die RTS-Tabellen (Externalisierung)
894
Analyse der Statistiken
894
Stored Procedure: DSNACCOX (vor DB2-Version 9 DSNACCOR) - Analyse Realtime Statistiken
894
Welche RTS-Tatbestände führen zu einer Utility-Aktivierungs-Empfehlung?
895
Welche generellen Katalog-Tatbestände führen zu einer Utility-Aktivierungs-Empfehlung?
896
8.3  Katalog-Abfragen
8.3.1  Katalog-Abfragen der Katalogbeschreibungen (Metadaten)
897
897
Objekt-Abfragen für Anwendungs-Entwickler
899
8.3.2  Katalog-Abfragen zur Überwachung der optimalen Speicherorganisation
Prüfung, ob RUNSTATS überhaupt noch nicht oder seit längerer Zeit nicht aktiviert wurde
8.3.3  Abfrage auf Reorganisations-Erfordernis
8.3.4  Nutzung von Tabellen und Indizes durch Packages
8.3.5  Katalog-Queries über referenzielle Beziehungen
8.3.6  Katalog-Queries zur Unterstützung und Kontrolle des Datenschutzes
8.4  Katalog-Veränderungen
9  Utilities
903
903
904
907
908
910
911
912
9.1  Grafischer Wegweiser durch das Kapitel 9 - DB2-Utilities
9.2  Überblick und relevante Komponenten
9.2.1  Abgrenzung IBM-DB2-Tools - DB2-Utilities
9.2.2  DB2-Online-Utilities und Standalone-Utilities
9.2.3 DB2-Online-Utilities
912
913
913
915
916
Komponenten eines Utilities
Aktivierungs-Varianten für Utilities
Die Phasen eines Utilities
Ergebnis- und Status-Kontrolle eines Utility-Laufs
916
917
918
919
Status-Kontrolle während der Aktivierungs-Zeit eines Utility-Laufs
919
Ergebnis-Kontrolle nach dem Abschluss eines Utility-Laufs
919
RESTART (CURRENT) und RESTART (PHASE)
920
Utility-Datasets922
Vorgabe von Utility-Control-Statements
922
CCSID-Behandlung von Utility-Control Statements
922
Spezielle Utility-Control-Statements (SYSIN-DD-Statement)
922
Dataset-Charakteristiken923
Übersicht der Datasets für Online-Utilities
924
Dataset-Dispositionen925
Dataset-Größen926
Vorgehensweisen, wenn Datasets zu klein sind
926
Unterstützung von FlashCopy
927
FlashCopy-Datasets929
Generelle und spezielle Utility-Control Statements
930
Utility-Control Statement: EXEC SQL
931
Utility-Control Statement: LISTDEF
933
Utility-Control Statement: TEMPLATE
937
Utility-Control Statement: OPTIONS
938
Die Auswirkungen der Objekt-Versionierung für Utilities
Wie behandeln Utilities verschlüsselte Daten?
940
941
© Copyright DGD GmbH Germany 65201 Wiesbaden
DB2- Theorie und Praxis : Inhaltsverzeichnis

XXV
Wie behandeln Utilities MLS-geschützte Daten
941
Inline-Utility-Ausführungen942
Besonderheiten der Inline-Kopien für Utilities
942
Inline-Kopien mit dem LOAD-Utility
942
Inline-Kopien mit dem REORG-Utility
946
Inline-Statistiken mit dem LOAD-, REORG- oder REBUILD-Utility
947
Sperren von Utilities und Kompatibilität zu anderen Utilities
948
Claims und Drains
948
Restriktiver Space-Status von Utilities
948
Kompatibilität der Utilities untereinander
949
Standalone-Utilities950
9.2.4  Stored Procedures im Utility-Umfeld
9.3  DB2 Online Utilities
9.3.1  Übersicht der Kategorien und Utilities
9.3.2  Utilities zum Laden, Entladen und Reorganisieren von Daten und Indizes
950
951
951
952
LOAD-Utility953
Überblick953
Vorbereitungs-Aktivitäten955
LOAD: Erforderliche Datasets und Objekte
956
LOAD: Utility-Ausführungs-Phasen
957
LOAD: Utility-Sperren und Abhängigkeiten zu anderen Utilities
958
Besonderheiten von Daten-Typen- und -Charakteristiken
959
Besonderheiten beim Laden von Daten mit GENERATED ALWAYS-Spalten
Komprimierung der Daten
Performance-Faktoren beim Laden
Offline-Load
960
961
961
962
Überblick über die Komponenten und relevante Klauseln 962
Ein- und Ausgabe-Datasets 962
Laden der Daten von Partitioned Tablespaces
964
Laden von Daten für Universal Tablespaces Partition-by-growth (UTS-PBG)
965
Laden von LOB-Daten
965
Laden von XML-Daten
965
Paralleler Aufbau der Indizes beim LOAD
966
Abbruch und Restart des LOAD-Utilities
968
Online-Load969
Überblick über die Komponenten und relevante Klauseln 969
Ein- und Ausgabe-Datasets 969
Unterscheidungsmerkmale von Offline- und Online-Load
970
Konsequenzen bei Einsatz des Online-Load-Utilities
970
Test-Ergebnisse Vergleich Offline-Online-Load
971
Empfehlungen971
Nachbereitungs-Aktivitäten972
Test-Beispiele973
Erläuterung des Test-Beispiels
973
Job-Control und Utility-Control-Statements
973
Ausführungs-Protokolle974
Test-Beispiel: LOAD von XML-Daten einer Temporal Table mit SPANNED YES 975
Job-Control und Utility-Control-Statements
975
Ausführungs-Protokolle976
REBUILD INDEX-Utility
977
Überblick über die Komponenten und relevante Klauseln 977
Online-Rebuild (SHRLEVEL CHANGE)
978
© Copyright DGD GmbH Germany 65201 Wiesbaden
DB2- Theorie und Praxis : Inhaltsverzeichnis

XXVI
Ein- und Ausgabe-Datasets 979
Vorbereitungs-Aktivitäten979
REBUILD INDEX: Erforderliche Datasets und Objekte
980
REBUILD INDEX: Utility-Sperren und Abhängigkeiten zu anderen Utilities
981
REBUILD INDEX: Utility-Ausführungs-Phasen
981
Paralleler Aufbau der Indizes beim REBUILD INDEX
982
Abbruch und Restart des REBUILD INDEX-Utilities
982
Wann ist REBUILD INDEX zweckmäßig oder erforderlich?
983
Test-Beispiele984
Job-Control984
Utility-Control-Statements984
Auszüge der Ausführungs-Protokolle
984
REORG INDEX-Utility
985
Überblick985
Reorganisations-Methoden985
Überblick über die Komponenten und relevante Klauseln 986
Ein- und Ausgabe-Datasets 986
Abbruch parallel laufender Prozesse mittel FORCE-Klausel bei Verhinderung des REORG-Abschlusses
987
Vorbereitungs-Aktivitäten988
REORG INDEX: Erforderliche Datasets und Objekte
988
REORG INDEX: Utility-Sperren und Abhängigketen zu anderen Utilities
989
REORG INDEX: Utility-Ausführungs-Phasen
989
Paralleler Aufbau der Indizes beim REORG INDEX
990
Abbruch und Restart des REORG INDEX-Utilities
990
Wann ist ein REORG INDEX zweckmäßig oder erforderlich?
991
Test-Beispiele992
Job-Control992
Utility-Control-Statements992
Auszüge der Ausführungs-Protokolle
992
REORG TABLESPACE-Utility
993
Überblick993
Reorganisations-Methoden993
Erweiterungen ab DB2-Version 9
Erweiterungen ab DB2-Version 10
Reorganisation der verschiedenen Tablespace-Typen
994
994
995
Reorganisation eines Segmented Tablespaces
995
Reorganisation eines Partitioned Tablespaces
995
Reorganisation von UTS-PBG-Tablespaces (Partition-by-Growth)
995
Reorganisation von XML-Tablespaces
995
Reorganisation von LOB-Tablespaces
996
Logging eines LOB-Tablespaces
997
Reorganisation von Katalog- und Directory-Tablespaces
997
Überblick über die Komponenten und relevante Klauseln 998
Ein- und Ausgabe-Datasets 998
Performance-Faktoren bei der Reorganisation
1000
Parallele Reorganisation bei Partitioned Tablespaces
1000
Parallele Verarbeitungsmöglichkeiten durch andere Prozesse
1001
SHRLEVEL NONE - keine Parallelverarbeitung ab RELOAD erlaubt
1001
SHRLEVEL REFERENCE - lesende Parallel-Verarbeitung erlaubt
1002
SHRLEVEL CHANGE - Parallel-Verarbeitung erlaubt (Online-Reorg)
1003
Rolle der Mapping Table
1004
Besonderheiten beim Aufbau von Non-Partitioned Indizes (NPIs)
1004
Nicht-Verfügbarkeitszeiten der Objekte für Parallel-Anwendungen
1005
© Copyright DGD GmbH Germany 65201 Wiesbaden
DB2- Theorie und Praxis : Inhaltsverzeichnis

XXVII
Abbruch parallel laufender Prozesse mittel FORCE-Klausel bei Verhinderung des REORG-Abschlusses
1005
Konsequenzen bei Einsatz des Online-Reorg-Utilities
1006
REBALANCE - Re-Balancieren ungleich großer Partitions
1007
Vorbereitungs-Aktivitäten1008
REORG TABLESPACE: Erforderliche Datasets und Objekte
1009
REORG TABLESPACE: Utility-Ausführungs-Phasen
1011
REORG TABLESPACE: Utility-Sperren und Abhängigkeiten zu anderen Utilities
1012
Paralleler Aufbau von Partitions beim REORG TABLESPACE
1013
Paralleles Entladen der Daten-Partitions
1013
Paralleler Aufbau der Daten-Partitions
1013
Paralleler Aufbau der Indizes 1013
Abbruch und Restart des REORG TABLESPACE-Utilities
1014
REORG TABLESPACE-Utility: Abbruch in Phasen und Pending-Status
1014
Wann ist REORG TABLESPACE zweckmäßig oder erforderlich?
1015
Nachbereitungs-Aktivitäten1016
Test-Beispiele1017
Job-Control mit Direkt-Vorgabe eines Tablespace-Namens
1017
Utility-Control-Statements1017
Auszüge der Ausführungs-Protokolle
1018
Job-Control mit Vorgabe von Objekt-Listen und Templates
1019
Auszüge der Ausführungs-Protokolle
1019
Beispiel der Reorganisation von LOB-Tablespaces mit SHRLEVEL CHANGE
1022
Utility-Control1022
Ausführungs-Protokollierung1022
Beispiel der Reorganisation eines Tablespaces mit Objekt-Änderungen im Schwebezustand (Pending Changes)
1023
Utility-Control1023
Ausführungs-Protokollierung (relevanter Auszug)
1023
UNLOAD-Utility1024
Überblick1024
Besonderheiten beim Entladen der Daten
1026
Entladen von Tablespaces, Tables und Image-Copies 1026
Beeinflussung der Spalten- und Datenauswahl 1027
Konvertierung der Daten
1027
Vorbereitungs-Aktivitäten1027
UNLOAD: Erforderliche Datasets und Objekte
1028
UNLOAD: Utility-Ausführungs-Phasen
1028
UNLOAD: Utility-Sperren und Abhängigkeiten zu anderen Utilities
1028
Abbruch und Restart des UNLOAD-Utilities
1029
Test-Beispiele1029
Test-Beispiel: Entladen Daten eines Partitioned Tablespaces
1029
Job-Control1029
Utility-Control-Statements1029
Auszüge des Ausführungs-Protokolls
1029
Test-Beispiel: Entladen Daten DELIMITED
1030
EBCDIC-Daten1030
Test-Beispiel: Entladen Daten mit der WHEN-Klausel und mit TEMPLATE in SYSTEMPL
1031
Job-Control1031
Auszüge des Ausführungs-Protokolls
1031
Ausdruck der Daten
1032
Test-Beispiele: Entladen Daten mit CCSID EBCDIC und UNICODE
1033
Test-Basis1033
Entladen beide mit Default-CCSID
1033
Entlade-Bestände1034
Entladen beide mit CCSID EBCDIC
1035
Entlade-Bestände1036
© Copyright DGD GmbH Germany 65201 Wiesbaden
DB2- Theorie und Praxis : Inhaltsverzeichnis

XXVIII
Entladen beide mit CCSID UNICODE
1037
Entlade-Bestände1038
Entladen beide mit CCSID UNICODE DELIMITED
1039
Entlade-Bestände1040
Test-Beispiel: Entladen LOB-Daten mit externer File Referenz und TEMPLATE
1041
Test-Basis1041
UNLOAD-Job1041
UNLOAD-Ausführungs-Protokoll1042
Test-Beispiel: UN LOAD von XML-Daten einer Temporal Table mit SPANNED YES
Test-Basis und UNLOAD-Utility-Control
1043
1043
9.3.3  Utilities zum Erzeugen von Statistik-Informationen aus Daten und Indizes
1044
RUNSTATS-Utility1045
Überblick1045
Aktualisierung der Katalog-Statistiken
1049
Welche Tabellen und Spalten aktualisiert RUNSTATS?
1049
RUNSTATS: Wirkung der Parameter UPDATE und HISTORY
1050
Woran erkennt man die Aktualität der Statistiken?
1052
Darstellung der Statistikwerte im Katalog
1052
Manuelle Veränderung der Statistikwerte im Katalog
1053
Exaktheit der Statistikwerte
1053
Ungleichförmige Verteilung von Datenwerten
1054
Statische Erfassung von Einzelwerten (KEYCARD und FREQUVAL) und Spalten-Gruppen (COLGROUP)
1054
Statische Erfassung der Verteilung von Spaltenwerten oder Wertegruppen (HISTOGRAM)
1055
Nutzung von Tabellen-Profilen zur Vereinheitlichung der RUNSTATS-Ausführungen (PROFILES)
1057
Vorbereitungs-Aktivitäten1058
RUNSTATS TABLESPACE: Erforderliche Datasets und Objekte
1058
RUNSTATS TABLESPACE: Utility-Ausführungs-Phasen
1058
RUNSTATS TABLESPACE: Utility-Sperren und Abhängigkeiten zu anderen Utilities
1059
Abbruch und Restart des RUNSTATS-Utilities
1059
Test-Beispiele1060
RUNSTATS TABLESPACE TABLE ALL und INDEX ALL
1060
Utility-Control-Statements1060
Auszüge der Ausführungs-Protokolle
1060
STOSPACE-Utility1063
Überblick1063
Vorbereitungs-Aktivitäten1064
STOSPACE: Erforderliche Datasets und Objekte
1064
STOSPACE: Utility-Ausführungs-Phasen
1064
STOSPACE: Utility-Sperren und Abhängigkeiten zu anderen Utilities
1064
Abbruch und Restart des STOSPACE-Utilities
1064
Test-Beispiele1065
Job-Control1065
Utility-Control-Statements1065
Ausführungs-Protokoll1065
Katalog-Statistiken1065
9.3.4  Utilities zum Prüfen der Konsistenz von Daten und Indizes
1066
Überblick und Abgrenzung der Aufgaben
1066
LOB- oder XML-Fehler-Typen: Orphan-, Missing-, Out-of-Synch- und Invalid-Werte
1068
Entdeckung der Fehlerzustände und mögliche Ursachen
1068
Bereinigungs-Möglichkeiten der Fehlerzustände
1069
CHECK DATA-Utility
1070
Überblick1070
Was wird denn nun wie und warum gesteuert?
1073
© Copyright DGD GmbH Germany 65201 Wiesbaden
DB2- Theorie und Praxis : Inhaltsverzeichnis

XXIX
Behandlung des CHKP-Check-Pending Status ab DB2-Version 10
1073
Objekt-Auswahl: SCOPE-Klausel
1074
XML-Tablespace-Prüfungen1075
xxxERROR-Klausel1076
Vorbereitungs-Aktivitäten1077
CHECK DATA: Erforderliche Datasets und Objekte
1077
CHECK DATA: Utility-Ausführungs-Phasen
1078
CHECK DATA: Utility-Sperren und Abhängigkeiten zu anderen Utilities
1078
Abbruch und Restart des CHECK DATA-Utilities
1079
Nachbereitungs-Aktivitäten1079
Test-Beispiele1080
Löschen fehlerhafter referenzieller Zeilen
1080
Job-Control1080
Utility-Control-Statements1080
Auszüge der Ausführungs-Protokolle
1080
LOB-Daten aufgrund eines PIT-Recoveries auf ungültig setzen
1081
Utility-Control-Statements1081
Ausführungs-Protokoll1081
CHECK INDEX-Utility
1082
Überblick1082
Vorbereitungs-Aktivitäten1083
CHECK INDEX: Erforderliche Datasets und Objekte
1084
CHECK INDEX: Utility-Ausführungs-Phasen
1084
CHECK INDEX: Utility-Sperren und Abhängigkeiten zu anderen Utilities
1084
Abbruch und Restart des CHECK DATA-Utilities
1084
Nachbereitungs-Aktivitäten1085
Test-Beispiele1086
Job-Control1086
Utility-Control-Statements1086
Auszüge der Ausführungs-Protokolle
1086
CHECK LOB-Utility
1087
Überblick1087
Behandlung des CHKP-Check-Pending Status ab DB2-Version 10
1089
Vorbereitungs-Aktivitäten1089
CHECK LOB: Erforderliche Datasets und Objekte
1090
CHECK LOB: Utility-Ausführungs-Phasen
1090
CHECK LOB: Utility-Sperren und Abhängigkeiten zu anderen Utilities
1091
Abbruch und Restart des CHECK LOB-Utilities
1091
Nachbereitungs-Aktivitäten1091
Test-Beispiele1092
Job-Control1092
Utility-Control-Statements1092
Auszüge der Ausführungs-Protokolle
1092
9.3.5  Utilities zum Sichern und Wiederherstellen von Daten und Indizes
1093
BACKUP SYSTEM-Utility
1094
Überblick1094
Vorbereitungs-Aktivitäten1096
BACKUP SYSTEM: Erforderliche Datasets und Objekte
1096
BACKUP SYSTEM: Utility-Ausführungs-Phasen
1096
BACKUP SYSTEM: Utility-Sperren und Abhängigkeiten zu anderen Utilities
1096
Abbruch und Restart des BACKUP SYSTEM-Utilities
1097
Nachbereitungs-Aktivitäten1097
© Copyright DGD GmbH Germany 65201 Wiesbaden
DB2- Theorie und Praxis : Inhaltsverzeichnis

XXX
Test-Beispiele1097
Job-Control1097
COPY-Utility1098
Überblick1098
Copy-Typen1100
Full Image Copy
1100
Incremental Image Copy
1100
Primär und Backup-Kopie
1101
Kopien für das lokale und das Recovery-System 1101
FlashCopy Kopien
1101
DFSMS Concurrent Copy 1102
Parallele Ausführungsmöglichkeiten des Utilities
1103
Parallele Sicherung von Objekten in einem Job
1103
Parallele Sicherung von Objekten in mehreren Jobs
1103
Erzeugen von Kopien für mehrere Objekte
1103
Vorgabe einer Liste in einer Copy-Anweisung eines Jobs
1103
Vorgabe mehrerer Copy-Anweisungen in einem Jobs
1103
Wie kann die Konsistenz der Objekte sichergestellt werden?
1104
Bei bestimmten 'Restriktiven Pending-Status' kann bzw. sollte keine Image Copy erzeugt werden
1104
Vom Einsatz von -TERM UTIL wird beim COPY abgeraten
1105
Vorbereitungs-Aktivitäten1105
COPY: Erforderliche Datasets und Objekte
1105
COPY: Utility-Ausführungs-Phasen
1106
COPY: Utility-Sperren und Abhängigkeiten zu anderen Utilities
1106
Abbruch und Restart des COPY-Utilities
1107
Nachbereitungs-Aktivitäten1107
Test-Beispiele1108
Job-Control1108
Utility-Control-Statements1108
Auszüge der Ausführungs-Protokolle
1108
COPYTOCOPY-Utility1111
Überblick1111
Vorbereitungs-Aktivitäten1113
COPYTOCOPY: Erforderliche Datasets und Objekte
1113
COPYTOCOPY: Utility-Ausführungs-Phasen
1113
COPYTOCOPY: Utility-Sperren und Abhängigkeiten zu anderen Utilities
1113
Abbruch und Restart des COPYTOCOPY-Utilities
1114
Nachbereitungs-Aktivitäten1114
Test-Beispiele1115
Job-Control1115
Utility-Control-Statements1115
Auszüge der Ausführungs-Protokolle
1115
MERGECOPY-Utility1116
Überblick1116
Vorbereitungs-Aktivitäten1117
MERGECOPY: Erforderliche Datasets und Objekte
1117
MERGECOPY: Utility-Ausführungs-Phasen
1118
MERGECOPY: Utility-Sperren und Abhängigkeiten zu anderen Utilities
1118
Abbruch und Restart des MERGECOPY-Utilities
1118
Nachbereitungs-Aktivitäten1118
Test-Beispiele1119
Job-Control1119
© Copyright DGD GmbH Germany 65201 Wiesbaden
DB2- Theorie und Praxis : Inhaltsverzeichnis

XXXI
Utility-Control-Statements1119
Auszüge der Ausführungs-Protokolle
1119
QUIESCE-Utility1120
Überblick1120
Vorbereitungs-Aktivitäten1122
QUIESCE: Erforderliche Datasets und Objekte
1122
QUIESCE: Utility-Ausführungs-Phasen
1122
QUIESCE: Utility-Sperren und Abhängigkeiten zu anderen Utilities
1122
Abbruch und Restart des QUIESCE-Utilities
1123
Nachbereitungs-Aktivitäten1123
Test-Beispiele1123
Job-Control1123
Utility-Control-Statements1123
Auszüge der Ausführungs-Protokolle
1123
RECOVER-Utility1125
Überblick1125
Zurücksetzen von Datenzuständen
1129
Vorwärts- und Rückwärts-Recovery (forward/backward und BACKOUT YES)
1130
Zurücksetzen auf den aktuellen Status
1131
Zurücksetzen auf einen früheren Zeitpunkt
1131
Copy-Typen1132
RECOVER von Tablespaces mit verknüpften Objekten (Indizes, RI-Constraints, LOB- oder XML-Tablespaces sowie deren Indizes)
1133
Pending Status
1133
Ungültigkeits-Markierung (invalid) von LOB- oder XML-Werten
1133
Wiederherstellen von Base-Tablespaces
1133
Wiederherstellen von LOB- oder XML-Tablespaces
1133
Wiederherstellen von Indexspaces
1133
RECOVER von Tablespaces, die mit NOT LOGGED definiert sind RECOVER von Katalog- und Directory-Objekten 1134
1134
Objekt-Hierarchie1134
Vorbereitungs-Aktivitäten1135
RECOVER: Erforderliche Datasets und Objekte
1135
RECOVER: Utility-Ausführungs-Phasen
1136
RECOVER: Utility-Sperren und Abhängigkeiten zu anderen Utilities
1137
Abbruch und Restart des RECOVER-Utilities
1137
Nachbereitungs-Aktivitäten1137
Test-Beispiele1138
Job-Control1138
Utility-Control-Statements1138
Auszüge der Ausführungs-Protokolle
1138
RESTORE SYSTEM-Utility
1140
Überblick1140
Vorbereitungs-Aktivitäten1141
RESTORE SYSTEM: Erforderliche Datasets und Objekte
1142
RESTORE SYSTEM: Utility-Ausführungs-Phasen
1142
RESTORE SYSTEM: Utility-Sperren und Abhängigkeiten zu anderen Utilities
1142
Abbruch und Restart des RESTORE SYSTEM-Utilities
1143
Nachbereitungs-Aktivitäten1143
Test-Beispiele1143
Job-Control1143
9.3.6  Utilities zum Löschen nicht mehr benötigter System-Informationen
© Copyright DGD GmbH Germany 65201 Wiesbaden
1144
DB2- Theorie und Praxis : Inhaltsverzeichnis

XXXII
MODIFY RECOVERY-Utility
1145
Überblick1145
Vorbereitungs-Aktivitäten1146
MODIFY RECOVERY: Erforderliche Datasets und Objekte
1147
MODIFY RECOVERY: Utility-Ausführungs-Phasen
1147
MODIFY RECOVERY: Utility-Sperren und Abhängigkeiten zu anderen Utilities
1147
Abbruch und Restart des MODIFY RECOVERY-Utilities
1147
Nachbereitungs-Aktivitäten1147
Test-Beispiele1148
Job-Control1148
Utility-Control-Statements1148
Auszüge der Ausführungs-Protokolle
1148
Szenario der Löschung aller Image Copies, außer der letzten Full Image Copy und ggf. nachfolgender Incremental Image Copies
1149
Auszug aus SYSIBM.SYSCOPY vor MODIFY RECOVERY
1149
MODIFY RECOVERY-Protokoll
1149
Auszug aus SYSIBM.SYSCOPY nach MODIFY RECOVERY
1150
MODIFY STATISTICS-Utility
1151
Überblick1151
Vorbereitungs-Aktivitäten1152
MODIFY STATISTICS: Erforderliche Datasets und Objekte
1152
MODIFY STATISTICS: Utility-Ausführungs-Phasen
1152
MODIFY STATISTICS: Utility-Sperren und Abhängigkeiten zu anderen Utilities
1152
Abbruch und Restart des MODIFY STATISTICS-Utilities
1152
Nachbereitungs-Aktivitäten1152
Test-Beispiele1153
Job-Control1153
Utility-Control-Statements1153
Auszüge der Ausführungs-Protokolle
1153
9.3.7  Utilities für Objekt-Informationen und zur Fehler-Analyse und Fehler-Bereinigung
1154
DIAGNOSE-Utility1155
Überblick1155
Vorbereitungs-Aktivitäten1156
DIAGNOSE: Erforderliche Datasets und Objekte
1156
DIAGNOSE: Utility-Ausführungs-Phasen
1156
DIAGNOSE: Utility-Sperren und Abhängigkeiten zu anderen Utilities
1156
Abbruch und Restart des DIAGNOSE-Utilities
1156
Nachbereitungs-Aktivitäten1156
Test-Beispiele1157
Job-Control1157
Utility-Control-Statements1157
Auszüge der Ausführungs-Protokolle
1157
REPAIR-Utility1158
Überblick1158
Vorbereitungs-Aktivitäten1160
REPAIR: Erforderliche Datasets und Objekte
1160
REPAIR: Utility-Ausführungs-Phasen
1160
REPAIR: Utility-Sperren und Abhängigkeiten zu anderen Utilities
1161
Abbruch und Restart des REPAIR-Utilities
1161
Nachbereitungs-Aktivitäten1161
Test-Beispiele1162
Job-Control1162
© Copyright DGD GmbH Germany 65201 Wiesbaden
DB2- Theorie und Praxis : Inhaltsverzeichnis

XXXIII
Utility-Control-Statements1162
Auszüge der Ausführungs-Protokolle
1162
REPORT-Utility1163
Überblick1163
Vorbereitungs-Aktivitäten1164
REPORT: Erforderliche Datasets und Objekte
1164
REPORT: Utility-Ausführungs-Phasen
1164
REPORT: Utility-Sperren und Abhängigkeiten zu anderen Utilities
1165
Abbruch und Restart des REPORT-Utilities
1165
Nachbereitungs-Aktivitäten1165
Test-Beispiele1166
Job-Control1166
Utility-Control-Statements1166
Auszüge der Ausführungs-Protokolle
1166
9.4  Standalone-Utilities
9.4.1 Übersicht
9.4.2 DSNJCNVB
1169
1169
1171
Überblick1171
Vorbereitungs-Aktivitäten1171
DSNJCNVB: Erforderliche Datasets und Objekte
1172
Nachbereitungs-Aktivitäten1172
Test-Beispiele1172
Job-Control1172
Auszüge der Ausführungs-Protokolle
1172
9.4.3  DSNJLOGF (Preformat Active Log)
1173
Überblick1173
Vorbereitungs-Aktivitäten1173
DSNJLOGF: Erforderliche Datasets und Objekte
1173
Nachbereitungs-Aktivitäten1174
Test-Beispiele1174
Job-Control1174
Auszüge der Ausführungs-Protokolle
1174
9.4.4  DSNJU003 (Change Log Inventory) 1175
Überblick1175
Vorbereitungs-Aktivitäten1177
DSNJU003: Erforderliche Datasets und Objekte
1177
Nachbereitungs-Aktivitäten1177
Test-Beispiele1178
Job-Control1178
Auszüge der Ausführungs-Protokolle
1178
9.4.5  DSNJU004 (Print Log Map) 1179
Überblick1179
Vorbereitungs-Aktivitäten1180
DSNJU004: Erforderliche Datasets und Objekte
1180
Nachbereitungs-Aktivitäten1180
Test-Beispiele1180
Job-Control1180
Auszüge der Ausführungs-Protokolle (aufbereitete Form mit Erläuterungen)
1181
© Copyright DGD GmbH Germany 65201 Wiesbaden
DB2- Theorie und Praxis : Inhaltsverzeichnis

XXXIV
9.4.6 DSN1CHKR
1184
Überblick1184
Vorbereitungs-Aktivitäten1185
DSN1CHKR: Erforderliche Datasets und Objekte
1185
Nachbereitungs-Aktivitäten1185
Test-Beispiele1185
Job-Control1185
9.4.7 DSN1COMP
1186
Überblick1186
Vorbereitungs-Aktivitäten1187
DSN1COMP: Erforderliche Datasets und Objekte
1187
Nachbereitungs-Aktivitäten1187
Test-Beispiele1187
Job-Control1187
Auszüge der Ausführungs-Protokolle
1188
9.4.8 DSN1COPY
1189
Überblick1189
Vorbereitungs-Aktivitäten1191
DSN1COPY: Erforderliche Datasets und Objekte
1191
Test-Beispiele1192
Job-Control1192
Auszüge der Ausführungs-Protokolle
1193
9.4.9 DSN1LOGP
1194
Überblick1194
Vorbereitungsaktivitäten1195
DSN1LOGP: Erforderliche Datasets und Objekte
1195
Nachbereitungs-Aktivitäten1195
Test-Beispiele1196
Job-Control1196
Auszüge der Ausführungs-Protokolle
1196
9.4.10 DSN1PRNT
1197
Überblick1197
Vorbereitungs-Aktivitäten1198
DSN1PRNT: Erforderliche Datasets und Objekte
1198
Nachbereitungs-Aktivitäten1198
Test-Beispiele1199
Job-Control1199
Ausführungs-Protokolle1199
9.4.11 DSN1SDMP
1203
Überblick1203
Vorbereitungs-Aktivitäten1204
DSN1SDMP: Erforderliche Datasets und Objekte
1204
Nachbereitungs-Aktivitäten1204
Test-Beispiele1204
Job-Control1204
9.5  Automatisierung des Anstoßes von Utility-Läufen durch Statistik-Analyse (Autonomic Maintenance)
9.5.1  Relevante, automatisierbare Utilities
© Copyright DGD GmbH Germany 65201 Wiesbaden
1205
1206
DB2- Theorie und Praxis : Inhaltsverzeichnis

Autonomic Statistics: Automatisierung von RUNSTATS
XXXV
1207
9.6  Pending Status (Advisory und Restricted Status)
1208
10  Datenentwurf unter DB2
1212
10.1  Grafischer Wegweiser durch das Kapitel 10 - Datenentwurf
10.2  Rolle des ANSI-SPARC-Drei-Schemata-Ansatzes
10.3  Vorgehens-Modell
10.3.1  Entwicklungsgeschichte der relevanten Daten-Modelle
10.3.2  ERM - Entity-Relationship-Modell
10.3.3  Relationen-Modell (RM)
10.3.4  Gemeinsamkeiten von ERM und RM
10.4  Logisches Design
10.4.1 Normalisierung
1212
1213
1215
1217
1218
1220
1222
1226
1227
Unnormalisierte Daten
1NF - Atomic Attribute ohne Wiederhol-Elemente
2NF - Volle funktionale Abhängigkeit zu allen PK-Bestandteilen
3NF - Keine transitiven Abhängigkeiten der Nicht-PK-Attribute
1228
1230
1232
1234
Kritische Analyse der erreichten 3NF - Struktur-Qualität
1235
BCNF - Volle Abhängigkeit zum Candidate Key
4NF - Keine paarweisen mehrwertigen Abhängigkeiten
5NF - Ultimative Normal Form - Project-Join-Normalform (PJ/NF) Abschlussüberlegungen zur Normalisierung
1236
1237
1239
1242
10.4.2  Dokumentation der Daten-Design-Ergebnisse
1243
Bubbles/Blasendiagramme1243
Relationale Notation
1244
Dependency Diagram
1245
Netzwerk Diagramm
1246
Objektorientiertes State Transition Diagram
1247
DB2-Unterstützungstools1248
10.4.3  Festlegung der referenziellen Verarbeitungs-Regeln
1249
Darstellung der referenziellen Verarbeitungs-Maßnahmen (RI)
1251
10.4.4  Festlegung der Geschäfts-Regeln (Business-Rules)
1253
Zusammenfassende Definition der Business-Rules
Festlegung der logischen Trigger für die Business-Rules 1254
1255
10.4.5  Übersicht der kompletten Integritäts-Regeln und -Maßnahmen
1257
Strukturierung der Geschäfts-Regeln und -Aktionen
Umsetzung der Geschäfts-Regeln und -Aktionen in SQL-Funktionen
1259
1260
10.4.6  Konzeptionelle Modelle für Spezial-Konstrukte
1261
Einleitung1261
Daten unter Zeitbezug - Temporal Tables und Relationen-Modell
1262
Fachliche Zeitaspekte
1262
Einleitung, Terminologie
1262
Komponenten eines Modells für Daten mit Zeitbezug
1263
Auswirkung auf fachliche Informationen und Informations-Zusammenhänge
1265
Aufnahme von Zeit-Attributen und Konsequenzen
1266
Fachliche Funktionsauswirkungen der Zeitunterstützung
1268
Manipulation und Wirkung
1268
Entwicklung der Beispiel-Daten unter Zeitaspekten
1269
© Copyright DGD GmbH Germany 65201 Wiesbaden
DB2- Theorie und Praxis : Inhaltsverzeichnis

XXXVI
Konsequenzen der Zeitunterstützung für Fachbereichs-Benutzer
1270
Konzeptionelle Umsetzung für Zeitaspekte
1271
PK-Festlegung: Objekt-Identifikator plus Zeit- bzw. Versions-Bezug
1271
FK-Festlegung: Objekt-Identifikator mit oder ohne Zeit- bzw. Versions-Bezug
1272
Unser konzeptionelles Modell steckt voller Redundanzen: Wie sieht ein redundanzfreies Modell aus?
1274
Zeit-Leiste für jeden Attribut-Zustand
1274
Datenhaltung für jede Daten-Version bei veränderten Attribut-Zuständen
1276
Funktionale Konsequenzen für Daten mit Zeitbezug
1277
Manipulations-Typen1277
Manipulations-Festlegungen hinsichtlich der Gültigkeitszeitleisten
1278
Referenzielle Regeln für Daten mit Zeitbezug (RI-Bedingungen)
1280
Informations-Bereitstellungs-Typen1282
10.4.7  Festlegung der konzeptionellen Views
1283
Bilden von Schemata für spezielle Daten-Sichten
1283
OLAP1284
Data Warehouse: Cubes und Dimensionen
1285
Fakten (Facts)
1285
Maßeinheiten (Measures)
1285
Dimensionen (Dimensions)
1286
OLAP-Meta-Modell: Objekt-Typen
1290
10.4.8  Checkliste für das logische Daten-Design
1291
Fachliches Daten-Modell
Konzeptionelles Daten-Modell
1291
1292
10.5  Physisches Design
10.5.1 Aufgabenstellungen
10.5.2  Ableiten der physischen Benutzerobjekte aus logischen Relationen
Zielsetzungen eines physischen Daten-Modells
Kandidaten für die physische Implementierung
1294
1294
1295
1295
1296
10.5.3  Bewertung der Auswirkungen logisch definierter Zugriffspfade
1296
Aufwand bei der Datenbeschaffung
Individuelle Performance-Relevanz
Auswirkungen der Sperr-Maßnahmen
1298
1301
1302
10.5.4 De-Normalisierungs-Maßnahmen
1303
Daten-Zusammenführung1303
Trennung der Daten (Verteilung)
1305
Trennung der Daten zwischen Base- und History-Table bei Daten-Versionierung von Temporal Tables
Bilden zusätzlicher Redundanzen
Bilden von Schemata für spezielle Datenhaltungs-Konzepte
1306
1308
1310
Data Warehouse
1310
Terminologie und Komponenten
1310
MOLAP, ROLAP und HOLAP
1312
Star-Schema1314
Snowflake-Schema
1315
Struktur-Besonderheiten beim Einsatz von MQTs
1316
Konsequenzen der De-Normalisierung
1317
10.5.5 Indizes
10.5.6  Unterstützung der referenziellen Integrität (RI) durch DB2
1318
1319
Terminologie und Einrichtung unter DB2
Definierbare Strukturen
1319
1321
Zulässige Einzel-Struktur-Beziehungen
1321
© Copyright DGD GmbH Germany 65201 Wiesbaden
DB2- Theorie und Praxis : Inhaltsverzeichnis

XXXVII
Umsetzung der M : N - Struktur-Beziehungen
Logische referenzielle Struktur
Physische referenzielle Struktur (Tablespace-Set)
1322
1323
1329
Gesamt-Überblick über die DB2-RI-Unterstützung
Anforderungen an PK und FK
1331
1333
DB2-Primary-Key (PK) und Parent Key
1333
DB2-Foreign-Key (FK)
Verwaltung der RI-Definitionen im Katalog
1334
1335
Katalog-Informationen für RI
1335
RI-DDL-Beispiele1336
Argumente für und wider den Einsatz von DB2-RI
1338
10.5.7  Unterstützung der Business Rules mit Funktionen und Triggern
1339
De-Normalisierungs-Auswirkungen1339
Zuordnung der Regeln und Maßnahmen zu den physischen Strukturen
1339
Funktionale Konsequenzen bei Nicht-Nutzung von DB2-RI
1341
Funktionale Konsequenzen bei Struktur-De-Normalisierungen
1342
10.5.8  Festlegung der sonstigen DB2-Objekte mit ihren Ausprägungen
10.5.9  Festlegung der sonstigen physischen Ressourcen
10.5.10 DB2-Unterstützungstools
10.5.11  Checkliste für das physische DB2-Design
1344
1344
1344
1345
11  Datenspeicherung intern und extern
11.1  Grafischer Wegweiser durch das Kapitel 11
11.2  Übersicht der Speicherungsformen
11.3  Space-Management
11.3.1  Verwaltung und Adressierung der Daten innerhalb des Page Sets
11.3.2  Page Sets
Linear Page Sets
Partitioned Page Sets
Universal Page Sets
LOB Page Sets
XML Page Sets
1347
1347
1348
1350
1350
1352
1352
1353
1354
1355
1356
11.3.3  Page Typen des File Page Sets
1357
Header Page und System Pages
Space Map Pages
Daten Pages
1358
1359
1360
Satzformat: Basic-Record-Format (BRF) oder Reordered-Row-Format (RRF)
Indikatoren für LOB- und XML-Werte in der Basis-Datenzeile
Adressierung der Daten-Zeilen
Speicherung und Adressierung bei Hash-organisierten Tabellen
1361
1362
1362
1363
Insert-Strategie innerhalb der Daten-Pages
1365
Update-Strategie bei variablen Zeilen
1366
Delete-Strategie innerhalb der Daten-Pages
1366
Freespace-Verwaltung der Daten-Pages
1367
Plattenplatz-Bedarfs-Ermittlung1369
Plattenplatz-Bedarfs-Ermittlung für LOB-Werte
1371
Besonderheiten bei Inline-LOBs
1372
PRIQTY1373
© Copyright DGD GmbH Germany 65201 Wiesbaden
DB2- Theorie und Praxis : Inhaltsverzeichnis

XXXVIII
SECQTY1373
Kompression der Daten
1374
11.3.4  Page Typen des Index Page Sets
1376
Header Page und System Pages
Space Map Pages
Index Pages
1376
1376
1376
Non-Leaf Pages
Leaf Pages
Insert-Strategie innerhalb der Index-Pages
Update-Strategie innerhalb der Index-Pages
Delete-Strategie innerhalb der Index-Pages
Freespace-Verwaltung der Index-Pages
Verteilung der Non-Partitioned-Index Daten mit Hilfe von PIECESIZE
Plattenplatz-Bedarfs-Ermittlung für Indizes
1377
1378
1379
1380
1380
1380
1380
1381
Unterstützung von Page-Größen > 4-KB im Index
1383
Index-Komprimierung1384
DSN1COMP-Protokoll1385
11.4  Nutzung des virtuellen Adressraums
11.4.1  Nutzung der z/OS-Architektur
1386
1386
Erweiterte Nutzung der 64-Bit-Architektur
1387
11.4.2 Datenpool-Konzept
1389
RID-Pool1390
Sort-Pool1391
EDM-Speicherbereiche1392
Compressions-Dictionary1393
Materialisierung von LOB-Werten
1393
IRLM-Locks1393
LE-Tokens1393
11.4.3 Bufferpool-Konzept
1394
Group Bufferpools (GBP)
Virtuelles Bufferkonzept
1396
1396
Zuordnung der Bufferpools zu Tablespaces und Indexspaces
Unterstützung verschiedener Page-Größen Bufferpool-Page-Größe und VSAM-CI-Größe
Fixierung von Buffern im Realspeicher
Einbindung der Bufferpools in die System-Schichten
1396
1397
1397
1397
1398
Lese-Anforderungen1399
Direktes Einlesen (Synchronous Read)
1399
Sequential Prefetch
1399
Dynamic Prefetch (Sequential Detection)
1400
Sequential Detection
1401
List Prefetch (List Sequential Prefetch)
1402
Schreib-Anforderungen1403
Zustandsformen der Bufferpool-Page-Typen
1404
Bufferpool-Thresholds1405
Threshold-Parametrisierungs-Empfehlungen für LOB- und XML-Werte
Mögliche Strategien der Bufferpool-Einrichtung Bufferpool-Hit Ratio und MUPA
1406
1407
1408
Bufferpool-Besonderheiten für LOB- und XML-Werte
1409
© Copyright DGD GmbH Germany 65201 Wiesbaden
DB2- Theorie und Praxis : Inhaltsverzeichnis

11.5  VSAM-Datasets
11.5.1  Nutzung von DFSMS (Storage Management Subsystem)
XXXIX
1410
1412
12  DB2-Datensicherheitseinrichtungen
12.1  Grafischer Wegweiser durch das Kapitel 12 - Datensicherheitseinrichtungen
12.2  DB2-Sicherheitsinstrumentarium
12.3  Transaktionsabwicklung
12.3.1  Terminologie und Transaktions-Definition
12.3.2  Konsistenz-Koordination bei Einsatz mehrerer Ressource-Manager
12.4  LUW-, UOW- und UOR-Konzept
12.4.1  Vorgangsabwicklung unter TSO oder einem Client ohne UOW-Konzept
12.4.2  Vorgangsabwicklung unter CICS oder IMS mit UOW-Konzept
12.4.3  Die Wirkung von SAVEPOINT und ROLLBACK TO SAVEPOINT
12.4.4 Commit-Konzepte
Überblick über Read-only-, Single-Phase- und Two-Phase-Commit
Two-Phase-Commit (2-Phasen-Commit)
1413
1413
1414
1416
1416
1418
1420
1422
1423
1424
1425
1425
1426
UOR-Status nach einem Fehler
1427
12.5  Probleme und Lösungswege der Konkurrenzverarbeitung
12.5.1  Verlorener Update
12.5.2  Zugriff zu Daten, deren UOW noch nicht abgeschlossen ist
12.5.3  Wiederholtes Einlesen von Daten innerhalb einer UOW
12.5.4  Lösungswege zum Abbau der Konkurrenz-Problematiken
12.5.5 Deadlock
1428
1429
1430
1431
1432
1434
Vermeidung von Deadlocks
Erkennung von Timeouts und Deadlocks
1435
1437
12.6  DB2-Sperrverfahren
12.6.1 Überblick
12.6.2  Transaction Lock
1438
1438
1439
Lock-Charakteristiken1439
Lock-Objekt1441
Implizite Lock-Auswirkungen auf die DB2-Systemressourcen
1441
Lock-Dauer1443
Lock-Niveau1444
Lock Eskalation
1446
SQL-Statement: LOCK TABLE
1446
Lock-Modus1447
Lock-Modus auf Lock-Niveau: Tablespace, Table bzw. Partition
1447
Lock-Modus auf Lock-Niveau: Page bzw. Row 1449
Zusammenfassung: Aktivierung von Lock-Niveau und Lock-Modus
1450
DB2-Lock-Modus-Entscheidungen1451
Isolation-Level1453
RR - Repeatable Read
1453
RS - Read Stability
1453
CS - Cursor Stability
1454
UR - Uncommitted Read
1454
Lock Promotion
1454
Vorgabemöglichkeiten des Isolation-Levels und Wechselwirkung in Package und Plan
1455
Zugriff auf aktuelle Daten trotz Parallel-Manipulation ("currently committed") oder auch CONCURRENT ACCESS RESOLUTION
© Copyright DGD GmbH Germany 65201 Wiesbaden
1456
DB2- Theorie und Praxis : Inhaltsverzeichnis

XL
Unterschiede zwischen Latch und Lock
Lock Avoidance
Lock-Besonderheiten beim Cursor-Einsatz
1458
1458
1460
Optimistic Concurrency Control (Optimistic Locking)
1460
LOCK-Besonderheiten bei LOB- und XML-Daten
1461
12.6.3  Drain Lock, Drains und Claims
12.6.4  IRLM - Internal Resource Lock Manager
12.6.5  Data Sharing (DS)
1462
1463
1464
Lock-Optimierungen bei Data Sharing
Lock-Typen bei Data Sharing
1464
1464
L-Locks und P-Locks
1465
12.6.6  Zusammenfassung der DB2-Lock-Mechanismen
1467
Welche relevanten Parameter steuern die Lock-Mechanismen?
Checkliste für den Einsatz der DB2-Lock-Mechanismen
Übersicht: Sperrniveau und Lock-Maßnahmen
1467
1468
1470
12.7  Konsequenzen der DB2-Sperrverfahren auf die Anwendungs-Entwicklung
12.7.1  Zusammenspiel von Isolation-Level, Lock-Modus und -Dauer
12.7.2  Verhinderung eines Parallel-Updates
Einsatz des Cursor-Konzeptes
1471
1471
1472
1472
Cursor-Konzept oder SELECT WITH RR bzw. RS?
1473
Optimistic Locking Strategie
1474
12.7.3  Parallelverarbeitung von Online- und Batch-Anwendungen
12.8  Logging-Einrichtungen
12.8.1  Steuerungsfunktionen für die Logging-Abwicklung
1475
1476
1478
Logging-Philosophie1478
Logging-Hierarchie1479
12.8.2  Führen und Ausschreiben von LOG-Informationen
1481
Maßnahmen zur Reduzierung des LOG-Aufwands
1482
12.8.3  Konsistenzsicherung innerhalb des DB2-Subsystems (REDO, UNDO)
Manuelle, nicht durch DB2 überwachte Konsistenz-Maßnahmen
1483
1484
12.8.4  Konsistenzsicherung mit Allied Agents
12.8.5  Konsistenzsicherung bei DB2 Data Sharing (DS)
12.9  Storage Server
12.9.1  ESS - Enterprise Storage Server
12.9.2  AUDIT TRACE
1484
1485
1486
1486
1487
Regelbasierte Protokollierung sicherheitsrelevanter Ereignisse (Policy-based Audit Capability)
1488
Übersicht der Komponenten
1488
Audit-Kategorien1489
12.10  Problembereiche der Datensicherheitseinrichtungen
1491
13  Anwendungsprogrammierung unter DB2
13.1  Grafischer Wegweiser durch das Kapitel 13 - Anwendungsprogrammierung
13.2  Anwendungsprogrammierung: Relevante Komponenten im Überblick
13.3  Einsatzspektrum von DB2
13.3.1  Die verschiedenen Programm-Typen
Abgrenzung Dialog-, Online-, Batch- und Client/Server-Verarbeitung
1493
1493
1494
1495
1496
1496
© Copyright DGD GmbH Germany 65201 Wiesbaden
DB2- Theorie und Praxis : Inhaltsverzeichnis

XLI
Was versteht man unter Batch-Verarbeitung?
1497
Brauchen wir noch die Batch-Verarbeitung?
1498
Abgrenzung der Online- und Batch-Charakteristiken
1500
Client/Server-Charakteristiken1501
13.3.2  Wahl des geeigneten Trägersystems
1502
Dialog-Verarbeitung1502
Foreground-Verarbeitung1502
Background-Verarbeitung1503
Batch-Verarbeitung1504
Perment laufende Anwendungen, Started Tasks (STC) und Message-Konzept
1505
13.3.3  Die verschiedenen Betriebsformen
1506
Normale Betriebszeiten Erweiterte Betriebszeiten (erweiterte Verfügbarkeit)
24-Stunden-Betrieb (permanente Verfügbarkeit)
1506
1506
1507
Zielsetzungen eines Multi-User-Betriebs
Ein Wort zur 'Permanenz'
1508
1508
13.3.4 Programm-Design-Überlegungen
1509
Programmübergreifende Maßnahmen
Der Einsatz von SQL: Möglichkeiten und Restriktionen
1509
1511
13.4  Programmentwicklung unter DB2 13.4.1  Unterstützte Programmiersprachen
1513
1513
Embedded SQL
Call Level Interface für C- und C++-Programme (CLI bzw. ODBC)
Java-Sprachschnittstellen (JDBC und SQLJ)
1513
1513
1514
JDBC-API für Java-Anwendungen
SQLJ-API für Java-Anwendungen
pureQuery für Java-Anwendungen
1514
1514
1514
13.4.2  Entwicklung einer DB2-Anwendung
1515
Überblick der relevanten Entwicklungs-Komponenten
Entwicklungs-Komponenten für Embedded SQL
1515
1516
DB2I: DCLGEN-Generierung
1517
SQL-Preprozessor (SQL Statement-Coprozessor bzw. DB2-Coprozesor)
1518
DB2-Precompiler1519
Aufgaben des Precompilers
1519
Precompiler bzw. Coprocessor-Optionen
1520
Standard-SQL1523
Modifikationen der Programm-Source durch den Precompiler
1525
Entwicklungs-Komponenten für Java-Anwendungen
1527
JDBC-API1527
SQLJ-API1527
Entwicklungs-Komponenten für CLI/ODBC-Anwendungen
1528
BIND-Prozess1529
Aufgaben des BIND-Prozesses
Objekte des Bind-Prozesses
1529
1530
DBRM: Database Request Module
1530
Package1530
Package-Zuordnung zu mehreren Collections
1532
Was ist eine invalidated Package?
1533
Plan1534
© Copyright DGD GmbH Germany 65201 Wiesbaden
DB2- Theorie und Praxis : Inhaltsverzeichnis

XLII
Package-Liste im Plan: PKLIST
1536
Nutzung von remote Packages
1538
Packages von Routinen 1538
Die Zuordnung eines Plans zu einem Programm
1539
Dynamische Plan-Zuordnung im CICS
1540
Was ist ein invalidated Plan?
1540
Die verschiedenen BIND- und REBIND-Typen
1541
STATIC BIND: BIND PACKAGE, BIND PLAN
1541
REBIND PACKAGE, REBIND PLAN
1542
FREE PACKAGE, FREE PLAN, DROP PACKAGE
1542
DYNAMIC BIND
1542
AUTOMATIC REBIND
1543
INCREMENTAL BIND
1543
DEFERRED BIND
1543
Relevante Katalog-Tabellen
1544
Konvertierung der in Plänen eingebundenen DBRMs in Packages
PLAN Management (müsste eigentlich Package Management heißen)
1544
1545
Binder (Linkage Editor)
1546
Aktivieren der Attachment-Facility-Schnittstellen
1546
13.4.3  Beispiel- und Hilfs-Programme: DSNTIAD, DSNTEP2/4 und DSNTIAUL
1547
Übersicht1547
DSNTIAUL1548
DSNTIAUL-Beispiel1549
DSNTEP2/DSNTEP41551
DSNTEP2/DSNTEP4-Beispiel1552
13.5  SQL-Spracheinsatz in Anwendungsprogrammen
13.5.1  Übersicht der Sprachschnittstellen
1553
1553
Interactive SQL, Embedded SQL, CLI, Static SQL und Dynamic SQL 1553
EXEC-Level-API: Embedded SQL
1554
Behandlung von Datenmengen
1556
CLI: Call-Level-Interface bzw. ODBC-Schnittstelle 1557
Java-Schnittstellen1559
JDBC - Java Database Connectivity
SQLJ - SQL for Java
1561
1562
REXX-Schnittstellen1565
13.5.2  Grundstruktur eines DB2-Programmes im EXEC-Level
1566
Relevante Komponenten
Basis-Codier-Regeln für SQL-Statements
1566
1567
Allgemeine Regeln
1567
Assembler-Besonderheiten1568
C-Besonderheiten1568
COBOL-Besonderheiten1569
PL/I-Besonderheiten1572
13.5.3  Definition der Variablen und Daten-Strukturen
1573
Definition der SQLCA (SQL Communication Area)
1574
Beschreibung der SQLCA-Struktur-Komponenten
SQLCA-Definitions-Struktur: Beispiele COBOL und PL/I
1574
1577
Tabellen- und View-Deklarationen
Host-Variablen und NULL-Indikatoren
1578
1580
Typen: Host-Variablen und Host-Strukturen
1580
© Copyright DGD GmbH Germany 65201 Wiesbaden
DB2- Theorie und Praxis : Inhaltsverzeichnis

Einlesen von NULL-Values (NULL-Markierungen)
Setzen von NULL-Werten (NULL-Markierungen)
Einsatzspektrum von Host-Variablen und Indikatoren
Erweiterte NULL-Indikator-Variablen (Extended Indicator Variables)
XLIII
1582
1584
1586
1587
Host-Variablen-Arrays1589
Unterstützte Daten-Typen (mit SQLTYPE)
1590
Konvertierungsregeln zwischen DB2-Spalten und Host-Variablen
1592
Fehlerbehandlung1595
Überblick1595
Returncode-Analyse 1596
SQLCA - SQL Communication Area
1596
Auszug einiger relevanter SQLCODEs und SQLSTATEs
1597
WHENEVER1598
DSNTIAR, DSNTIAC
1598
GET DIAGNOSTICS-Statement
Behandlung schwerer Fehler 1599
1601
13.5.4 Cursor-Konzept
1602
Übersicht der Sprachmittel
Überblick über die Cursor-Typen
1602
1605
Ist die Result Table des Cursors read-only oder updateable?
1606
Non-Scrollable Cursor
1608
Deklaration des Cursors: DECLARE CURSOR
Eröffnen des Cursors: OPEN Bereitstellen einzelner Zeilen der Result Table: FETCH
Positioned Update und Delete: WHERE CURRENT OF Schließen des Cursors: CLOSE
1608
1610
1610
1611
1612
Explizites Schließen des Cursors
1612
Implizites Schließen des Cursors 1612
Statische und dynamische Result Table und ableitbare Integritäts- und Performance-Probleme beim Cursor-Konzept
Mengenverarbeitung auf Realtime-Daten: das ewige Rätsel
1613
1615
Scrollable Cursor
1617
Positionierungs-Möglichkeiten in der Result Table
Cursor- und FETCH-Typen und ihre Sichten auf die Daten der Result Table
Statischer Scrollable Cursor (Statisches Cursor-Modell)
1617
1618
1619
Deklaration des Cursors: DECLARE CURSOR .. SCROLL ..
1619
Informationsbereitstellung eines Static Scrollable Cursors
1620
Manipulationen über die Result Table eines Static Scrollable Cursors
1622
Dynamischer Scrollable Cursor (Dynamisches Cursor-Modell)
1623
Deklaration des Cursors
1623
Verarbeitung einer Zeilen-Gruppe (Rowset)
1624
Einlesen eines Rowsets: FETCH FOR n ROWS
COBOL-Programm-Beispiel eines Rowset-Cursors mit GET DIAGNOSTICS
Scrollable Cursor: Positionierung mit Rowsets
1624
1625
1629
Einfügen eines Rowsets: INSERT .. FOR n ROWS
Analyse der Rowset-Verarbeitungs-Ergebnisse mit GET DIAGNOSTICS
Einfluss des UOW/UOR-Konzepts auf die Cursor-Verarbeitung
Zusammenfassung der relevanten Cursor-Typen und der zu definierenden Klauseln
13.6  Besondere Programmier-Techniken unter DB2
13.6.1  Effiziente Bereitstellung einer Result Table
1630
1630
1631
1633
1634
1634
Relevante WHERE- und ORDER BY-Komponenten
1635
© Copyright DGD GmbH Germany 65201 Wiesbaden
DB2- Theorie und Praxis : Inhaltsverzeichnis

XLIV
Aufsetzen auf einen Composite Key
Regeln für das Aufsetzen
1636
1637
13.6.2 Online-Anwendungen
1638
Online-Parallel-Update1638
Online-Browsing/Blättern
1641
13.6.3  Batch- und Multi-User-Anwendungen
1642
Langlaufende oder ressourceintensive Anwendungen
UOW und UOR
1642
1643
Die Lebensdauer einer UOW
Wirkungen beim Abschluss einer UOR
Einsatz von COMMIT (explizit oder implizit)
1643
1643
1644
Probleme, wenn kein COMMIT eingesetzt wird
1644
Was sind Kandidaten für die COMMIT-Schreibung?
1645
Konsequenzen des COMMIT-Einsatzes
1646
Unterstützung von Rollback und Restart der Batch-Programme
1647
Empfehlungen zum Design von Batch-Langläufern
1648
13.6.4  Anwendungen in verteilten Datenbankumgebungen
1649
Zugriffstypen und Protokolle
1649
DB2-Privat-Protokoll-Zugriff und DRDA-Zugriff
Two-Phase-Commit (2-Phasen) in einer verteilten Datenbank-Umgebung
Syntax-Anforderungen unterschiedlicher Systeme
Programmvorbereitungen, Pläne und Packages
SQL-Statement-Einsatz in Programmen
Vorteile und Beschränkungen der Nutzung von dreiteiligen Objektnamen
Behandlung von LOB- und XML-Werten bei remote Zugriffen
Performance- und Integritäts-Aspekte
1649
1650
1650
1651
1652
1654
1654
1655
Block-Fetch1656
Limited und Continuous Block-Fetch
1657
13.6.5  Behandlung von LOB- und XML-Werten
1658
Grundsätzliche Verarbeitungsmöglichkeiten für LOB-Werte
1658
LOB-Daten-Typen und ihre Host-Variablen-Repräsentation
1660
LOB-Materialisierung1662
LOB-Referenzierung mittels LOB-Locator
1663
LOB-Verarbeitung mittels File-Referenz-Struktur
1664
Grundsätzliche Verarbeitungsmöglichkeiten für XML-Werte
1665
XML-Funktionen1666
Bereitstellungs-Techniken für XML-Daten
SQL-XML-Funktionen: Beispiele für Komposition und De-Komposition
1667
1668
XML-Daten-Typen und ihre Host-Variablen-Repräsentation
1669
13.6.6  Entwicklung und Einsatz von Stored Procedures
1671
Programmtechnische Umsetzung
Aufruf-Varianten einer Stored Procedure
Parameter der Stored Procedure
Codier-Beispiele: Aufruf und Parameterübergabe
1671
1671
1671
1672
Stored Procedure ohne Result Sets
1672
13.6.7  Entwicklung und Einsatz von User-defined Functions
1674
Überblick der Nutzungsmöglichkeiten
Aufruf-Varianten einer externen Funktion
1674
1675
© Copyright DGD GmbH Germany 65201 Wiesbaden
DB2- Theorie und Praxis : Inhaltsverzeichnis

Programmtechnische Besonderheiten
XLV
1676
Scratchpad-Bereich1676
Parallellauf-Besonderheiten1676
Parameter der User-defined Function
Codier-Beispiele: Aufruf und Parameterübergabe
1676
1677
External Scalar Function
External Table Function
1677
1679
13.6.8  Entwicklung und Einsatz von Triggern
1681
Codier-Beispiele: Aufruf mit Übergabe einer Transition-Table
1681
13.6.9 MQ-Series-Funktionen
13.6.10  Session-Variablen und Scalar-Funktion GETVARIABLE
13.6.11  Behandlung unterschiedlicher Codier-Sets für Host-Variablen
13.7  CAF - Call Attachment Facility
13.7.1  Vorteile der CAF-Nutzung
13.7.2  Entwicklung eines CAF-Programms
13.7.3  Nutzbare CAF-Funktionen
1682
1685
1687
1688
1688
1688
1689
Implizite Connection
Explizite Connection
Generelle Ausprägungen einer CAF-Connection
1690
1690
1690
13.8  RRSAF - Recoverable Resource Manager Services Attachment Facility
13.8.1  Vorteile der RRSAF-Nutzung
13.8.2  Entwicklung eines RRSAF-Programms
13.8.3  Nutzbare RRSAF-Funktionen
Abschluss einer UOW
1691
1691
1691
1692
1693
13.9  Universal Language Interface - Universelle Schnittstelle (DSNULI)
13.10  Dynamic SQL
13.10.1  Abgrenzung zu Static SQL
13.10.2  Verhalten von Dynamic SQL-Statements (Statement Behavior)
13.10.3  Funktionsspektrum von Dynamic SQL
1694
1695
1695
1696
1697
Manipulationen und Informationsanforderungen Parameter Markers (?)
SQLDA - SQL Descriptor Area
Struktur-Komponenten der SQLDA
Beispiele der vom Precompiler/Preprozessor generierten SQLDA-Host-Variablen-Strukturen
13.10.4  Manipulationen (Non-SELECT)
1697
1698
1699
1700
1701
1702
Feste Parameter
Variable Parameter
1702
1704
13.10.5  Informations-Anforderungen (SELECT)
1705
Feste Parameter: Fixed-List-SELECT
Variable Parameter: Varying-List-SELECT
1705
1705
13.10.6  Statement Caching
1708
Prepare-Typen und -Ausführungsarten
Ersetzen von Literalen durch generische &-Variablen (Literal-Replacement)
Sperr-Dauer bei dynamischen SQL-Statements 13.10.7  Resource Limit Facility (RLF) - DB2 Governor
1709
1710
1710
1711
© Copyright DGD GmbH Germany 65201 Wiesbaden
DB2- Theorie und Praxis : Inhaltsverzeichnis

XLVI
13.10.8  Vor- und Nachteile von Dynamic SQL
13.11  Programmier-Empfehlungen
1712
1713
14  SQL-Performance
1716
14.1  Grafischer Wegweiser durch das Kapitel 14 - SQL-Performance
14.2  Grundlagen der SQL-Performance
14.2.1  Einleitung, Ansätze der Optimierung
1716
1717
1717
Leistungsbeeinflussende Faktoren
Optimierungs-Möglichkeiten und -Maßnahmen 1717
1718
14.2.2  Komponten der Datenbeschaffung (Stages)
1720
Aufgabenteilung von RDS, DM und BM
1720
14.2.3  DB2-Tools zur Unterstützung von Performance-Maßnahmen
1722
Übersicht1722
Statistikdaten des Katalogs
1724
DB2-Trace1725
Leitlinien für Traces
1725
Trace-Typ1726
14.2.4 Thread-Management
1728
Installations-Parameter für das Thread-Management
Die Rolle von Prozess, Enklave, Transaktion, Thread, TCB und SRB
Allied Thread
1728
1729
1730
Thread-Lebenszyklus1730
Thread-Wiedernutzung (reuse)
1731
DBAT - Database Access Thread 1731
14.2.5  Die relevanten Zeiten einer Statement-Abwicklung
1733
DB2-Accounting-Zeiten1733
14.2.6 Parallel-Verarbeitung
1735
Parallel-Verarbeitungs-Typen1735
Kandidaten für Parallel-Verarbeitung 1735
Query-Typ: CPU bound oder I/O bound 1737
Effekte der Parallel-Verarbeitung
1737
Aktivierung der Parallel-Verarbeitung
1737
Voraussetzungen für die Parallel-Verarbeitung
1738
Restriktionen bei der Nutzung der Parallel-Verarbeitung
1738
Technische Abwicklungs-Modelle
1739
Dynamic Record-Range-Partitioning anstelle Static Keyrange-Partitioning
Straw-Modell für eine effiziente Workload-Verteilung
14.3  Zugriffspfad-Analyse des DB2-Optimizers
14.3.1  Aufgaben des Optimizers
14.3.2  Parsing und Parse Tree
14.3.3  Entscheidungs-Faktoren des Optimizers und Zugriffspfad-Varianten
14.3.4 Optimization
Bedingte Verarbeitungsanweisung (Prädikat)
1739
1740
1741
1741
1741
1742
1743
1743
Erläuterung1743
Prädikat-Typen1744
Prädikat-Kategorien1744
Einsatz von Literalen (Konstanten) oder Variablen (Input-Variablen)
1745
© Copyright DGD GmbH Germany 65201 Wiesbaden
DB2- Theorie und Praxis : Inhaltsverzeichnis

XLVII
Filterung1747
Inhaltliche Verteilung von Datenwerten
Filter-Faktor (FF)
1748
1748
Aufgabenstellung und Wirkung
1748
Filter-Faktor-Typen1749
Filter-Faktor für gleichmäßige Streuung: Einfache/Simple Prädikate
1750
Filter-Faktor für gleichmäßige Streuung: Interpolations-Formeln für Range-Prädikate
1750
Filter-Faktor für gleichmäßige Streuung: Default-Filter-Faktoren für Interpolation-Formeln (Input-Variablen)
1751
Filter-Faktor für ungleichmäßige Verteilung: Frequenz- (FREQVAL) und Werteverteilungs-Statistiken (KEYCARD) für Spalten oder Spalten-Gruppen
1752
Filter-Faktor für ungleichmäßige Verteilung: Häufigkeitsverteilung (HISTOGRAM) für Spalten oder Spalten-Gruppen
1752
Safe Query Optimization Technik (Index-Probing)
STAGE1, STAGE2 und INDEXABLE
1753
1754
Indexable Prädikate
1757
Komplexe Prädikatvorgaben
1758
Column-Correlation1759
Reihenfolge der Prädikat-Bewertung
1760
Aufwands-Kalkulation der SQL-Anforderung
1761
Prozess-Kostenschätzung1761
Auswahl des Zugriffspfades
1761
IO-Kostenermittlung1762
Timeron1763
14.4  DB2-Zugriffspfade auf die Daten
14.4.1  Analysemöglichkeit der Zugriffspfade
1764
1764
Rahmenbedingungen1764
Komponenten der Zugriffspfad-Analyse
1765
EXPLAIN und EXPLAIN_TABLES
1767
Einsatz von Input-Variablen beim EXPLAIN
1768
Beeinflussung der Optimizer-Entscheidungen durch OPTHINT
1768
EXPLAIN-Beispiele1769
EXPLAIN eines einfachen SQL-Statements mit Analyse der PLAN_TABLE
Analyse der DSN_STATMNT_TABLE
1769
1770
Analyse von dynamischen SQL-Statements aus dem Dynamic Statement Cache mit der DSN_STATEMENT_CACHE_TABLE
EXPLAIN einer Package ohne REBIND
1771
1773
14.4.2 I/O-Zugriffs-Typ
1774
Sequential Prefetch und Dynamic Prefetch
List Prefetch
1775
1776
Nutzung dieser Technik
List-Prefetch im Index
List-Prefetch auf Daten-Pages
1776
1776
1776
14.4.3  Einfache Zugriffspfade
1779
Tablespace Scan (File Page Set Scan) 1781
Index-Zugriffe1782
Matching Index Scan
Non-Matching Index Scan
Equal Unique Index Access
IN-List Index Scan
1782
1784
1785
1786
Einzelne IN-Liste
1786
Mehrere IN-Listen
1787
One-Fetch Access
Index-Only Access
Range-List-Access (Aufsetzlogik, Inclusion-Methode, Blätter-Funktionalität, Pagination)
© Copyright DGD GmbH Germany 65201 Wiesbaden
1788
1789
1790
DB2- Theorie und Praxis : Inhaltsverzeichnis

XLVIII
Multiple Index Access
Multiple DocID Index Access über XML-Indizes
1791
1792
Direkt-Zugriff auf die Daten unter Umgehung von Indizes
1794
Einleitung und unterstützte Direkt-Zugriffs-Typen
Direkter Zeilenzugriff über einen Unique Hash-Key
Direkter Zeilen-Zugriff über die ROWID
Direkter Zeilen-Zugriff über die RID-Funktion
1794
1795
1797
1798
14.4.4  Komplexe Zugriffspfade
1799
Übersicht1799
Join1800
Composite Table und New Table, Outer Table und Inner Table
1800
Ausweis von Joins in der PLAN_TABLE
1801
Join-Typ1802
Inner Join
1802
Outer Join
1803
Historische Entwicklung der Outer Joins
1805
Joins im Bereich des Data Warehouses: Star Join oder Paarweiser Join für Star-Schema und Snowflake-Schema
1807
Wann wird der Star Join genutzt?
1809
Ausweis eines Star Joins in der PLAN_TABLE
1810
Wann wird der Paarweise Join genutzt?
1811
Ausweis eines Paarweisen Joins in der PLAN_TABLE
1812
Klassische Join-Methoden
1813
Nested Loop Join
1813
Merge Scan Join
1816
Hybrid Join
1818
Komplexe Query-Typen
1820
Correlated und Non-Correlated Query-Typen
1820
Query-Block1821
Der Nummerierungs-Wahnsinn der QBLOCKNO
1821
Subquery1822
Non-correlated Subquery
1823
Correlated Subquery
1825
Table Expression
1827
Common Table Expression
1827
Rekursives SQL
1828
Nested Table Expression
1829
Scalar Full-Select
SELECT FROM FINAL/OLD TABLE mit Data-Change-Statement
1830
1831
Set-Operator1833
Trigger-Package1834
Sortierung1835
Einige Worte zum Scrollable Cursor
1836
Parallel-Verarbeitung1837
Materialisierung1838
14.4.5  Spezielle Zugriffspfade
1839
IBM Smart Analytics Optimizer (Accelerator Server)
1839
Überblick1839
Technisches Konzept
1840
AQR - Automatic Query Rewrite bei Einsatz von MQTs (Materialisierte Query Tables)
1841
Überblick1841
Nutzungs-Potential von MQT und AQR
1845
© Copyright DGD GmbH Germany 65201 Wiesbaden
DB2- Theorie und Praxis : Inhaltsverzeichnis

Temporal Tables
XLIX
1846
Einleitung1846
Bi-Temporal Table
1847
DDL-Beispiele für SEMTYP, REFERENT und SEMINAR (als Auszug aus dem Seminar-Daten-Modell)
1847
Explain-Analysen1849
Einfache SELECT-Statements
1849
Komplexe SELECT-Statements (Join über 3 Tabellen)
1851
BUSINESS_TIME1851
SYSTEM_TIME1852
Manipulations-Statements1854
14.4.6  Beeinflussung der Zugriffspfad-Entscheidungen
1855
Statement-Modifikationen durch den Optimizer
1856
Prädikat-Modifikationen und Einfügungen
1856
Materialisierungs-Entscheidung1856
Modifikationen der Join-Verarbeitung
1857
Regeln der Transformation von Subqueries in Join
1858
Transformation von Non-Correlated Subqueries in Correlated und umgekehrt
1858
Möglichkeiten für Anwendungsentwickler bei der Beeinflussung des Zugriffspfads
1859
Veränderung von Objekt-Strukturen
Manipulation der Statistiken
Umschreiben von SQL-Statements
OPTIMIZE FOR n ROWS
1859
1862
1863
1865
BIND-Parameter REOPT und seine Auswirkungen
1866
14.5  Stabilität von Zugriffspfaden und Zugriffspfad-Repository (Access-Path-Repository)
14.5.1  Komponenten des Zugriffspfad-Repositories (Access-Path-Repository)
14.5.2 Zugriffspfad-Stabilität: Bewahrung bzw. Kontrolle vorhandener Zugriffspfade
Komponenten der Zugriffspfad-Stabilität
Kontrolle der Zugriffspfad-Stabilität
Was tun bei Änderung des Zugriffspfads
1867
1868
1869
1869
1870
1871
14.5.3  Manuelle Zugriffspfad-Optimierung: Beeinflussung der Zugriffspfad-Entscheidung des Optimizers mittels Optimization-Hints (OPTHINT)
1872
Komponenten1872
Voraussetzungen zur Nutzung 1874
Prioritäten der Berücksichtigung von Optimization Hints
1874
Statement-Level Optimization Hint (Instance-based Statement Hint) - Nutzung des Zugriffspfad-Repositories (Access Path Repository)
1875
Statement-Level Optimization Hint (Instance-based Statement Hint): Parameter-Spezifikationen (Parameter Hints)
Statement-Level Optimization Hint (Instance-based Statement Hint): Zugriffspfad-Empfehlungen (Access Path Hints)
User-Level Optimization Hint: Vorgabe von Zugriffspfad-Empfehlungen für den Optimizer über die PLAN_TABLE (OPTHINT - Optimization Hints)
14.6  Zusammenfassung der relevanten Performance-Komponenten
14.6.1  DB2-interne Automatismen
1876
1878
1880
1883
1883
Zugriffspfad-Effizienz
Mögliche Zugriffspfade
1883
1886
14.6.2  Systemgenerierungs- und Installations-Optionen
14.6.3  Objekt-Definitionen
14.6.4  Anwendungs-Design und -Programmierung
1887
1889
1891
SQL-Query-Empfehlungen1892
Was tun bei langlaufenden Statements?
1893
Zusammenfassende Empfehlungen für Anwendungs-Entwickler
1894
14.7  Testdaten für die Performance-Tests
1895
© Copyright DGD GmbH Germany 65201 Wiesbaden
L
DB2- Theorie und Praxis : Inhaltsverzeichnis

14.7.1  Physisches Daten-Modell für Performance-Tests
14.7.2  Metadaten-Übersicht der Test-Objekte
14.7.3  DDL für die Performance-Tests
14.7.4  Beispiel-SQL-Statements zur Einfügung der Daten
14.7.5  Beispiel-Ausdrucke der Tabellen
14.7.6  Beispiel-SQL-Statement zur Analyse der PLAN_TABLE für die Performance-Tests
© Copyright DGD GmbH Germany 65201 Wiesbaden
1895
1896
1897
1900
1901
1903
Herunterladen