53
© Copyright DGD GmbH Germany 65201 Wiesbaden © Copyright DGD GmbH Germany 65201 Wiesbaden I DB2- Theorie und Praxis : Inhaltsverzeichnis Inhaltsverzeichnis DB2-Theorie und Praxis - Band 1 Themenbereiche 1 Grafischer Wegweiser durch den Band 1 1 Einstiegs-Grafik in die Thematik für Band 1 2 1 Relationales Modell 3 1.1 Grafischer Wegweiser durch das Kapitel 1 - Relationales Modell 3 1.2 Allgemeine Entwicklungsgeschichte 4 1.2.1 Entwicklung innerhalb IBM 4 1.2.2 Entwicklung außerhalb IBM 4 1.2.3 Produkt-Kompatibilität 5 Kompatibilität zwischen den IBM-DB2-Produkten 5 Kompatibilität zwischen Fremdhersteller-Produkten und DB2-Produkten 5 1.2.4 Entwicklungsgeschichte von DB2 für MVS, OS/390 und z/OS 6 Grober Überblick der DB2-Versions- und Release-Entwicklungen 6 Die wesentlichen Komponenten der Release-Entwicklungen 7 Version 2 - Release 1 7 Version 2 - Release 2 7 Version 2 - Release 3 8 Version 3 9 Version 4 10 Version 5 - DB2 for OS/390 11 Version 6 - DB2 Universal Database (UDB) for OS/390 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 Version 11 - DB2 10 for z/OS 39 1.3 Terminologie 44 1.3.1 Informationsablage in Tabellenform 44 Tabelle (Table, Relation) 44 Spalte/Column (Attribut) 44 Zeile/Row (Tupel) 45 Datenwert/Value 45 Primary-Key (PK) 46 Foreign-Key (FK) und referenzielle Integrität (RI) 46 Abbildung der Primary- und Foreign-Key-Beziehungen (Beispiel-Tabellen des Buches und ihre logischen Beziehungen) 47 Informationelle referenzielle Integrität (Informational RI) 48 Index 49 Daten-Repräsentation und -Ablage 50 1.3.2 Informationsbeziehungen durch Werteinhalte 50 1.3.3 Relationale Sprachschnittstelle 51

DB2 Version 10 for z/OS - Theorie und Praxisdgd-ub.de/db2-v11-1-inhalte.pdf · oriht DD mb erman 21 iesbaden II DB2- Theorie und Praxis : InhaltsverzeichnisDB2- Theorie und Praxis

Embed Size (px)

Citation preview

Page 1: DB2 Version 10 for z/OS - Theorie und Praxisdgd-ub.de/db2-v11-1-inhalte.pdf · oriht DD mb erman 21 iesbaden II DB2- Theorie und Praxis : InhaltsverzeichnisDB2- Theorie und Praxis

© Copyright DGD GmbH Germany 65201 Wiesbaden

I DB2- Theorie und Praxis : Lizenz-Variablen

© Copyright DGD GmbH Germany 65201 Wiesbaden

I DB2- Theorie und Praxis : Inhaltsverzeichnis

InhaltsverzeichnisDB2-Theorie und Praxis - Band 1 Themenbereiche 1

Grafischer Wegweiser durch den Band 1 1Einstiegs-Grafik in die Thematik für Band 1 2

1 Relationales Modell 31.1 Grafischer Wegweiser durch das Kapitel 1 - Relationales Modell 31.2 Allgemeine Entwicklungsgeschichte 4

1.2.1 Entwicklung innerhalb IBM 41.2.2 Entwicklung außerhalb IBM 41.2.3 Produkt-Kompatibilität 5

Kompatibilität zwischen den IBM-DB2-Produkten 5Kompatibilität zwischen Fremdhersteller-Produkten und DB2-Produkten 5

1.2.4 Entwicklungsgeschichte von DB2 für MVS, OS/390 und z/OS 6Grober Überblick der DB2-Versions- und Release-Entwicklungen 6Die wesentlichen Komponenten der Release-Entwicklungen 7

Version 2 - Release 1 7Version 2 - Release 2 7Version 2 - Release 3 8Version 3 9Version 4 10Version 5 - DB2 for OS/390 11Version 6 - DB2 Universal Database (UDB) for OS/390 12

Version 6 nach GA - nach der generellen Verfügbarkeit von V6 14Version 7 - DB2 Universal Database (UDB) for OS/390 and z/OS 15

Version 7 nach GA - nach der generellen Verfügbarkeit 17Version 8 - DB2 Universal Database (UDB) for z/OS 18

Version 8 nach GA - nach der generellen Verfügbarkeit 22Version 9 - DB2 Version 9.1 for z/OS 23

Version 9 nach GA - nach der generellen Verfügbarkeit 28Version 10 - DB2 10 for z/OS 29

Version 10 nach GA - nach der generellen Verfügbarkeit 38 Version 11 - DB2 10 for z/OS 39

1.3 Terminologie 441.3.1 Informationsablage in Tabellenform 44

Tabelle (Table, Relation) 44Spalte/Column (Attribut) 44Zeile/Row (Tupel) 45Datenwert/Value 45Primary-Key (PK) 46Foreign-Key (FK) und referenzielle Integrität (RI) 46

Abbildung der Primary- und Foreign-Key-Beziehungen (Beispiel-Tabellen des Buches und ihre logischen Beziehungen) 47Informationelle referenzielle Integrität (Informational RI) 48

Index 49Daten-Repräsentation und -Ablage 50

1.3.2 Informationsbeziehungen durch Werteinhalte 501.3.3 Relationale Sprachschnittstelle 51

Inhaltsverzeichnis

Page 2: DB2 Version 10 for z/OS - Theorie und Praxisdgd-ub.de/db2-v11-1-inhalte.pdf · oriht DD mb erman 21 iesbaden II DB2- Theorie und Praxis : InhaltsverzeichnisDB2- Theorie und Praxis

© Copyright DGD GmbH Germany 65201 Wiesbaden

II DB2- Theorie und Praxis : Lizenz-Variablen

© Copyright DGD GmbH Germany 65201 Wiesbaden

II DB2- Theorie und Praxis : Inhaltsverzeichnis

SQL 53QUEL 54QBE 55

1.4 Charakteristiken eines relationalen DBMS 561.4.1 Anforderungen an ein relationales DBMS 56

Codd’sches Anforderungsprofil - RM/V2 561.4.2 Zusammenfassung wesentlicher Zielsetzungen, Leistungen und Schwächen des Relationen-Modells 66

Zielsetzungen des Relationen-Modells 66Standards im Bereich des Relationen-Modells 66Schwächen des Relationen-Modells 67

1.5 Vergleich der Datenhaltungs- und Bereitstellungs-Konzepte 681.5.1 Gruppierung konventioneller Datenhaltungs- und Bereitstellungs- und DBMS-Typen 681.5.2 Terminologievergleich konventionelle Systeme - RDBMS 681.5.3 Problembereiche konventioneller Datenhaltungs- und DBMS-Typen 69

Strukturierte DBMS 69Lineare DBMS (relational-orientierte Systeme) 70

1.5.4 Komplexe DBMS: Objektorientierte Datenbank-Systeme (OODBMS) 721.6 Speicherung und Verarbeitung von komplexen Objekten (LOBs / Large Objects) 75

1.6.1 Die Abbildung der Realität in der IT durch strukturierte und unstrukturierte Modelle 751.6.2 Ein komplexes Objekt ist immer zerlegbar (zumindest theoretisch - praktisch manchmal nicht empfehlenswert) 76

Der Einfluss der Zeit auf komplexe Objekte 771.6.3 Kategorisierung komplexer Objekte 781.6.4 Speicherung komplexer Objekte mit DB2: Large Objects (LOBs) 791.6.5 Problematiken beim Design und der Speicherung komplexer Objekte 80

1.7 Speicherung und Verarbeitung von XML-Dokumenten 811.7.1 XML-Terminologie 811.7.2 Ein XML-Dokument unterliegt einem strukturierten hierarchischen Modell 831.7.3 Zielsetzung und Aufgabenstellung von XML 851.7.4 Sind die Ziele des Relationen-Modells mit XML vergleichbar? 86

Eine völlig unterschiedliche Herangehensweise 86Unterschiedliche Eignungen 87

1.8 Fazit 881.9 Standardisierung von Datenbank-Methoden und Techniken 90

1.9.1 Standardisierungs-Organisationen 901.9.2 Wichtige allgemeine Standards 90

Datenbank-Standards 91ANSI/SPARC Architektur oder auch Drei-Schema-Architektur 92SQL-Standards 93

SQL-Standard: SQL 89 95SQL-Standard: SQL92 (SQL2) 95SQL-Standard: 1999/SQL3 (grober Auszug) 97SQL-Standard: 2003 (relevanter Auszug) 98SQL-Standard: 2006 (relevanter Auszug) 100SQL-Standard: 2008 (relevanter Auszug) 101

Die Auswirkungen der bisherigen SQL-Standardisierungsmaßnahmen 102

2 DB2-System-Aufbau 103

Page 3: DB2 Version 10 for z/OS - Theorie und Praxisdgd-ub.de/db2-v11-1-inhalte.pdf · oriht DD mb erman 21 iesbaden II DB2- Theorie und Praxis : InhaltsverzeichnisDB2- Theorie und Praxis

© Copyright DGD GmbH Germany 65201 Wiesbaden

III DB2- Theorie und Praxis : Lizenz-Variablen

© Copyright DGD GmbH Germany 65201 Wiesbaden

III DB2- Theorie und Praxis : Inhaltsverzeichnis

2.1 Grafischer Wegweiser durch das Kapitel 2 - DB2-System-Aufbau 1032.2 DB2-System-Komponenten und Zusatz-Produkte 104

2.2.1 DB2-System-Komponenten 1042.2.2 DB2-Zusatz-Produkte von IBM 105

Zusatz-Features 105Objekt- bzw. Daten-Management-Tools 106

2.2.3 Sonstige Tools diverser Software-Hersteller 107Entwicklungswerkzeuge für die PAEs 107Verwaltungswerkzeuge für die DBADMs 107

2.3 Betriebssystem-Komponenten 1092.3.1 System-Schichten von z/OS 1092.3.2 DB2-Subsystem (Lokation oder Server) 1102.3.3 DB2-Adressraum-Konzept 112

Sonstige Betriebssystem-Komponenten 113Trägersysteme (Allied Agents) 113DB2-System-Adressräume 114

System-Dienste (System Services - MSTR = Master) 114Datenbank-Dienste (Database Services - DBM1 = Database Manager) 114Internal Resource-Lock-Manager (IRLM) 114Administrativer Task Scheduler (ADMT) 114Distributed Data Facilities (DDF) 115

Adressräume für Routinen (Stored Procedures und/oder User-defined Functions) 1162.4 Allied Agents: Ankoppelbare Trägersysteme 117

2.4.1 Attachment-Facility, Connection und Thread 1172.4.2 Zugriff auf DB2-Ressourcen aus Anwendungen heraus 118

Schnittstellen zu den Trägersystem-Typen 118Batch-Schnittstelle mit CAF (DSNALI) 118CICS-Schnittstelle (DSNCLI) 118TSO-Schnittstelle (DSNELI) 118Recoverable Resource Manager-Schnittstelle (DSNRLI) 118Universelle Schnittstelle (DSNULI) 118IMS-Schnittstelle (DFSLI000) 119

Dateiverarbeitungsmöglichkeiten der Trägersystem-Typen 1192.5 Verteilung (distributing) und gemeinsame Nutzung (sharing) der DB2-Daten 120

2.5.1 Verteilung der DB2-Daten (distributed data) 120Die Client-Server-Architektur (C/S) 121DRDA - Distributed Relational Database Architecture 122

DRDA - Level 123Remote-Zugriff über dreiteilige Objekt-Namen/ALIAS oder nach CONNECT 124

DB2-Privat-Protokoll und DRDA-Protokoll 125Technologische Grenzen der Verteilung von Daten 125

2.5.2 Gemeinsame Nutzung der DB2-Daten (DS - Data Sharing) 126Betrieb mehrerer z/OS-Systeme 126Data-Sharing: Group und Member 126

Argumente für Data Sharing 127Grundsätzliche Anforderungen an ein Data-Sharing-Verfahren 128

Technische Lösung des DB2 Data Sharings 129

Page 4: DB2 Version 10 for z/OS - Theorie und Praxisdgd-ub.de/db2-v11-1-inhalte.pdf · oriht DD mb erman 21 iesbaden II DB2- Theorie und Praxis : InhaltsverzeichnisDB2- Theorie und Praxis

© Copyright DGD GmbH Germany 65201 Wiesbaden

IV DB2- Theorie und Praxis : Lizenz-Variablen

© Copyright DGD GmbH Germany 65201 Wiesbaden

IV DB2- Theorie und Praxis : Inhaltsverzeichnis

Data Sharing benötigt einen Parallel Sysplex 129Aufgaben-Abgrenzung zwischen Membern und dem Coupling Facility 130

Speicher-Strukturen einer Data Sharing Group 131Die Konsistenzbewahrung bei Data Sharing (DS) 132Sischer is sischer: Struktur-Duplizierung und Duplexed GBP 133

Einflüsse einer Data Sharing Group auf die System-Administration 134Objekte und Namenskonventionen einer Data Sharing Group 135

Gruppen-Objekte und ihre Namen 135Member-Objekte und ihre Namen 136

2.6 DB2-Ressource-Management durch den DB2 Administrativen Task Scheduler 1372.6.1 Aufgabenstellung 1372.6.2 Komponenten des Task Schedulers 137

System-Architektur 137ADMT-DB2-System-Komponenten 138

Automatisierung von Utilities im Rahmen der Administrations- Scheduler Tasks (Autonomic Stored Procedures) 139Planbare Ressourcen 140Architektur in einer Data Sharing Group 141

2.7 Synchronisation mehrerer Ressource-Manager: RRS - Resource Recovery Services 1422.7.1 RRS-Aufgabenstellung 1422.7.2 Programm-Typen für die RRS-Synchronisations-Aufgaben 143

2.8 DB2-Daten-Objekt-Typen 1442.8.1 Meta-Objekt-Typen für die Speicherung von Daten 144

Verwaltung der Meta-Daten 145Anlegen, Änderung und Löschung von Meta-Daten 145

CREATE - Anlegen von Meta-Daten 145ALTER - Änderung von Meta-Daten 146

Online-Schema-Evolution: Realtime-Änderung 146

DROP - Löschung von Meta-Daten 146Schema, Eigentümer und Ersteller von Daten-Objekt-Typen 147

Autorisierungs-Id, Schema, Ersteller (creator) und Eigentümer (owner) 147Das Zusammenspiel der Spezialregister 148

Versionsführung für Meta-Objekte (Versionierung) 149Wie kann man sich eine Versionsführung vorstellen? 149Wie muss man sich die DB2-Versionsführung vorstellen? 150

Relevante Katalog-Informationen der Versionsführung 151Test-Beispiele der DB2-Versionsführung 152

Im DB2 existieren vielfältige Versionen und Versionierungen 153Katalog-Änderungen im Schwebezustand (Pending Changes) 154

Domain-Konzept und Daten-Typen 156Grundsätzliche Überlegungen und Ausgangssituation 156Builtin Daten-Typen 156

LOB = Large Object 157XML = XML-Dokument 157

Benutzerdefinierte Daten-Typen (UDT = User-defined Data-Types) 158Definition der Daten-Typen 159

Array Type 160Vergleich von Einfachen/Ordinary Arrays und Assoziativen Arrays 161Überblick der Array-Komponenten 162

Distinct Type 163Automatisch generierte Cast-Funktionen 163Nutzungsmöglichkeit der Distinct Data-Types 165User-defined LOB-Data Types 165

Page 5: DB2 Version 10 for z/OS - Theorie und Praxisdgd-ub.de/db2-v11-1-inhalte.pdf · oriht DD mb erman 21 iesbaden II DB2- Theorie und Praxis : InhaltsverzeichnisDB2- Theorie und Praxis

© Copyright DGD GmbH Germany 65201 Wiesbaden

V DB2- Theorie und Praxis : Lizenz-Variablen

© Copyright DGD GmbH Germany 65201 Wiesbaden

V DB2- Theorie und Praxis : Inhaltsverzeichnis

User-defined XML-Data Types 165

Vergleichbarkeit und Konvertierbarkeit der Daten-Typen 166Konvertierungen zwischen verschiedenen Builtin-Daten-Typen 167

Variablen-Typen 168Lokale Variablen 169Globale Variablen 170

Benutzer-orientierte Daten-Objekt-Typen 170Tabelle/Table (Base Table) 171

Definition der Tabellen-Spalten 172Die Rolle des PKs 175Einrichtung referenzieller Beziehungen (referential constraint) 175Einrichtung von Check-Constraints 177Maschinelle Vergabe von Werten durch DB2 178

Nummern-Vergabe: ROWID, IDENTITY, SEQUENCE 178Verwaltung von technischen Gültigkeitszeiträumen: PERIOD-Klausel für SYSTEM_TIME 178GENERATED-Klausel für die automatische Generierung von Werten (GENERATED ALWAYS und GENERATED BY DEFAULT) 179

Zuordnung einer Tabelle zu einem Tablespace 182Definition einer Partitioned Table (table-kontrollierte Partitionierung) 183Änderung von Tabellen- und Spalten-Charakteristiken 185

Änderung des Daten-Typs einer Spalte 186

SQL-DDL-Unterstützung für die Basis-Tabelle 190Archiv-Tabelle (Archive Table) 193

Aufgabenstellung und Konzept 193Vorteile des Konzeptes 194Nachteile des Konzeptes 194Funktionsumfang und Steuerung 194

Builtin Globale Variablen SYSIBMADM.GET_ARCHIVE und SYSIBMADM.MOVE_TO_ARCHIVE 194Manipulations-Wirkungen aufgrund der Globalen Variablen SYSIBMADM.MOVE_TO_ARCHIVE 195Daten-Bereitstellungs-Wirkungen aufgrund der Globalen Variablen SYSIBMADM.GET_ARCHIVE 195Dokumentation des Archiv-Konzepts im Katalog 196

Können auch LOB- und XML-Werte archiviert werden? 197Beispiel-Szenario für die Archivierung 198Restriktionen des Archiv-Konzeptes 203

Clone Table 204Aufgabenstellung und Funktionsumfang 204Metadaten und Daten-Instanzen von Base Table und Clone Table 205

Metadaten von Base Table und Clone Table (Katalog-informationen) 205Daten-Instanzen von Base Table und Clone Table 206

Daten-Definition von Base Table und Clone Table mittels SQL-DDL 207Daten-Manipulationen und Utility-Unterstützung einer Clone Table 208EXCHANGE-Statement: Austausch der Daten-Instanzen zwischen Base Table und Clone Table 209Löschen der Clone Table 209Restriktionen der Base Table und der Clone Table 210Fazit 210

Temporal Tables (Tabellen mit Gültigkeitszeiten) 211Einleitung und Überblick 211Gültigkeits-Zeitleisten-Behandlung Inklusiv oder Exklusiv: Das ist hier die Frage 211Unterstützte Datenhaltungs-Konzepte 212Konzeptioneller Überblick des Modells 213

Fachliche Gültigkeit (BUSINESS_TIME) 213Manipulations-Regeln für Daten mit fachlichen Zeitleisten 215Technische Gültigkeit (SYSTEM_TIME) 216

Technische Lösung 218Technische Komponenten der Datenhaltung 218Katalog-Metadaten für Temporal Tables 220Fachliches Zeitkonzept (PERIOD BUSINESS_TIME) 221

Page 6: DB2 Version 10 for z/OS - Theorie und Praxisdgd-ub.de/db2-v11-1-inhalte.pdf · oriht DD mb erman 21 iesbaden II DB2- Theorie und Praxis : InhaltsverzeichnisDB2- Theorie und Praxis

© Copyright DGD GmbH Germany 65201 Wiesbaden

VI DB2- Theorie und Praxis : Lizenz-Variablen

© Copyright DGD GmbH Germany 65201 Wiesbaden

VI DB2- Theorie und Praxis : Inhaltsverzeichnis

Grundsätzliche Aspekte 221DDL-Definitionen 222Meta-Informationen des Katalogs 223Datenzustände für die Test-Beispiele 224SQL-Beispiele: Spezialregister CURRENT TEMPORAL BUSINESS_TIME mit NULL-Wert 225

Manipulations-Beispiele 225Beispiele für Informations-Bereitstellungen (SELECT) 227

SQL-Beispiele: Spezialregister CURRENT TEMPORAL BUSINESS_TIME mit konkretem Wert 230Manipulations-Beispiele 230

Der problematische Einsatz des Spezialregisters CURRENT TEMPORAL BUSINESS_TIME (Zusammenfassung) 233Bi-Temporale Tabellen mit fachlichen Gültigkeiten - PERIOD BUSINESS_TIMES und technischen Gültigkeiten - PERIOD SYSTEM_TIME und Versionierunge (History-Table) 238

Grundsätzliche Aspekte 238DDL-Definitionen 240Meta-Informationen des Katalogs 242Datenzustände für die Test-Beispiele 245SQL-Beispiele: Spezialregister CURRENT TEMPORAL SYSTEM_TIME mit NULL-Wert 247

Manipulations-Beispiele 247Beispiele für Informations-Bereitstellungen (SELECT) 250

SQL-Beispiele: Spezialregister CURRENT TEMPORAL SYSTEM_TIME mit konkretem Wert 251Manipulations-Beispiele 251

DB2-Temporal Tables - Zusammenfassung 254Grundsätzliche Konzepte und unterstützte Funktionalitäten 254Zusammenfassende Manipulations-Regeln für temporale SQL-Statements, wenn die temporalen Spezialregister zu berücksichtigen sind 255Positive Aspekte 256Negative Aspekte 256Fazit 257

Temporäre Tabelle (Temporary Table) 258CGTT - Created Global Temporary Table 259DGTT - Declared Global Temporary Table 260

Temporäre Result Table/Virtual Table 262Temporäre Result-Table-Typen 262Positionierung oder Materialisierung einer temporären Result Table 264DB2-View (Virtual Table) 265

Ist die View-Result-Table read-only oder updateable? 267

View auf View - macht das Sinn? 269Anwendungs-Unabhängigkeit von physischen Sichten 270Individuelle Views oder generalisierte Views 271Besonderheiten bei der Nutzung von Temporalen Tabellen durch DB2-Views 272Nachteile und Grenzen des View-Konzepts 274Empfehlungen zum View-Konzept 274

MQT - Materialisierte Query Table (Materialisierter View bzw. Materialisierte Result Table) 275Komponenten einer materialisierten Query Table (MQT) 276Definition der MQT 277System- oder benutzer-kontrollierte MQT 279

Einrichtung einer Hash-Organisation für den Direkt-Zugriff mit Hash-Methode 280Überblick 280Hash-Space: Aufteilung in Fixed Hash-Space und Overflow-Space 281

Katalog-Metadaten für Hash-Komponenten 283

Definition der Hash-Zugriffs-Methode 285Neue Tabelle anlegen mit Hash-Organisation 285Bestehende Tabelle mit Hash-Organisation ausstatten 287

SYNONYM (auslaufend/deprecated) 289ALIAS 290Maschinelle Vergabe einer lfd. Nr. durch DB2: SEQUENCE und IDENTITY 291

SEQUENCE 293

Systemorientierte DB2-Objekt-Typen 294Index 294

Page 7: DB2 Version 10 for z/OS - Theorie und Praxisdgd-ub.de/db2-v11-1-inhalte.pdf · oriht DD mb erman 21 iesbaden II DB2- Theorie und Praxis : InhaltsverzeichnisDB2- Theorie und Praxis

© Copyright DGD GmbH Germany 65201 Wiesbaden

VII DB2- Theorie und Praxis : Lizenz-Variablen

© Copyright DGD GmbH Germany 65201 Wiesbaden

VII DB2- Theorie und Praxis : Inhaltsverzeichnis

Definition der Index-Spalten 295Wann wird ein Index aufgebaut und wie wird er verwaltet? 295Index-Typen 296Basis-Index 298

Ein stinknormaler Index besteht aus ....... 298Der Clustering Index organisiert die Datenfolge 299Partitioning Index und Partitioned Index 301und nun alle Index-Typen auf einmal 304DPSI: Data Partitioned Secondary Index 306

Extended Index 309Scalar Expression Index (Index on Expressions) 310

Interne Organisation eines Indexes 312Zuordnung eines Indexes zum Indexspace, den Page Sets und Datasets 312B-Tree-Struktur eines Indexes 313

Änderung von Index-Charakteristiken 315Löschung eines Indexes 315Welche Vorteile bietet ein Index, welche Nachteile sind zu beachten? 316

Vorteile eines Indexes 316Nachteile eines Indexes 317Empfehlungen zum Index-Einsatz 318

Tablespace 319Aufgabenstellung und relevante Zuordnungen 319Die Page-Größe und ihre Einflüsse 321Tablespace-Typen 322

Konvertierung eines Tablespace-Typs in einen anderen 325Vor- und Nachteile der Tablespace-Typen 326

Besonderheiten des Partitioned Tablespaces 328Physische Charakteristiken pro Partition 3284096 Partitions und die Konsequenzen 329Dynamische Partitions: Hinzufügen einer neuen Partition 331Dynamische Partitions: Rotation 333Dynamische Partitions: Partition-Werte balancieren 335

Nachträgliche Änderungsmöglichkeiten eines Tablespaces 336Indexspace 337

Aufgabenstellung und relevante Zuordnungen 337Database 339Storage Group 340LOB-Objekte: Auxiliary Table, Auxiliary Index, LOB-Tablespace 341XML-Objekte: XML Table, DocID- und NodeID-Index, XML-Index und XML-Tablespace 343Unterstützung von Temporal Tables mit XML-Dokumenten 345XML-Erweiterungen der DB2-Version 10 346

2.8.2 DB2-System-Ressourcen 347DB2-Directory: Database DSNDB01 348DB2-Katalog: Database DSNDB06 349Datenspeicherung von System- und Benutzerdaten 349Zwischenspeicher für Materialisierungen 350

Workfiles: Workfile Database (DSNDB07) 350Utility-Arbeitsdateien 351DB2-Log-Dateien 351Bootstrap-Dateien (BSDS) 351DB2-Bibliotheken 351

2.9 Routinen: Stored Procedures und User-defined Functions 3522.9.1 Grafischer Wegweiser durch das Kapitel 2 - Routinen: Stored Procedures und User-defined Functions und Trigger 352

Page 8: DB2 Version 10 for z/OS - Theorie und Praxisdgd-ub.de/db2-v11-1-inhalte.pdf · oriht DD mb erman 21 iesbaden II DB2- Theorie und Praxis : InhaltsverzeichnisDB2- Theorie und Praxis

© Copyright DGD GmbH Germany 65201 Wiesbaden

VIII DB2- Theorie und Praxis : Lizenz-Variablen

© Copyright DGD GmbH Germany 65201 Wiesbaden

VIII DB2- Theorie und Praxis : Inhaltsverzeichnis

2.9.2 Terminologie und Übersicht 353Routinen-Typen 353Aufgabenbereiche und Komponenten von Routinen 354Unterschiede zwischen Externen Routinen und SQL Routinen 355

2.9.3 Kommunikations-Strukturen und Informations-Austausch bei Routinen 356Überblick 356

Vorüberlegungen bei der Nutzung von Ressourcen bei Routinen 357Von Routinen nutzbare DB2-Ressource-Kategorien 357

2.9.4 Identifikation von Stored Procedures und Functions 358Schema, SQL-Pfad, Specific Name und External Name 358Function Overloading und Function Resolution 358

2.9.5 Bewahrung der Daten-Integrität - Konzept der UOW und UOR bei Einsatz von Routinen 359Die grundsätzlichen Prinzipien der Daten-Integrität 359Einsatz von COMMIT und ROLLBACK 361Autonome UOW/UOR einer Stored Procedure 362

Konzept 362

2.9.6 Der Einsatz von Stored Procedures 364Grobe Zielsetzung einer Stored Procedure 364Prozedur-Typen 365Entwicklung einer Stored Procedure 366

Definition einer Stored Procedure 368Namen der Stored Procedure 368Parameter einer Stored Procedure 368

Übergabe der Parameterwerte 368Parameter-Typen (Eingabe, Ausgabe oder beides) 370NULL-Fähigkeit der Parameter 370PARAMETER STYLE GENERAL, GENERAL WITH NULLS und SQL (Übergabe-Konventionen einer Stored Procedure) 371Beispiel der Parameterübergabe zwischen PL/I- und COBOL 373PARAMETER STYLE JAVA 374Rückgabe einer Ergebnismenge (Query Result Set) 375

CALL-Aufruf-Varianten einer Stored Procedure 376Statische CALL-Varianten 376Dynamischer CALL (ODBC bzw. CLI) 376

External Procedure 377Unterstützte Programmiersprachen 377Entwicklungsschritte einer External Stored Procedure 377

Aufrufendes und aufgerufenes Modul 377Compile und Linkage Editor 377Definition der Stored Procedure im Katalog 378

SQL Procedure 379Typen und unterstützte Funktionalitäten 379SQL External Procedure 380

Unterstützte Programmiersprachen und Sprachmittel 380Entwicklungsschritte einer SQL External Procedure 381Data Studio oder Development Center 382IBM-Stored Procedure DSNTPSMP 382Explizite Definition mit der JCL-Prozedur DSNHSQL 383Definition der SQL Stored Procedure im Katalog 383

SQL Native Procedure 384Unterstützte Programmiersprachen und Sprachmittel 384Versions-Konzept einer SQL External Procedure 385Entwicklungsschritte einer SQL Native Procedure 386Definition der SQL Stored Procedure im Katalog 386

Page 9: DB2 Version 10 for z/OS - Theorie und Praxisdgd-ub.de/db2-v11-1-inhalte.pdf · oriht DD mb erman 21 iesbaden II DB2- Theorie und Praxis : InhaltsverzeichnisDB2- Theorie und Praxis

© Copyright DGD GmbH Germany 65201 Wiesbaden

IX DB2- Theorie und Praxis : Lizenz-Variablen

© Copyright DGD GmbH Germany 65201 Wiesbaden

IX DB2- Theorie und Praxis : Inhaltsverzeichnis

Ausführung einer Stored Procedure 387Adressraum-Konzept 387Starten und Stoppen von Stored Procedures 387Aufruf einer remote Stored Procedure und Ablauf 388

Vor- und Nachteile von Stored Procedures 390Liste der Standard-Stored Procedures (IBM-Supplied Stored Procedures) 391Relative Performance-Gewichtung von Stored Procedures mit unterschiedlichen Programmiersprachen 397

2.9.7 Der Einsatz von benutzerdefinierten Funktionen (User-defined Functions) 398Grobe Zielsetzung einer User-defined Function (UDF) 398

Funktions-Aufruf und -Ergebnis 398Funktions-Typen 399Entwicklung einer User-defined Function 402

Definition einer User-defined Function 404Namen der User-defined Function 404Inlined- oder Non-Inlined-Function (Compiled Function) 404Parameter einer User-defined Function 405

Übergabe der Parameterwerte 405Parameter-Typen (Eingabe oder Ausgabe) 405NULL-Fähigkeit der Parameter 405PARAMETER STYLE SQL oder JAVA (Übergabe-Konventionen für Funktionen) 406Beispiel der Parameterübergabe zwischen COBOL und PL/I 408

Aufruf-Varianten einer User-defined Function 409Externe Aufruf-Varianten der Funktion 409Interne Aufruf-Typen (CALL-Typ bzw. FINAL CALL-Klausel) 409

Scratchpad: Zwischenspeicher für die internen Aufrufe 412Thread- und TCB-Konzept für Funktions-Aufrufe 413

TCB-Nutzung beim Funktions-Aufruf 413TCB-Konzept bei Parallel-Abwicklung 414

DETERMINISTIC oder NOT DETERMINISTIC - das ist hier die Frage 415Sourced Function 416

Unterstützte Programmiersprachen 416Entwicklungsschritte einer Sourced Function 416

Definition der Sourced Function im Katalog 416

External Function 417Unterstützte Programmiersprachen 417Entwicklungsschritte einer External Function 417

Aufrufendes und aufgerufenes Funktions-Modul 417Compile und Linkage Editor 417

External Scalar Function 418Definition der Scalar Function im Katalog 418

External Table Function 419Definition der Table Function im Katalog 419

SQL Function 420SQL Scalar Function 420

Definition der SQL Scalar Function im Katalog 420

SQL Table Function 421Definition der SQL Scalar Function im Katalog 421

Ausführung einer User-defined Function 422Adressraum-Konzept 422Starten und Stoppen von User-defined Functions 422

Vor- und Nachteile von User-defined Functions 423Vor- und Nachteile von External Scalar Functions 423Vor- und Nachteile von SQL Scalar Functions 423

Page 10: DB2 Version 10 for z/OS - Theorie und Praxisdgd-ub.de/db2-v11-1-inhalte.pdf · oriht DD mb erman 21 iesbaden II DB2- Theorie und Praxis : InhaltsverzeichnisDB2- Theorie und Praxis

© Copyright DGD GmbH Germany 65201 Wiesbaden

X DB2- Theorie und Praxis : Lizenz-Variablen

© Copyright DGD GmbH Germany 65201 Wiesbaden

X DB2- Theorie und Praxis : Inhaltsverzeichnis

Vor- und Nachteile von External Table Functions 424Vor- und Nachteile von SQL Table Functions 424

2.9.8 Mögliche Ressource-Nutzung 425Unterstützte SQL-Funktionalität 425

Zugriff auf DB2-Tabellen 425Unterstützung von LOB-Spalten und -Werten 425Unterstützung von XML-Spalten und -Werten 425

Die Nutzung von User-defined Globalen Variablen in Routinen 426Beispiel mit Nutzung in Stored-Procedure und Client-Anwendung 426

Nutzung von Array-Daten-Typen und Array-Funktionen in Routinen 427Array-Typen 427

Nutzungsmöglichkeit 427Einfaches Beispiel mit ARRAY_AGG-Funktion und UNNEST-Klausel im SELECT 427

Array-Funktionalität 428Überblick der Nutzung 428Beispiel-Szenario 429

Ordinary Array 429Assoziativer Array 432

Zugriff auf externe Ressourcen 435Remote DB2-Objekte 435Andere relationale Datenbanken 435CICS-Ressourcen 435IMS-Ressourcen 436WebSphere MQ-Ressourcen 436Sonstige externe Ressourcen 436

2.9.9 Level-Konzept (Nested Routines) 437Behandlung von Spezialregistern in Routinen 438Fehlerbehandlung von Routinen 439

Auswahl relevanter Fehlercodes 440

2.9.10 Erforderliche Privilegien 4412.9.11 Package- und Plan-Behandlung 442

Behandlung der externen Module 442Behandlung von implizit erzeugten Packages 442Wechsel der Package 442Nutzung verschiedener Programm-Versionen 442

2.9.12 Testmöglichkeiten von SQL-Routinen 443Allgemeine Problematik 443Test-Tools (Debugger) 443Besonderheiten beim Test 443Routinen-Versionen einer SQL Procedure 443

2.9.13 Zusammenfassung der relevanten Klauseln für die Definition von Routinen 444Abwicklungs-Komponenten und Zuordnung der DDL-Parameter-Wirkung 444Ausführungs-Steuerung (Optionen) von Routinen 445

Übersicht der Options-Argumente und Zuordnungen zu den Routinen-Typen 445Besonderheiten und Konventionen für Java Applikationen 446

2.9.14 z/OS-Ausführungs-Umgebung 447Überblick der beteiligten z/OS-System-Komponenten 447RRS - Resource Recovery Services 448

Die Rolle im Rahmen von Routinen 448

Page 11: DB2 Version 10 for z/OS - Theorie und Praxisdgd-ub.de/db2-v11-1-inhalte.pdf · oriht DD mb erman 21 iesbaden II DB2- Theorie und Praxis : InhaltsverzeichnisDB2- Theorie und Praxis

© Copyright DGD GmbH Germany 65201 Wiesbaden

XI DB2- Theorie und Praxis : Lizenz-Variablen

© Copyright DGD GmbH Germany 65201 Wiesbaden

XI DB2- Theorie und Praxis : Inhaltsverzeichnis

RRSAF-Attachment: Statisches oder dynamisches Laden 449LE - Language Environment 450

LE-Konzept und relevante Komponenten 450LE-Run-time-Options 450

MSGFILE 450RPTOPTS 451RPTSTG 452Optionen zur Kontrolle des Speichers 453

TEST und NOTEST 453Sonstige LE-Besonderheiten 453

Workload-managed Adressräume (WLM-established) 454WLM-Terminologie 454

WLM-Aufgabenstellung 454WLM-Komponenten 454WLM-Subsystem-Typen 454WLM-Service-Definitions 455WLM-Operations-Modus 455

WLM-DB2-Environment 456DB2-Installations-Parameter für WLM 456Parametrisierung für WLM 456

WLM-JCL-Beispiel 456NUMTCB = Anzahl paralleler Tasks 457

Steuerung des WLM-Adressraums 458Kontrolle und Abbruch aktiver Routinen 458Wieviele WLM-Environments sind sinnvoll? 459Privilegien für die Nutzung des WLM-Environments 459

Modul-Eigenschaften in der WLM-Umgebung 460Threadsafe Module (reentrant) 460Residente Module 460Haupt- oder Unter-Routine 460Austausch der ausführbaren Version einer Routine 461

Testmöglichkeiten in der WLM-Umgebung 462Allgemeine Problematik 462Test-Tools (Debugger) 462Besonderheiten beim Test 462

Vorteile des WLM-Environments 463Nachteile des WLM-Environments 463Performance-Aspekte bei externen Modulen 464

2.10 Der Einsatz von Triggern 4652.10.1 Zielsetzungen eines Triggers 4652.10.2 Trigger-Terminologie 466

Beispiel eines Triggers 466Trigger-Charakteristiken 466

2.10.3 Übersicht der Trigger-Typen und ihre Charakteristiken 468Komponenten eines Triggers 469Aktivierungszeit: BEFORE 470

Allgemeine Regeln 470Trigger-Beispiele: Before-Trigger 471

Abbildung des Einsatzes 471Trigger mit Abweisung ungültiger Referenzen (RI-Erweiterung) 472Trigger zur Einsetzung von Initialwerten bei Einfügungen 473Trigger mit Übernahme redundanter Daten 473

Page 12: DB2 Version 10 for z/OS - Theorie und Praxisdgd-ub.de/db2-v11-1-inhalte.pdf · oriht DD mb erman 21 iesbaden II DB2- Theorie und Praxis : InhaltsverzeichnisDB2- Theorie und Praxis

© Copyright DGD GmbH Germany 65201 Wiesbaden

XII DB2- Theorie und Praxis : Lizenz-Variablen

© Copyright DGD GmbH Germany 65201 Wiesbaden

XII DB2- Theorie und Praxis : Inhaltsverzeichnis

Trigger mit Aufruf einer Funktion 473

Aktivierungszeit: AFTER 474Allgemeine Regeln 474Trigger-Beispiele: After-Trigger 475

Abbildung des Einsatzes 475Verwaltung von Redundanzen 476Trigger mit Übergabe einer Transition-Table an eine Funktion 477Trigger mit Übergabe von Transition-Variablen an eine Funktion 477

Aktivierungszeit: INSTEAD OF 478Allgemeine Regeln 478Trigger-Beispiele: Instead of-Trigger 479

Abbildung des Einsatzes 479Restriktionen eines Instead of Triggers 481Empfehlungen für den Einsatz eines Instead of Triggers 482

Ereignis-Typen: INSERT, UPDATE und DELETE 483Häufigkeit der Funktionsauslösung: ROW oder STATEMENT 483

2.10.4 Ablauf der Verarbeitung bei Einsatz eines Triggers 484Trigger-Aktion 485

Trigger-Condition 485Trigger-Body 485

Result Table des Triggers 486Transition-Variablen 486Transition-Tables 487

Cascading-Effekte und Trigger-Level bei After Triggern 4882.10.5 Fehler-Behandlung 489

Fehler-Erkennung und -Signalisierung 489Fehler bei der Ausführung der Trigger-Statements 490

2.10.6 Aufruf von Routinen aus einem Trigger heraus 491Aufruf-Techniken 491Behandlung von Spezialregistern 492

2.10.7 Nutzung sonstiger DB2-Ressourcen 493Die Nutzung von User-defined Globalen Variablen in Triggern 493Die Nutzung von Array-Daten-Typen und Array-Funktionen in Triggern 493

2.10.8 Trigger-Package 494Erzeugen und Löschung einer Trigger-Package 494REBIND einer Trigger-Package 494Abhängigkeiten einer Trigger-Package 494

2.10.9 Trigger-Restriktionen 4952.10.10 Vor- und Nachteile von Triggern 496

3 Methodische und technische Voraussetzungen für DB2 4983.1 Grafischer Wegweiser durch das Kapitel 3 - Methodische und technische Voraussetzungen für DB2 4983.2 Allgemeine Voraussetzungen für eine DB2-Einführung 499

3.2.1 Personelle Voraussetzungen 500Objekt- (OA) bzw. Daten-Administration (DA) 500Datenbank-Administration (DBA) 500

3.2.2 Organisatorische Voraussetzungen 501Auswirkung auf die Anwendungs-Entwicklung 501

Page 13: DB2 Version 10 for z/OS - Theorie und Praxisdgd-ub.de/db2-v11-1-inhalte.pdf · oriht DD mb erman 21 iesbaden II DB2- Theorie und Praxis : InhaltsverzeichnisDB2- Theorie und Praxis

© Copyright DGD GmbH Germany 65201 Wiesbaden

XIII DB2- Theorie und Praxis : Lizenz-Variablen

© Copyright DGD GmbH Germany 65201 Wiesbaden

XIII DB2- Theorie und Praxis : Inhaltsverzeichnis

3.2.3 Technische Voraussetzungen für DB2 Version 10 for z/OS 503Hardware 503Betriebssystem-Software 504

Funktionsspezifische Abhängigkeiten 504Betriebssystemnahe Standard-Software 504Transaktions-Management 505DRDA-Verbindungsmöglichkeiten 505Web-Verbindungen 505Anwendungs-Entwicklungs-Tools 506Programmiersprachen 506Migrations-Pfad zur Version 11 507

3.2.4 Was ist neu im DB2? 5093.2.5 Migration-Strategie ins DB2 511

3.3 DB2-Systemkonzept 5123.3.1 Single-DBMS oder Multi-DBMS? 5123.3.2 Abgrenzung Produktionssystem -Testsystem 513

System-Kategorien: Test, Übergabe und Produktion 513System-Kategorie: Test 514System-Kategorie: Übergabe in die Produktion (System-Test) 514System-Kategorie: Produktion 515

Problematiken bei der Übernahme von Test in die Produktion 515Isolierte Systeme haben trotzdem Kommunikations-Erfordernisse 515Koordination der Objekte zwischen Systemen 516

Management der Versions-Änderungen (Change Management) 516Spezielle DB2-Übernahme-Kriterien 516

3.3.3 Datenbank-Hierarchie und Nutzungsmöglichkeiten 5173.3.4 Informations-Aktualität 5183.3.5 Client-Server-Konzept (C/S) 519

Zentralisierung versus Dezentralisierung 519C/S sollte in den Köpfen des Managements beginnen ... 519C/S benötigt klare Konzepte 520Argumente für eine dezentrale Organisationsform (Verteilung) 521Argumente für eine zentrale Organisationsform 521Fazit 521

Varianten der C/S-Verarbeitung 522Verteilungsaspekte 523

Lokale Zuordnung der Ressourcen 523Verfügbarkeit und Nutzbarkeit der Ressourcen 523

Konsequenzen einer Verteilung 5243.4 Methodische Voraussetzungen 525

3.4.1 Abhängigkeiten zwischen Programmen und Daten 525Probleme beim Einsatz konventioneller Datenbank-Systeme 525Sind solche Probleme unter DB2 automatisch gelöst? 527

Abhängigkeit des SQL-Spracheinsatzes von DB2-Katalog-Informationen 527Abhängigkeit bei fehlendem Schichten-Konzept 530Lass die Datenbank loopen! 531Auswirkung der Daten-Modellierung auf die Programm-Sicht 532

Sicht auf unnormalisierte Daten 533

Page 14: DB2 Version 10 for z/OS - Theorie und Praxisdgd-ub.de/db2-v11-1-inhalte.pdf · oriht DD mb erman 21 iesbaden II DB2- Theorie und Praxis : InhaltsverzeichnisDB2- Theorie und Praxis

© Copyright DGD GmbH Germany 65201 Wiesbaden

XIV DB2- Theorie und Praxis : Lizenz-Variablen

© Copyright DGD GmbH Germany 65201 Wiesbaden

XIV DB2- Theorie und Praxis : Inhaltsverzeichnis

Definition einzelner Spalten in Wiederhol-Elementen 533Variable Zeilen mit VARCHAR- oder LOB-Definitionen 534Speicherung von XML-Dokumenten 535

Sicht auf normalisierte Daten 536Sicht auf Daten in der ersten Normalform (1 NF) 536Sicht auf Daten in höheren Normalformen (2 NF, 3NF) 537

3.4.2 Abbau der Abhängigkeiten durch Methodik-Einsatz 538Ebenen, Modell- und Ergebnis-Typen im Unternehmens-Modell 538Auswirkungen auf das Anwendungs-Design 539

Schichten-Modell für Anwendungs-Programme 539Separierung der Datenzugriffe von sonstigen Funktionen 540Objektorientierte Verwaltung der Daten 541

Daten-Verwaltung immer über eine zuständige Funktion/Methode 542Einsatzmöglichkeit von Standard-Zugriffs-Routinen 543

3.4.3 Abbau der Abhängigkeiten durch DB2-Techniken 544Das Ebenen-Modell von DB2 544Katalog-Konzept 545

Verlagerung von Programmlogik in den DB2-Katalog 545Komponenten einer "aktiven Datenbank" 546

Nutzung von Stored Procedures, User-defined Functions und Triggern 547Integritätsbewahrung als Aufgabenstellung für die Datenbank 547Verlagerung sämtlicher datennaher Dienste in den DB2-Bereich 548

Argumente für und wider eine "aktive Datenbank" 549

3.4.4 Normungs-Effekte durch internationale Standards 550Normungs-Effekt durch den SQL-Spracheinsatz 550Open Database Connectivity (ODBC) und der CLI-Spracheinsatz 550

4 DB2-Sprachschnittstellen 5514.1 Grafischer Wegweiser durch das Kapitel 4 - DB2-Sprachschnittstellen 5514.2 Benutzergruppen und deren Anforderungen 5524.3 DB2-Sprachschnittstellen für die Benutzergruppen 553

4.3.1 TSO-DSN-Commands: Übersicht 5554.3.2 SQL-Statements 556

SQL-Statement- und Benutzer-Kategorien 556DCL - Data Control Language 556DDL - Data Definition Language 556DML - Data Manipulation Language 557

SQL-Anwendungsformen und Sprach-Schnittstellen 559Interactive SQL (DB2I) 559Embedded SQL (EXEC-Level) 559CALL-Level-Interface für C- und C++-Programme (CLI bzw. ODBC) 560JDBC-API für Java-Anwendungen 560SQLJ-API für Java-Anwendungen 560Static SQL 561Dynamic SQL 561

Übersicht der SQL-Statements und ihre Einsatzmöglichkeiten 5624.3.3 DB2-Befehle/DB2-Commands 567

DB2-System-Commands 567Admin-Scheduler-Commands 569CICS-Commands 569

Page 15: DB2 Version 10 for z/OS - Theorie und Praxisdgd-ub.de/db2-v11-1-inhalte.pdf · oriht DD mb erman 21 iesbaden II DB2- Theorie und Praxis : InhaltsverzeichnisDB2- Theorie und Praxis

© Copyright DGD GmbH Germany 65201 Wiesbaden

XV DB2- Theorie und Praxis : Lizenz-Variablen

© Copyright DGD GmbH Germany 65201 Wiesbaden

XV DB2- Theorie und Praxis : Inhaltsverzeichnis

IMS-Commands 570IRLM-Commands 570

4.3.4 DB2-Hilfsprogramme/DB2-Utilities 571DB2-Online-Utilities 571

Utility-Control-Statements 572

4.3.5 Standalone Utilities/Service Aids 5724.3.6 TSO-CLISTs und TSO-DSN-Subcommands 573

4.4 DB2I: Masken der interaktiven DB2-Oberfläche 5744.4.1 Einstiegs-Menü (Primary Option Menu) 5744.4.2 D - DB2I-Defaults 575

Default-Panel 1 575Default-Panel 2 576

4.4.3 1 - SPUFI: SQL Processor Using File Input 577SPUFI-Steuerungsmaske 577SPUFI-Defaults 579

Default-Panel 1 579Default-Panel 2 581

SPUFI-Edit-Maske 582SPUFI-Browse-Maske 583

4.4.4 2 - DCLGEN: Declarations Generator 584Eingabemaske 584Maske mit Zusatz-Optionen 585Beispiele generierter Ausgaben 586

COBOL-Host-Variablen-Struktur 586SEMINAR-Tabelle 586

Variante: Default-Struktur- und Spalten-Namen ohne Label 586Variante: Default-Struktur- und Spalten-Namen mit Label 587Variante: Individuelle-Struktur- und Spalten-Namen (Table-Name mit Numerierung) 588Variante: Individuelle-Struktur- und konkreten Spalten-Namen 589

Alle Daten-Typen 590PL/I--Host-Variablen-Struktur 592

SEMINAR-Tabelle 592Variante: Default-Struktur- und Spalten-Namen ohne Label 592Variante: Default-Struktur- und Spalten-Namen mit Label 593Variante: Individuelle-Struktur- und Spalten-Namen (Table-Name mit Numerierung) 594Variante: Individuelle-Struktur- und konkreten Spalten-Namen 595

Alle Daten-Typen 596C-Programm-Host-Variablen-Struktur 598

SEMINAR-Tabelle 598Variante: Default-Struktur- und Spalten-Namen ohne Label 598Variante: Default-Struktur- und Spalten-Namen mit Label 599Variante: Individuelle-Struktur- und Spalten-Namen (Table-Name mit Numerierung) 600Variante: Individuelle-Struktur- und konkreten Spalten-Namen 601

Alle Daten-Typen 602

4.4.5 3 - Program Preparation 604Steuerungsmaske 604Program Preparation 'Compile, Link and Run Panel' 605

4.4.6 4 - Precompile 6064.4.7 5 - BIND / REBIND / FREE 607

1 - BIND PLAN 608

Page 16: DB2 Version 10 for z/OS - Theorie und Praxisdgd-ub.de/db2-v11-1-inhalte.pdf · oriht DD mb erman 21 iesbaden II DB2- Theorie und Praxis : InhaltsverzeichnisDB2- Theorie und Praxis

© Copyright DGD GmbH Germany 65201 Wiesbaden

XVI DB2- Theorie und Praxis : Lizenz-Variablen

© Copyright DGD GmbH Germany 65201 Wiesbaden

XVI DB2- Theorie und Praxis : Inhaltsverzeichnis

Steuerungsmaske 608Default Panel BIND PLAN 609Connection Types Panel 610Package List Panel 611Ergebnis einer erfolgreichen BIND PLAN-Ausführung 611

2 - REBIND PLAN 612Steuerungsmaske 612Default-Panel 613

3 - FREE PLAN 614Steuerungsmaske 614

4 - BIND PACKAGE 615Steuerungsmaske 615Default-Panel 617Connection Types Panel 619Path List Panel 620Ergebnis einer erfolgreichen BIND PACKAGE-Ausführung 620

5 - REBIND PACKAGE 621Steuerungsmaske 621Default-Panel 623Ergebnis-Protokollierung REBIND PACKAGE 625Ergebnis einer nicht erfolgreichen REBIND PACKAGE-Ausführung 625Ergebnis einer erfolgreichen REBIND PACKAGE-Ausführung 626

6 - REBIND TRIGGER PACKAGE 627Steuerungsmaske 627

7 - FREE PACKAGE 628Steuerungsmaske 628

4.4.8 6 - RUN - Aktivierung einer Programm-Ausführung im Foreground oder Batch 629Anstoß über Panel 629JCL-Beispiel eines Batch-Ausführungs-Jobs 630

4.4.9 7 - DB2 Commands 631Vorgabe von DB2-Commands 631Ergebnis einer DB2-Command-Ausführung 631

4.4.10 8 - Utilities (Online-Utilities) 632Steuerungsmaske 632Control Statement Data Set Names 633Data Set Names 634Ergebnisse der Job-Generierung 635

Generierungs-Informationen 635Generierter Utility-Job 636

5 SQL-DDL-Data Definition Language 6375.1 Grafischer Wegweiser durch das Kapitel 5 - SQL-DDL-Data Definition Language 6375.2 Dynamische DB2-Objektverwaltung 6385.3 Anlegen DB2-Objekt-Typen: CREATE 640

5.3.1 Defaults beim Anlagen von Objekten 6405.3.2 Beispiele CREATE 643

Systemorientierte Daten-Objekt-Typen 643STOGROUP, DATABASE und TABLESPACE 643

Page 17: DB2 Version 10 for z/OS - Theorie und Praxisdgd-ub.de/db2-v11-1-inhalte.pdf · oriht DD mb erman 21 iesbaden II DB2- Theorie und Praxis : InhaltsverzeichnisDB2- Theorie und Praxis

© Copyright DGD GmbH Germany 65201 Wiesbaden

XVII DB2- Theorie und Praxis : Lizenz-Variablen

© Copyright DGD GmbH Germany 65201 Wiesbaden

XVII DB2- Theorie und Praxis : Inhaltsverzeichnis

INDEX 645Base-Index-Varianten 645Auxiliary-Index, Extended Index und XML-Index 646

Benutzerorientierte Daten-Objekt-Typen 647Array-Type 647Distinct Type 647

Benutzerdefinierte Globale Variable (User-defined global variable) 647Base-Table-Varianten 648

Basis-Tabelle mit Spalten-Definitionen 648Basis-Tabelle mit Definition über SELECT-Statement mit Spalten-Kombination aus mehreren Tabellen 648Basis-Tabelle mit Kopie vorhandener Tabellen-Spalten-Definitionen (LIKE) 649Basis-Tabelle mit Index-kontrollierter Paritionierung (veraltet) 650Basis-Tabelle mit Table-kontrollierter Paritionierung 650Basis-Tabelle mit Hash-Organisation 651Basis-Tabelle mit LOB-Spalte 651

Auxiliary Table für jede LOB-Spalte einer Basis-Tabelle 652Basis-Tabelle mit XML-Spalte 653

XML Table 653Archiv Table 654

Definition der Basis-Tabelle (Archive-enabled Table) 654Clone Table 655Global Temporary Table 656MQT - Materialized Query Table 657Temporal Table und History Table 658

Fachliche Zeitbezüge Temporal Table mit PERIOD BUSINESS_TIME 658Technische Zeitbezüge Temporal Table mit PERIOD SYSTEM_TIME - ohne Versionierung 658Technische Zeitbezüge Temporal Table mit PERIOD SYSTEM_TIME - mit Versionierung 659Bi-Temporale Zeitbezüge Temporal Table und History Table - mit Versionierung 660

VIEW 661ALIAS und SYNONYM (auslaufend) 662COMMENT und LABEL 663SEQUENCE 664

Funktionsorientierte Objekt-Typen: Routinen 665UDF - User-defined Function 665STP - Stored Procedure 667

Funktionsorientierte Objekt-Typen: Trigger 669Trigger für die Manipulation von Tabellen: Before und After Trigger 669Trigger für die Manipulation von Views: Instead of Trigger 670

5.4 Ändern DB2-Objekt-Typen: ALTER und RENAME 6715.4.1 Besonderheiten bei Struktur-Veränderungen und Erweiterungen 673

Wie verhalten sich die Daten bei Struktur-Veränderungen? 673Wie verhalten sich die Daten bei Struktur-Erweiterungen? 673Was tun, wenn kein ALTER existiert? 674

5.4.2 Beispiele ALTER 675Systemorientierte Daten-Objekt-Typen 675

STOGROUP, DATABASE und TABLESPACE 675Konvertierung eines Segmented Tablespaces in einen UTS und setzen Objekt in Pending-Change-Status 676

INDEX 677Base-Index 677Auxiliary-Index, Extended Index und XML-Index 677

Benutzerorientierte Daten-Objekt-Typen 678

Page 18: DB2 Version 10 for z/OS - Theorie und Praxisdgd-ub.de/db2-v11-1-inhalte.pdf · oriht DD mb erman 21 iesbaden II DB2- Theorie und Praxis : InhaltsverzeichnisDB2- Theorie und Praxis

© Copyright DGD GmbH Germany 65201 Wiesbaden

XVIII DB2- Theorie und Praxis : Lizenz-Variablen

© Copyright DGD GmbH Germany 65201 Wiesbaden

XVIII DB2- Theorie und Praxis : Inhaltsverzeichnis

Array Type 678Distinct Type 678Globale Variable 678Base-Table-Varianten 678

Archive Table 680Auxiliary Table 680Clone Table 681 Global Temporary Table 682MQT - Materialized Query Table 682Temporal Table 683Temporal Table nachträglich auf Basis-Tabelle definieren 683XML Table 684VIEW 684 ALIAS und SYNONYM 684COMMENT und LABEL 685SEQUENCE 685

Funktionsorientierte Objekt-Typen: Routinen 686UDF - User-defined Function 686STP - Stored Procedure 687

Funktionsorientierte Objekt-Typen: Trigger 6885.4.3 Beispiele RENAME 688

5.5 Löschen DB2-Objekt-Typen: DROP 6895.5.1 Die Auswirkung eines DROP-Kommandos auf andere DB2-Objekte (Abbildung mit referenziellen Effekten) 6915.5.2 Beispiele DROP 692

Systemorientierte Daten-Objekt-Typen 692STOGROUP, DATABASE und TABLESPACE 692INDEX 693

Base-Index 693Auxiliary-Index 693Extended Index und XML-Index 693

Benutzerorientierte Daten-Objekt-Typen 694Array Type 694Distinct Type 694Globale Variable 694Base-Table 694Auxiliary Table 695 Clone Table 695Global Temporary Table 695MQT - Materialized Query Table 696XML Table 696VIEW 697ALIAS und SYNONYM 697COMMENT und LABEL 697SEQUENCE 697

Funktionsorientierte Objekt-Typen: Routinen 698UDF - User-defined Function 698STP - Stored Procedure 698

Funktionsorientierte Objekt-Typen: Trigger 699Objekt-Typ: Package 699

Page 19: DB2 Version 10 for z/OS - Theorie und Praxisdgd-ub.de/db2-v11-1-inhalte.pdf · oriht DD mb erman 21 iesbaden II DB2- Theorie und Praxis : InhaltsverzeichnisDB2- Theorie und Praxis

© Copyright DGD GmbH Germany 65201 Wiesbaden

XIX DB2- Theorie und Praxis : Lizenz-Variablen

© Copyright DGD GmbH Germany 65201 Wiesbaden

XIX DB2- Theorie und Praxis : Inhaltsverzeichnis

6 SQL-DML-Data Manipulation Language 7006.1 Grafischer Wegweiser durch das Kapitel 6 - SQL-DML-Data Manipulation Language 7006.2 SQL-DML-Sprachspektrum 7016.3 SQL-DML-Anwendungsformen und Sprach-Schnittstellen 7026.4 SELECT - Datenabfragen 703

6.4.1 SELECT-Typen 703Relevante Komponenten eines SELECT-Statements 703Result Table eines SELECT-Statements 703Syntaktische Grundformen des SELECT-Statements 704Entwicklung und Veränderungen der SELECT-Klauseln in DB2-Version 8 und 9 706

6.4.2 Syntax des SELECT-Statements 707Grundformat des SELECT-Statements 707Die logische Abarbeitungsfolge der SELECT-Parameter 708 SELECT-Klausel 709

Bereitstellung von Daten aus einer einzelnen Tabelle 709Verdichtung der Result Table (DISTINCT) 709Bereitstellung von Daten aus mehreren Tabellen (Join) 709

FROM-Klausel 710Bereitstellung von Daten aus Basis-Tabellen bzw. Views 710Inner und Outer Join 710Nested Table Expression 710

WHERE-Klausel 711Einfache Vergleichsoperatoren 711Subquery 711Row Expression (Row-Value-Expression) 712

ORDER BY-Klausel 712GROUP BY-Klausel 712

6.4.3 Tabelleninhalte der Beispieltabellen 7136.4.4 Einfache SELECT-Abfragebeispiele aus einer Tabelle 715

Einfache Spaltenauswahl (PROJECT) 715Konstante und arithmetisch errechnete Werte 715Vergabe von Namen für Spalten der Result Table 716Auswahl bestimmter Zeilen mit WHERE 716Variable Auswahl bestimmter Zeilen mit WHERE und CASE 718

6.4.5 Boolsche Verknüpfungen und Prädikate 719AND-Verknüpfung 719OR-Verknüpfung 719NOT-Verknüpfung 720BETWEEN-Prädikat 720IN-Prädikat 720LIKE-Prädikat 720NULL-Prädikat 722DISTINCT-Prädikat 722Mix von Prädikaten und Klammerung 723

6.4.6 Funktion (Builtin-Function) 724Aggregate Function 724

Page 20: DB2 Version 10 for z/OS - Theorie und Praxisdgd-ub.de/db2-v11-1-inhalte.pdf · oriht DD mb erman 21 iesbaden II DB2- Theorie und Praxis : InhaltsverzeichnisDB2- Theorie und Praxis

© Copyright DGD GmbH Germany 65201 Wiesbaden

XX DB2- Theorie und Praxis : Lizenz-Variablen

© Copyright DGD GmbH Germany 65201 Wiesbaden

XX DB2- Theorie und Praxis : Inhaltsverzeichnis

Scalar Function 727Konvertierungs-Funktion 727DateTime-Function 728VARCHAR_FORMAT-Funktion zur Aufbereitung von Timestamp- und numerischen Werten 730Sonstige Funktionen 731

Verschachtelung von Aggregate Functions und Scalar Functions 7326.4.7 Sortierung - ORDER BY 733

Auf- und absteigende Sortierung 733Sortierung von abgeleiteten Spalten 734Sortierung der Result Table eines Sub-Selects und der endgültigen Result Table 735Variable Sortierung der Result Table aufgrund konkreter Inhalte mittels CASE 736

6.4.8 Gruppierung/ GROUP BY 737HAVING 739Grouping Sets, Cube und Rollup (ab DB2-V11) 742

Lösung mit Grouping Sets, Cube und Rollup 742

6.4.9 Moving Aggregates (Scalar Aggregate Functions) 7446.4.10 Set-Operatoren 747

UNION und UNION ALL 749EXCEPT und EXCEPT ALL 752INTERSECT und INTERSECT ALL 753

6.4.11 JOIN Selektion aus mehreren Tabellen 754Join-Verarbeitungs-Regeln 754Kartesisches Produkt 756Equi-Join 757Join einer Tabelle mit sich selbst 758Inner Join und Outer Join 759

Übersicht der Ergebnis-Typen 759Inner Join 761Left Outer Join 761Right Outer Join 762Full Outer Join 763Die Wirkung der ON-Klausel 764Verknüpfung mehrerer Join-Typen 766

Kombination von Join und Table Expression 768

6.4.12 Scalar Full-Select 769Möglichkeiten und Risiken 769Scalar Full-Select in der WHERE-Bedingung 770 Scalar Full-Selects und Joins 771Scalar Full-Select in der CASE-Expression 772

6.4.13 Table Expression 773Nested Table Expression 773

Einfaches Beispiel 773Nested Table Expression mit Outer Join 775Nested Table Expression mit CASE (Statistik-Funktion) 776

Common Table Expression 777Einsatzgebiet 777

Einfaches Beispiel 777Einsatz mehrerer Common Table Expressions 778

Page 21: DB2 Version 10 for z/OS - Theorie und Praxisdgd-ub.de/db2-v11-1-inhalte.pdf · oriht DD mb erman 21 iesbaden II DB2- Theorie und Praxis : InhaltsverzeichnisDB2- Theorie und Praxis

© Copyright DGD GmbH Germany 65201 Wiesbaden

XXI DB2- Theorie und Praxis : Lizenz-Variablen

© Copyright DGD GmbH Germany 65201 Wiesbaden

XXI DB2- Theorie und Praxis : Inhaltsverzeichnis

Rekursives SQL 781Die typische Hierarchie-Abbildung 781

Aufbau von Test- oder Hilfsdaten 785Kalender mit Tagen, Wochen und Wochen-Tag 785Kalender mit Jahr, Woche und Tag nach ISO (wann beginnt die erste Woche im Jahr?) 786Common Table Expression und INSERT 787

6.4.14 Subquery (Sub-Query) 788Allgemeine Syntax 788Non-correlated Subquery 790

Subquery direkt nach einem Vergleichsoperator 790Subquery nach IN 791Subquery nach EXISTS 792Subquery nach ANY bzw. SOME und ALL 793

Correlated Subquery 794Verarbeitungsunterschiede zu non-correlated 794Subquery direkt nach einem Vergleichsoperator 795Subquery nach EXISTS 795

6.4.15 SELECT-Unterstützung für Temporal Tables 796Perioden-Spezifikation der FROM-Klausel 796SELECT mit der FOR BUSINESS-Klausel 797

Zugriff auf eine einzelne Tabelle 797Zugriff auf mehrere Tabellen (Join) 798

SELECT mit der FOR SYSTEM-Klausel 800Zugriff auf eine einzelne Tabelle 800Zugriff auf mehrere Tabellen (Join) 803

6.5 SQL-Manipulations-Statements 8076.5.1 Was versteht man unter Manipulations-Statements? 8076.5.2 Temporal Tables fordern eine Abkopplung der fachlichen Änderung von der technischen Manipulations-Vorgabe 808

Fachlich-Funktionale Konsequenzen für Daten mit Zeitbezug 808Manipulations-Typen 808Fachliche Manipulations-Festlegungen hinsichtlich der Gültigkeitszeitleisten 809DB2-Temporal-Table-spezifische Manipulations-Festlegungen 811

DELETE- und UPDATE-Regeln einer DB2-Temporal-Table 813BUSINESS_PERIOD-Beispiele: UPDATE mit DATE-Charakteristiken 814BUSINESS_PERIOD-Beispiele: DELETE mit DATE-Charakteristiken 815SYSTEM_PERIOD-Beispiele: UPDATE 816BUSINESS_PERIOD-Beispiele: DELETE 818

6.5.3 Übersicht der SQL-Manipulations-Statement-Typen 8206.5.4 SELECT-Statement mit SQL Data Change Statement 8216.5.5 INSERT - Daten-Einfügung 822

Der INSERT fordert eine updateable Result Table 822INSERT-Formate 823Verhalten bei Spalten mit Default-Maßnahmen 824Beispiele für SQL-Dateneinfügungen 825

INSERT einer einzelnen Zeile 825INSERT einer Zeilen-Gruppe (im Anwendungsprogramm) 825INSERT mehrerer Zeilen mit SELECT 826

SELECT mit SQL Data Change Statement (hier: SELECT mit INSERT) 828FINAL TABLE mit einer Zeile 829

Beispiel: SELECT FROM FINAL TABLE (INSERT ... mit INCLUDE) 830

Page 22: DB2 Version 10 for z/OS - Theorie und Praxisdgd-ub.de/db2-v11-1-inhalte.pdf · oriht DD mb erman 21 iesbaden II DB2- Theorie und Praxis : InhaltsverzeichnisDB2- Theorie und Praxis

© Copyright DGD GmbH Germany 65201 Wiesbaden

XXII DB2- Theorie und Praxis : Lizenz-Variablen

© Copyright DGD GmbH Germany 65201 Wiesbaden

XXII DB2- Theorie und Praxis : Inhaltsverzeichnis

FINAL TABLE mit mehr als einer Zeile 832

6.5.6 UPDATE - Daten-Veränderung 834Der UPDATE fordert eine updateable Result Table 834UPDATE-Formate 835Beispiele für SQL-Datenveränderungen 836

Searched Update 836Positioned Update 837

SELECT mit SQL Data Change Statement (hier: SELECT mit UPDATE) 8386.5.7 DELETE - Daten-Löschung 839

Der DELETE fordert eine updateable Result Table 839DELETE-Formate 840Beispiele für SQL-Datenlöschungen 841

Searched Delete 841Positioned Delete 842

SELECT mit SQL Data Change Statement (hier: SELECT mit DELETE) 8436.5.8 MERGE - Daten einmischen 844

Der MERGE fordert eine updateable Result Table 844MERGE-Formate 845Beispiele für SQL-Daten-Mischvorgänge 846

Einfügung einer Zeile 846Änderung einer Zeile 847Änderung mehrerer Zeilen 848SELECT mit SQL Data Change Statement (hier: SELECT mit MERGE) 849

SELECT mit MERGE in einem Cursor 852

7 SQL-DCL-Data Control Language 8537.1 Grafischer Wegweiser durch das Kapitel 7 - SQL-DCL-Data Control Language 8537.2 DB2-Zugriffsschutzkonzept 854

7.2.1 Überblick 854Vorüberlegungen 854Welche Ressourcen können von DB2 geschützt werden? 855Konsequenzen bei einer vollständigen Auslagerung auf einen ESM 857Aufteilung der Sicherheitsfunktionen zwischen DB2 und einem ESM 858Besonderheiten der Autorisierungs-Prüfungen, wenn RACF als ESM wirkt 859

7.2.2 DB2-Privilegien-Konzept 8607.2.3 DB2-Autorisierungs-Konzept 861

Übergabe der Autorisierungs-Identifikatoren 862Primär-, Sekundär- und Current-Autorisierungs-Id 863Zeitpunkt der Autorisierungsprüfung 864

Autorisierungsprüfung zur Bind-Zeit 864Autorisierungsprüfung zur Ausführungs-Zeit 865

Verhaltensweisen bei Dynamic SQL (Statement Behavior) 866Wirkung der DYNAMICRULES-Optionen BIND, DEFINEBIND, INVOKEBIND, RUN, DEFINERUN und INVOKERUN 866Zusammenfassung der Verhaltensweisen (Statement-Behavior) und Konsequenzen der Autorisierungsprüfungen 867

7.2.4 Privilegien-Konzept 868Privilegien-Struktur 868Explizite Privilegien 869

Grant-Typen und Privilegienbereiche 870

Page 23: DB2 Version 10 for z/OS - Theorie und Praxisdgd-ub.de/db2-v11-1-inhalte.pdf · oriht DD mb erman 21 iesbaden II DB2- Theorie und Praxis : InhaltsverzeichnisDB2- Theorie und Praxis

© Copyright DGD GmbH Germany 65201 Wiesbaden

XXIII DB2- Theorie und Praxis : Lizenz-Variablen

© Copyright DGD GmbH Germany 65201 Wiesbaden

XXIII DB2- Theorie und Praxis : Inhaltsverzeichnis

DB2-Ressource-Typen und ihre Zuordnung der Einzel-Privilegien 871Implizite Privilegien 874

Owner eines Objekts 874Administrations-Gruppen 876

Hierarchie der ADM-Privilegien 879Explizit zuordenbare ADM-Gruppen 879Implizit wirkende Einzel-Privilegien ADM-Gruppen 880

7.2.5 Welche Privilegien werden wann benötigt? 881Erforderliche Privilegien zur Verwaltung der DB2-Objekte 881Die erforderlichen Privilegien eines Anwendungsentwicklers 883Zusammenspiel von Autorisierungs-Id-Typen und Privilegien 884

Ausführung von Dynamic SQL-Statements und die erforderlichen Privilegien 884Plan- und Package-Aktivitäten 885

7.3 GRANT - Erteilen DB2-Privilegien 8867.3.1 Privilegien-Kategorien und GRANT-Varianten 8867.3.2 Hierarchisches GRANT-Konzept 8877.3.3 GRANT-Besonderheiten 8887.3.4 Beispiele GRANT 889

GRANT-Szenario 8897.4 REVOKE - Aufheben DB2-Privilegien 891

7.4.1 REVOKE-Varianten 8917.4.2 REVOKE und die Cascading Effekte 8927.4.3 REVOKE-Besonderheiten 8957.4.4 Beispiele REVOKE 896

REVOKE-Szenario 8967.5 DB2-Datenzugriffs-Kontrolle (ACCESS CONTROL) 897

7.5.1 Column Access Control (Column-Mask) und Row Access Control (Row-Permission) 897Überblick 897Komponenten zur Einrichtung "geschützter" Objekte 898Column Access Control (Column-Mask) - Maskierung von Ergebniswerten 900Row Access Control (Row-Permission) - Filterung der Datenzeilen 901

7.6 Trusted Context und Rollen 9027.6.1 Trusted Connection 902

Komponenten der Definition eines Trusted Contextes 903Name des Trusted Contextes 903System-Autorisierungs-Id 903Default-Rolle und ROLE AS OBJECT OWNER 903ENABLE oder DISABLE 903Default-Security-Label 903ATTRIBUTES 903WITH USE FOR 904

7.6.2 Die Rolle (ROLE) im Rahmen eines Trusted Contextes 9057.6.3 Aktivitäten eines anderen Benutzers mit dessen Objekt-Privilegien durchführen 9067.6.4 SQL-Statements und Katalog-Informationen für Trusted Context und Rollen-Konzept 907

7.7 VIEW - Inhaltsbezogener Datenschutz 9087.7.1 Besonderheiten bei der Anwendung in Programmen 909

7.8 MLS - Multi-Level Security 910

Page 24: DB2 Version 10 for z/OS - Theorie und Praxisdgd-ub.de/db2-v11-1-inhalte.pdf · oriht DD mb erman 21 iesbaden II DB2- Theorie und Praxis : InhaltsverzeichnisDB2- Theorie und Praxis

© Copyright DGD GmbH Germany 65201 Wiesbaden

XXIV DB2- Theorie und Praxis : Lizenz-Variablen

© Copyright DGD GmbH Germany 65201 Wiesbaden

XXIV DB2- Theorie und Praxis : Inhaltsverzeichnis

7.8.1 Probleme bisheriger Zugriffsschutz-Verfahren 9107.8.2 MLS-Konzept und relevante Komponenten 911

Security Kategorie, Security Level und Security Label 9127.8.3 MAC - Mandatory Access Control / Mandatory Access Checking 913

Dominanz (Dominate/Dominance) 913Äquivalenz (Equivalent) 913Nicht verarbeitbar 913Inkompatibilität (disjoint oder disjunkt) 913Write-down Control 913

7.8.4 MLS-Implementierungs-Varianten im DB2 914MLS und MAC auf Objekt-Ebene 914MLS auf Zeilen-Ebene (Row-Level Granularity) 915

Write-down Control bei Row-Level Granularity 915Behandlung der betroffenen SQL-Statements 915

CREATE TABLE/ALTER TABLE 915DROP TABLE 915SELECT 915INSERT 915UPDATE 916DELETE 916

Behandlung der betroffenen Utilities 917LOAD 917UNLOAD 917REORG TABLESPACE 917

Behandlung in Triggern 917Sonstige Besonderheiten 917

7.8.5 Zusammenfassung und Konsequenzen des MLS-Konzepts 918Beispielhafte Ressource- und Benutzer-Definitionen 918

Security-Kategorien 918Security-Level 918Security-Label 918

Fazit 9197.8.6 Vor- und Nachteile des MLS-Konzepts 920

Vorteile des MLS-Konzepts 920Nachteile des MLS-Konzepts 920

7.9 Verschlüsselung von Daten (Encryption) 9217.9.1 Komponenten für die Verschlüsselung 9217.9.2 Welche Daten eignen sich für DB2-Verschlüsselungs-Techniken? 9217.9.3 Definition der Meta-Daten für die Verschlüsselung 9227.9.4 Die Rolle des Encryption Passwords und Password Hints 9227.9.5 Verschlüsselungs-Konzepte 923

Verschlüsselung auf Spalten-Ebene 923Verschlüsselung auf Daten-Wert-Ebene 923

7.9.6 Effekte der Verschlüsselung 924Behandlung der Prädikate bei Vergleichen 924Performance-Aspekte 924Kann man auch PKs und FKs verschlüsseln? 925Wie behandeln Utilities verschlüsselte Daten? 925

Page 25: DB2 Version 10 for z/OS - Theorie und Praxisdgd-ub.de/db2-v11-1-inhalte.pdf · oriht DD mb erman 21 iesbaden II DB2- Theorie und Praxis : InhaltsverzeichnisDB2- Theorie und Praxis

© Copyright DGD GmbH Germany 65201 Wiesbaden

XXV DB2- Theorie und Praxis : Lizenz-Variablen

© Copyright DGD GmbH Germany 65201 Wiesbaden

XXV DB2- Theorie und Praxis : Inhaltsverzeichnis

8 DB2-Katalog 9268.1 Grafischer Wegweiser durch das Kapitel 8 - DB2-Katalog 9268.2 Aufbau und Inhalte 927

8.2.1 Liste der Katalog-Tabellen 9298.2.2 Zuordnung der Objekte zu Katalog-Tabellen 9358.2.3 Referenzielle Beziehungen der wichtigsten Katalog-Tabellen 9368.2.4 Katalog-Informationen zur Unterstützung der Objekt-Administration 938

Katalog-Spalten mit Informationen zur Speicherorganisation 938Katalog-Spalten mit Informationen zur Zugriffspfad-Analyse durch den Optimizer 940

8.2.5 Statistiken und ihre Nutzungsmöglichkeit 948Überblick 948

Was ist der Zweck der Statistiken? 948Übersicht der relevanten Statistik-Informationen (Generelle Statistik-Kategorien) 949DB2-Statistik-Kategorien und relevante Komponenten 950

Speicherung der relevanten Index-Statistik-Informationen 952Bedeutung von LEAFDIST 953

Bedeutung von LEAFNEAR und LEAFFAR 954Speicherung der relevanten Daten-Statistik-Informationen 955

Bedeutung von NEAROFFPOSF und FAROFFPOSF 956Bedeutung von CLUSTERRATIOF 957Bedeutung von DATAREPEATFACTORF (DRF) 958Bedeutung von NEARINDREF und FARINDREF 959

Speicherung der relevanten Hash-Statistik-Informationen 960Kontrolle der Speicher-Organisation 960Bewertung der Nutzung der Hash-Organisation 964

Speicherung der relevanten LOB-Statistik-Informationen 966Bedeutung von ORGRATIO 967

Aktuelle Statistiken: RTS - Realtime-Statistiken 968Überblick 968RTS-Komponenten 969

Sammeln und Aktualisieren der Statistikdaten 970Ausschreiben der Statistiken in die RTS-Tabellen (Externalisierung) 971Analyse der Statistiken 971

Stored Procedure: DSNACCOX (vor DB2-Version 9 DSNACCOR) - Analyse Realtime Statistiken 971

Welche RTS-Tatbestände führen zu einer Utility-Aktivierungs-Empfehlung? 972Welche generellen Katalog-Tatbestände führen zu einer Utility-Aktivierungs-Empfehlung? 973

8.3 Katalog-Abfragen 9748.3.1 Katalog-Abfragen der Katalogbeschreibungen (Metadaten) 974

Objekt-Abfragen für Anwendungs-Entwickler 9768.3.2 Katalog-Abfragen zur Überwachung der optimalen Speicherorganisation 980

Prüfung, ob RUNSTATS überhaupt noch nicht oder seit längerer Zeit nicht aktiviert wurde 9808.3.3 Abfrage auf Reorganisations-Erfordernis 9818.3.4 Nutzung von Tabellen und Indizes durch Packages 9848.3.5 Katalog-Queries über referenzielle Beziehungen 9858.3.6 Katalog-Queries zur Unterstützung und Kontrolle des Datenschutzes 987

8.4 Katalog-Veränderungen 988

9 Utilities 9899.1 Grafischer Wegweiser durch das Kapitel 9 - DB2-Utilities 9899.2 Überblick und relevante Komponenten 990

Page 26: DB2 Version 10 for z/OS - Theorie und Praxisdgd-ub.de/db2-v11-1-inhalte.pdf · oriht DD mb erman 21 iesbaden II DB2- Theorie und Praxis : InhaltsverzeichnisDB2- Theorie und Praxis

© Copyright DGD GmbH Germany 65201 Wiesbaden

XXVI DB2- Theorie und Praxis : Lizenz-Variablen

© Copyright DGD GmbH Germany 65201 Wiesbaden

XXVI DB2- Theorie und Praxis : Inhaltsverzeichnis

9.2.1 Abgrenzung IBM-DB2-Tools - DB2-Utilities 9909.2.2 DB2-Online-Utilities und Standalone-Utilities 9929.2.3 DB2-Online-Utilities: Überblick 993

Komponenten eines Utilities 993Aktivierungs-Varianten für Utilities 994Die Phasen eines Utilities 995Ergebnis- und Status-Kontrolle eines Utility-Laufs 996

Status-Kontrolle während der Aktivierungs-Zeit eines Utility-Laufs 996Ergebnis-Kontrolle nach dem Abschluss eines Utility-Laufs 996

RESTART (CURRENT) und RESTART (PHASE) 997Utility-Datasets 999

Vorgabe von Utility-Control-Statements 999CCSID-Behandlung von Utility-Control Statements 999Spezielle Utility-Control-Statements (SYSIN-DD-Statement) 999Dataset-Charakteristiken 1000Übersicht der Datasets für Online-Utilities 1001Dataset-Dispositionen 1002Dataset-Größen 1003

Vorgehensweisen, wenn Datasets zu klein sind 1003

Unterstützung von FlashCopy 1004FlashCopy-Datasets 1006

Generelle und spezielle Utility-Control Statements 1007Utility-Control Statement: EXEC SQL 1008Utility-Control Statement: LISTDEF 1010Utility-Control Statement: TEMPLATE 1014Utility-Control Statement: OPTIONS 1015

Die Auswirkungen der Objekt-Versionierung für Utilities 1017Wie behandeln Utilities verschlüsselte Daten? 1018Wie behandeln Utilities MLS-geschützte Daten 1018Inline-Utility-Ausführungen 1019

Besonderheiten der Inline-Kopien für Utilities 1019Inline-Kopien mit dem LOAD-Utility 1020Inline-Kopien mit dem REORG-Utility 1024LOAD- und REORG-Besonderheiten für Inline-Kopien bei LOB- und XML-Objekten 1024Inline-Statistiken mit dem LOAD-, REORG- oder REBUILD-Utility 1025

Sperren von Utilities und Kompatibilität zu anderen Utilities 1026Claims und Drains 1026Restriktiver Space-Status von Utilities 1026Kompatibilität der Utilities untereinander 1027

Standalone-Utilities 10289.2.4 Stored Procedures im Utility-Umfeld 1028

9.3 DB2 Online Utilities 10299.3.1 Übersicht der Kategorien und Utilities 10299.3.2 Utilities zum Laden, Entladen und Reorganisieren von Daten und Indizes 1030

LOAD-Utility 1031Überblick 1031Vorbereitungs-Aktivitäten 1033LOAD: Erforderliche Datasets und Objekte 1034LOAD: Utility-Sperren und Abhängigkeiten zu anderen Utilities 1035LOAD: Utility-Ausführungs-Phasen 1036Besonderheiten von Daten-Typen- und -Charakteristiken 1037

Page 27: DB2 Version 10 for z/OS - Theorie und Praxisdgd-ub.de/db2-v11-1-inhalte.pdf · oriht DD mb erman 21 iesbaden II DB2- Theorie und Praxis : InhaltsverzeichnisDB2- Theorie und Praxis

© Copyright DGD GmbH Germany 65201 Wiesbaden

XXVII DB2- Theorie und Praxis : Lizenz-Variablen

© Copyright DGD GmbH Germany 65201 Wiesbaden

XXVII DB2- Theorie und Praxis : Inhaltsverzeichnis

Besonderheiten beim Laden von Daten mit GENERATED ALWAYS-Spalten 1038Komprimierung der Daten 1039Performance-Faktoren beim Laden 1039Offline-Load 1040

Überblick über die Komponenten und relevante Klauseln 1040Ein- und Ausgabe-Datasets 1040

SHRLEVEL NONE oder CHANGE 1042REPLACE oder RESUME - Besonderheiten 1043

Laden der Daten von Partitioned Tablespaces 1044Laden von Daten für Universal Tablespaces Partition-by-growth (UTS-PBG) 1045

Laden von LOB-Daten 1045Laden von XML-Daten 1045LOAD-Parallelverarbeitung 1046

Paralleler-Verarbeitungs-Varianten 1046Paralleler Aufbau der Indizes beim LOAD 1048

Abbruch und Restart des LOAD-Utilities 1050Online-Load 1051

Überblick über die Komponenten und relevante Klauseln 1051Ein- und Ausgabe-Datasets 1051Unterscheidungsmerkmale von Offline- und Online-Load 1052Konsequenzen bei Einsatz des Online-Load-Utilities 1052Test-Ergebnisse Vergleich Offline-Online-Load 1053Empfehlungen 1054

Nachbereitungs-Aktivitäten 1055Test-Beispiele 1056

Laden 1 Mio Zeilen in einen UTS-PBR 1056Erläuterung des Test-Beispiels 1056Utility-Aktivierung ohne Paralell-Verarbeitung (PARALLEL(1) als Default) 1056

Job-Control und Utility-Control-Statements ohne Paralell-Verarbeitung 1056Ausführungs-Protokolle 1056

Utility-Aktivierung mit Paralell-Verarbeitung (PARALLEL) 1058Job-Control und Utility-Control-Statements mit Paralell-Verarbeitung 1058Ausführungs-Protokolle 1058

Laden von 6 Tabellen in einen Segmented Tablespace 1060Erläuterung des Test-Beispiels 1060Job-Control und Utility-Control-Statements 1060Ausführungs-Protokolle 1061

Test-Beispiel: LOAD von XML-Daten einer Temporal Table mit SPANNED YES 1062Job-Control und Utility-Control-Statements 1062Ausführungs-Protokolle 1063

REBUILD INDEX-Utility 1064Überblick über die Komponenten und relevante Klauseln 1064

Online-Rebuild (SHRLEVEL CHANGE) 1066Ein- und Ausgabe-Datasets 1067

Vorbereitungs-Aktivitäten 1067REBUILD INDEX: Erforderliche Datasets und Objekte 1068REBUILD INDEX: Utility-Sperren und Abhängigkeiten zu anderen Utilities 1069REBUILD INDEX: Utility-Ausführungs-Phasen 1069Paralleler Aufbau der Indizes beim REBUILD INDEX 1070Abbruch und Restart des REBUILD INDEX-Utilities 1070Wann ist REBUILD INDEX zweckmäßig oder erforderlich? 1071Test-Beispiele 1072

Job-Control 1072Utility-Control-Statements 1072Auszüge der Ausführungs-Protokolle 1072

Page 28: DB2 Version 10 for z/OS - Theorie und Praxisdgd-ub.de/db2-v11-1-inhalte.pdf · oriht DD mb erman 21 iesbaden II DB2- Theorie und Praxis : InhaltsverzeichnisDB2- Theorie und Praxis

© Copyright DGD GmbH Germany 65201 Wiesbaden

XXVIII DB2- Theorie und Praxis : Lizenz-Variablen

© Copyright DGD GmbH Germany 65201 Wiesbaden

XXVIII DB2- Theorie und Praxis : Inhaltsverzeichnis

REORG INDEX-Utility 1073Überblick 1073

Reorganisations-Methoden 1073Überblick über die Komponenten und relevante Klauseln 1074Ein- und Ausgabe-Datasets 1074Abbruch parallel laufender Prozesse mittel FORCE-Klausel bei Verhinderung des REORG-Abschlusses 1075

Vorbereitungs-Aktivitäten 1076REORG INDEX: Erforderliche Datasets und Objekte 1077REORG INDEX: Utility-Sperren und Abhängigketen zu anderen Utilities 1078REORG INDEX: Utility-Ausführungs-Phasen 1078Paralleler Aufbau der Indizes beim REORG INDEX 1079Abbruch und Restart des REORG INDEX-Utilities 1079Wann ist ein REORG INDEX zweckmäßig oder erforderlich? 1080Test-Beispiele 1081

Job-Control 1081Utility-Control-Statements 1081Auszüge der Ausführungs-Protokolle 1081

REORG TABLESPACE-Utility 1082Überblick 1082

Reorganisations-Methoden 1082Erweiterungen ab DB2-Version 9 1083Erweiterungen ab DB2-Version 10 1083Erweiterungen ab DB2-Version 11 1084Besonderheiten bei einer Reorganisation mit der Materialisierung von Pending-Objekt-Änderungen 1085Strategien beim Entladen der Daten: Clustering Index-Folge oder Sortierung (SORTDATA) 1086Reorganisation der verschiedenen Tablespace-Typen 1087

Reorganisation eines Segmented Tablespaces 1087Reorganisation eines Partitioned Tablespaces 1087

Parallele Reorganisation bei Partitioned Tablespaces 1087SORTNPSI - Sollen NPI-Index-Daten komplett entladen werden oder nicht? 1088

Reorganisation von UTS-PBG-Tablespaces (Partition-by-Growth) 1090Reorganisation von XML-Tablespaces 1090Reorganisation von LOB-Tablespaces 1091

Logging eines LOB-Tablespaces 1092

Reorganisation von Katalog- und Directory-Tablespaces 1092Überblick über die Komponenten und relevante Klauseln 1093Ein- und Ausgabe-Datasets 1093Performance-Faktoren bei der Reorganisation 1095

Parallele Verarbeitungsmöglichkeiten durch andere Prozesse 1096SHRLEVEL NONE - keine Parallelverarbeitung ab RELOAD erlaubt 1096SHRLEVEL REFERENCE - lesende Parallel-Verarbeitung erlaubt 1097SHRLEVEL CHANGE - Parallel-Verarbeitung erlaubt (Online-Reorg) 1098

Rolle der Mapping Table 1099Nicht-Verfügbarkeitszeiten der Objekte für Parallel-Anwendungen 1099Abbruch parallel laufender Prozesse mittel FORCE-Klausel bei Verhinderung des REORG-Abschlusses 1100Konsequenzen bei Einsatz des Online-Reorg-Utilities 1100

REBALANCE - Re-Balancieren ungleich großer Partitions 1101Beispiel einer Online-Rebalance-Maßnahme 1102

Erläuterung des Beispiel 1102Utility-Control-Statements 1102Ausführungs-Protokolle 1102

Vorbereitungs-Aktivitäten 1104REORG TABLESPACE: Erforderliche Datasets und Objekte 1106REORG TABLESPACE: Utility-Ausführungs-Phasen 1108

Page 29: DB2 Version 10 for z/OS - Theorie und Praxisdgd-ub.de/db2-v11-1-inhalte.pdf · oriht DD mb erman 21 iesbaden II DB2- Theorie und Praxis : InhaltsverzeichnisDB2- Theorie und Praxis

© Copyright DGD GmbH Germany 65201 Wiesbaden

XXIX DB2- Theorie und Praxis : Lizenz-Variablen

© Copyright DGD GmbH Germany 65201 Wiesbaden

XXIX DB2- Theorie und Praxis : Inhaltsverzeichnis

REORG TABLESPACE: Utility-Sperren und Abhängigkeiten zu anderen Utilities 1109Abbruch und Restart des REORG TABLESPACE-Utilities 1110

REORG TABLESPACE-Utility: Abbruch in Phasen und Pending-Status 1110Wann ist REORG TABLESPACE zweckmäßig oder erforderlich? 1111Nachbereitungs-Aktivitäten 1112Test-Beispiele 1113

Job-Control mit Direkt-Vorgabe eines Tablespace-Namens 1113Utility-Control-Statements 1113Auszüge der Ausführungs-Protokolle 1114Job-Control mit Vorgabe von Objekt-Listen und Templates 1115Auszüge der Ausführungs-Protokolle 1115Beispiel der Reorganisation von LOB-Tablespaces mit SHRLEVEL CHANGE 1118

Utility-Control 1118Ausführungs-Protokollierung 1118

Beispiel der Reorganisation eines Tablespaces mit Objekt-Änderungen im Schwebezustand (Pending Changes) 1119Utility-Control 1119Ausführungs-Protokollierung (relevanter Auszug) 1119

UNLOAD-Utility 1120Überblick 1120Besonderheiten beim Entladen der Daten 1122

Entladen von Tablespaces, Tables und Image-Copies 1122Beeinflussung der Spalten- und Datenauswahl 1123Konvertierung der Daten 1123

Vorbereitungs-Aktivitäten 1123UNLOAD: Erforderliche Datasets und Objekte 1124UNLOAD: Utility-Ausführungs-Phasen 1124UNLOAD: Utility-Sperren und Abhängigkeiten zu anderen Utilities 1124Abbruch und Restart des UNLOAD-Utilities 1125Test-Beispiele 1125

Test-Beispiel: Entladen Daten eines Partitioned Tablespaces 1125Job-Control 1125Utility-Control-Statements 1125Auszüge des Ausführungs-Protokolls 1125

Test-Beispiel: Entladen Daten DELIMITED 1126EBCDIC-Daten 1126

Test-Beispiel: Entladen Daten mit der WHEN-Klausel und mit TEMPLATE in SYSTEMPL 1127Job-Control 1127Auszüge des Ausführungs-Protokolls 1127Ausdruck der Daten 1128

Test-Beispiele: Entladen Daten mit CCSID EBCDIC und UNICODE 1129Test-Basis 1129Entladen beide mit Default-CCSID 1129Entlade-Bestände 1130Entladen beide mit CCSID EBCDIC 1131Entlade-Bestände 1132Entladen beide mit CCSID UNICODE 1133Entlade-Bestände 1134Entladen beide mit CCSID UNICODE DELIMITED 1135

Entlade-Bestände 1136

Test-Beispiel: Entladen LOB-Daten mit externer File Referenz und TEMPLATE 1137Test-Basis 1137

UNLOAD-Job 1137UNLOAD-Ausführungs-Protokoll 1138

Test-Beispiel: UN LOAD von XML-Daten einer Temporal Table mit SPANNED YES 1139Test-Basis und UNLOAD-Utility-Control 1139

Page 30: DB2 Version 10 for z/OS - Theorie und Praxisdgd-ub.de/db2-v11-1-inhalte.pdf · oriht DD mb erman 21 iesbaden II DB2- Theorie und Praxis : InhaltsverzeichnisDB2- Theorie und Praxis

© Copyright DGD GmbH Germany 65201 Wiesbaden

XXX DB2- Theorie und Praxis : Lizenz-Variablen

© Copyright DGD GmbH Germany 65201 Wiesbaden

XXX DB2- Theorie und Praxis : Inhaltsverzeichnis

9.3.3 Utilities zum Erzeugen von Statistik-Informationen aus Daten und Indizes 1140RUNSTATS-Utility 1141

Überblick 1141Aktualisierung der Katalog-Statistiken 1145

Welche Tabellen und Spalten aktualisiert RUNSTATS? 1145RUNSTATS: Wirkung der Parameter UPDATE und HISTORY 1146

Woran erkennt man die Aktualität der Statistiken? 1148Darstellung der Statistikwerte im Katalog 1148Manuelle Veränderung der Statistikwerte im Katalog 1149Exaktheit der Statistikwerte 1149Ungleichförmige Verteilung von Datenwerten 1150

Statische Erfassung von Einzelwerten (KEYCARD und FREQUVAL) und Spalten-Gruppen (COLGROUP) 1150Statische Erfassung der Verteilung von Spaltenwerten oder Wertegruppen (HISTOGRAM) 1151

Zurücksetzen der Katalog-Statistiken für die Zugriffspfad-Analyse (RESET ACCESSPATH) 1153Beispiel eines RUNSTATS-Laufs mit Zurücksetzen des kompletten Statistik-Stands auf den Initialisierungszustand (RESET ACCESSPATH) 1154

Nutzung von Tabellen-Profilen zur Vereinheitlichung der RUNSTATS-Ausführungen (PROFILES) 1155Vorbereitungs-Aktivitäten 1156RUNSTATS TABLESPACE: Erforderliche Datasets und Objekte 1156RUNSTATS TABLESPACE: Utility-Ausführungs-Phasen 1156RUNSTATS TABLESPACE: Utility-Sperren und Abhängigkeiten zu anderen Utilities 1157Abbruch und Restart des RUNSTATS-Utilities 1157Test-Beispiele 1158

RUNSTATS TABLESPACE TABLE ALL und INDEX ALL 1158Utility-Control-Statements 1158Auszüge der Ausführungs-Protokolle 1158

STOSPACE-Utility 1161Überblick 1161Vorbereitungs-Aktivitäten 1162STOSPACE: Erforderliche Datasets und Objekte 1162STOSPACE: Utility-Ausführungs-Phasen 1162STOSPACE: Utility-Sperren und Abhängigkeiten zu anderen Utilities 1162Abbruch und Restart des STOSPACE-Utilities 1162Test-Beispiele 1163

Job-Control 1163Utility-Control-Statements 1163Ausführungs-Protokoll 1163Katalog-Statistiken 1163

9.3.4 Utilities zum Prüfen der Konsistenz von Daten und Indizes 1164Überblick und Abgrenzung der Aufgaben 1164

Bereinigung erkannter Ferhler-Situationen 1166Löschen fehlerhafter Basis-Datenzeilen mittels DELETE YES 1166LOB- oder XML-Fehler-Typen: Orphan-, Missing-, Out-of-Synch- und Invalid-Werte 1167

Entdeckung der Fehlerzustände und mögliche Ursachen 1167Bereinigungs-Möglichkeiten der Fehlerzustände 1168

CHECK DATA-Utility 1169Überblick 1169Was wird denn nun wie und warum gesteuert? 1172

Behandlung des CHKP-Check-Pending Status ab DB2-Version 10 1172Objekt-Auswahl: SCOPE-Klausel 1173

XML-Tablespace-Prüfungen 1174

xxxERROR-Klausel 1175Vorbereitungs-Aktivitäten 1176CHECK DATA: Erforderliche Datasets und Objekte 1176

Page 31: DB2 Version 10 for z/OS - Theorie und Praxisdgd-ub.de/db2-v11-1-inhalte.pdf · oriht DD mb erman 21 iesbaden II DB2- Theorie und Praxis : InhaltsverzeichnisDB2- Theorie und Praxis

© Copyright DGD GmbH Germany 65201 Wiesbaden

XXXI DB2- Theorie und Praxis : Lizenz-Variablen

© Copyright DGD GmbH Germany 65201 Wiesbaden

XXXI DB2- Theorie und Praxis : Inhaltsverzeichnis

CHECK DATA: Utility-Ausführungs-Phasen 1177CHECK DATA: Utility-Sperren und Abhängigkeiten zu anderen Utilities 1177Abbruch und Restart des CHECK DATA-Utilities 1178Nachbereitungs-Aktivitäten 1178Test-Beispiele 1179

Löschen fehlerhafter referenzieller Zeilen 1179Job-Control 1179Utility-Control-Statements 1179Auszüge der Ausführungs-Protokolle 1179

LOB-Daten aufgrund eines PIT-Recoveries auf ungültig setzen 1180Utility-Control-Statements 1180Ausführungs-Protokoll 1180

CHECK INDEX-Utility 1181Überblick 1181Vorbereitungs-Aktivitäten 1182CHECK INDEX: Erforderliche Datasets und Objekte 1183CHECK INDEX: Utility-Ausführungs-Phasen 1183CHECK INDEX: Utility-Sperren und Abhängigkeiten zu anderen Utilities 1183Abbruch und Restart des CHECK DATA-Utilities 1183Nachbereitungs-Aktivitäten 1184Test-Beispiele 1185

Job-Control 1185Utility-Control-Statements 1185Auszüge der Ausführungs-Protokolle 1185

CHECK LOB-Utility 1186Überblick 1186Behandlung des CHKP-Check-Pending Status ab DB2-Version 10 1188Vorbereitungs-Aktivitäten 1188CHECK LOB: Erforderliche Datasets und Objekte 1189CHECK LOB: Utility-Ausführungs-Phasen 1189CHECK LOB: Utility-Sperren und Abhängigkeiten zu anderen Utilities 1190Abbruch und Restart des CHECK LOB-Utilities 1190Nachbereitungs-Aktivitäten 1190Test-Beispiele 1191

Job-Control 1191Utility-Control-Statements 1191Auszüge der Ausführungs-Protokolle 1191

9.3.5 Utilities zum Sichern und Wiederherstellen von Daten und Indizes 1192BACKUP SYSTEM-Utility 1193

Überblick 1193Vorbereitungs-Aktivitäten 1195BACKUP SYSTEM: Erforderliche Datasets und Objekte 1195BACKUP SYSTEM: Utility-Ausführungs-Phasen 1195BACKUP SYSTEM: Utility-Sperren und Abhängigkeiten zu anderen Utilities 1195Abbruch und Restart des BACKUP SYSTEM-Utilities 1196Nachbereitungs-Aktivitäten 1196Test-Beispiele 1196

Job-Control 1196

COPY-Utility 1197Überblick 1197Copy-Typen 1199

Full Image Copy 1199

Page 32: DB2 Version 10 for z/OS - Theorie und Praxisdgd-ub.de/db2-v11-1-inhalte.pdf · oriht DD mb erman 21 iesbaden II DB2- Theorie und Praxis : InhaltsverzeichnisDB2- Theorie und Praxis

© Copyright DGD GmbH Germany 65201 Wiesbaden

XXXII DB2- Theorie und Praxis : Lizenz-Variablen

© Copyright DGD GmbH Germany 65201 Wiesbaden

XXXII DB2- Theorie und Praxis : Inhaltsverzeichnis

Incremental Image Copy 1199Primär und Backup-Kopie 1200Kopien für das lokale und das Recovery-System 1200FlashCopy Kopien 1200DFSMS Concurrent Copy 1201

Parallele Ausführungsmöglichkeiten des Utilities 1202Parallele Sicherung von Objekten in einem Job 1202Parallele Sicherung von Objekten in mehreren Jobs 1202

Erzeugen von Kopien für mehrere Objekte 1202Vorgabe einer Liste in einer Copy-Anweisung eines Jobs 1202Vorgabe mehrerer Copy-Anweisungen in einem Job 1202

Wie kann die Konsistenz der Objekte sichergestellt werden? 1203Bei bestimmten 'Restriktiven Pending-Status' kann bzw. sollte keine Image Copy erzeugt werden 1203Vom Einsatz von -TERM UTIL wird beim COPY abgeraten 1204Vorbereitungs-Aktivitäten 1204COPY: Erforderliche Datasets und Objekte 1204COPY: Utility-Ausführungs-Phasen 1205COPY: Utility-Sperren und Abhängigkeiten zu anderen Utilities 1205Abbruch und Restart des COPY-Utilities 1206Nachbereitungs-Aktivitäten 1206Test-Beispiele 1207

Job-Control 1207Utility-Control-Statements 1207Auszüge der Ausführungs-Protokolle 1207

COPYTOCOPY-Utility 1210Überblick 1210Vorbereitungs-Aktivitäten 1212COPYTOCOPY: Erforderliche Datasets und Objekte 1212COPYTOCOPY: Utility-Ausführungs-Phasen 1212COPYTOCOPY: Utility-Sperren und Abhängigkeiten zu anderen Utilities 1212Abbruch und Restart des COPYTOCOPY-Utilities 1213Nachbereitungs-Aktivitäten 1213Test-Beispiele 1214

Job-Control 1214Utility-Control-Statements 1214Auszüge der Ausführungs-Protokolle 1214

MERGECOPY-Utility 1215Überblick 1215Vorbereitungs-Aktivitäten 1216MERGECOPY: Erforderliche Datasets und Objekte 1216MERGECOPY: Utility-Ausführungs-Phasen 1217MERGECOPY: Utility-Sperren und Abhängigkeiten zu anderen Utilities 1217Abbruch und Restart des MERGECOPY-Utilities 1217Nachbereitungs-Aktivitäten 1217Test-Beispiele 1218

Job-Control 1218Utility-Control-Statements 1218Auszüge der Ausführungs-Protokolle 1218

QUIESCE-Utility 1219Überblick 1219Vorbereitungs-Aktivitäten 1221QUIESCE: Erforderliche Datasets und Objekte 1221

Page 33: DB2 Version 10 for z/OS - Theorie und Praxisdgd-ub.de/db2-v11-1-inhalte.pdf · oriht DD mb erman 21 iesbaden II DB2- Theorie und Praxis : InhaltsverzeichnisDB2- Theorie und Praxis

© Copyright DGD GmbH Germany 65201 Wiesbaden

XXXIII DB2- Theorie und Praxis : Lizenz-Variablen

© Copyright DGD GmbH Germany 65201 Wiesbaden

XXXIII DB2- Theorie und Praxis : Inhaltsverzeichnis

QUIESCE: Utility-Ausführungs-Phasen 1221QUIESCE: Utility-Sperren und Abhängigkeiten zu anderen Utilities 1221Abbruch und Restart des QUIESCE-Utilities 1222Nachbereitungs-Aktivitäten 1222Test-Beispiele 1222

Job-Control 1222Utility-Control-Statements 1222Auszüge der Ausführungs-Protokolle 1222

RECOVER-Utility 1224Überblick 1224Zurücksetzen von Datenzuständen 1229

Vorwärts- und Rückwärts-Recovery (forward/backward und BACKOUT YES) 1230Zurücksetzen auf den aktuellen Status 1231Zurücksetzen auf einen früheren Zeitpunkt 1231

Copy-Typen 1232RECOVER-Szenario eines Partitioned Tablespaces 1233

COPY- und RECOVER-Klauseln für die verschiedenen Recover- und Objekt-Typen eines Partitioned Tablespaces 1234PIT-RECOVER-Beispiele 1235

COPY und PIT-RECOVER kompletter Partitioned Tablespaces 1235COPY und RECOVER aller oder einzelner Partitions eines Partitioned Tablespaces 1236

RECOVER von Tablespaces mit verknüpften Objekten (Indizes, RI-Constraints, LOB- oder XML-Tablespaces sowie deren Indizes) 1238Pending Status 1238Ungültigkeits-Markierung (invalid) von LOB- oder XML-Werten 1238Wiederherstellen von Base-Tablespaces 1238Wiederherstellen von LOB- oder XML-Tablespaces 1238Wiederherstellen von Indexspaces 1238

RECOVER von Tablespaces, die mit NOT LOGGED definiert sind 1239RECOVER von Katalog- und Directory-Objekten 1239

Objekt-Hierarchie 1239Vorbereitungs-Aktivitäten 1240RECOVER: Erforderliche Datasets und Objekte 1240RECOVER: Utility-Ausführungs-Phasen 1241RECOVER: Utility-Sperren und Abhängigkeiten zu anderen Utilities 1242Abbruch und Restart des RECOVER-Utilities 1242Nachbereitungs-Aktivitäten 1242Test-Beispiele 1243

Job-Control 1243Utility-Control-Statements 1243Auszüge der Ausführungs-Protokolle 1243

RESTORE SYSTEM-Utility 1245Überblick 1245Vorbereitungs-Aktivitäten 1246RESTORE SYSTEM: Erforderliche Datasets und Objekte 1247RESTORE SYSTEM: Utility-Ausführungs-Phasen 1247RESTORE SYSTEM: Utility-Sperren und Abhängigkeiten zu anderen Utilities 1247Abbruch und Restart des RESTORE SYSTEM-Utilities 1248Nachbereitungs-Aktivitäten 1248Test-Beispiele 1248

Job-Control 1248

9.3.6 Utilities zum Löschen nicht mehr benötigter System-Informationen 1249MODIFY RECOVERY-Utility 1250

Überblick 1250

Page 34: DB2 Version 10 for z/OS - Theorie und Praxisdgd-ub.de/db2-v11-1-inhalte.pdf · oriht DD mb erman 21 iesbaden II DB2- Theorie und Praxis : InhaltsverzeichnisDB2- Theorie und Praxis

© Copyright DGD GmbH Germany 65201 Wiesbaden

XXXIV DB2- Theorie und Praxis : Lizenz-Variablen

© Copyright DGD GmbH Germany 65201 Wiesbaden

XXXIV DB2- Theorie und Praxis : Inhaltsverzeichnis

Vorbereitungs-Aktivitäten 1251MODIFY RECOVERY: Erforderliche Datasets und Objekte 1252MODIFY RECOVERY: Utility-Ausführungs-Phasen 1252MODIFY RECOVERY: Utility-Sperren und Abhängigkeiten zu anderen Utilities 1252Abbruch und Restart des MODIFY RECOVERY-Utilities 1252Nachbereitungs-Aktivitäten 1252Test-Beispiele 1253

Job-Control 1253Utility-Control-Statements 1253Auszüge der Ausführungs-Protokolle 1253Szenario der Löschung aller Image Copies, außer der letzten Full Image Copy und ggf. nachfolgender Incremental Image Copies 1254

Auszug aus SYSIBM.SYSCOPY vor MODIFY RECOVERY 1254MODIFY RECOVERY-Protokoll 1254Auszug aus SYSIBM.SYSCOPY nach MODIFY RECOVERY 1255

MODIFY STATISTICS-Utility 1256Überblick 1256Vorbereitungs-Aktivitäten 1257MODIFY STATISTICS: Erforderliche Datasets und Objekte 1257MODIFY STATISTICS: Utility-Ausführungs-Phasen 1257MODIFY STATISTICS: Utility-Sperren und Abhängigkeiten zu anderen Utilities 1257Abbruch und Restart des MODIFY STATISTICS-Utilities 1257Nachbereitungs-Aktivitäten 1257Test-Beispiele 1258

Job-Control 1258Utility-Control-Statements 1258Auszüge der Ausführungs-Protokolle 1258

9.3.7 Utilities für Objekt-Informationen und zur Fehler-Analyse und Fehler-Bereinigung 1259DIAGNOSE-Utility 1260

Überblick 1260Vorbereitungs-Aktivitäten 1261DIAGNOSE: Erforderliche Datasets und Objekte 1261DIAGNOSE: Utility-Ausführungs-Phasen 1261DIAGNOSE: Utility-Sperren und Abhängigkeiten zu anderen Utilities 1261Abbruch und Restart des DIAGNOSE-Utilities 1261Nachbereitungs-Aktivitäten 1261Test-Beispiele 1262

Job-Control 1262Utility-Control-Statements 1262Auszüge der Ausführungs-Protokolle 1262

REPAIR-Utility 1263Überblick 1263Vorbereitungs-Aktivitäten 1265REPAIR: Erforderliche Datasets und Objekte 1265REPAIR: Utility-Ausführungs-Phasen 1265REPAIR: Utility-Sperren und Abhängigkeiten zu anderen Utilities 1266Abbruch und Restart des REPAIR-Utilities 1266Nachbereitungs-Aktivitäten 1266Test-Beispiele 1267

Job-Control 1267Utility-Control-Statements 1267Auszüge der Ausführungs-Protokolle 1267

REPORT-Utility 1268

Page 35: DB2 Version 10 for z/OS - Theorie und Praxisdgd-ub.de/db2-v11-1-inhalte.pdf · oriht DD mb erman 21 iesbaden II DB2- Theorie und Praxis : InhaltsverzeichnisDB2- Theorie und Praxis

© Copyright DGD GmbH Germany 65201 Wiesbaden

XXXV DB2- Theorie und Praxis : Lizenz-Variablen

© Copyright DGD GmbH Germany 65201 Wiesbaden

XXXV DB2- Theorie und Praxis : Inhaltsverzeichnis

Überblick 1268Vorbereitungs-Aktivitäten 1269REPORT: Erforderliche Datasets und Objekte 1269REPORT: Utility-Ausführungs-Phasen 1269REPORT: Utility-Sperren und Abhängigkeiten zu anderen Utilities 1270Abbruch und Restart des REPORT-Utilities 1270Nachbereitungs-Aktivitäten 1270Test-Beispiele 1271

Job-Control 1271Utility-Control-Statements 1271Auszüge der Ausführungs-Protokolle 1271

9.4 Standalone-Utilities 12789.4.1 Übersicht 12789.4.2 DSNJCNVB - Konvertieren BSDS Log-Datasets 1280

Überblick 1280Vorbereitungs-Aktivitäten 1280

DSNJCNVB: Erforderliche Datasets und Objekte 1281Nachbereitungs-Aktivitäten 1281Test-Beispiele 1281

Job-Control 1281Auszüge der Ausführungs-Protokolle 1281

9.4.3 DSNJCNVT - Konvertieren BSDS auf das 10-Byte-Extended RBA/LRSN-Format 1282Überblick 1282Vorbereitungs-Aktivitäten 1283

DSNJCNVB: Erforderliche Datasets und Objekte 1284Nachbereitungs-Aktivitäten 1284Test-Beispiele 1284

Job-Control 1284Auszüge der Ausführungs-Protokolle 1284

9.4.4 DSNJLOGF (Preformat Active Log) 1285Überblick 1285Vorbereitungs-Aktivitäten 1285

DSNJLOGF: Erforderliche Datasets und Objekte 1286Nachbereitungs-Aktivitäten 1286Test-Beispiele 1286

Job-Control 1286Auszüge der Ausführungs-Protokolle 1286

9.4.5 DSNJU003 (Change Log Inventory) 1287Überblick 1287Vorbereitungs-Aktivitäten 1289

DSNJU003: Erforderliche Datasets und Objekte 1289Nachbereitungs-Aktivitäten 1289Test-Beispiele 1290

Job-Control 1290Auszüge der Ausführungs-Protokolle 1290

9.4.6 DSNJU004 (Print Log Map) 1291Überblick 1291Vorbereitungs-Aktivitäten 1292

Page 36: DB2 Version 10 for z/OS - Theorie und Praxisdgd-ub.de/db2-v11-1-inhalte.pdf · oriht DD mb erman 21 iesbaden II DB2- Theorie und Praxis : InhaltsverzeichnisDB2- Theorie und Praxis

© Copyright DGD GmbH Germany 65201 Wiesbaden

XXXVI DB2- Theorie und Praxis : Lizenz-Variablen

© Copyright DGD GmbH Germany 65201 Wiesbaden

XXXVI DB2- Theorie und Praxis : Inhaltsverzeichnis

DSNJU004: Erforderliche Datasets und Objekte 1292Nachbereitungs-Aktivitäten 1292Test-Beispiele 1292

Job-Control 1292Auszüge der Ausführungs-Protokolle (aufbereitete Form mit Erläuterungen) 1293

9.4.7 DSN1CHKR 1296Überblick 1296Vorbereitungs-Aktivitäten 1297

DSN1CHKR: Erforderliche Datasets und Objekte 1297Nachbereitungs-Aktivitäten 1297Test-Beispiele 1297

Job-Control 1297

9.4.8 DSN1COMP 1298Überblick 1298Vorbereitungs-Aktivitäten 1299

DSN1COMP: Erforderliche Datasets und Objekte 1299Nachbereitungs-Aktivitäten 1299Test-Beispiele 1299

Job-Control 1299Auszüge der Ausführungs-Protokolle 1300

9.4.9 DSN1COPY 1301Überblick 1301

DSN1COPY: Erweiterte Konsistenzprüfungen ab DB2-Version 11 1303Vorbereitungs-Aktivitäten 1304

DSN1COPY: Erforderliche Datasets und Objekte 1304Test-Beispiele 1305

Job-Control 1305Auszüge der Ausführungs-Protokolle 1306

9.4.10 DSN1LOGP 1307Überblick 1307Vorbereitungsaktivitäten 1308

DSN1LOGP: Erforderliche Datasets und Objekte 1308Nachbereitungs-Aktivitäten 1308Test-Beispiele 1309

Job-Control 1309Auszüge der Ausführungs-Protokolle 1309

9.4.11 DSN1PRNT 1310Überblick 1310Vorbereitungs-Aktivitäten 1311

DSN1PRNT: Erforderliche Datasets und Objekte 1311Nachbereitungs-Aktivitäten 1311Test-Beispiele 1312

Job-Control 1312Ausführungs-Protokolle 1312

9.4.12 DSN1SDMP 1316Überblick 1316Vorbereitungs-Aktivitäten 1317

DSN1SDMP: Erforderliche Datasets und Objekte 1317

Page 37: DB2 Version 10 for z/OS - Theorie und Praxisdgd-ub.de/db2-v11-1-inhalte.pdf · oriht DD mb erman 21 iesbaden II DB2- Theorie und Praxis : InhaltsverzeichnisDB2- Theorie und Praxis

© Copyright DGD GmbH Germany 65201 Wiesbaden

XXXVII DB2- Theorie und Praxis : Lizenz-Variablen

© Copyright DGD GmbH Germany 65201 Wiesbaden

XXXVII DB2- Theorie und Praxis : Inhaltsverzeichnis

Nachbereitungs-Aktivitäten 1317Test-Beispiele 1317

Job-Control 1317

9.5 Automatisierung des Anstoßes von Utility-Läufen durch Statistik-Analyse (Autonomic Maintenance) 13189.5.1 Relevante, automatisierbare Utilities 1319

Autonomic Statistics: Automatisierung von RUNSTATS 13209.6 Pending Status (Advisory und Restricted Status) 1321

10 Datenentwurf unter DB2 132510.1 Grafischer Wegweiser durch das Kapitel 10 - Datenentwurf 132510.2 Rolle des ANSI-SPARC-Drei-Schemata-Ansatzes 132610.3 Vorgehens-Modell 1328

10.3.1 Entwicklungsgeschichte der relevanten Daten-Modelle 133010.3.2 ERM - Entity-Relationship-Modell 133110.3.3 Relationen-Modell (RM) 133310.3.4 Gemeinsamkeiten von ERM und RM 1335

10.4 Logisches Design 133910.4.1 Normalisierung 1340

Unnormalisierte Daten 13411NF - Atomic Attribute ohne Wiederhol-Elemente 13432NF - Volle funktionale Abhängigkeit zu allen PK-Bestandteilen 13453NF - Keine transitiven Abhängigkeiten der Nicht-PK-Attribute 1347

Kritische Analyse der erreichten 3NF - Struktur-Qualität 1348BCNF - Volle Abhängigkeit zum Candidate Key 13494NF - Keine paarweisen mehrwertigen Abhängigkeiten 13505NF - Ultimative Normal Form - Project-Join-Normalform (PJ/NF) 1352Abschlussüberlegungen zur Normalisierung 1355

10.4.2 Dokumentation der Daten-Design-Ergebnisse 1356Bubbles/Blasendiagramme 1356Relationale Notation 1357Dependency Diagram 1358Netzwerk Diagramm 1359Objektorientiertes State Transition Diagram 1360DB2-Unterstützungstools 1361

10.4.3 Festlegung der referenziellen Verarbeitungs-Regeln 1362Darstellung der referenziellen Verarbeitungs-Maßnahmen (RI) 1364

10.4.4 Festlegung der Geschäfts-Regeln (Business-Rules) 1366Zusammenfassende Definition der Business-Rules 1367Festlegung der logischen Trigger für die Business-Rules 1368

10.4.5 Übersicht der kompletten Integritäts-Regeln und -Maßnahmen 1370Strukturierung der Geschäfts-Regeln und -Aktionen 1372Umsetzung der Geschäfts-Regeln und -Aktionen in SQL-Funktionen 1373

10.4.6 Konzeptionelle Modelle für Spezial-Konstrukte 1374Einleitung 1374Daten unter Zeitbezug - Temporal Tables und Relationen-Modell 1375

Fachliche Zeitaspekte 1375

Page 38: DB2 Version 10 for z/OS - Theorie und Praxisdgd-ub.de/db2-v11-1-inhalte.pdf · oriht DD mb erman 21 iesbaden II DB2- Theorie und Praxis : InhaltsverzeichnisDB2- Theorie und Praxis

© Copyright DGD GmbH Germany 65201 Wiesbaden

XXXVIII DB2- Theorie und Praxis : Lizenz-Variablen

© Copyright DGD GmbH Germany 65201 Wiesbaden

XXXVIII DB2- Theorie und Praxis : Inhaltsverzeichnis

Einleitung, Terminologie 1375Komponenten eines Modells für Daten mit Zeitbezug 1376Auswirkung auf fachliche Informationen und Informations-Zusammenhänge 1378Aufnahme von Zeit-Attributen und Konsequenzen 1379Fachliche Funktionsauswirkungen der Zeitunterstützung 1381

Manipulation und Wirkung 1381Entwicklung der Beispiel-Daten unter Zeitaspekten 1382

Konsequenzen der Zeitunterstützung für Fachbereichs-Benutzer 1383Konzeptionelle Umsetzung für Zeitaspekte 1384

PK-Festlegung: Objekt-Identifikator plus Zeit- bzw. Versions-Bezug 1384FK-Festlegung: Objekt-Identifikator mit oder ohne Zeit- bzw. Versions-Bezug 1385Unser konzeptionelles Modell steckt voller Redundanzen: Wie sieht ein redundanzfreies Modell aus? 1387

Zeit-Leiste für jeden Attribut-Zustand 1387

Datenhaltung für jede Daten-Version bei veränderten Attribut-Zuständen 1389Funktionale Konsequenzen für Daten mit Zeitbezug 1390

Manipulations-Typen 1390Manipulations-Festlegungen hinsichtlich der Gültigkeitszeitleisten 1391Referenzielle Regeln für Daten mit Zeitbezug (RI-Bedingungen) 1393

Informations-Bereitstellungs-Typen 1395

10.4.7 Festlegung der konzeptionellen Views 1396Bilden von Schemata für spezielle Daten-Sichten 1396

OLAP 1397Data Warehouse: Cubes und Dimensionen 1398

Fakten (Facts) 1398Maßeinheiten (Measures) 1398Dimensionen (Dimensions) 1399OLAP-Meta-Modell: Objekt-Typen 1403

10.4.8 Checkliste für das logische Daten-Design 1404Fachliches Daten-Modell 1404Konzeptionelles Daten-Modell 1405

10.5 Physisches Design 140710.5.1 Aufgabenstellungen 140710.5.2 Ableiten der physischen Benutzerobjekte aus logischen Relationen 1408

Zielsetzungen eines physischen Daten-Modells 1408Kandidaten für die physische Implementierung 1409

10.5.3 Bewertung der Auswirkungen logisch definierter Zugriffspfade 1409Aufwand bei der Datenbeschaffung 1411Individuelle Performance-Relevanz 1414Auswirkungen der Sperr-Maßnahmen 1415

10.5.4 De-Normalisierungs-Maßnahmen 1416Daten-Zusammenführung 1416Trennung der Daten (Verteilung) 1418

Trennung der Daten zwischen Base- und History-Table bei Daten-Versionierung von Temporal Tables 1419Bilden zusätzlicher Redundanzen 1421Bilden von Schemata für spezielle Datenhaltungs-Konzepte 1423

Data Warehouse 1423Terminologie und Komponenten 1423MOLAP, ROLAP und HOLAP 1425Star-Schema 1427Snowflake-Schema 1428Struktur-Besonderheiten beim Einsatz von MQTs 1429

Page 39: DB2 Version 10 for z/OS - Theorie und Praxisdgd-ub.de/db2-v11-1-inhalte.pdf · oriht DD mb erman 21 iesbaden II DB2- Theorie und Praxis : InhaltsverzeichnisDB2- Theorie und Praxis

© Copyright DGD GmbH Germany 65201 Wiesbaden

XXXIX DB2- Theorie und Praxis : Lizenz-Variablen

© Copyright DGD GmbH Germany 65201 Wiesbaden

XXXIX DB2- Theorie und Praxis : Inhaltsverzeichnis

Konsequenzen der De-Normalisierung 143010.5.5 Indizes 143110.5.6 Unterstützung der referenziellen Integrität (RI) durch DB2 1432

Terminologie und Einrichtung unter DB2 1432Definierbare Strukturen 1434

Zulässige Einzel-Struktur-Beziehungen 1434Umsetzung der M : N - Struktur-Beziehungen 1435Logische referenzielle Struktur 1436Physische referenzielle Struktur (Tablespace-Set) 1442

Gesamt-Überblick über die DB2-RI-Unterstützung 1444Anforderungen an PK und FK 1446

DB2-Primary-Key (PK) und Parent Key 1446DB2-Foreign-Key (FK) 1447Verwaltung der RI-Definitionen im Katalog 1448

Katalog-Informationen für RI 1448RI-DDL-Beispiele 1449

Argumente für und wider den Einsatz von DB2-RI 145110.5.7 Unterstützung der Business Rules mit Funktionen und Triggern 1452

De-Normalisierungs-Auswirkungen 1452Zuordnung der Regeln und Maßnahmen zu den physischen Strukturen 1452Funktionale Konsequenzen bei Nicht-Nutzung von DB2-RI 1454Funktionale Konsequenzen bei Struktur-De-Normalisierungen 1455

10.5.8 Festlegung der sonstigen DB2-Objekte mit ihren Ausprägungen 145710.5.9 Festlegung der sonstigen physischen Ressourcen 145710.5.10 DB2-Unterstützungstools 145710.5.11 Checkliste für das physische DB2-Design 1458

11 Datenspeicherung intern und extern 146011.1 Grafischer Wegweiser durch das Kapitel 11 146011.2 Übersicht der Speicherungsformen 146111.3 Space-Management 1463

11.3.1 Verwaltung und Adressierung der Daten innerhalb des Page Sets 146311.3.2 Page Sets 1465

Linear Page Sets 1465Partitioned Page Sets 1466Universal Page Sets 1467LOB Page Sets 1468XML Page Sets 1469

11.3.3 Page Typen des File Page Sets 1470Header Page und System Pages 1471

Kontrolle der Umstellung des RBA/LRSN-Formats von Basic auf Extended in einer Header-Page 1472Space Map Pages 1473Daten Pages 1474

Satzformat: Basic-Record-Format (BRF) oder Reordered-Row-Format (RRF) 1475Indikatoren für LOB- und XML-Werte in der Basis-Datenzeile 1476Adressierung der Daten-Zeilen 1476

Speicherung und Adressierung bei Hash-organisierten Tabellen 1477

Page 40: DB2 Version 10 for z/OS - Theorie und Praxisdgd-ub.de/db2-v11-1-inhalte.pdf · oriht DD mb erman 21 iesbaden II DB2- Theorie und Praxis : InhaltsverzeichnisDB2- Theorie und Praxis

© Copyright DGD GmbH Germany 65201 Wiesbaden

XL DB2- Theorie und Praxis : Lizenz-Variablen

© Copyright DGD GmbH Germany 65201 Wiesbaden

XL DB2- Theorie und Praxis : Inhaltsverzeichnis

Insert-Strategie innerhalb der Daten-Pages 1479Update-Strategie bei variablen Zeilen 1480Delete-Strategie innerhalb der Daten-Pages 1480Freespace-Verwaltung der Daten-Pages 1481

FREEPAGE und PCTFREE 1481PCTFREE FOR UPDATE 1482

MAXROWS 1482Plattenplatz-Bedarfs-Ermittlung 1483

Plattenplatz-Bedarfs-Ermittlung für LOB-Werte 1485Besonderheiten bei Inline-LOBs 1486

PRIQTY 1487SECQTY 1487

Kompression der Daten 148811.3.4 Page Typen des Index Page Sets 1490

Header Page und System Pages 1490Space Map Pages 1490Index Pages 1490

Non-Leaf Pages 1491Leaf Pages 1492Insert-Strategie innerhalb der Index-Pages 1493Update-Strategie innerhalb der Index-Pages 1494Delete-Strategie innerhalb der Index-Pages 1494Freespace-Verwaltung der Index-Pages 1494Verteilung der Non-Partitioned-Index Daten mit Hilfe von PIECESIZE 1494Plattenplatz-Bedarfs-Ermittlung für Indizes 1495

Unterstützung von Page-Größen > 4-KB im Index 1497Index-Komprimierung 1498

DSN1COMP-Protokoll 1499

11.4 Nutzung des virtuellen Adressraums 150011.4.1 Nutzung der z/OS-Architektur 1500

Erweiterte Nutzung der 64-Bit-Architektur 150111.4.2 Datenpool-Konzept 1503

RID-Pool 1504Sort-Pool 1505EDM-Speicherbereiche 1506Compressions-Dictionary 1507Materialisierung von LOB-Werten 1507IRLM-Locks 1507LE-Tokens 1507

11.4.3 Bufferpool-Konzept 1508Group Bufferpools (GBP) 1510Virtuelles Bufferkonzept 1510

Zuordnung der Bufferpools zu Tablespaces und Indexspaces 1510Unterstützung verschiedener Page-Größen 1511Bufferpool-Page-Größe und VSAM-CI-Größe 1511Fixierung von Buffern im Realspeicher 1511Einbindung der Bufferpools in die System-Schichten 1512

Lese-Anforderungen 1513Direktes Einlesen (Synchronous Read) 1513Sequential Prefetch 1513

Page 41: DB2 Version 10 for z/OS - Theorie und Praxisdgd-ub.de/db2-v11-1-inhalte.pdf · oriht DD mb erman 21 iesbaden II DB2- Theorie und Praxis : InhaltsverzeichnisDB2- Theorie und Praxis

© Copyright DGD GmbH Germany 65201 Wiesbaden

XLI DB2- Theorie und Praxis : Lizenz-Variablen

© Copyright DGD GmbH Germany 65201 Wiesbaden

XLI DB2- Theorie und Praxis : Inhaltsverzeichnis

Dynamic Prefetch (Sequential Detection) 1514Sequential Detection 1515List Prefetch (List Sequential Prefetch) 1516

Schreib-Anforderungen 1517Zustandsformen der Bufferpool-Page-Typen 1518Bufferpool-Thresholds 1519

Threshold-Parametrisierungs-Empfehlungen für LOB- und XML-Werte 1520Mögliche Strategien der Bufferpool-Einrichtung 1521Bufferpool-Hit Ratio und MUPA 1522

Bufferpool-Besonderheiten für LOB- und XML-Werte 1523

11.5 VSAM-Datasets 152411.5.1 Nutzung von DFSMS (Storage Management Subsystem) 1526

12 DB2-Datensicherheitseinrichtungen 152712.1 Grafischer Wegweiser durch das Kapitel 12 - Datensicherheitseinrichtungen 152712.2 DB2-Sicherheitsinstrumentarium 152812.3 Transaktionsabwicklung 1530

12.3.1 Terminologie und Transaktions-Definition 153012.3.2 Konsistenz-Koordination bei Einsatz mehrerer Ressource-Manager 1532

12.4 LUW-, UOW- und UOR-Konzept 153412.4.1 Vorgangsabwicklung unter TSO oder einem Client ohne UOW-Konzept 153612.4.2 Vorgangsabwicklung unter CICS oder IMS mit UOW-Konzept 153712.4.3 Die Wirkung von SAVEPOINT und ROLLBACK TO SAVEPOINT 153812.4.4 Commit-Konzepte 1539

Überblick über Read-only-, Single-Phase- und Two-Phase-Commit 1539Two-Phase-Commit (2-Phasen-Commit) 1540

UOR-Status nach einem Fehler 1541

12.5 Probleme und Lösungswege der Konkurrenzverarbeitung 154212.5.1 Verlorener Update 154312.5.2 Zugriff zu Daten, deren UOW noch nicht abgeschlossen ist 154412.5.3 Wiederholtes Einlesen von Daten innerhalb einer UOW 154512.5.4 Lösungswege zum Abbau der Konkurrenz-Problematiken 154612.5.5 Deadlock 1548

Vermeidung von Deadlocks 1549Erkennung von Timeouts und Deadlocks 1551

12.6 DB2-Sperrverfahren 155212.6.1 Überblick 155212.6.2 Transaction Lock 1553

Lock-Charakteristiken 1553Lock-Objekt 1555

Implizite Lock-Auswirkungen auf die DB2-Systemressourcen 1555Lock-Dauer 1557Lock-Niveau 1559

Lock Eskalation 1561SQL-Statement: LOCK TABLE 1561

Lock-Modus 1562Lock-Modus auf Lock-Niveau: Tablespace, Table bzw. Partition 1562Lock-Modus auf Lock-Niveau: Page bzw. Row 1564

Page 42: DB2 Version 10 for z/OS - Theorie und Praxisdgd-ub.de/db2-v11-1-inhalte.pdf · oriht DD mb erman 21 iesbaden II DB2- Theorie und Praxis : InhaltsverzeichnisDB2- Theorie und Praxis

© Copyright DGD GmbH Germany 65201 Wiesbaden

XLII DB2- Theorie und Praxis : Lizenz-Variablen

© Copyright DGD GmbH Germany 65201 Wiesbaden

XLII DB2- Theorie und Praxis : Inhaltsverzeichnis

Zusammenfassung: Aktivierung von Lock-Niveau und Lock-Modus 1565Lock Promotion 1566DB2-Lock-Modus-Entscheidungen 1566

Isolation-Level 1568RR - Repeatable Read 1568RS - Read Stability 1569CS - Cursor Stability 1569UR - Uncommitted Read 1570Vorgabemöglichkeiten des Isolation-Levels und Wechselwirkung in Package und Plan 1571

Zugriff auf aktuelle Daten trotz Parallel-Manipulation ("currently committed") oder auch CONCURRENT ACCESS RESOLUTION 1572Unterschiede zwischen Latch und Lock 1574Lock Avoidance 1574Lock-Besonderheiten beim Cursor-Einsatz 1576

Optimistic Concurrency Control (Optimistic Locking) 1576LOCK-Besonderheiten bei LOB- und XML-Daten 1577

12.6.3 Drain Lock, Drains und Claims 157812.6.4 IRLM - Internal Resource Lock Manager 157912.6.5 Data Sharing (DS) 1580

Lock-Typen bei Data Sharing 1580Speicher-Strukturen einer Data Sharing Group 1581

Überblick 1581Inter-DB2-Interesse im Data Sharing 1583

Übersicht der memberübergreifenden Entscheidungs-Maßnahmen 1583IRLM-Lock-Konzept im Data Sharing 1584

L-Locks und P-Locks 1584Parent und Child-Locks und das Zusammenspiel der L-Locks und P-Locks 1585

Lock-Optimierungen bei Data Sharing 158612.6.6 Zusammenfassung der DB2-Lock-Mechanismen 1587

Welche relevanten Parameter steuern die Lock-Mechanismen? 1587Checkliste für den Einsatz der DB2-Lock-Mechanismen 1588Übersicht: Sperrniveau und Lock-Maßnahmen 1590

12.7 Konsequenzen der DB2-Sperrverfahren auf die Anwendungs-Entwicklung 159112.7.1 Zusammenspiel von Isolation-Level, Lock-Modus und -Dauer 159112.7.2 Verhinderung eines Parallel-Updates 1592

Einsatz des Cursor-Konzeptes 1592Cursor-Konzept oder SELECT WITH RR bzw. RS? 1593

Optimistic Locking Strategie 159412.7.3 Parallelverarbeitung von Online- und Batch-Anwendungen 1595

12.8 Logging-Einrichtungen 159612.8.1 Steuerungsfunktionen für die Logging-Abwicklung 1598

Logging-Philosophie 1598Logging-Hierarchie 1599

12.8.2 Führen und Ausschreiben von LOG-Informationen 1601Maßnahmen zur Reduzierung des LOG-Aufwands 1602

12.8.3 Konsistenzsicherung innerhalb des DB2-Subsystems (REDO, UNDO) 1603Manuelle, nicht durch DB2 überwachte Konsistenz-Maßnahmen 1604

12.8.4 Konsistenzsicherung mit Allied Agents 160412.8.5 Konsistenzsicherung bei DB2 Data Sharing (DS) 1605

Page 43: DB2 Version 10 for z/OS - Theorie und Praxisdgd-ub.de/db2-v11-1-inhalte.pdf · oriht DD mb erman 21 iesbaden II DB2- Theorie und Praxis : InhaltsverzeichnisDB2- Theorie und Praxis

© Copyright DGD GmbH Germany 65201 Wiesbaden

XLIII DB2- Theorie und Praxis : Lizenz-Variablen

© Copyright DGD GmbH Germany 65201 Wiesbaden

XLIII DB2- Theorie und Praxis : Inhaltsverzeichnis

12.9 Storage Server 160612.9.1 ESS - Enterprise Storage Server 160612.9.2 AUDIT TRACE 1607

Regelbasierte Protokollierung sicherheitsrelevanter Ereignisse (Policy-based Audit Capability) 1608Übersicht der Komponenten 1608Audit-Kategorien 1609

12.10 Problembereiche der Datensicherheitseinrichtungen 1611

13 Anwendungsprogrammierung unter DB2 161313.1 Grafischer Wegweiser durch das Kapitel 13 - Anwendungsprogrammierung 161313.2 Anwendungsprogrammierung: Relevante Komponenten im Überblick 161413.3 Einsatzspektrum von DB2 1615

13.3.1 Die verschiedenen Programm-Typen 1616Abgrenzung Dialog-, Online-, Batch- und Client/Server-Verarbeitung 1616

Was versteht man unter Batch-Verarbeitung? 1617Brauchen wir noch die Batch-Verarbeitung? 1618Abgrenzung der Online- und Batch-Charakteristiken 1620Client/Server-Charakteristiken 1621

13.3.2 Wahl des geeigneten Trägersystems 1622Dialog-Verarbeitung 1622

Foreground-Verarbeitung 1622Background-Verarbeitung 1623

Batch-Verarbeitung 1624Permanent laufende Anwendungen, Started Tasks (STC) und Message-Konzept 1625

13.3.3 Die verschiedenen Betriebsformen 1626Normale Betriebszeiten 1626Erweiterte Betriebszeiten (erweiterte Verfügbarkeit) 162624-Stunden-Betrieb (permanente Verfügbarkeit) 1627

Zielsetzungen eines Multi-User-Betriebs 1628Ein Wort zur 'Permanenz' 1628

13.3.4 Programm-Design-Überlegungen 1629Programmübergreifende Maßnahmen 1629Der Einsatz von SQL: Möglichkeiten und Restriktionen 1631

13.4 Programmentwicklung unter DB2 163313.4.1 Unterstützte Programmiersprachen 1633

Embedded SQL 1633Call Level Interface für C- und C++-Programme (CLI bzw. ODBC) 1633Java-Sprachschnittstellen (JDBC und SQLJ) 1634

JDBC-API für Java-Anwendungen 1634SQLJ-API für Java-Anwendungen 1634pureQuery für Java-Anwendungen 1634

13.4.2 Entwicklung einer DB2-Anwendung 1635Überblick der relevanten Entwicklungs-Komponenten 1635Entwicklungs-Komponenten für Embedded SQL 1636

DB2I: DCLGEN-Generierung 1637SQL-Preprozessor (SQL Statement-Coprozessor bzw. DB2-Coprozesor) 1638DB2-Precompiler 1639

Aufgaben des Precompilers 1639

Page 44: DB2 Version 10 for z/OS - Theorie und Praxisdgd-ub.de/db2-v11-1-inhalte.pdf · oriht DD mb erman 21 iesbaden II DB2- Theorie und Praxis : InhaltsverzeichnisDB2- Theorie und Praxis

© Copyright DGD GmbH Germany 65201 Wiesbaden

XLIV DB2- Theorie und Praxis : Lizenz-Variablen

© Copyright DGD GmbH Germany 65201 Wiesbaden

XLIV DB2- Theorie und Praxis : Inhaltsverzeichnis

Precompiler bzw. Coprocessor-Optionen (Processing Options) 1640Standard-SQL 1643Modifikationen der Programm-Source durch den Precompiler 1645

Entwicklungs-Komponenten für Java-Anwendungen 1647JDBC-API 1647SQLJ-API 1647

Entwicklungs-Komponenten für CLI/ODBC-Anwendungen 1648BIND-Prozess 1649

Aufgaben des BIND-Prozesses 1649Objekte des Bind-Prozesses 1650

DBRM: Database Request Module 1650Package 1650

Package-Zuordnung zu mehreren Collections 1652Was ist eine invalidated Package? 1653

Plan 1654Package-Liste im Plan: PKLIST 1656Nutzung von remote Packages 1658Packages von Routinen 1658Die Zuordnung eines Plans zu einem Programm 1659Dynamische Plan-Zuordnung im CICS 1660Was ist ein invalidated Plan? 1660

Die verschiedenen BIND- und REBIND-Typen 1661STATIC BIND: BIND PACKAGE, BIND PLAN 1661REBIND PACKAGE, REBIND PLAN 1662FREE PACKAGE, FREE PLAN, DROP PACKAGE 1662DYNAMIC BIND 1662AUTOMATIC REBIND 1663INCREMENTAL BIND 1663DEFERRED BIND 1663

Relevante Katalog-Tabellen 1664Konvertierung der in Plänen eingebundenen DBRMs in Packages 1664PLAN Management (müsste eigentlich Package Management heißen) 1665

Binder (Linkage Editor) 1666Aktivieren der Attachment-Facility-Schnittstellen 1666

13.4.3 Beispiel- und Hilfs-Programme: DSNTIAD, DSNTEP2/4 und DSNTIAUL 1667Übersicht 1667DSNTIAUL 1668

DSNTIAUL-Return-Codes 1669DSNTIAUL-Beispiel 1669

DSNTEP2/DSNTEP4 1671Datasets für DSNTEP2/DSNTEP4 1671DSNTEP2/DSNTEP4-Return-Codes 1671Eingabe-Parameter für DSNTEP2 bzw. DSNTEP4 1672DSNTEP2/DSNTEP4-Beispiel 1673

13.5 SQL-Spracheinsatz in Anwendungsprogrammen 167413.5.1 Übersicht der Sprachschnittstellen 1674

Interactive SQL, Embedded SQL, CLI, Static SQL und Dynamic SQL 1674EXEC-Level-API: Embedded SQL 1675Behandlung von Datenmengen 1677CLI: Call-Level-Interface bzw. ODBC-Schnittstelle 1678Java-Schnittstellen 1680

Page 45: DB2 Version 10 for z/OS - Theorie und Praxisdgd-ub.de/db2-v11-1-inhalte.pdf · oriht DD mb erman 21 iesbaden II DB2- Theorie und Praxis : InhaltsverzeichnisDB2- Theorie und Praxis

© Copyright DGD GmbH Germany 65201 Wiesbaden

XLV DB2- Theorie und Praxis : Lizenz-Variablen

© Copyright DGD GmbH Germany 65201 Wiesbaden

XLV DB2- Theorie und Praxis : Inhaltsverzeichnis

JDBC - Java Database Connectivity 1682SQLJ - SQL for Java 1683

REXX-Schnittstellen 168613.5.2 Grundstruktur eines DB2-Programmes im EXEC-Level 1687

Relevante Komponenten 1687Basis-Codier-Regeln für SQL-Statements 1688

Allgemeine Regeln 1688Assembler-Besonderheiten 1689C-Besonderheiten 1689COBOL-Besonderheiten 1690PL/I-Besonderheiten 1693

13.5.3 Definition der Variablen und Daten-Strukturen 1694Definition der SQLCA (SQL Communication Area) 1695

Beschreibung der SQLCA-Struktur-Komponenten 1695SQLCA-Definitions-Struktur: Beispiele COBOL und PL/I 1698

Tabellen- und View-Deklarationen 1699Host-Variablen und NULL-Indikatoren 1701

Typen: Host-Variablen und Host-Strukturen 1701Einlesen von NULL-Values (NULL-Markierungen) 1703Setzen von NULL-Werten (NULL-Markierungen) 1705Einsatzspektrum von Host-Variablen und Indikatoren 1707Erweiterte NULL-Indikator-Variablen (Extended Indicator Variables) 1708

Host-Variablen-Arrays 1710Unterstützte Daten-Typen (mit SQLTYPE) 1711

Konvertierungsregeln zwischen DB2-Spalten und Host-Variablen 1713Fehlerbehandlung 1716

Überblick 1716Returncode-Analyse 1717

SQLCA - SQL Communication Area 1717Auszug einiger relevanter SQLCODEs und SQLSTATEs 1718WHENEVER 1719DSNTIAR, DSNTIAC 1719

GET DIAGNOSTICS-Statement 1720Behandlung schwerer Fehler 1722

13.5.4 Cursor-Konzept 1723Übersicht der Sprachmittel 1723Überblick über die Cursor-Typen 1726

Ist die Result Table des Cursors read-only oder updateable? 1727Non-Scrollable Cursor 1729

Deklaration des Cursors: DECLARE CURSOR 1729Eröffnen des Cursors: OPEN 1731Bereitstellen einzelner Zeilen der Result Table: FETCH 1731Positioned Update und Delete: WHERE CURRENT OF 1732Schließen des Cursors: CLOSE 1733

Explizites Schließen des Cursors 1733Implizites Schließen des Cursors 1733

Statische und dynamische Result Table und ableitbare Integritäts- und Performance-Probleme beim Cursor-Konzept 1734Mengenverarbeitung auf Realtime-Daten: das ewige Rätsel 1736

Scrollable Cursor 1738Positionierungs-Möglichkeiten in der Result Table 1738

Page 46: DB2 Version 10 for z/OS - Theorie und Praxisdgd-ub.de/db2-v11-1-inhalte.pdf · oriht DD mb erman 21 iesbaden II DB2- Theorie und Praxis : InhaltsverzeichnisDB2- Theorie und Praxis

© Copyright DGD GmbH Germany 65201 Wiesbaden

XLVI DB2- Theorie und Praxis : Lizenz-Variablen

© Copyright DGD GmbH Germany 65201 Wiesbaden

XLVI DB2- Theorie und Praxis : Inhaltsverzeichnis

Cursor- und FETCH-Typen und ihre Sichten auf die Daten der Result Table 1739Statischer Scrollable Cursor (Statisches Cursor-Modell) 1740

Deklaration des Cursors: DECLARE CURSOR .. SCROLL .. 1740Informationsbereitstellung eines Static Scrollable Cursors 1741Manipulationen über die Result Table eines Static Scrollable Cursors 1743

Dynamischer Scrollable Cursor (Dynamisches Cursor-Modell) 1744Deklaration des Cursors 1744

Verarbeitung einer Zeilen-Gruppe (Rowset) 1745Einlesen eines Rowsets: FETCH FOR n ROWS 1745COBOL-Programm-Beispiel eines Rowset-Cursors mit GET DIAGNOSTICS 1746

Scrollable Cursor: Positionierung mit Rowsets 1750Einfügen eines Rowsets: INSERT .. FOR n ROWS 1751Analyse der Rowset-Verarbeitungs-Ergebnisse mit GET DIAGNOSTICS 1751

Einfluss des UOW/UOR-Konzepts auf die Cursor-Verarbeitung 1752Zusammenfassung der relevanten Cursor-Typen und der zu definierenden Klauseln 1754

13.6 Besondere Programmier-Techniken unter DB2 175513.6.1 Effiziente Bereitstellung einer Result Table 1755

Relevante WHERE- und ORDER BY-Komponenten 1756Aufsetzen auf einen Composite Key 1757Regeln für das Aufsetzen 1758

13.6.2 Online-Anwendungen 1759Online-Parallel-Update 1759 Online-Browsing/Blättern 1762

13.6.3 Batch- und Multi-User-Anwendungen 1763Langlaufende oder ressourceintensive Anwendungen 1763UOW und UOR 1764

Die Lebensdauer einer UOW 1764Wirkungen beim Abschluss einer UOR 1764Einsatz von COMMIT (explizit oder implizit) 1765

Probleme, wenn kein COMMIT eingesetzt wird 1765Was sind Kandidaten für die COMMIT-Schreibung? 1766Konsequenzen des COMMIT-Einsatzes 1767

Unterstützung von Rollback und Restart der Batch-Programme 1768Empfehlungen zum Design von Batch-Langläufern 1769

13.6.4 Anwendungen in verteilten Datenbankumgebungen 1770Zugriffstypen und Protokolle 1770

DB2-Privat-Protokoll-Zugriff und DRDA-Zugriff 1770Two-Phase-Commit (2-Phasen) in einer verteilten Datenbank-Umgebung 1771Syntax-Anforderungen unterschiedlicher Systeme 1771Programmvorbereitungen, Pläne und Packages 1772

SQL-Statement-Einsatz in Programmen 1773Vorteile und Beschränkungen der Nutzung von dreiteiligen Objektnamen 1775Behandlung von LOB- und XML-Werten bei remote Zugriffen 1775Performance- und Integritäts-Aspekte 1776

Block-Fetch 1777Limited und Continuous Block-Fetch 1778

Überblick 1778

13.6.5 Behandlung von LOB- und XML-Werten 1780Grundsätzliche Verarbeitungsmöglichkeiten für LOB-Werte 1780

Page 47: DB2 Version 10 for z/OS - Theorie und Praxisdgd-ub.de/db2-v11-1-inhalte.pdf · oriht DD mb erman 21 iesbaden II DB2- Theorie und Praxis : InhaltsverzeichnisDB2- Theorie und Praxis

© Copyright DGD GmbH Germany 65201 Wiesbaden

XLVII DB2- Theorie und Praxis : Lizenz-Variablen

© Copyright DGD GmbH Germany 65201 Wiesbaden

XLVII DB2- Theorie und Praxis : Inhaltsverzeichnis

LOB-Daten-Typen und ihre Host-Variablen-Repräsentation 1782LOB-Materialisierung 1784LOB-Referenzierung mittels LOB-Locator 1785LOB-Verarbeitung mittels File-Referenz-Struktur 1786Grundsätzliche Verarbeitungsmöglichkeiten für XML-Werte 1787XML-Funktionen 1788

Bereitstellungs-Techniken für XML-Daten 1789SQL-XML-Funktionen: Beispiele für Komposition und De-Komposition 1790

XML-Daten-Typen und ihre Host-Variablen-Repräsentation 179113.6.6 Entwicklung und Einsatz von Stored Procedures 1793

Programmtechnische Umsetzung 1793Aufruf-Varianten einer Stored Procedure 1793Parameter der Stored Procedure 1793Codier-Beispiele: Aufruf und Parameterübergabe 1794

Stored Procedure ohne Result Sets 1794

13.6.7 Entwicklung und Einsatz von User-defined Functions 1796Überblick der Nutzungsmöglichkeiten 1796Aufruf-Varianten einer externen Funktion 1797Programmtechnische Besonderheiten 1798

Scratchpad-Bereich 1798Parallellauf-Besonderheiten 1798

Parameter der User-defined Function 1798Codier-Beispiele: Aufruf und Parameterübergabe 1799

External Scalar Function 1799External Table Function 1801

13.6.8 Entwicklung und Einsatz von Triggern 1803Codier-Beispiele: Aufruf mit Übergabe einer Transition-Table 1803

13.6.9 MQ-Series-Funktionen 180413.6.10 Nutzung von Globalen Variablen 1807

Session-Variablen und Scalar-Funktion GETVARIABLE 180713.6.11 Behandlung unterschiedlicher Codier-Sets für Host-Variablen 1809

13.7 CAF - Call Attachment Facility 181013.7.1 Vorteile der CAF-Nutzung 181013.7.2 Entwicklung eines CAF-Programms 181013.7.3 Nutzbare CAF-Funktionen 1811

Implizite Connection 1812Explizite Connection 1812Generelle Ausprägungen einer CAF-Connection 1812

13.8 RRSAF - Recoverable Resource Manager Services Attachment Facility 181313.8.1 Vorteile der RRSAF-Nutzung 181313.8.2 Entwicklung eines RRSAF-Programms 181313.8.3 Nutzbare RRSAF-Funktionen 1814

Abschluss einer UOW 181513.9 Universal Language Interface - Universelle Schnittstelle (DSNULI) 181613.10 Dynamic SQL 1817

13.10.1 Abgrenzung zu Static SQL 1817

Page 48: DB2 Version 10 for z/OS - Theorie und Praxisdgd-ub.de/db2-v11-1-inhalte.pdf · oriht DD mb erman 21 iesbaden II DB2- Theorie und Praxis : InhaltsverzeichnisDB2- Theorie und Praxis

© Copyright DGD GmbH Germany 65201 Wiesbaden

XLVIII DB2- Theorie und Praxis : Lizenz-Variablen

© Copyright DGD GmbH Germany 65201 Wiesbaden

XLVIII DB2- Theorie und Praxis : Inhaltsverzeichnis

13.10.2 Verhalten von Dynamic SQL-Statements (Statement Behavior) 181813.10.3 Funktionsspektrum von Dynamic SQL 1819

Manipulationen und Informationsanforderungen 1819Parameter Markers (?) 1820SQLDA - SQL Descriptor Area 1821Struktur-Komponenten der SQLDA 1822Beispiele der vom Precompiler/Preprozessor generierten SQLDA-Host-Variablen-Strukturen 1823

13.10.4 Manipulationen (Non-SELECT) 1824Feste Parameter 1824Variable Parameter 1826

13.10.5 Informations-Anforderungen (SELECT) 1827Feste Parameter: Fixed-List-SELECT 1827Variable Parameter: Varying-List-SELECT 1827

13.10.6 Statement Caching 1830Prepare-Typen und -Ausführungsarten 1831Ersetzen von Literalen durch generische &-Variablen (Literal-Replacement) 1832Sperr-Dauer bei dynamischen SQL-Statements 1832

13.10.7 Resource Limit Facility (RLF) - DB2 Governor 183313.10.8 Vor- und Nachteile von Dynamic SQL 1834

13.11 Programmier-Empfehlungen 1835

14 SQL-Performance 183814.1 Grafischer Wegweiser durch das Kapitel 14 - SQL-Performance 183814.2 Grundlagen der SQL-Performance 1839

14.2.1 Einleitung, Ansätze der Optimierung 1839Leistungsbeeinflussende Faktoren 1839Optimierungs-Möglichkeiten und -Maßnahmen 1840

14.2.2 Komponten der Datenbeschaffung (Stages) 1842Aufgabenteilung von RDS, DM und BM 1842

14.2.3 DB2-Tools zur Unterstützung von Performance-Maßnahmen 1844Übersicht 1844DB2-Trace 1846

Leitlinien für Traces 1846Trace-Typ 1847

14.2.4 Thread-Management 1849Installations-Parameter für das Thread-Management 1849Die Rolle von Prozess, Enklave, Transaktion, Thread, TCB und SRB 1850Allied Thread 1851

Thread-Lebenszyklus 1851Thread-Wiedernutzung (reuse) 1852

DBAT - Database Access Thread 185214.2.5 Die relevanten Zeiten einer Statement-Abwicklung 1854

DB2-Accounting-Zeiten 185414.2.6 Parallel-Verarbeitung 1856

Parallel-Verarbeitungs-Typen 1856Kandidaten für Parallel-Verarbeitung 1856

Page 49: DB2 Version 10 for z/OS - Theorie und Praxisdgd-ub.de/db2-v11-1-inhalte.pdf · oriht DD mb erman 21 iesbaden II DB2- Theorie und Praxis : InhaltsverzeichnisDB2- Theorie und Praxis

© Copyright DGD GmbH Germany 65201 Wiesbaden

XLIX DB2- Theorie und Praxis : Lizenz-Variablen

© Copyright DGD GmbH Germany 65201 Wiesbaden

XLIX DB2- Theorie und Praxis : Inhaltsverzeichnis

Query-Typ: CPU bound oder I/O bound 1858Effekte der Parallel-Verarbeitung 1858Aktivierung der Parallel-Verarbeitung 1858Voraussetzungen für die Parallel-Verarbeitung 1859Restriktionen bei der Nutzung der Parallel-Verarbeitung 1859Technische Abwicklungs-Modelle 1860

Dynamic Record-Range-Partitioning anstelle Static Keyrange-Partitioning 1860Straw-Modell für eine effiziente Workload-Verteilung 1861

14.2.7 Bedeutung der Statistiken für Optimizer und Zugriffspfad-Analyse 1862Überblick der DB2-Statistik-Komponenten 1862Woher bezieht der Optimizer seine Informationen zur Zugriffspfad-Bestimmung? 1864Statistik-Feedback: Dokumentieren und Ausschreiben fehlender oder kritischer Statistiken durch den Optimizer 1865

14.3 Zugriffspfad-Analyse des DB2-Optimizers 186714.3.1 Aufgaben des Optimizers 186714.3.2 Parsing und Parse Tree 1867

Praktisches Beispiel der Optimizer-Maßnahmen im Rahmen des Parsings 186814.3.3 Entscheidungs-Faktoren des Optimizers und Zugriffspfad-Varianten 186914.3.4 Optimization 1870

Bedingte Verarbeitungsanweisung (Prädikat) 1870Erläuterung 1870Prädikat-Typen 1871Prädikat-Kategorien 1871

Einsatz von Literalen (Konstanten) oder Variablen (Input-Variablen) 1872Filterung 1874

Inhaltliche Verteilung von Datenwerten 1875Filter-Faktor (FF) 1875

Aufgabenstellung und Wirkung 1875Filter-Faktor-Typen 1876

Filter-Faktor für gleichmäßige Streuung: Einfache/Simple Prädikate 1877Filter-Faktor für gleichmäßige Streuung: Interpolations-Formeln für Range-Prädikate 1877Filter-Faktor für gleichmäßige Streuung: Default-Filter-Faktoren für Interpolation-Formeln (Input-Variablen) 1878Filter-Faktor für ungleichmäßige Verteilung: Frequenz- (FREQVAL) und Werteverteilungs-Statistiken (KEYCARD) für Spalten oder Spalten-Gruppen 1879Filter-Faktor für ungleichmäßige Verteilung: Häufigkeitsverteilung (HISTOGRAM) für Spalten oder Spalten-Gruppen 1879

Manuelle Ermittlung des Filter-Faktors 1880

Index-Probing (Safe Query Optimization Technik) 1881STAGE1, STAGE2 und INDEXABLE 1882

Indexable Prädikate 1885Komplexe Prädikatvorgaben 1886Column-Correlation 1887Reihenfolge der Prädikat-Bewertung 1888

Aufwands-Kalkulation der SQL-Anforderung 1889Prozess-Kostenschätzung 1889Auswahl des Zugriffspfades 1889IO-Kostenermittlung 1890Timeron 1891

14.4 DB2-Zugriffspfade auf die Daten 189214.4.1 Analysemöglichkeit der Zugriffspfade 1892

Rahmenbedingungen 1892Komponenten der Zugriffspfad-Analyse und EXPLAIN_Tables 1893

Page 50: DB2 Version 10 for z/OS - Theorie und Praxisdgd-ub.de/db2-v11-1-inhalte.pdf · oriht DD mb erman 21 iesbaden II DB2- Theorie und Praxis : InhaltsverzeichnisDB2- Theorie und Praxis

© Copyright DGD GmbH Germany 65201 Wiesbaden

L DB2- Theorie und Praxis : Lizenz-Variablen

© Copyright DGD GmbH Germany 65201 Wiesbaden

L DB2- Theorie und Praxis : Inhaltsverzeichnis

EXPLAIN und EXPLAIN_TABLES 1894EXPLAIN_Tables: Überblick 1894EXPLAIN 1895Einsatz von Input-Variablen beim EXPLAIN 1896Beeinflussung der Optimizer-Entscheidungen durch OPTHINT oder Überschreibung von Selektivitäts-Statistiken 1896

EXPLAIN-Statement Beispiele 1897EXPLAIN eines einfachen SQL-Statements mit Analyse der PLAN_TABLE 1897DSN_STATEMNT_TABLE: Analyse-Möglichkeit 1898

DSN_STATEMENT_CACHE_TABL: Analyse von dynamischen SQL-Statements aus dem Dynamic Statement Cache 1899EXPLAIN einer Package ohne REBIND 1901

DSN_PREDICATE_TABLE und DSN_PREDICATE_SELECTIVITY und DSN_STAT_FEEDBACK-Tabellen: Beispiel-Szenario 1902Beispielhaftes Statement als Vorgabe mit EXPLAIN-Statement 1902Inhalte der Tabelle DSN_PREDICAT_TABLE 1902Inhalte der Tabelle DSN_FILTER_TABLE 1903Inhalte der Tabelle DSN_PREDICATE_SELECTIVITY 1904Inhalte der Tabelle DSN_STAT_FEEDBACK 1904

14.4.2 I/O-Zugriffs-Typ 1905Direktes Einlesen (Synchronous Read) 1905Sequential Prefetch und Dynamic Prefetch 1906

Dynamic Prefetch 1907List Prefetch 1907

Nutzung dieser Technik 1907List-Prefetch im Index 1907List-Prefetch auf Daten-Pages 1908Der Ausweis des List-Pretches in der PLAN_TABLE 1909Vor- und Nachteile des List-Prefetch-Verfahrens 1910

14.4.3 Einfache Zugriffspfade 1911Tablespace Scan (File Page Set Scan) 1913Index-Zugriffe 1914

Matching Index Scan 1914Non-Matching Index Scan 1916Equal Unique Index Access 1917IN-List Index Scan 1918

Einzelne IN-Liste 1918Mehrere IN-Listen 1919

One-Fetch Access 1920Index-Only Access 1921Range-List-Access (Aufsetzlogik, Inclusion-Methode, Blätter-Funktionalität, Pagination) 1922Multiple Index Access 1923Multiple DocID Index Access über XML-Indizes 1924

Direkt-Zugriff auf die Daten unter Umgehung von Indizes 1926Einleitung und unterstützte Direkt-Zugriffs-Typen 1926Direkter Zeilenzugriff über einen Unique Hash-Key 1927Direkter Zeilen-Zugriff über die ROWID 1929Direkter Zeilen-Zugriff über die RID-Funktion 1930

14.4.4 Komplexe Zugriffspfade 1931Übersicht 1931Join 1932

Composite Table und New Table, Outer Table und Inner Table 1932Ausweis von Joins in der PLAN_TABLE 1933

Page 51: DB2 Version 10 for z/OS - Theorie und Praxisdgd-ub.de/db2-v11-1-inhalte.pdf · oriht DD mb erman 21 iesbaden II DB2- Theorie und Praxis : InhaltsverzeichnisDB2- Theorie und Praxis

© Copyright DGD GmbH Germany 65201 Wiesbaden

LI DB2- Theorie und Praxis : Lizenz-Variablen

© Copyright DGD GmbH Germany 65201 Wiesbaden

LI DB2- Theorie und Praxis : Inhaltsverzeichnis

Join-Typ 1934Inner Join 1934Outer Join 1935

Historische Entwicklung der Outer Joins 1937

Joins im Bereich des Data Warehouses: Star Join oder Paarweiser Join für Star-Schema und Snowflake-Schema 1939Wann wird der Star Join genutzt? 1941Ausweis eines Star Joins in der PLAN_TABLE 1942Wann wird der Paarweise Join genutzt? 1943Ausweis eines Paarweisen Joins in der PLAN_TABLE 1944

Klassische Join-Methoden 1945Nested Loop Join 1945

Materialisierung/Sortierung bei einem Nested Loop Join 1948

Merge Scan Join 1949Hybrid Join 1951Beeinflussung der Outer-Table-Auswahl und der Join-Methode 1953

Komplexe Query-Typen 1954Correlated und Non-Correlated Query-Typen 1954Query-Block 1955

Der Nummerierungs-Wahnsinn der QBLOCKNO 1955Subquery 1956

Non-correlated Subquery 1957Correlated Subquery 1959

Table Expression 1961Common Table Expression 1961

Rekursives SQL 1962

Nested Table Expression 1963Scalar Full-Select 1964SELECT FROM FINAL/OLD TABLE mit Data-Change-Statement 1965

Set-Operator 1967Trigger-Package 1968Sortierung 1969Einige Worte zum Scrollable Cursor 1970Parallel-Verarbeitung 1971Materialisierung 1972

14.4.5 Spezielle Zugriffspfade 1973IBM Smart Analytics Optimizer (Accelerator Server) 1973

Überblick 1973Technisches Konzept 1974Integration ins DB2 z/OS 1975

AQR - Automatic Query Rewrite bei Einsatz von MQTs (Materialisierte Query Tables) 1976Überblick 1976

Nutzungs-Potential von MQT und AQR 1980

Temporal Tables 1981Einleitung 1981Bi-Temporal Table 1982

DDL-Beispiele für SEMTYP, REFERENT und SEMINAR (als Auszug aus dem Seminar-Daten-Modell) 1982Explain-Analysen 1985

Einfache SELECT-Statements 1985Komplexe SELECT-Statements (Join) 1987

BUSINESS_TIME 1987SYSTEM_TIME 1988

Manipulations-Statements 1991

14.5 Beeinflussung der Zugriffspfad-Entscheidungen 1992

Page 52: DB2 Version 10 for z/OS - Theorie und Praxisdgd-ub.de/db2-v11-1-inhalte.pdf · oriht DD mb erman 21 iesbaden II DB2- Theorie und Praxis : InhaltsverzeichnisDB2- Theorie und Praxis

© Copyright DGD GmbH Germany 65201 Wiesbaden

LII DB2- Theorie und Praxis : Lizenz-Variablen

© Copyright DGD GmbH Germany 65201 Wiesbaden

LII DB2- Theorie und Praxis : Inhaltsverzeichnis

14.5.1 Statement-Modifikationen durch den Optimizer 1993Prädikat-Modifikationen und Einfügungen 1993Modifikationen der Join-Verarbeitung 1994

Konvertierung von Subqueries in Joins 1995Transformation von Non-Correlated Subqueries in Correlated und umgekehrt (De-Correlation) 1995

Materialisierungs-Entscheidung 1995Prädikate, die bei der Evaluierung immer 'wahr' oder immer 'falsch' ergeben 1996

OR 0 = 1 1996OR 0 <> 0 1996

14.5.2 Möglichkeiten für Anwendungsentwickler bei der Beeinflussung des Zugriffspfads 1997Veränderung von Objekt-Strukturen 1997Manipulation der Statistiken 2000Umschreiben von SQL-Statements 2001OPTIMIZE FOR n ROWS 2003BIND-Parameter REOPT und seine Auswirkungen 2004

14.5.3 Extended Optimization: Beeinflussung der Zugriffspfad-Optimierung durch Vorgabe von Performance-Einfluss-Faktoren 2005Überblick der Komponenten 2005Selektivitäts-Statistiken: Überschreibung der vom Optimizer herangezogenen Statistikwerte (Statement-level selectivity overrides) 2007

Überblick der relevanten Komponenten 2007Szenario zur Vorgabe der Statistik-Vorgaben 2008

DSN_USERQUERY_TABLE: Beispiel Selektivitäts-Statistiken 2009DSN_PREDICATE_SELECTIVITY : Beispiel Selektivitäts-Statistiken 2010BIND/REBIND mit Ergebnis-Protokollierung 2010

OPTHINT: Beeinflussung der Entscheidung des Optimizers mittels Optimization-Hints 2011Komponenten 2011Voraussetzungen zur Nutzung 2013Prioritäten der Berücksichtigung von Optimization Hints 2013Statement-Level Optimization Hint - Nutzung des Zugriffspfad-Repositories (Access Path Repository) 2014

Statement-Level Optimization Hint: Parameter-Spezifikationen (Parameter Hints) 2015Statement-Level Optimization Hint: Zugriffspfad-Empfehlungen (Access Path Hints) 2017

BIND/REBIND mit Ergebnis-Protokollierung 2018

User-Level Optimization Hint: Vorgabe von Zugriffspfad-Empfehlungen für den Optimizer über die PLAN_TABLE (OPTHINT - Optimization Hints) 2019

14.6 Stabilität von Zugriffspfaden und Zugriffspfad-Repository (Access-Path-Repository) 202214.6.1 Komponenten des Zugriffspfad-Repositories (Access-Path-Repository) 202314.6.2 Zugriffspfad-Stabilität: Bewahrung bzw. Kontrolle vorhandener Zugriffspfade 2024

Komponenten der Zugriffspfad-Stabilität 2024Kontrolle der Zugriffspfad-Stabilität 2025Was tun bei Änderung des Zugriffspfads 2026

14.7 Zusammenfassung der relevanten Performance-Komponenten 202714.7.1 DB2-interne Automatismen 2027

Zugriffspfad-Effizienz 2027Mögliche Zugriffspfade 2030

14.7.2 Systemgenerierungs- und Installations-Optionen 203114.7.3 Objekt-Definitionen 203314.7.4 Anwendungs-Design und -Programmierung 2035

SQL-Query-Empfehlungen 2036Was tun bei langlaufenden Statements? 2037Zusammenfassende Empfehlungen für Anwendungs-Entwickler 2038

Page 53: DB2 Version 10 for z/OS - Theorie und Praxisdgd-ub.de/db2-v11-1-inhalte.pdf · oriht DD mb erman 21 iesbaden II DB2- Theorie und Praxis : InhaltsverzeichnisDB2- Theorie und Praxis

© Copyright DGD GmbH Germany 65201 Wiesbaden

LIII DB2- Theorie und Praxis : Lizenz-Variablen

© Copyright DGD GmbH Germany 65201 Wiesbaden

LIII DB2- Theorie und Praxis : Inhaltsverzeichnis

14.8 Testdaten für die Performance-Tests 203914.8.1 Physisches Daten-Modell für Performance-Tests 203914.8.2 Metadaten-Übersicht der Test-Objekte 203914.8.3 DDL für die Performance-Tests 204114.8.4 Beispiel-SQL-Statements zur Einfügung der Daten 204414.8.5 Beispiel-Ausdrucke der Tabellen 204514.8.6 Beispiel-SQL-Statement zur Analyse der PLAN_TABLE für die Performance-Tests 2047