Seminare

Alle DB2-Seminare beziehen sich auf die z/OS (MVS)-Plattform

Home

Fachbücher

Seminarangebot

Beratung und
Projekt-Coaching

Firmenprofil

Impressum

 

   

Alle Seminar-Themen werden als Inhouse-Seminare angeboten.

Hier finden Sie einen Gesamtüberblick über das Seminarangebot der DGD in pdf-Form.

Themenüberblick der Seminare:

Seminarcode

Tage

Thema
(Details durch Klick auf den Verweis)

Zielgruppe

Termine

DAT-MOD

3
Logische Datenmodellierung unter Berücksichtigung des Relationenmodells.

DB2-Projektleiter, alle DB2-Anwendungsentwickler.

auf Anfrage

DB2-IMP

2
Implementierung des Datenmodells unter Berücksichtigung von Performanceaspekten.

DB2-Projektleiter, alle DB2-Anwendungsentwickler.

auf Anfrage

DB2-TEMP

2,0
DB2-Temporal Tables
Fachliche und technische Datenversionierung

Alle, die erkannt haben, dass es Zeit wird, sich mit der Zeit zu beschäftigen!

auf Anfrage

DB2-PROG

3
DB2 Anwendungsprogrammierung

Programmierer und alle DB2-Anwendungsentwickler

auf Anfrage

DB2-ADES

2,5
DB2 Anwendungsdesign. Design-Apekte in Multi-User-Umgebungen

DB2-Projektleiter, alle Anwendungsentwickler

auf Anfrage

DB2-PERFSQL

3,0
DB2-SQL-Performance mit vielen Fallbeispielen

Datenbank-Administratoren und technisch interessierte DB2-Entwickler.

auf Anfrage

DB2-ROUTRIG

2,0
Effizienz von Routinen (User Defined Functions, Stored Procedures) und Triggern

Alle, die an Details zu UDFs (User-defined Functions), Stored Procedures und Triggern interessiert sind.

auf Anfrage

DB2-UTILITY

2,0
DB2-Online-Utilities Funktionalitäten, Parametrisierungen und Wirkungen

Datenbank-Administratoren und alle Anwendungsentwickler

auf Anfrage

DB2-LOB

2,0
Large Objects

Alle, die an Details zu Large Objects interessiert sind.

auf Anfrage

DB2-ADMIN-1

4,0
DB2-Administrationsworkshop Teil 1 mit intensivem Praktikum

Datenbank-Administratoren und technisch interessierte DB2-Entwickler.

auf Anfrage

DB2-ADMIN-2

4,0
DB2-Administrationsworkshop Teil 2 mit intensivem Praktikum

Datenbank-Administratoren und technisch interessierte DB2-Entwickler.

auf Anfrage

DB2-V11

2,0
DB2 Version 11 for z/OS

Alle, die an Details zu DB2 Version 11 interessiert sind.

auf Anfrage

DB2-V12

2,0
DB2 Version 12 for z/OS

Alle, die an Details zu DB2 Version 12 interessiert sind.

auf Anfrage

SQL-VERTIEF

3,0
SQL-Vertiefung

Alle, die die SQL-Entwicklungen über die Versionen hinweg erlernen wollen.

auf Anfrage

XML-GR

1,0
XML-Grundlagen

Alle, die an einem XML-Überblick interessiert sind.

auf Anfrage

 
 nach oben  Detailbeschreibung der Seminare:

DAT-MOD
Logische Datenmodellierung

Zielgruppe:

- DB2-Projektleiter, alle DB2-Anwendungsentwickler.

Voraussetzungen:

- keine

Besondere Hinweise:

Es wird die systematische Vorgehensweise beim Entwurf stabiler Datenstrukturen unter besonderer Berücksichtigung funktionaler Aspekt behandelt. Dabei erfolgt auch eine Einordnung von 'Objektorientierung' und 'Client-Server-Architekturen'.

Kursinhalte:

Logische Daten-Modellierung

- Aufgaben und Inhalte eines Daten-Modells
  - Daten abstrahieren den relevanten Realitäts-Ausschnitt
  - Funktions- und Informations-Strukturen im Unternehmen
  - Entwicklung von DV-Systemen: funktions- oder datenorientiert?
  - Welche Komponenten enthält ein Unternehmens-Modell und wer ist zuständig?
  - Welche Aufgabenstellungen und Ziele hat ein Daten-Modell?
  - Die Ebenen des Daten-Modells
  - Die Views auf das Daten-Modell
  - Top-Down oder Bottom-up-Entwicklung des Daten-Modells?
  - Der Aufbau eines unternehmensweiten Daten-Modells
  - Entwicklungsgeschichte der relevanten Daten-Modell-Theorien 
  - Projekt-Phasen, -Lebenszyklen und die relevante Tool-Umgebung 

Externes, benutzerorientiertes Daten-Modell

- Aufgaben und Inhalte des externen Daten-Modells
- Daten-Analyse 
  - Wie aus Daten Information und Wissen entsteht 
  - Die Relevanz der Daten kann ohne Wissen nicht beurteilt werden 
  - Kontext-Diagramm und Rolle im Unternehmens-Modell 
  - Einfache Modellierungs-Konstrukte

    - Entity-Type und Entity: Einzel- und Gruppen-Betrachtung 
  - Entity, Attribut, Relationship 
- EERM: Extended Entity Relationship Model
  
  - Komplexe Modellierungs-Konstrukte: Hierarchie mit Super- und Sub-Entity 
  - Zulässige Darstellungsformen im externen Daten-Modell 
- Die Rolle der Views im externen Daten-Modell 
  - Anwender- oder Benutzersicht 
- Checkliste für die Modellierung des externen Daten-Modells 
- Fragenkatalog für die externe Daten-Modellierung 
  - Entity-Analyse 
  - Entity-Informationen

Konzeptionelles Daten-Modell

- RM: Relationales Modell 
  - Einfache Modellierungs-Konstrukte
  - Relation/Tabelle
  - Spalten-Charakteristiken, PK, FK, Domain
- Normalisierung
  - Zielsetzungen der Normalisierung 
  - Unnormalisierte Struktur
  - Erste Normalform (1NF)
  - Zweite Normalform (2NF)
  - Dritte Normalform (3NF) 
  - Boyce-Codd Normalform (BCNF) 
  - Vierte Normalform (4NF)
  - 5NF - Ultimative Normal Form - Project-Join-Normalform (PJ/NF) 
    - Problembereiche der 4NF 
    - Lösung der 5NF
  - Wie weit ist Normalisierung sinnvoll? 
- Komplexe Beziehungs-Konstrukte
  - Umsetzung der ERM-Konstrukte ins Relationen-Modell
  - Checkliste: Zuordnung der FKs zur Bestimmung der referenziellen Beziehungen 
- Integritäts-Anforderungen
  - Integritäts-Regeln von Codd
  - Welche Level existieren bei der Behandlung der Integritäts-Regeln und -Maßnahmen 
- Integritäts-Maßnahmen
  - Das Prinzip der Über- und Unterordnung 
  - Referenzielle Integritäts-Maßnahmen (RI) 
    - RESTRICT (NO ACTION), CASCADE und SET NULL
    - Beispiel für die Festlegung referenzieller Integritäts-Maßnahmen 
  - Zusammenfassende Definition der Integritäts-Regeln und -Aktionen 
    - Festlegung der logischen Trigger für die Business-Rules 
    - Strukturierung der Geschäfts-Regeln und -Aktionen
    - Umsetzen der Geschäfts-Regeln und -Aktionen in SQL-Funktionalität 
- Einbeziehung der Views
  - Aufgaben der konzeptionellen Views und Abgrenzung der View-Typen 
  - Die funktionsbezogene Anwendungssicht 
  - Bilden von Schemata für spezielle Daten-Sichten 
    - OLAP 
    - Data Warehouse: Cubes und Dimensionen 
    - OLAP-Meta-Modell: Objekt-Typen 
- Zulässige Darstellungsformen im konzeptionellen Daten-Modell 
  - Behandlung von Spezialfällen
    - Hierarchie (Aggregation) und Netzwerk-Darstellungen
    - Bei rekursiven Beziehungen ist die Über- und Unterordnung zweifelhaft 
- Checklisten für die Modellierung des konzeptionellen Daten-Modells
- Checkliste der Vorgehensweise - Relevante Beziehungs-Typen - Wo soll der FK positioniert werden und kann er NULL-Werte aufweisen? - Welche Integritäts-Maßnahmen gelten für die einzelnen Beziehungs-Typen?

Daten unter Zeitbezug - Temporale Daten

- Einleitung, Terminologie 
- Komponenten eines Modells für Daten mit Zeitbezug 
- Fachliche, externe Modellsicht
  - Auswirkung auf fachliche Informationen und Informations-Zusammenhänge 
  - Aufnahme von Zeit-Attributen und Konsequenzen 
  - Fachliche Funktionsauswirkungen der Zeitunterstützung 
    - Manipulation und Wirkung 
    - Entwicklung der Beispiel-Daten unter Zeitaspekten
  - Konsequenzen der Zeitunterstützung für Fachbereichs-Benutzer 
- Konzeptionelle Umsetzung für Zeitaspekte
  - PK-Festlegung: Objekt-Identifikator plus Zeit- bzw. Versions-Bezug 
  - FK-Festlegung: Objekt-Identifikator mit oder ohne Zeit- bzw. Versions-Bezug 
  - Unser konzeptionelles Modell steckt voller Redundanzen: Wie sieht ein redundanzfreies Modell aus?
    - Zeit-Leiste für jeden Attribut-Zustand
    - Datenhaltung für jede Daten-Version bei veränderten Attribut-Zuständen 
  - Funktionale Konsequenzen für Daten mit Zeitbezug
    - Manipulations-Typen 
    - Manipulations-Festlegungen hinsichtlich der Gültigkeitszeitleisten 
    - Referenzielle Regeln für Daten mit Zeitbezug (RI-Bedingungen) 
  - Informations-Bereitstellungs-Typen 

Einordnung von Objektorientierung (OO) und Client/Server (CS)

- OO-Aufgaben und Zielsetzungen
  - Der Versuch einer Definition
- Objektorientierung (OO)
  - Die Sichten auf Objekte
  - Objektkategorien
    - Geschäfts-Objekt, Präsentations-Objekt, Verarbeitungs-Objekt, Speicher-Objekt, Zugriffs-Objekt 
  - Objekt-Terminologie und Komponenten 
    - Objekt-Meta-Beziehungen 
- OOA - Analyse von Objekten 
- OOD- Design von Objekten 
- OO-Design-Tools, UML und Diagramm-Formen 
- OOP- Programmierung von Objekten 
- OODBMS - Objektorientierte Datenbanken 
- Zusammenwachsen von RDBMS und OODBMS (objektrelational) 
  - 'Mapping' zwischen den beiden Welten 
- ORDBMS (objektorientiert relational) 
  - Beispiel: DB2-UDB 
  - OO-Entwicklungs-Komponenten
- Client/Server (CS)
  - Zentralisierung versus Dezentralisierung
  - Vor der physischen Verteilung steht das logische globale Design
- Strategische Erkenntnisse

Workshops/Fallbeispiele:

- Praktikum 'Logische Daten-Modellierung' an Pinnwänden und am Schreibtisch.

 nach oben 

DB2-IMP
Implementierung des Datenmodells

Zielgruppe:

- DB2-Projektleiter, alle DB2-Anwendungsentwickler.

Voraussetzungen:

- Mindestens 1/2-jährige Erfahrung in der DB2-Umgebung.
- Kenntnisse lt. Kursinhalte DAT-MOD und DB2-PROG erforderlich.
- Erfahrungen im DB-Design sind hilfreich.

Besondere Hinweise:

Der Inhalt wird auf anspruchsvollem Niveau behandelt.

Kursinhalte:

Internes Daten-Modell

- Aufgaben und Inhalte des internen Daten-Modells
- Ableiten physischer Benutzerobjekte aus den logischen Relationen
- Logische Views auf die konzeptionellen Daten-Strukturen
  - Logische Views sind hierarchisch und kehren die Modell-Strukturen um! 
  - Bedeutung des Daten-Mengengerüsts
  - Benutzersicht und DB2-Zugriffspfade
- Viewbezogene Überlegungen hinsichtlich Struktur-Veränderungen
  - Maßnahmen zur Steigerung der Zugriffs-Effizienz
  - Konsequenzen der Struktur-Veränderungen aus physischen Gründen
- Einrichtung von Indizes
- Die physische Zugriffssicht
- Festlegung sonstiger DB2-Objekte

De-Normalisierung

- Warum überhaupt solche Gedanken?
- Die grundsätzlichen Varianten der De-Normalisierung
- Zusammenführung von Daten
  - Grundsätzliche Varianten
  - Beispiele von 1:1- und 1:N-Beziehungen
  - Konsequenzen bei Zusammenfü¨hrung von Supertypen und Sub-Typen (1:1)
  - Welche Konsequenzen ergeben sich aus den Alternativen?
  - Zusammenfü¨hrung von Hierarchien
  - Welche Konsequenzen ergeben sich aus der Zusammenlegung von Hierarchien? 
- Trennung der Daten
  - Horizontale und vertikale Trennung (Verteilung)
    - Verteilung innerhalb und außerhalb einer DB2-Lokation
- Bilden zusätzlicher Redundanzen
  - Grunds&aauml;tzliche Varianten
  - Redundante Spalten
    - Funktionale Ableitungen und ihre Konsequenzen
  - Doppelte Zeilen als exakte Kopie
    - Ab DB2-Version 9: Clone-Table
  - Redundante Zeilen als Kopien, verdichtet oder abgeleitet
- System-Kategorien und Aktualität der Daten
- MQT - Materialized Query Table
- Konsequenzen der De-Normalisierung
  - Welche Konsequenzen haben solche De-Normalisierungs-Maßnahmen?
- Sicht der Anwendungs-Programme auf die Daten
  - Programm-Datenstrukturen können mit Normalformen verglichen werden
  - Sicht auf unnormalisierte Daten
    - Definition einzelner Spalten in Wiederhol-Elementen
    - Variable Zeilen mit VARCHAR- oder LOB-Definitionen
    - Speicherung von XML-Dokumenten
  - Sicht auf Daten in normalisierter Form
    - Sicht auf Daten in höheren Normalformen (2 NF, 3NF)
  - Die physische Zugriffssicht
- Unterstützung der Business Rules mit Funktionen und Triggern
  - De-Normalisierungs-Auswirkungen
    - Ausgangssituation des logischen Modells
    - Funktionale Konsequenzen bei Nicht-Nutzung von DB2-RI
    - Funktionale Konsequenzen bei Struktur-De-Normalisierung
- Checklisten
  - Checkliste: De-Normalisierungs-Empfehlungen zur Implementierung

Data Warehouse mit besonderen Datensicht-Anforderungen

- Multi-Dimensionale Daten 
- OLAP - Online Analytic Processing 
- Abgrenzung von Data Warehouse und Data Mart
  - MOLAP, ROLAP und HOLAP 
- ROLAP - Relational Online Analytic Approach
  - Star Schema 
  - Snowflake Schema
- MQT - Materialized Query Table
  - Basis für die automatisierte Redundanzkontrolle abgeleiteter Daten

RI - DB2 Referential Integrity

- Der DB2-Lösungsansatz
  - DB2-RI-Zielsetzungen
  - RI-Terminologie
  - RI - Manipulations-Regeln und -Maßnahmen
- Unterstützte referenzielle Strukturen
  - Mögliche Einzel-Strukturen
  - Die Einbindung der Einzelstrukturen in eine 'logische referenzielle Struktur'
- Die Verarbeitungs-Konsequenzen von referenziellen Strukturen
  - Logische referenzielle Struktur
  - Physische referenzielle Struktur (Tablespace-Set)
- Struktur-Besonderheiten und Anomalien
  - 1:1-Beziehung mit gegenseitiger Referenz
  - DELETE-Abhängigkeiten
  - Delete-Beziehungen ü¨ber mehrfache Pfade
  - Regelwerk für Delete-Beziehungen über mehrfache Pfade
- Gesamt-Überblick über die DB2-RI-Unterstü¨tzung
  - Katalog-Strukturausschnitt für die RI-Unterstuützung
    - Katalog-Tabellen und Spalten für die RI-Unterstützung
- Was tun, wenn DB2-RI nicht genutzt werden soll oder kann?
- Argumente für und gegen RI

DB2-Daten-Verwaltung

- Überblick
  - Benutzer-orientierte und system-orientierte Objekte
  - DB2-Daten-Speicherungshierarchie
- Tablespace
  - Zuordnung zu DB2-Speicher-Objekten Die Page-Größe und ihre Einflussnahmen
  - Tablespace-Typen
  - File-Page Sets
    - Linear Page Sets
    - Partitioned Page Sets
    - Universal Page Sets
    - LOB Page Sets
    - XML Page Sets
  - Page Typen des File Page Sets
  - Physische Charakteristiken für Tablespace und Partition
    - PRIQTY
    - SECQTY
  - Dynamisches Partition-Konzept ab Version 8
    - Erweiterung der Partition-Anzahl
    - Partition-Rotation
    - Partition-Rebalance
  - Nachträgliche Änderungsmöglichkeiten von Tablespace-Charakteristiken
- Basis-Tabelle (Base-Table)
  - Definition der Tabellen-Spalten
  - Definition von Constraints
    - Referential Constraint
    - Check Constraint
  - Vergabe einer lfd. Nummer durch DB2
    - Identity-Spalten-Charakteristik oder Sequence-Objekt
  - Automatische Generierung von Werten durch DB2 (GENERATED ALWAYS und GENERATED BY DEFAULT)
  - Zuordnung der Table zum Tablespace
  - Definition einer partitioned Table (table-kontrollierte Partitionierung)
  - Änderung von Table-Charakteristiken
  - Die Konsequenzen bei Änderung des Daten-Typs einer Spalte
    - Definition einer Clone Table
- Index
  - Index-Typen
  - Definition der Index-Spalten
  - Der Clustering Index organisiert die Datenfolge
  - Partitioning Index und Partitioned Index
    - Table-kontrollierte Partitionierung
    - Index-kontrollierte Partitionierung
  - Gegenüberstellung der Table- und Index-kontrollierte Partitionierung
  - und nun alle Index-Typen der Table-kontrollierten Partitionierung auf einmal
  - DPSI: Data Partitioned Secondary Index
    - Welche Indizes eignen sich als Partitioned Index?
  - Scalar Expression Index (Index on Expressions)
  - Interne Organisation eines Indexes
    - Zuordnung eines Indexes zum Indexspace, den Page Sets und Datasets
    - Indexspace - Aufgabenstellung und relevante Zuordnungen
    - B-Tree-Struktur eines Indexes
  - Änderung von Index-Charakteristiken
  - Löschung eines Indexes
  - Welche Vorteile bietet ein Index, welche Nachteile sind zu beachten?
    - Vorteile eines Indexes
    - Nachteile eines Indexes
    - Empfehlungen zum Index-Einsatz

DB2-Space-Management

- Überblick
- File-Page-Set
  - Aufbau und Inhalte der Header Pages
  - Positionierung und Verwaltungsbereich der Space Map Pages
  - Aufbau und Inhalte der Space Map Pages
  - Aufbau und Inhalte der Daten-Pages
  - Interne Daten-Satzformate: BRF und RRF 
- Index-Page-Set
  - Grob-Struktur eines Index Page Sets
  - Struktur der Index-Entries
- Plattenplatz-Bedarf 
  - Kapazitä¨tsberechnungs-Beispiel fü¨¨r Daten
  - Formeln fü¨¨r die Space-Berechnung
  - Kapazitä¨tsberechnungs-Beispiel fü¨¨r Index-Daten
  - Formeln: Plattenplatz-Bedarf fü¨r Index
- Kompression der Daten und Index-Entries
- DB2-Bufferpool
  - ܨbersicht über das Bufferpool-Konzept
  - Lese- und Schreib-Anforderungen
  - Bufferpool-Thresholds
  - Mö¨gliche Strategien bei der Bufferpool-Einrichtung und Zuordnung
- VSAM-Datasets

Tools zur Unterstü¨tzung des physischen Designs

- Die Ergebnistypen der Entwicklungs-Ebenen
- Tool-Kategorien
- TRACE
  - Systembezogene DB2-Tools
  - Weitere Tools in der DB2-Umgebung von IBM
  - Der Katalog führt die physisch aktuellen Metadaten
    - Entwicklungswerkzeuge fü¨r die PAEs (Auswahl)
    - Verwaltungswerkzeuge fü¨r die DBADMs (Auswahl)
- Katalog-Abfragen
  - Wesentliche Katalog-Spalten hinsichtlich der optimalen Speicherorganisation
  - Reorganisationserfordernisse
- DB2-Commands
  - Beispiel: DISPLAY DATABASE
    - Erläuterung zum globalen Status der Database

Workshops/Fallbeispiele:

- Praktikum 'Physisches DB2-Design' mit theoretischen Übungen am Schreibtisch.

 nach oben 

DB2-PROG
Anwendungs- programmierung

Zielgruppe:

- Programmierer und alle DB2-Anwendungsentwickler.

Voraussetzungen:

- Mindestens 1/2-jährige Erfahrung in der allgemeinen Programmierung.
- Theroetische DB2-Grundkenntnisse analog DB2-GR.

Besondere Hinweise:

- Keine

Kursinhalte:

DB2-Sprachschnittstellen (Überblick)

- SQL-DDL - Data Definition Language
- SQL-DML - Data Manipulation Language
  - Fortgeschrittene DML-Funktionen:
    Inner Join und Outer Join, Sub-Query-Typen und ihre Verarbeitungs-Konsequenzen,    
	Nested Table Expression, Common Table Expression, Scalar Full-Select
- SQL-DCL - Data Control Language
- DB2-Katalog
- DB2-Commands und Utilities

DB2-Produkt

- DB2-System-Komponenten
- Die verschiedenen Rollen, in denen sich DB2 als Datenbankserver befinden kann 
  und die Zugriffs-Konsequenzen:
  - MVS-Subsystem
  - Lokation 
  - Member in einer Group
- DB2-Objekt-Typen
  - Eigentümer und Erzeuger der Objekte (Owner, Creator und Schema)
  - Objekt-Typen der Datenhaltung
    - Benutzerorientierte Objekt-Typen
      - Table (Base, Auxiliary, Temporary, Materialized)
      - View
      - Synonym und Alias
    - Systeminterne Objekt-Typen
      - Tablespace
      - Index und Indexspace
      - Database
      - Storagegroup
      - VSAM-Datasets
  - Objekt-Typen für Funktionsunterstützung
    - UDF - User-defined Functions
    - STP - Stored Procedures
    - Trigger (Before und After)

Programmierung unter DB2

- Programm-Entwicklung
  - Entwicklungs-Komponenten und ihr Zusammenspiel 
  - DB2-Precompiler/Pre-Prozessor
  - Die Rolle von DBRM, Package, BIND und COLLECTION
  - Attachment-Facilities
- Programm-Aufbau und Inhalte

  - SQL-Verarbeitungsmöglichkeiten in Programmen
  - Die Überprüfung von Ausnahmebedingungen und Fehlern:
    SQLCA-Inhalte, SQLCODE oder SQLSTATE?, GET DIAGNOSTICS
  - Die Behandlung von Null-Werten
  - Rowset-Verarbeitung
  - Das Cursor-Konzept
    - Materialisierte und positionierte Cursor
    - Updateable und non-updateable Cursor
    - Scrollable und non-scrollable Cursor
    - Statische und dynamische Cursor
  - Dynamisches SQL

SQL-Performance-Überblick der relevanten Komponenten

- Relevante Komponenten
- Zugriffspfad-Varianten des Optimizers - Einfache Zugriffspfade - Komplexe Zugriffspfade - Kontrolle der Optimizer-Zugriffspfad-Entscheidung

Workshops/Fallbeispiele:

- Besprechung diverser Fallbeispiele
- Theoretisch aufgebauter Workshop.
- Bei Inhouse-Seminaren kann eine Workshop-Umgebung eingerichtet werden.

 nach oben 

DB2-ADES
Anwendungsdesign

Zielgruppe:

- DB2-Projektleiter, alle Anwendungsentwickler.

Voraussetzungen:

- Mindestens 1/2-jährige Erfahrung in der DB2-Umgebung.
- Gute DB2-Kenntnisse sind empfehlenswert.

Besondere Hinweise:

- Keine

Kursinhalte:

DB2-Kommunikations-Komponenten

- DB2 z/OS
  - z/OS-System-Schichten
    - DB2-Subsystem / DB2-Lokation / DB2-Group und -Member
    - z/OS-Adressraum-Konzept
      - Adressrä¨ume für Routinen (Stored Procedures und/oder User-defined Functions)
    - Dateiverarbeitungs-Möglichkeiten der Anwendungen
    - Verteilung von Anwendungen: Stored Procedures

Gemeinsame Nutzung von DB2-Daten

- DB2 Data Sharing (DS)
  - Überblick
  - MVS-Sysplex
  - Aufgaben-Abgrenzung zwischen Membern und dem Coupling Facility
  - Speicher-Strukturen einer Data Sharing Group
    - Coupling Facility und Group Bufferpools

Client/Server-Features

- Verteilung der Daten - Distributed Data
  - Die Client-Server-Architektur von DB2 (C/S) 
    - Syntax-Anforderungen unterschiedlicher Systeme
  - DRDA - Distributed Relational Database Architecture 
    - Die 4 Verteilungs-Typen von DRDA und SAA
  - Die Varianten des Zugriffs aus einem Programm heraus 
    - Übersicht über die wesentlichen Komponenten
      - Remote-Zugriff über 3-teilige Objekt-Namen/ALIAS oder nach CONNECT
      - DB2-Privat-Protokoll und DRDA-Protokoll
    - Multi-site update
- Stored Procedures
  - Ablauf und Komponenten
  - Übergabe von Query Result Sets
- Verteilte Datenbanken - Die 12 Regeln von Chris Date

Programm-Design unter DB2: Allgemeine Aspekte

- DB2 das Multi-User-System 
  - Batch- und Dialogabwicklung unter DB2
  - Grundsätzliche Aspekte der Mengenverarbeitung
  - Welche SQL-Programmier-Technik ist sinnvoll?
  - Konsistenz-Bereiche der einzelnen System-Komponenten bei Dialog-Verarbeitung
    - UOW und UOR
  - SAVEPOINT
    - Abschluss einer UOW/UOR und Wirkungen
  - Konsistenz-Problemstellungen eines Parallel-Betriebs
- Konsistenzschutz der Ressourcen bei Parallelverarbeitung
  - Transaction Lock
    - Lock-Charakteristiken
  - Welche relevanten Parameter steuern die Lock-Mechanismen?
    - Lock-Niveau: Tablespace, Table, Partition, Page bzw. Row
      - Lock-Modus auf Lock-Niveau: Page bzw. Row 
    - Deadlocks
      - Erkennung von Deadlocks
      - Vermeidung von Deadlocks
  - Konsistenz-Koordination zwischen verschiedenen Systemen 
- Allgemeine Programm-Design-Überlegungen

Programm-Design: Betriebsformen und Programmtypen

- Online, Batch und Multi-User
  - Dialog-Verarbeitung
  - Online- und Batch-Verarbeitung; synchrone und asynchrone Abwicklung
- Betriebsformen und Windows
  - Funktions-Typen und ihre Anforderungs-Profile
   - Batch
   - Online
   - Asynchron
   - Service
   - Started Tasks (STC) und Message-Konzept
- Durchsatz- und Zeit-Anforderungen der Benutzer

Programm-Design: Batch-Anwendungen

- Massendaten-Verarbeitung
- Batch-Programm-Kategorien und ihre Konsequenzen
- Die Auswirkungen von Langläufern im System
  - Batch-Langläufer und Commit-Einsatz
    - Was spricht für und gegen den Commit-Einsatz ?
  - Unterstützung von Rollback und Restart der Batch-Programme 
    - Welche Restart-Einrichtungen können genutzt werden?
    - Besondere Problematik bei sequential Files
- Empfehlungen zum Design von Batch-Langläufern

Programm-Design: Online - Anwendungen

- Wesentliche Komponenten der Online-Verarbeitung
- Parallelupdate: Probleme und Lösungs-Ansätze
- Online-Browsing/Blättern: Probleme und Lösungs-Ansätze
  - Scrollable Cursor 
    - Cursor-Typen
    - Cursor- und FETCH-Typen und ihre Sichten auf die Daten der Result Table
      - Informationsbereitstellung eines Scrollable Cursors
      - Positionierung in der Result Table eines Scrollable Cursors
      - Manipulationen über die Result Table eines Scrollable Cursors
      - Scrollable Cursor: Positionierung mit Rowsets
  - Daten-Mengen-Update im Online

Programm-Design: Multi-User-Anwendungen

- Parallel-Betrieb
- Konzeptioneller Unterschied zwischen Batch- und Multi-User-Verfahren
  - Ein Wort zur 'Permanenz'
- Probleme des Multi-User-Betriebs
  - Batch- und Online-Parallelität
  - Mengenverarbeitung auf Realtime-Daten: das ewige Rätsel
- Programmtechnische Konsequenzen
  - Bereitstellung der 'steuernden' Result Table
  - Einsatz des Cursor-Konzeptes
  - Konsequenzen bei Nutzung von SELECT WITH RR/RS
  - Welche COMMIT-Frequenz ist sinnvoll?
  - Beispiel der Ermittlung einer optimalen Commit-Frequenz

DB2-Verfahrensunabhängigkeit

- Abkopplung von Daten und Funktionen
  - Sicht eines Anwendungsprogrammes auf die Daten
  - Lass die Datenbank loopen!
  - Objektorientierte Verwaltung der Daten
  - Daten-Verwaltung immer ü¨ber eine zuständige Funktion/Methode
  - Einsatz von Standard-Zugriffs-Routinen
- Verlagerung von Programmlogik in den Katalog: aktive Datenbank
  - Komponenten einer aktiven Datenbank
    - Argumente fü¨r und wider eine "aktive Datenbank"
  - DB2-View-Einsatz
- Stored Procedure, User-defined Function und Trigger
  - Varianten beim Einsatz von Unterprogrammen und Stored Procedures
  - Verlagerung datennaher Dienste in den DB2-Bereich
  - Einsatz von Stored Procedures
    - Ablauf
- Grund-Varianten der Client-Server-Verarbeitung
  - Konsequenzen einer Verteilung

Workshops/Fallbeispiele:

- Es wird ein theoretischer Schreibtisch-Workshop durchgeführt: DB2-Verfahrens-Design.

 nach oben 

DB2-PERFSQL
DB2-SQL-Performance

Zielgruppe:

- Datenbank-Administratoren und technisch interessierte DB2-Entwickler.

Voraussetzungen:

- Mindestens 1-jährige Erfahrung in der DB2-Umgebung.
- Kenntnisstand von DB2-PROG, DB2-IMP und DB2-PAE erforderlich.

Besondere Hinweise:

- Der Inhalt wird auf sehr anspruchsvollem Niveau behandelt.
- Es werden tiefgehende und komplexe systemtechnische und anwendungsentwicklungsspezifische Aspekte behandelt.

Kursinhalte:

DB2-Datenspeicherung

- Konzept der Datenpools
- DB2-Speicherungs-Hierarchie
  - Physische Speicher-Struktur (Storage Structure): Page-Set-Organisation
  - File-Page Sets
    - Linear Page Sets
    - Partitioned Page Sets
    - Universal Page Sets
    - LOB Page Sets
- XML Page Sets
- Page Typen des File Page Sets
- Index-Page Sets
- B-Tree-Struktur
- Adressierung der Index Pages und der Daten Pages
- Clustering, Clustered und Non-Clustered - Die Performance-Faktoren der Datenspeicherungs-Hierarchie
- Überblick
- Kompression der Daten und Index-Entries
- Parallel-Verarbeitung
- Partitioned Tablespace
- Partition-Unabhängigkeit

DB2-Sperrmechanismen

- Transaktions-Locks
  - Lock-Charakteristiken
- Lock-Niveau: Tablespace, Table, Partition, Page bzw. Row
- DB2-Lock-Modus-Entscheidungen
- Lock-Auswirkungen auf die DB2-System-Ressourcen
- Drain Locks - Claims und Drains
- Restriktiver Space-Status von Utilities
- DB2 Data Sharing
- Gewährleistung der Daten-Konsistenz

DB2-Optimizer

- Viele Wege führen zur Result Table
- Die Komponenten der Daten-Beschaffung
  - Aufgabenteilung von RDS, DM und BM
- Die interne Struktur von RDS - Optimizer-Auswahl-Faktoren für die Entscheidungen zum optimalen Zugriffspfad - Übersicht - Statistikfelder des Katalogs - Analysemöglichkeit der Zugriffspfade - Rahmenbedingungen - EXPLAIN und PLAN_TABLE
- EXPLAIN und DSN_STATEMNT_TABLE - I/O-Zugriffs-Typen - Sequential Prefetch
- List Prefetch
- Die Nutzung der Parallel-Verarbeitung durch DB2
- Kandidaten für Parallel-Verarbeitung
- Effekte der Parallel-Verarbeitung
- Voraussetzungen für die Parallel-Verarbeitung
- Restriktionen bei der Nutzung der Parallel-Verarbeitung
- Der Ausweis der Parallel-Verarbeitung in der PLAN_TABLE - Einfache Zugriffspfade und ihre Bedeutung - Tablespace Scan (File Page Set Scan)
- Index-Zugriffe
- Matching Index Scan
- Non-Matching Index Scan
- Equal Unique Index Access
- IN-List Index Scan
- One Fetch Access
- Index-Only-Access
- Multiple Index Access
- Direkt-Zugriffe ohne Index-Nutzung
- Direkt-Zugriff (ROWID)
- Direkter Zeilen-Zugriff über die RID-Funktion - Sort - Komplexe Zugriffspfade und ihre Bedeutung - Die Join-Typen
- Inner Join und Outer Join
- Die klassischen Join-Methoden
- Überblick
- Ausweis von Joins in der PLAN_TABLE
- Nested Loop Join
- Merge Scan Join
- Optimizer-Kostenformel: Beispiel
- Hybrid Join
- Komplexe Query-Typen
- Correlated und Non-Correlated Query-Typen
- Subquery
- Non-correlated Subquery
- Correlated Subquery
- Table Expression
- Common Table Expression
- Nested Table Expression
- Scalar Full-Select
- SELECT FROM FINAL/OLD TABLE mit Data-Change-Statement
- Set-Operator - Materialisierung - VIEW-Materialization - Filterung der Daten - Der Einfluss der Query-Prädikate auf die Performance
- Prädikat-Kategorien
- Die Wirkung der Filterung - Inhaltliche Verteilung von Datenwerten
- Filter-Faktor (FF)
- Aufgabenstellung und Wirkung - Gleichmäßige Streuung und Verteilung der Daten - Filter-Faktor für gleichmäßige Streuung: Einfache/Simple Prädikate - Filter-Faktor für gleichmäßige Streuung: Interpolations-Formeln für Range-Prädikate - Filter-Faktor für gleichmäßige Streuung: Default-Filter-Faktoren für Interpolation-Formeln (Input-Variablen) - Filter-Faktor für ungleichmäßige Verteilung: Frequenz- (FREQVAL) und Werteverteilungs-Statistiken (KEYCARD) für Spalten oder Spalten-Gruppen - Filter-Faktor für ungleichmäßige Verteilung: Häufigkeitsverteilung (HISTOGRAM) für Spalten oder Spalten-Gruppen - Stage1-, Stage2- und Indexable-Prädikate
- Reihenfolge der Prädikat-Abwicklung - Reduzierung der Kommunikations-Aufwendungen zwischen Anwendungen und DB2 - Verlagerung von Funktionen aus der Anwendung ins DB2 - Nutzung impliziter Mechanismen: RI- und CHECK-Rules und Trigger - Nutzung explizit entwickelter Funktionen: Routinen (Stored Procedures und Funktionen) - Nutzung der ROWSET-Funktionen beim INSERT, MERGE und mit dem Cursor-Konzept - Lass die Datenbank loopen! - Tricks und Kniffe - Statement-Modifikationen durch den Optimizer
- Prädikat-Modifikationen und Einfügungen
- Materialisierungs-Entscheidung
- Modifikationen der Join-Verarbeitung
- Regeln der Transformation von Subqueries in Join
- AQR - Automatic Query Re-Optimization
- Analyse-Beispiel einer MQT-Nutzung
- Vorgabe von Zugriffspfad-Empfehlungen für den Optimizer (OPTHINT)
- Volatile Tabellen
- Prädikat-Manipulation durch den Entwickler
- Veränderungen von Objekt-Strukturen
- Aufbau eines Extended Indexes (Index on Expression)
- Manipulation der Statistiken
- Umschreiben von SQL-Statements
- Beeinflussung der Outer-Table-Auswahl und der Join-Methode
- Die Wirkung von Host-Variablen beim BIND
- OPTIMIZE FOR n ROWS
- Weitere Komponenten im Performance-Umfeld - Safe Query Optimization Technik (Index-Probing) - Resource Limit Facility (RLF) - DB2 Governor - IDAA: IBM DB2 Analytics Accelerator (früher: Smart Analytics Optimizer oder Accelerator Server genannt) - Überblick der Komponenten

DB2-Performance-Kontrolle

- DB2-Tools
  - Übersicht der IBM-MVS-System-Tools
- Systembezogene Tools in der DB2-Umgebung diverser Software-Unternehmen
- Systembezogene Tools in der DB2-Umgebung von IBM
- Weitere Tools in der DB2-Umgebung von IBM
- Statistik-Kategorien und Typen
- Wesentliche Katalog-Spalten hinsichtlich der optimalen Speicherorganisation
- Zustand der Daten
- Zustand der Indizes
- Welche generellen Katalog-Tatbestände führen zu einer Utility-Aktivierungs-Empfehlung? - DB2-Commands - Beispiel: DISPLAY DATABASE
- Übersicht des Database-Status
- Anzeige von Database-Locks - Standard-Tabellen für die Unterstützung von Performance-Maßnahmen - Komponenten-Überblick der Zugriffspfad-Analyse-Moöglichkeiten - EXPLAIN PACKAGE - Zugriffspfad-Analyse aus vorhandenen Packages - Beispiele - EXPLAIN einer Package - Stabilität des Zugriffspfads und Zugriffspfad-Repository - Table-Strukturen für die Performance-Analyse - PLAN_TABLE - Struktur-Beschreibung der PLAN_TABLE - DSN_STATEMNT_TABLE - Struktur-Beschreibung der DSN_STATEMNT_TABLE - DSN_STATEMENT_CACHE_TABLE - Struktur-Beschreibung der DSN_STATEMENT_CACHE_TABLE

DB2-Tuning-Checklisten

- Tuning-Tips, Checklisten und Empfehlungen
- Tuning-Summary
- Systemgenerierungs- und Installations-Optionen
- Objekt-Definitionen
- Anwendungs-Design und -Programmierung
- SQL-Query-Empfehlungen
- Die wesentlichen Informationen der PLAN_TABLE
- Was tun bei langlaufenden SQL-Statements?
- Checkliste Test-Strategie

Workshops/Fallbeispiele:

- Es wird kein Workshop durchgeführt - nur theoretische Wissensvermittlung z.T. anhand von Fallbeispielen.
- Bei Inhouse-Seminaren kann eine Workshop-Umgebung eingerichtet werden.

 nach oben 

DB2-UTILITY
DB2-Online- und Standalone-Utilities

Überblick

- Abgrenzung IBM-DB2-Tools - DB2-Utilities

DB2 Online Utilities

- Komponenten und Phasen eines Utilities
- Ergebnis- und Status-Kontrolle eines Utility-Laufs
- RESTART (CURRENT) und RESTART (PHASE)
- Utility-Datasets
  - Dataset-Disposition und Dataset-Größen
- Generelle und spezielle Utility-Control-Statements
  - Utility-Control Statement: EXEC SQL, LISTDEF, TEMPLATE, OPTIONS
- Inline-Utility-Ausführungen
  - Inline-Kopien mit dem LOAD-Utility und REORG-Utility
  - Konsequenzen der Inline-Kopien auf andere Utilities
- Inline-Statistiken mit dem LOAD-, REORG- oder REBUILD-Utility
- Sperren und Kompatibilität der Utilities untereinander

Utilities zum Laden, Entladen und Reorganisieren von Daten und Indizes

- LOAD-Utility
  - Utility-Phasen
    - Offline-Load
       - Laden der Daten von partitioned Tablespaces und 
         paralleler Aufbau der Indizes beim LOAD
    - Online-Load
       - Unterscheidungsmerkmale von Offline- und Online-Load
       - Konsequenzen bei Einsatz des Online-Load-Utilities
- REBUILD INDEX-Utility
  - Wann ist REBUILD INDEX zweckmäßig oder erforderlich?
- REORG INDEX-Utility
  - Wann ist REORG INDEX zweckmäßig oder erforderlich?
- REORG TABLESPACE-Utility
  - Parallele Verarbeitungsmöglichkeiten
	- SHRLEVEL NONE - keine Parallelverarbeitung ab RELOAD erlaubt
	- SHRLEVEL REFERENCE - lesende Parallel-Verarbeitung erlaubt
	- SHRLEVEL CHANGE - Parallel-Verarbeitung erlaubt (Online-Reorg)
      - Besonderheiten beim Aufbau von NPIs
  - REBALANCE - Re-Balancieren ungleich großer Partitions
  - Wann ist REORG TABLESPACE zweckmäßig oder erforderlich?
- UNLOAD-Utility
  - Entladen von Tablespaces, Tables und Image-Copies

Utilities zum Erzeugen von Statistik-Informationen aus Daten und Indizes

- RUNSTATS-Utility
  - Statistik-Kategorien
  - Aktualisierung der Katalog-Statistiken 
    - welche Tabellen und Spalten aktualisiert RUNSTATS ?
	- Exaktheit der Statistikwerte - woran erkennt man die Aktualität der Statistiken?
	- Darstellung der Statistikwerte im Katalog
	- Manuelle Veränderung der Statistikwerte im Katalog
	- Ungleichförmige Verteilung von Datenwerten (non-uniform distribution)
- STOSPACE-Utility

Utilities zum Prüfen der Konsistenz von Daten und Indizes

- CHECK DATA-Utility
- CHECK INDEX-Utility
- CHECK LOB-Utility

Utilities zum Sichern und Wiederherstellen von Daten und Indizes

- BACKUP SYSTEM-Utility
- COPY-Utility
  - Wie kann die Konsistenz der Objekte sichergestellt werden?
  - Copy-Typen 
    - Primär- und Backup-Kopie, Kopien für das lokale und das Recovery-System
    - Full Image Copy und Incremental Image Copy
  - Parellele Ausführungsmöglichkeiten des Utilities
- COPYTOCOPY-Utility
- MERGECOPY-Utility
- QUIESCE-Utility
- RECOVER-Utility
  - Copy-Typen
  - Zurücksetzen von Datenzuständen
- RESTORE SYSTEM-Utility

Utilities zum Löschen nicht mehr benötigter System-Informationen

- MODIFY RECOVERY-Utility
- MODIFY STATISTICS-Utility 

Utilities für Objekt-Informationen und zur Fehler-Unterstützung

- DIAGNOSE-Utility
- REPAIR-Utility
- REPORT-Utility

Standalone Utilities

- DSNJLOGF (Preformat Active Log) 
- DSNJU003 (Change Log Inventory), DSNJU004 (Print Log Map) 
- DSN1CHKR, DSN1COMP, DSN1COPY, DSN1LOGP, DSN1PRNT, DSN1SDMP

Statistiken und ihre Nutzungsmöglichkeiten

- Überblick
  - Was ist der Zweck der Statistiken?
  - Übersicht der relevanten Statistik-Informationen
- DB2-Statistik-Kategorien und relevante Komponenten
  - Speicherung der relevanten Index-Statistik-Informationen
  - Schnappschuss-Statistiken im Katalog
    - Bedeutung von LEAFDIST, LEAFNEAR und LEAFFAR
  - Speicherung der relevanten Daten-Statistik-Informationen
    - Bedeutung von NEAROFFPOSF und FAROFFPOSF, CLUSTERRATIOF, NEARINDREF und FARINDREF
  - Speicherung der relevanten LOB-Statistik-Informationen  
    - Bedeutung von ORGRATIO
  - Automatisierung der Statistik-Analyse mit Anstoß von Utility-Läufen
- Aktuelle Statistiken: RTS - Realtime-Statistiken
  - RTS-Komponenten
    - Sammeln und Aktualisieren der Statistikdaten
    - Ausschreiben der Statistiken in die RTS-Tabellen (Externalisierung)
    - Analyse der Statistiken 
      - Stored Procedure DSNACCOR - Analyse Realtime Statistiken
- Schnappschuss-Statistiken
  - Analyse
    - Stored Procedure: DSNACCAV - Partition-Informationen
    - Stored Procedure: DSNACCQC - TS- und IX-Space-Informationen 
  - Welche Tatbestände führen zu einer Utility-Aktivierungs-Empfehlung ? 
- Historien-Statistiken

Pending Status (Advisory und Restricted Status)

Workshops/Fallbeispiele:

- Es wird kein praktischer Workshop durchgeführt - nur theoretische Wissensvermittlung.

 nach oben 

DB2-ROUTRIG
Effizienz von Routinen und Triggern

Überblick

- Komponenten einer "aktiven Datenbank"
- Terminologie
- Verlagerung sämtlicher datennaher Dienste in den DB2-Bereich
- Objekt-Hierarchie
- Identifikation von Stored Procedures, Functions und Triggern 
  - SQL-Pfad, Schema, Specific Name und External Name 
- Function Overloading und Function Resolution 
- Externe Routine und SQL-Routine

Infrastruktur

- Adressräume für Stored Procedures und/oder User-defined Functions
  - SPAS oder WLM-gemanged
- Installations-Parameter
- Programm- und Adressraum-Konzept
  - CAF- oder RRSAF-Attachment
- Technische Einsatzbedingungen von externen Routinen
- Charakteristiken von externen Routinen
- Starten und Stoppen von Routinen
- Zulässige und unzulässige Funktionen
  - Nutzung externer Funktionen
- Behandlung von Spezialregistern
- Haupt- oder Unterprogramm
- Entwicklungs-Komponenten
  - Zuordnung von Plan und Packages
- Verhalten von Dynamic SQL-Statements (Statement Behavior)
- Fehlerbedingungen
  - Fehler-Behandlung und -Erkennung bei Routinen
  - Inaktivierung der Routine bei Fehler
  - Fehler-Behandlung und -Erkennung bei Triggern

IBM-Builtin-Functions

- Funktions-Typen
- Basis-Sprach-Elemente

UDF - User-defined Function

- Überblick 
- Der Einsatz von benutzerdefinierten Funktionen 
  (User-defined Functions)
  - Überblick der Funktions-Typen
  - Nutzungsmöglichkeiten und Funktionseinsatz
- Aufruf-Varianten einer externen Funktion
- Programmtechnische Besonderheiten
  - Scratchpad-Bereich 
  - Parallellauf-Besonderheiten 
  - Parameter der User-defined Function 
  - CALL-TYPE bei Table-Functions 
- Sourced Function 
- External Scalar Function 
  - Codier-Beispiele: Aufruf und Parameterübergabe
- External Table Function
- SQL Scalar Function
- Commands für Funktionen 

STP- Stored Procedures

- Überblick
- Vorteile und Nachteile von Stored Procedures
  - Vorteile einer Stored Procedure gegenüber einem 
    Unterprogramm
- DB2 External Stored Procedures und SQL Procedures
- System-Konzept von DB2 External Stored Procedures
- SQL-Prozeduren und Stored Procedures Builder (SPB)
- Aufruf einer remote Stored Procedure und Ablauf 
- Nutzungsmöglichkeiten und Funktionseinsatz
  - Varianten beim Einsatz von Unterprogrammen und Stored Procedures
  - Aufruf-Varianten einer Stored Procedure
  - Verbesserungen der Version 7
- Parameter der Stored Procedure
- Übergabe von Query Result Sets
- Commands für Stored Procedures

Trigger

- Überblick 
- Trigger-Typen 
  - Before-Trigger
    - Trigger zur bedingungslosen Verhinderung von Einfügungen
    - Trigger zur bedingten Verhinderung von Einfügungen
    - Trigger zur Einsetzung von Initialwerten bei Einfügungen
    - Trigger zur Sperre von anderen Objekten
    - Weitere Beispiele zulässiger Kombinationen
    - Aufrufe von Routinen
    - Aufruf einer Scalar-Function 
  - After-Trigger
    - After-Row-Trigger mit Aufruf einer Stored Procedure 
    - After-Statement-Trigger mit Aufruf einer User-defined
      External Function - Variante A
    - After-Row-Trigger mit Aufruf einer User-defined
      External Function - Variante B 
    - Cascading Effekte bei After Triggern
  - Syntaktische Restriktionen
  - Beispiele unzulässiger Kombinationen
  - Codier-Beispiele: Aufruf Stored Procedure mit Übergabe
    einer Transition-Table 

Workshops/Fallbeispiele:

- Es wird kein praktischer Workshop durchgeführt:
Anhand diverser praktischer Fallbeispiele werden die Wirkungen detailliert erläutert.
Bei Inhouse-Seminaren kann eine praktische Workshop-Umgebung eingerichtet werden.

 nach oben 

DB2-TEMPORAL TABLES
Daten mit Gültigkeitszeiten

Überblick

- Modell-Ansatz, DB2-spezifische Realisierung und Bewertung von Temporal Tables:
- Fachliche Gültigkeiten (PERIOD BUSINESS_TIME)
- Technische Gültigkeiten (PERIOD SYSTEM_TIME)
- Bi-Temporal-Tables mit Daten-Versionierung und History-Table.

DB2-Temporal Tables - Daten mit Zeitbezug

- Einleitung, Terminologie
- Temporale Modelle: Realisierungs-Beispiele
- SQL/Temporal im Rahmen von SQL3
- Daten-Modell-Konzepte
- Temporal Tables und Relationen-Modell
- Fachliche Zeitaspekte
- Konzeptionelle Umsetzungs-Varianten für Zeitaspekte
- Technische Zeitaspekte
- Zusammenfassende Konsequenzen eines Zeitraumkonzeptes
- DB2-Unterstützung von Daten unter Zeitbezug und Versionierung
- Temporal Table mit Perioden-Konzept: BUSINESS_TIME und SYSTEM_TIME
- Konzeptioneller Überblick des Modells
- Überblick der Terminologie und Komponenten
- Technische Lösung
- Die unterschiedlichen Modelle für Zeit-Konzepte und die DB2-Lösung
- Fachliches Zeit-Konzept: BUSINESS_TIME
- Konzept der Manipulation von Zeitleisten
- DB2-Temporal Tables - Application Period Temporal Table: Fachliche Gültigkeiten - PERIOD BUSINESS_TIME
- Komponenten des Konzeptes
- Erforderliche bzw. sinnvolle Struktur-Anpassungen für fachliche Gültigkeiten
- Definition der relevanten Objekte
- Beispiel DDL für CREATE Temporal Table mit fachlichen Gültigkeiten (PERIOD BUSINESS_TIME)
- DB2-Temporal Tables: Katalog Metadaten für fachliche Gültigkeiten (PERIOD BUSINESS_TIME)
- INSERT Daten
- Beispiel-Inhalte als Ausgangsbasis für fachliche Gültigkeiten (PERIOD BUSINESS_TIME)
- Einfügungsversuche von Zeitleisten, überwiegend mit Zeitüberlappungen
- Manipulation von Daten mit Gültigkeitszeiten
- Beispielhafte Manipulationen beginnend ab einem bestimmten fachlichen Termin mit unbegrenzter Gültigkeit
- Beispielhafte Manipulationen beginnend ab einem bestimmten fachlichen Termin mit einer begrenzten Gültigkeit
- Bereitstellung der Daten mit Gültigkeitszeiten
- SELECT mit FOR BUSINESS-Klausel
- Nachträgliches Einrichten einer Temporal Table mit fachlichen Gültigkeiten (PERIOD BUSINESS_TIME)
- Beispiel DDL für ALTER Basis-Tabelle
- Anzeige des Datenzustands nach ALTER Basis-Tabelle
- REORG, UNLOAD und LOAD der Daten nach ALTER Basis-Tabelle
- Relevante Utilities für die Verwaltung der Temporal Tables mit PERIOD BUSINESS_TIME
- Entladen und Laden von Daten: UNLOAD- und LOAD-Utility
- Fazit der BUSINESS_TIME-Unterstützung
- DB2-Temporal Tables: Technische Gültigkeiten - PERIOD SYSTEM_TIME
- Komponenten des Konzeptes
- DB2-Temporal Tables: Erforderliche bzw. sinnvolle Struktur-Anpassungen für technische Gültigkeiten
- Definition der relevanten Objekte - Beispiel DDL für CREATE Temporal Table mit technischen Gültigkeiten (PERIOD SYSTEM_TIME)
- DB2-Temporal Tables: Katalog Metadaten für technische Gültigkeiten (PERIOD SYSTEM_TIME)
- INSERT Daten
- Beispiel-Inhalte als Ausgangsbasis für technische Gültigkeiten (PERIOD SYSTEM_TIME)
- Manipulation von Daten mit impliziten technischen Gültigkeitszeiten
- Beispielhafte Manipulationen
- Bereitstellung der Daten mit Gültigkeitszeiten
- SELECT mit FOR SYSTEM-Klausel mit implizitem Zugriff auf die Versions-Daten in der History-Table (UNION ALL)
- Nachträgliches Einrichten einer Temporal Table mit fachlichen Gültigkeiten (PERIOD SYSTEM_TIME)
- Beispiel DDL für ALTER Basis-Tabelle
- Anzeige des Datenzustands nach ALTER Basis-Tabelle
- Manipulationen der Temporalen Daten
- Relevante Utilities für die Verwaltung der Temporal Tables mit PERIOD SYSTEM_TIME
- Entladen und Laden von Daten: UNLOAD- und LOAD-Utility
- Bi-Temporale Tabellen mit fachlichen Gültigkeiten - PERIOD BUSINESS_TIMES und technischen Gültigkeiten - PERIOD SYSTEM_TIME
- Komponenten des Konzeptes
- DB2-Bi-Temporal Tables: Erforderliche bzw. sinnvolle Struktur-Anpassungen für fachliche und technische Gültigkeiten
- Definition der relevanten Objekte
- DB2-Temporal Tables: Beispiel DDL für Bi-Temporale Tabellen mit
- fachlichen (PERIOD BUSINESS_TIME) und
- technischen Gültigkeiten (PERIOD SYSTEM_TIME)
- DB2-Bi-Temporal Tables: Katalog Metadaten für fachliche (PERIOD BUSINESS_TIME) und technische Gültigkeiten (PERIOD SYSTEM_TIME)
- INSERT Daten
- Beispiel-Inhalte als Ausgangsbasis für fachliche (PERIOD BUSINESS_TIME) und technische Gültigkeiten (PERIOD SYSTEM_TIME)
- Manipulation von Daten mit expliziten fachlichen und impliziten technischen Gültigkeitszeiten
- Beispielhafte Manipulationen
- Informations-Bereitstellung von Daten mit technischen Gültigkeitszeiten
- Performance von Temporal Tables
- Generelle Performance-Aspekte
- BI-Temporal Table
- Übersicht der relevanten Objekt-Struktur
- Einfacher SELECT auf eine Tabelle
- Joins
- Join auf drei Tabellen mit PERIOD BUSINESS_TIME: Ein Objekt mit Referenzen - Zeitpunkt-Darstellung
- Join auf drei Tabellen mit PERIOD BUSINESS_TIME: Ein Objekt mit Referenzen - Zeitraum-Darstellung
- Join auf drei Tabellen mit PERIOD SYSTEM_TIME: Ein Objekt mit Referenzen - Zeitpunkt-Darstellung
- Manipulationen
- Fazit (bei Daten-Versionierung mit Historien-Tabelle)
- DB2-Temporal Tables - Zusammenfassung
- Konzepte und unterstützte Funktionalitäten
- Programmtechnische Regeln für die technische Umsetzung des Zeitkonzeptes
- Restriktionen
- Positive Aspekte
- Negative Aspekte
- Fazit

Workshops/Fallbeispiele:

- Es wird kein praktischer Workshop durchgeführt:
- Bei Inhouse-Seminaren kann eine praktische Workshop-Umgebung eingerichtet werden.

 nach oben 

DB2-LOB
Large Objects

DB2-LOBs - Large Objects: Überblick

- Fakten und Objekte in Realität und IT
  - Charakteristiken komplexer Objekte
    - Ein komplexes Objekt ist immer ein zusammengesetztes Objekt
    - Einfluss der Zeit auf komplexe Objekte
  - Kategorisierung komplexer Objekte
  - Grundsätzliche Behandlung komplexer Objekte
  - Speicherung komplexer Objekte mit DB2: Large Objects (LOBs)
  - Problematiken beim Design und der Speicherung komplexer Objekte

DB2-Objekt-Typen

- Daten-Typen für komplexe Objekte
- DB2-Objekt-Typen für die Datenhaltung von LOBs
  - Übersicht
  - Basis-Objekt-Struktur
    - Base-Table mit LOB-Definition, ROWID und LOB-Flag
      - ܨberblick
      - Spalten-Charakteristiken der Base-Table
    - Base-Tablespace
      - Non-Partitioned oder Partitioned
  - LOB-Objekt-Struktur
    - Struktur-Varianten
    - Auxiliary-Table, Auxiliary Index und LOB-Tablespace
      - Spalten-Charakteristiken von Auxiliary Table und Auxiliary Index
    - LOB-Tablespace (Auxiliary Tablespace)
      - Page-Größe und Bufferpools bei LOB-Tablespaces
- Technische Zusammenhänge der LOB-Werte-Speicherung
  - Verknüpfungen zwischen Basis-Daten und LOB-Daten
  - Details zum ROWID
    - Explizites und implizites Anlegen
    - Die Komponenten des ROWIDs
  - LOB-Pageset-Organisation
    - Physische Verwaltung der Pages in Chunks
    - LOB-Pagesets verfü¨gen auch ü¨ber Header- und Space-Map-Pages
  - Manipulation von LOB-Werten
    - Die interne Wirkung von INSERT, UPDATE und DELETE
  - Explizites oder implizites Anlegen der LOB-Objekte
  - Logging-Verhalten der LOB-Objekte
  - Zusammenfassung der Unterschiede zwischen Basis- und LOB-Objekt-Typen
- Inline-LOBs
  - Verarbeitungs-Regeln und Beispiele von Inline-LOBs

LOB-Nutzung durch Anwendungen

- Unterstützte Anwendungs-Typen
- Die Sichten auf komplexe Objekte
- Bereitstellungs-Methoden von LOB-Daten
  - Materialisierung eines kompletten LOB-Wertes
    - LOB-Variablen fü¨r die Materialisierung
    - Schrittweise Bereitstellung von kompletten LOB-Werten durch FETCH CONTINUE
    - Manipulation kompletter, materialisierter LOB-Werte
  - LOB-Locator: Referenz auf einen LOB-Wert
    - Manipulation über LOB-Locator
    - Interne LOB-Locator-Ketten
    - SQL-Funktions-Nutzung mittels LOB-Locator
  - LOB-File-Referenz: Referenz auf eine externe Datei, die einen LOB-Wert enthält
    - LOB-File-Referenz: Wirkung der FILE-Option
  - LOB-Parameter bei Einsatz von Routinen und Triggern
  - Erweiterte Struktur der SQLDA für LOB-Werte
    - SQLVAR - Erweiterter-Element-Typ (Extended Set)
- Filter-Methoden von LOB-Daten
- Zusammenfassung der SQL-Funktions-Unterstützung von LOB-Daten

LOB und Utilities

- Überblick der relevanten Utilities
- Laden und Entladen von LOB-Daten
  - LOAD, UNLOAD und DSNTIAUL
  - Varianten zum Laden von LOB-Daten
    - LOAD für Erstladen und erneutes Laden von LOB-Daten
      - Parametrisierung der LOAD-Varianten
      - Besonderheiten für LOB-Daten bei den LOAD-Phasen
      - Logging-Aufwand beim Laden
  - Varianten zum Entladen von LOB-Daten
    - UNLOAD und DSNTIAUL zum Entladen von LOB-Daten
      - Parametrisierung der UNLOAD-Varianten
      - Ausgabe der LOB-Daten auf separate Datasets/Member
      - Spanned Format fü¨r LOB und XML
      - Parametrisierung von DSNTIAUL
  - Zusammenfassung der Regeln für das Laden und Entladen von LOB-Daten
    - Regeln fü¨r die Nutzung von LOB-File-Referenzen
- Sammeln von LOB-Statistiken
  - Schnappschuss- und Realtime-Statistiken
  - RUNSTATS-Utility
    - Welche Funktionen lassen sich fü¨r LOBs nutzen?
    - RUNSTATS-Statistik-Ergebnisse fü¨r LOBs
      - Bedeutung der Statistik-Spalte ORGRATIO
- Reorganisation von LOB-Daten
  - Die Wirkungen eines Reorgs von Basis- und LOB-Objekten
  - REORG TABLESPACE-Utility
    - Wirkung des SHRLEVELs NONE, REFERENCE und CHANGE
    - Beispiele der Reorganisation von LOB-Tablespaces mit SHRLEVEL CHANGE
  - REORG INDEX-Utility
    - Reorganisation des Auxiliary Indexes
  - REBUILD INDEX-Utility
    - Neuaufbau des Auxiliary Indexes
- Sicherung und Wiederherstellung von LOB-Daten
  - Logging-Aktivitäten für Basisdaten- und LOB-Manipulationen
  - Grundsätzliche Sicherungs- und Logging-Szenarien
  - Utilities zum Sichern und Wiederherstellen von Daten und Indizes
    - COPY- und COPYTOCOPY-Utility fü¨r LOB-Daten
    - QUIESCE-Utility fü¨¨r LOB-Daten
    - RECOVER-Utility fü¨¨r LOB-Daten
- Überprüfung der Konsistenz zwischen Basis- und LOB-Daten
  - CHECK DATA, CHECK INDEX und CHECK LOB
    - CHECK-Pending-Status
  - Pending-Status und 'Invalid'-Markierungen
    - LOB- oder XML-Fehler-Typen: Orphan-, Missing-, Out-of-Synch- und Invalid LOBs
      - Entdecker der Fehlerzustände und mögliche Ursachen
      - Bereinigungs-Möglichkeiten der Fehlerzustände
  - CHECK LOB-Utility
    - CHECK LOB SHRLEVEL REFERENCE
    - CHECK LOB SHRLEVEL CHANGE (ab DB2-Version 9)
  - CHECK DATA-Utility
    - CHECK DATA SHRLEVEL REFERENCE
    - CHECK DATA SHRLEVEL CHANGE (ab DB2-Version 9)
    - CHECK-Erweiterungen ab V10
  - CHECK INDEX-Utility
    - SHRLEVEL REFERENCE und CHANGE
- Bereinigung von Konsistenz-Problemen
  - Erforderliche Maßnahmen
  - Beispiel-Szenario
  - Zur Not mit Gewalt: REPAIR-Utility
- Strategien zur Sicherung und Wiederherstellbarkeit von LOB-Daten

LOB-Performance

- Überblick
- LOBs fordern immer mehr Aufwand als strukturierte Daten - oder etwa nicht ?
  - Wann ist die Speicherung von Daten in LOB-Daten-Typen sinnvoll ?
- Materialisierung und Vermeidung von Materialisierung
  - Virtuelles Speicher-Management
    - Die Bedeutung von LOBVALA und LOBVALS
    - Bufferpools fü¨r LOB-Werte
      - Threshold-Empfehlungen
      - Behandlung von LOBs in Group-Bufferpools
  - DRDA-LOB-Optimierung
    - Small, Medium und Large LOBs und ihre Behandlung
- LOCK-Mechanismen für LOB-Werte
- SQL-DML
  - SELECT LOB-Daten
  - Manipulation von LOB-Daten
- Zusammenfassende Performance-Empfehlungen für den LOB-Einsatz
- LOB-Versions-Entwicklungen
  - LOB-Features in den DB2-Versionen 6, 7, 8, 9, 10 und 11

Workshops/Fallbeispiele:

- Es wird kein praktischer Workshop durchgeführt:
- Bei Inhouse-Seminaren kann eine praktische Workshop-Umgebung eingerichtet werden.

 nach oben 

DB2-ADMIN-1
DB2-Administrations-Workshop Teil 1

Zielgruppe:

- Datenbank-Administratoren und technisch interessierte DB2-Entwickler.

Voraussetzungen:

- Gute DB2-Kenntnisse. Praktische Erfahrungen mit DB2.

Kursinhalte:

Einrichtung von DB2-Datenbanken und -Tabellen

- DB2-Entwurfsprinzipien 
  - Die relevanten Ebenen beim Entwurf von Datenstrukturen
  - Meta-Daten und Daten
  - Die 3 Ebenen des Relationen-Modells
  - Das Relationen-Modell fordert normalisierte Strukturen 
    - Wie weit ist Normalisierung sinnvoll?
- Die Rolle von DB2 im Rahmen der Anwendungsentwicklung 
  - Vorgehens-Modell beim Entwurf von DB2-Datenstrukturen
  - Darstellung und Ablage von DB2-Daten
- Klassifikation der DB2-Ressourcen
  - Daten-orientierte Objekt-Typen 
    - Daten-Typen
    - Benutzer-orientierte Objekt-Typen (Table, View, Synonym, Alias)
    - System-interne Objekt-Typen (Tablespace, Index, Indexspace, Storagegroup, Database) 
    - Unterstützung von Large Objects (LOBs) und XML 
    - Zusammenfassung der DB2-Daten-Objekt-Typen 
  - Hierarchie der Daten-Objekt-Typen
  - Überblick der DB2-Daten-Speicherungshierarchie mit Page Sets, VSAM-Datasets und Bufferpools 
- Tablespace 
  - Zuordnung zu DB2-Speicher-Objekten
  - Die Page-Größe und ihre Einflussnahmen
  - Tablespace-Typen 
  - File-Page Sets 
    - Linear Page Sets
    - Partitioned Page Sets
    - Universal Page Sets
    - LOB Page Sets
    - XML Page Sets
  - Page Typen des File Page Sets 
  - Physische Charakteristiken für Tablespace und Partition
    - PRIQTY 
    - SECQTY 
  - Dynamisches Partition-Konzept ab Version 8 
    - Erweiterung der Partition-Anzahl 
    - Partition-Rotation 
    - Partition-Rebalance 
  - Nachträgliche Änderungsmöglichkeiten von Tablespace-Charakteristiken 
    - Änderungsmöglichkeit von Metadaten im lfd. Betrieb
    - Überblick der unterstützten PENDING-CHANGE-Funktionen 
- Basis-Tabelle (Base-Table) 
  - Definition der Tabellen-Spalten 
  - Definition von Constraints 
    - Referential Constraint 
    - Check Constraint 
  - Vergabe einer lfd. Nummer durch DB2 
    - Identity-Spalten-Charakteristik oder Sequence-Objekt
  - Automatische Generierung von Werten durch DB2 (GENERATED ALWAYS und GENERATED BY DEFAULT)
    - Charakteristiken IDENTITY, ROWID, ROW CHANGE TIMESTAMP, ROW BEGIN und - END, TRANSACTION START_ID und Non-Deterministic 
    - Wirkungen der Klausel GENERATED ALWAYS und GENERATED BY DEFAULT auf SQL-Manipulationen und LOAD 
  - Zuordnung der Table zum Tablespace 
  - Definition einer partitioned Table (table-kontrollierte Partitionierung) 
  - Änderung von Table-Charakteristiken 
  - Die Konsequenzen bei Änderung des Daten-Typs einer Spalte 
    - Definition einer Clone Table     
- Index 
  - Index-Typen 
  - Definition der Index-Spalten 
  - Der Clustering Index organisiert die Datenfolge 
  - Partitioning Index und Partitioned Index 
    - Table-kontrollierte Partitionierung 
    - Index-kontrollierte Partitionierung 
  - Gegenüberstellung der Table- und Index-kontrollierten Partitionierung 
  - und nun alle Index-Typen der Table-kontrollierten Partitionierung auf einmal 
  - DPSI: Data Partitioned Secondary Index
    - Welche Indizes eignen sich als Partitioned Index? 
  - Scalar Expression Index (Index on Expressions) 
  - Interne Organisation eines Indexes
    - Zuordnung eines Indexes zum Indexspace, den Page Sets und Datasets 
    - Indexspace - Aufgabenstellung und relevante Zuordnungen 
    - B-Tree-Struktur eines Indexes 
  - Änderung von Index-Charakteristiken 
  - Löschung eines Indexes 
  - Welche Vorteile bietet ein Index, welche Nachteile sind zu beachten? 
    - Vorteile eines Indexes 
    - Nachteile eines Indexes 
    - Empfehlungen zum Index-Einsatz 
- Speicherung von Metadaten im DB2-Katalog und im Directory 
  - Struktur-Komponenten 
  - Verwalten der Katalog-Inhalte 
  - Gruppierung der Katalog-Tabellen nach Objekt-Typen 
    - Tabellen nach Kategorien 
    - Katalog-Tablespaces und Indizes (Beispiel-Auszug) 
    - Beziehungs-Konstrukte der Katalog-Tabellen (Katalog-RI) 
  - Katalog-Tabellen, ihre Charakteristiken und Tablespaces 
  - Beispiele von Katalog-Queries 
    - Beispiel-SQL-Queries 
    - Unterstützung der Anwendungs-Entwicklung und Ressource-Kontrolle 
  - Relevante Katalog-Tabellen für die Programmentwicklung 
     

RI - DB2 Referential Integrity

- Der DB2-Lösungsansatz 
  - DB2-RI-Zielsetzungen 
  - RI-Terminologie
  - RI - Manipulations-Regeln und -Maßnahmen 
- Unterstützte referenzielle Strukturen
  - Mögliche Einzel-Strukturen
  - Die Einbindung der Einzelstrukturen in eine 'logische referenzielle Struktur' 
- Die Verarbeitungs-Konsequenzen von referenziellen Strukturen 
  - Logische referenzielle Struktur
  - Physische referenzielle Struktur (Tablespace-Set)       
- Struktur-Besonderheiten und Anomalien
  - 1 : 1-Beziehung mit gegenseitiger Referenz 
  - DELETE-Abhängigkeiten
  - Delete-Beziehungen über mehrfache Pfade
  - Regelwerk für Delete-Beziehungen über mehrfache Pfade
- Gesamt-Überblick über die DB2-RI-Unterstützung 
  - Katalog-Strukturausschnitt für die RI-Unterstützung 
    - Katalog-Tabellen und Spalten für die RI-Unterstützung 
- Was tun, wenn DB2-RI nicht genutzt werden soll oder kann? 
- Argumente für und gegen RI     
      

DB2-Commands

- Steuerung und Kontrolle des DB2-Systems: Überblick 
- Überblick der DB2-Commands 
- Überblick sonstiger Commands für die Steuerung und Kontrolle von DB2-Ressourcn 
  - Liste der DB2-Commands und Command-Typen 
- Beispiel-Job zur Aktivierung von DB2-Commands über TSO-Batch-Job DSNTEP2/DSNTEP4

DB2-Utilities

- Überblick über die DB2-Utilities 
  - Beschreibung der DB2-Online-Utilities 
    - Komponenten eines Utilities 
    - Aktivierungs-Varianten für Utilities 
    - Die Ausführungs-Phasen eines Utilities
      - Ergebnis- und Status-Kontrolle eines Utility-Laufs 
      - RESTART (CURRENT) und RESTART (PHASE) 
    - Utility-Datasets
      - Übersicht der Datasets für Online-Utilities
      - Vorgabe von Utility-Control-Statements 
      - CCSID-Behandlung von Utility-Control Statements 
      - Spezielle Utility-Control-Statements (SYSIN-DD-Statement) 
      - Dataset-Charakteristiken 
- Generelle und spezielle Utility-Control Statements 
  - Überblick der generellen Control-Anweisungen
    - Utility-Control Statement: EXEC SQL - Ausführung von SQL-Statements während der Utility-Ausführung 
    - Utility-Control Statement: LISTDEF: Definition von Objekt-Listen
    - Utility-Control Statement: TEMPLATE - Standardisierung von Dataset-Namen und Charakteristiken 
    - Utility-Control Statement: OPTIONS - Spezifikation von Ausführungsbedingungen 
  - Unterstützung von FlashCopy 
    - FlashCopy-Datasets 
- Utilities zum Laden, Entladen und Reorganisieren von Tablespaces/Indexspaces 
  - LOAD-Utility 
    - Überblick 
    - LOAD: Erforderliche Datasets und Objekte 
    - LOAD: Utility-Ausführungs-Phasen 
    - Offline-Load
    - Online-Load 
    - LOAD-Beispiele 
  - UNLOAD-Utility 
    - Überblick 
    - UNLOAD-Komponenten
    - Besonderheiten beim Entladen der Daten 
    - UNLOAD-Beispiele 
  - Reorganisation von Daten und Indizes
    - Reorganisationserfordernisse und DB2-Utilities, die zur Reorganisation genutzt werden können
    - Überblick der Reorganisations-Methoden und Parallverarbeitungs-Möglichkeiten
    - REORG INDEX: Überblick über die Komponenten und relevante Klauseln 
    - REORG TABLESPACE: Überblick über die Komponenten und relevante Klauseln 
    - REORG TABLESPACE-Beispiele 
  - DB2-Statistik-Kategorien und relevante Komponenten
    - Schnappschuss- Historien und Realtime-Statistiken (RTS)
    - Utilities zum Erzeugen von Statistik-Informationen aus Daten und Indizes (RUNSTATS und SROSPACE) 
    - RUNSTATS-Utility 
- Utilities zum Sichern und Wiederherstellen von Daten und Indizes 
  - Überblick 
  - COPY-Utility 
    - Überblick 
    - Ein- und Ausgabe-Datasets 
    - COPY-Beispiele 
  - RECOVERY-Utility 
    - RECOVER-Utility: Überblick 
    - Zurücksetzen von Datenzuständen auf den aktuellen oder einen früheren Zustand (PIT = point-in-time) 
    - Vorwärts- und Rückwärts-Recovery (forward/backward und BACKOUT YES) 
    - RECOVER-Utility: Komponenten 
    - Ein- und Ausgabe-Datasets 
    - RECOVER: Utility-Ausführungs-Phasen 
    - RECOVER-Beispiele 
- Pending Status (Advisory und Restricted Status) 

Programm-Präparierung und BIND

- DB2-Unterstützung der Entwicklungsschritte 
  - DB2I - ISPF-Unterstützung 
    - SPUFI-Dialogführung 
  - DCLGEN 
- Ablauf der Programm-Entwicklung unter DB2 
  - DB2-Precompiler 
    - Standard-SQL 
  - BIND-Prozess
    - Ablauf und Aufgaben 
    - BIND- und REBIND-Typen
  - Binder (Linkage Editor) und Attachment-Facilities 
- DB2-Beispiel-Programme DSNTEP2/DSNTEP4 und DSNTIAUL 
- Checkliste Programm-Entwicklung 

Sicherheitseinrichtungen im DB2 (Security)

- Überblick  
  - Zusammenspiel zwischen RACF/ACF2/Top Secret und DB2 
  - DB2-Privilegien-Struktur 
- DB2 -Explizite Privilegien 
  - GRANT-Statement-Typen 
  - Zuordenbare explizite Einzel-Privilegien 
- DB2 -Implizite Privilegien 
- Explizite und implizite ADM-Privilegien 
  - Hierarchische ADM-Gruppen-Privilegien
    - Implizit wirkende Einzel-Privilegien ADM-Gruppen 
  - Welche impliziten Rechte hat der Eigentümer (Owner) eines Objektes? 
- Zusammenfassung der relevanten Privilegien 
  - Welche Privilegien sind zur Verwaltung der DB2-Objekte erforderlich? 
    - Erforderliche Privilegien eines Anwendungsentwicklers 
- MLS - Multi-level Security       

Serialisierung von Ressourcen

- Probleme und Lösungswege der Konkurrenzverarbeitung 
  - DB2 das Multi-User-System 
- Konsistenz-Problemstellungen eines Parallel-Betriebs 
- Abschluss einer UOW/UOR und Wirkungen 
- Grundsätzliche Konsequenzen des Parallelbetriebs 
  - Erkennbare Anforderungen an Sperr-Techniken 
  - Lokale und Globale Sperr-Techniken 
- Lokale Sperren in einem DB2-Subsystem 
  - Überblick der von DB2 genutzten Techniken 
    - Transaction Lock 
    - Zusammenfassung der DB2-Lock-Mechanismen 
  - Claims, Drains und Drain Lock 
  - Sperren von DB2-Subsystem-Objekten 
    - DB2-Directory, DB2-Katalog, DBD, ENV-Komponenten 
- IRLM - Internal Resource Lock Manager 
  - Prinzipien bei der Einrichtung von Sperren 
  - IRLM-Aufgaben und -Komponenten 
    - Deadlocks und Timeouts

- Globale Sperren in einer DB2-Group mit DB2-Membern (DS - Data Sharing) 
  - Grundsätzliche Aufgabenstellung
  - Aufgaben-Abgrenzung zwischen Membern und dem Coupling Facility 
  - Die Konsistenzbewahrung bei Data Sharing (DS) 
  - Speicher-Strukturen einer Data Sharing Group 
    - Überblick 
    - IRLM-Lock-Konzept im Data Sharing 
      

Wie halten wir unsere Datenbanken fit?

- Kontrolle der Ressource-Zustände
  - Manipulationsauswirkungen in der physischen Speicherstruktur
  - Übersicht der relevanten Statistik-Informationen (Generelle Statistik-Kategorien) 
- DB2-Statistik-Kategorien und Typen 
  - Wesentliche Katalog-Spalten hinsichtlich der optimalen Speicherorganisation 
    - Zustand der Daten 
    - Schnappschuss-Statistiken für Daten 
    - Zustand der Indizes
    - Speicherung der relevanten LOB-Statistik-Informationen
    - Welche generellen Katalog-Tatbestände führen zu einer Utility-Aktivierungs-Empfehlung? 
  - Aktuelle Statistiken: RTS - Realtime-Statistiken 
    - Überblick und Komponenten 
    - Verwaltung der RTS-Statistiken 
      

Workshops/Fallbeispiele:

- Sehr intensiver Workshop mit vielen Referenten-Beispielen.

 nach oben 

DB2-ADMIN-2
DB2-Administrations-Workshop Teil 2

Zielgruppe:

- Datenbank-Administratoren und technisch interessierte DB2-Entwickler.

Voraussetzungen:

- Gute DB2-Kenntnisse. Praktische Erfahrungen mit DB2.

Kursinhalte:

Online-Schema-Änderungen

- Änderungsmöglichkeiten der DB2-Objekte 
  - ALTER Statement - Änderung von Meta-Daten
    - Übersicht der Objekt-Änderungsmöglichkeit durch die SQL-ALTER-Statements
    - DB2-Objekte haben starke referenzielle Beziehungen untereinander (Beispiel Spalte)
    - Direkte Änderung von Metadaten (Immediate Change) oder verzögerte, schwebende Änderung (Pending Change) 
  - ALTER TABLE
    - Grundsätzliche Funktionalitäten
    - Übersicht der Änderungs-Typen von Table-Charakteristiken
    - ADD COLUMN: Hinzufügung neuer Spalten am Ende der Struktur 
    - ALTER COLUMN: Änderung von Spalten-Daten-Typen und -Längen
    - DROP COLUMN: Löschen einer existierenden Spalte 
  - ALTER ... REGENERATE
  - Was tun, wenn kein ALTER existiert?
  - RENAME-Statement
  - DROP-Statement - Löschung von Meta-Daten 
- Teil 1: Sofortige Änderung (Immediate Change) 
  - DB2-Metadaten-Versionsführung
    - Wie kann man sich eine Metadaten-Versionsführung (Struktur-Versionen) vorstellen? 
    - Wie muss man sich die DB2-Metadaten-Versionsführung (Struktur-Versionen) vorstellen? 
    - Protokollierung der DB2-Metadaten-Struktur-Versionsführung im Katalog
    - Relevante Katalog-Informationen der Versionsführung
- Teil 2: Verzögerte Änderung (Pending Change) 
  - Übersicht der versionsbezogenen Unterstützung von Pending Changes 
    - Szenario einer Objekt-Änderung, die zum Pending-Change führt
  - Tablespace-Änderungen
    - ALTER Tablespace-Typ (Konvertierung von Tablespace-Typen)
    - ALTER BUFFERPOOL (Page-Größe), ALTER DSSIZE und ALTER SEGSIZE
- DDL_MATERIALIZATION-Einflussnahme auf sofortigen Vollzug der Änderung oder Pending-Status (nur für Änderungen von Spalten-Charakteristiken)

UDF - User-defined Function

- Überblick 
- Der Einsatz von benutzerdefinierten Funktionen (User-defined Functions) 
  - Definition und Nutzungsbeispiele der Funktions-Typen 
    - Funktions-Aufruf und - Ergebnis-Typen 
- Unterschiede zwischen Externen- und SQL-Funktionen
- Identifikation von User-defined Functions
  - SQL-Pfad, Schema, Specific Name und External Name 
  - Qualifizierung von Daten-Typen und Routinen
  - Function Overloading und Function Resolution 
- CREATE FUNCTION - Varianten 
- Entwicklung einer User-defined Function 
  - Relevante DB2-Komponenten 
- Definitions-Beispiele und Aufruf-Varianten einer Funktion 
- Programmtechnische Besonderheiten 
  - Interne-Aufruf-Varianten und Scratchpad-Bereich 
  - Parameter der User-defined Function 
- PL- Procedure Language 
  - Überblick
    - SQL-Terminator und --#SET TERMINATOR 
  - SQL-Control-Statements 
    - Compound-Statement (SQL-Control-Statement) 
- Beispiele 
  - Einfache SQL Scalar Function
  - Einfache External Scalar Function (ohne SQL-Zugriffe) und einem externen COBOL-Modul
  - External Scalar Function (mit SQL-Zugriffen) und einem externen COBOL-Modul
  - External Table Function (mit SQL-Zugriffen) und einem externen COBOL-Modul
  - Beispiel der Parameterübergabe zwischen COBOL und PL/I 
      

Automatische Archivierung von Tabellendaten

- Überblick 
- Konzept 
- Komponenten 
  - Die Rolle der Globalen Variablen SYSIBMADM.GET_ARCHIVE und SYSIBMADM.MOVE_TO_ARCHIVE 
    - Daten-Bereitstellungs-Wirkungen aufgrund der Globalen Variablen SYSIBMADM.GET_ARCHIVE 
    - Archivierungs-Wirkungen aufgrund der Globalen Variablen SYSIBMADM.MOVE_TO_ARCHIVE 
  - Können auch LOB- und XML-Werte archiviert werden? 
- Vor-, Nachteile des Konzeptes und Restriktionen 
  - Vorteile des Konzeptes 
  - Nachteile des Konzeptes 
  - Restriktionen 

Temporal Tables- Daten unter Zeitbezug

- Zeitpunkte und Zeiträume 
- Temporal-Table-Typen 
  - Überblick und Terminologie 
- System-Period-Temporal Table - SYSTEM_TIME
  - Überblick 
  - System-Period-Temporal Table - SYSTEM_TIME - ohne Versionierung
    - Komponenten
    - Beispiel-Szenario
  - System-Period-Temporal Table - SYSTEM_TIME - mit Versionierung
    - Komponenten 
    - Konzept der Historisierung der Daten
    - Beispiel-Szenario
    - Utility-Auswirkungen der System Temporal Table mit Versionierung 
- Application/Business-Period-Temporal Table - BUSINESS_TIME (BI-Temporale Tabelle mit Versionierung)
  - Komponenten 
  - Beispiel-Szenario 
- Erweiterungen der DB2-Versionen 
  - DB2-Version 11 
    - Ausgabe von History-Zusatzinformationen (Audit-Informationen) 
    - Spezialregister: CURRENT TEMPORAL BUSINESS_TIME und CURRENT TEMPORAL SYSTEM_TIME und BIND-Optionen 
  - DB2-Version 12
    - Mehr Flexibilität bei der Definition von BUSINESS_TIME-Perioden (inklusiv-inklusiv)
    - Temporal Referential Integrity: Unterstützung der Referential Integrity durch Referential Constraints 
- Zusammenfassung Temporal Tables 
  - Technische Komponenten der Datenhaltung 
  - Katalog-Metadaten für Temporal Tables
  - Zusammenfassung der Konzepte und unterstützte Funktionalitäten 

Partition Management und Dynamische Partitions

- Überblick 
- Dynamische Partitions 
  - Hinzufügen einer neuen Partition
    - Einfügen einer neuen Partition am Ende des Tablespaces 
    - Einfügen einer neuen Partition an jeder beliebigen Stelle 
  - Online-Alter-Limit-Key: Online-Änderung der Partition-Grenzwerte (Limitkeys) 
  - Dynamische Partitions: Rotation 
    - Beispiel-Szenario 
  - Dynamische Partitions: Partition-Werte balancieren (REBALANCE) 
    - Beispiel-Szenario 
- UTS-PBR - Neues Page-Nummerierungskonzept mit Erhöhung der Partition-Größen und Verbesserung der Flexibilität 
  - APN - Absolute Page-Nummerierung und RPN- Relative Page-Nummerierung 
    - Beispiel-Szenario - Umstellung APN auf RPN 

STP - Stored Procedures

- Routinen-Typen 
- Grobe Zielsetzung einer Stored Procedure 
  - Aufruf einer remote Stored Procedure und Ablauf 
- Prozedur-Typen
  - DB2 External Stored Procedures und SQL Procedures 
  - Unterschiede zwischen Externen Routinen und SQL Routinen 
- Relevante DB2-Komponenten einer Stored Procedure 
- Kommunikations-Parameter einer Routine 
  - Parameter einer Stored Procedure 
    - Übergabe der Parameterwerte 
    - Parameter-Stil bei externen Prozeduren (Übergabe-Konventionen) 
  - Beispiel: Aufruf einer Stored Procedure über Trigger mit Parameter-Übergabe 
  - Unterstützung von nicht-strukturierten Spalten-Typen 
    - Unterstützung von LOB-Spalten und -Werten 
    - Unterstützung von XML-Spalten und -Werten 
  - Rückgabe einer Ergebnismenge (Query Result Set)
    - Beispiel: Stored Procedure mit Query-Result-Set-Übergabe 
- SQL-Prozeduren
  - Überblick: External und Native
  - Unterstützte Programmiersprachen und Sprachmittel 
  - External SQL Procedure 
    - Entwicklung einer externen SQL Procedure 
  - Native SQL Procedure
    - Entwicklung einer Native SQL Procedure 
    - Unterstützung von Nested Compound SQL-Statements 
    - Argument-Typen bei der Definition einer SQL-Routine 
    - Versions-Konzept einer SQL Native Procedure 
- Gemeinsame Konzepte für External und SQL-Prozeduren 
  - Level-Konzept (Nested Routines) 
    - Überblick 
    - Behandlung von Spezialregistern beim Aufruf von Routinen 
    - Fehlerbehandlung in Routinen 
  - DETERMINISTIC oder NOT DETERMINISTIC - das ist hier die Frage
  - Übersicht der nutzbaren SQL-Statements in Routinen und Triggern 
  - Verhalten von Dynamic SQL-Statements (Statement Behavior) 
  - Package- und Plan-Behandlung 
    - Behandlung der externen Module
    - Wechsel der Package
    - Nutzung verschiedener Programm-Versionen 
  - Erforderliche Privilegien 
- Bewahrung der Daten-Integrität (COMMIT und ROLLBACK) 
  - Autonome Stored Procedure mit eigener UOW/UOR 
    - Konzept 
- Ausführungsumgebung von Routinen 
  - Relevante Komponenten 
  - z/OS-Ausführungs-Umgebung von externen Routinen 
  - Überblick 
  - Adressräume für Stored Procedures und/oder User-defined Functions 
    - WLM-gemanaged 
    - WLM-Adressraum-Installation 
    - DB2-Installations-Parameter für WLM 
    - WLM-JCL-Beispiel
    - Steuerung des WLM-Adressraums 
    - Kontrolle und Abbruch aktiver Routinen 
  - RRSAF-Attachment: Statisches oder dynamisches Laden 
  - Starten und Stoppen von Routinen 
- Testmöglichkeiten in der WLM-Umgebung 
  - Test-Tools (Debugger)
    - Allgemeine Problematik 
    - Test-Tools (Debugger)
    - Besonderheiten beim Test
    - Routinen-Versionen einer SQL Native Procedure 
- Monitoring der Routinen, ihre Aufrufe und Aufwendungen 
  - -DISPLAY-Command 
  - Monitor für Accounting-, Statistik- und Performance-Daten 
    - Beispiel: OMEGAMON 
- Ausführungs-Steuerung (Optionen) von Routinen
  - Übersicht der Options-Argumente und Zuordnungen zu den Routinen-Typen
  - Options-Übersicht der Argumente in der "option-list" für Routinen und Trigger 
- Vor- und Nachteile
  - Vorteile von Stored Procedures
  - Nachteile von Stored Procedures
  - Vorteile einer Stored Procedure gegenüber einem Unterprogramm 

Trigger

- Komponenten einer "aktiven Datenbank" 
  - Effizienzverbesserung bei der Integritätsbewahrung 
- Trigger-Typen und ihre Aufgabenstellung 
- Trigger-Events 
- Trigger-Terminologie 
  - Beispiel eines Triggers 
  - Trigger-Charakteristiken 
- DB2-Komponenten eines Triggers 
  - Basic- und Advanced Trigger
    - Charakteristiken der beiden Trigger-Typen
    - Gegenüberstellendes Beispiel eines Basic- und eines Advanced Triggers 
    - Dokumentation von Basic- und Advanced Trigger im Katalog 
    - Änderungs-Möglichkeiten und der Varianten von Triggern 
- Aktivierungszeit: BEFORE 
  - Trigger-Beispiele 
    - Trigger mit Abweisung ungültiger Referenzen (RI-Erweiterung) 
    - Trigger zur Einsetzung von Initialwerten bei Einfügungen 
    - Trigger mit Übernahme redundanter Daten
    - Trigger mit Aufruf einer Funktion 
- Aktivierungszeit: AFTER 
  - Trigger-Beispiele
    - Verwaltung von Redundanzen 
    - Trigger mit Übergabe einer Transition-Table an eine Funktion 
    - Trigger mit Übergabe von Transition-Variablen an eine Funktion 
- Aktivierungszeit: INSTEAD OF 
- Ablauf der Verarbeitung bei Einsatz eines Triggers 
- Result Table des Triggers 
  - Transition-Variablen 
  - Transition-Tables 
  - Aufruf von Routinen aus einem Trigger heraus 
    - Aufruf-Techniken 
- Fehler-Behandlung
  - Fehler-Erkennung und -Signalisierung
    - Fehler bei der Ausführung der Trigger-Statements 
- Trigger-Package
  - Erzeugen und Löschung einer Trigger-Package 
  - Abhängigkeiten einer Trigger-Package 
  - Trigger-Package für einen Basic Trigger 
  - Trigger-Package für einen Advanced Trigger 
- Trigger-Restriktionen
- Vor- und Nachteile von Triggern 

Workshops/Fallbeispiele:

- Sehr intensiver Workshop mit vielen Referenten-Beispielen.

 nach oben 

DB2-V11
DB2-Version 11 for z/OS

Zielgruppe:

- Alle, die an DB2-Versions-Details interessiert sind.

Voraussetzungen:

- Gute DB2-Kenntnisse.

Kursinhalte:

DB2-Version 11 for z/OS

 DB2-Entwicklungsgeschichte

DB2 Version 11: Systemtechnische Erweiterungen und Verbesserungen

Die DB2-Produkt-Familie: Grob-Überblick
Bufferpool-Erweiterungen
Erweiterung der LOG-RBA bzw LRSN vom Basis-Format auf ein erweitertes Adressierungs-Format (extended log record format)
- 6-Byte Basic Format und 10-Byte Extended Format
- Betroffene Komponenten
- Komponenten der Format-Erweiterung
- Beispiel-Szenario einer Partition-Umstellung
- REORG partitionweise
- Kontrolle des Effekts im Katalog
- Kontrolle der Umstellung in einem Header-Page-Dump
Erweiterungen für Temporal Tables
- Überblick der Erweiterungen und Veränderungen in Version 11
- Spezialregister: CURRENT TEMPORAL BUSINESS_TIME und CURRENT TEMPORAL SYSTEM_TIME und BIND-Optionen
- Überblick
- Beteiligte Komponenten
- Zusammenfassende Manipulations-Regeln für temporale SQL-Statements, wenn die temporalen Spezialregister zu berücksichtigen sind
- Test-Beispiel
- Der problematische Einsatz dieses Spezialregisters - Detail-Erläuterung und Beispiele
- Beispiele mit unterschiedlicher Belegung der Spezialregister-Inhalte
- Unterstützung von DB2-Views
- Keine Unterstützung mehr für SQL-Table-Funktionen und MQTs
Automatische Archivierung von Tabellendaten
- Komponenten
- Restriktionen
SQL-Versions-/Release-Kompatibilität
- Spezialregister: CURRENT APPLICATION COMPATIBILITY
- Schemata zur Bewahrung der Versions-Unterschiede für SQL-Funktionalitäten
Online-Schema-Erweiterungen mittels "Pending Changes"
- Überblick der V11-Erweiterungen
- ALTER TABLE DROP COLUMN
- ALTER TABLE DROP COLUMN-Szenario-mit Auslagerung einer Tabellen-Spalte in eine andere Tabelle und anschließendem DROP COLUMN
- Online-Alter-Limit-Key: Online-Änderung der Partition-Grenzwerte (Limitkeys) - DDL-Verwaltungs-Restriktionen bei Objekten mit "Pending Changes"
Sonstige SQL-DDL-Erweiterungen und Verbesserungen
Security-Verbesserungen
- Engere Anbindung von RACF als ESM
- Programm-Autorisierung (program authorization)
Verbesserungen für Threads mit BIND-Option RELEASE (DEALLOCATE)
Erweiterung, Verbesserungen der DB2-Utilities
- Überblick der Erweiterungen für die Daten-Management-Utilities
- Globale Steuerungs-Einflussnahmemöglichkeit auf die Parallelverarbeitung relevanter Utilities
- LOAD-Utility
- Verbesserungen beim Parallel-Laden mit neuer Option PARALLEL
- REORG-Utility
- Diverse neue Optionen für die Reorganisation
- Erweiterte Beeinflussungsmöglichkeit der Sortier-Aktivitäten beim REORG TABLESPACE-Utility
- Beeinflussung des Parallel-Verarbeitungs-Grad beim REORG-Utility mit neuer Option LISTPARTS und Automatismen
- Beispiele mit unterschiedlicher Parametrisierung
- Explizites und implizites Aktivieren der Parallel-Verarbeitung
- Aussetzen der Parallel-Verarbeitung bzw. zumindest der Versuch
- REORG-Beispiele mit einem Partitioned Tablespace mit 1 Mio Daten und 5 Indizes
- SORTNPSI - Sollen NPI-Index-Daten komplett entladen werden oder nicht?
- Beispiel SORTNPSI YES
- Implizites Erzeugen der Mapping-Tables und -Indizes beim Online-REORG mit SHRLEVEL CHANGE
- Unterstützung der REBALANCE-Option beim Online-REORG mit SHRLEVEL CHANGE
- Verbesserungen in der SWITCH-Phase
- Physisches Löschen leerer UTS-PBG-Partitions und Behandlung des Freiplatzes beim REORG
- Inline-Kopien können beim REORG partitionweise erzeugt werden (partition-level inline image copy)
- RUNSTATS-Utility
- Nutzung von Default-Profilen bei LISTDEF-Objektvorgaben
- Zurücksetzen des kompletten Statistik-Stands auf den Initialisierungszustand (RESET ACCESSPATH)
- Effizienzverbesserung beim RECOVER von Katalog- oder Directory-Objekten
- Zusammenfassung der Utility-Erweiterungen
Automatisches Recovery von Indizes im Data Sharing mit GRECP- bzw. LPL-Status
- Index-Verfügbarkeit sofort nach GRECP- bzw. LPL-Recovery
Erweiterungen und Änderungen der Installations-Parameter (ZPARMS)
- Neue Installations-Parameter
- Geänderte Installations-Parameter
- Nicht mehr verfügbare Installations-Parameter
DB2-Directory und DB2-Katalog
- Zusammenfassung der Katalog-Veränderungen
- Versionsbezogene Entwicklung des Katalogs
- Neue Katalog-Tabellen
- Erweiterte Katalog-Tabellen
- Katalog-nahe Tabellen
- Übersicht der Tables und Tablespaces in Version 11
- V11-Katalog-Tabellen-Änderungen
- Spalten-Übersicht der Directory-Tabellen aus dem Katalog Zusammenfassung der Sprach-Erweiterungen
- Neue allgemeine Sprachmittel
- Funktionen (Scalar, Row und Table)
- Neue oder veränderte Spezialregister
- Neue oder veränderte Builtin-Globale Variablen
- Neue oder veränderte DB2-Commands
- Erweiterungen der DB2-Utilities
- Online-Utilities
- Neue und veränderte SQL-Statements
- Neue SQL-Statements
- Veränderte/erweiterte SQL-Statements
Sonstige Erweiterungen
Offene, zu klärende Punkte
Erweiterte zIIP-Nutzung
Einstellung der Funktions-Unterstützung
Migration von DB2-Version 10 zur DB2-Version 11

DB2-V11 - Verbesserungen. Erweiterungen der Anwendungsentwicklungs-Komponenten

Überblick
Erweiterung des User-defined (Daten-) Typen-Konzeptes um ARRAYs
- Typologie
- Einfacher/Ordinary Array und Assoziativer Array
- Vergleich von Einfachem/Ordinary Array und Assoziativen Array
- Komponenten
- Funktions-Überblick
- Weitere Detail-Beispiele
- Darstellung der Testumgebung
- Ordinary Array
- ARRAY-Expression, ARRAY-Element-Spezifikation und ARRAY-Konstruktor
- ARRAY_EXISTS-Prädikat
- UNNEST-Spezifikation
Erweiterung des Variablen-Konzeptes um Benutzer-definierte Globale Variablen
- Überblick der Variablen-Typen
- System-definierte Globale Variablen
- Überblick
- Komponenten der Benutzer-definierten Globalen Variablen
- Überblick
- Nutzungs-Beispiel
- Nutzungs-Möglichkeiten, Besonderheiten und Restriktionen
- Die Bedeutung von Schema und SQL-Pfad
Generische Table-Funktion
- Überblick der Komponenten
SQL-DML-Erweiterungen
- Unterstützung von Grouping-Sets und Super-Groups (ROLLUP und CUBE) im GROUP BY
- Grundsätzliche Verarbeitungs-Regeln für Grouping-Sets und Super-Groups im GROUP BY
- Beispiele einer kompletten Verdichtung aller Kombinationen Autonome UOW/UOR einer Stored Procedure
- Konzept
- Beispiel-Szenario mit möglichem Ressource-Konflikt
Sonstige Erweiterungen

DB2 V11 - Performance-Verbesserungen

Überblick
Index-Verbesserungen
- Ausschluss von NULL-Werten aus dem Index (EXCLUDE NULL KEYS)
- Index-Cleanup: Steuerung der automatisierten Bereinigung von Pseudo-Delete-Index-Einträgen
Dokumentieren und Ausschreiben fehlender oder kritischer Statistiken durch den Optimizer
- Beispiel-Szenario
Extended Optimization: Beeinflussung der Selektivitäts-Statistiken (Statement-level selectivity overrides)
- Überblick
- Überschreiben der DB2-Selektivitäts-Statistiken (overriding selectivities)
- BIND QUERY-Funktionen
- Komponenten zum Überschreiben der DB2-Selektivitäts-Statistiken (overriding selectivities)
- Zusammenfassung der Komponenten zum Überschreiben der DB2-Selektivitäts-Statistiken
- Beispiel-Szenario
Zugriffspfad-Analyse
- Und ständig werden es mehr und mehr EXPLAIN-Tables
- Wirkungsweise der Block Fetch-Verfahren
Verteilte Anwendungen (Distributed Applications)
- Package-basierender Continuous-Block-Fetch für DDF-Anwendungen
Verbesserungen bei den Optimizer-Regeln
- Prädikat-Modifikationen und Indexable-Einstufung bestimmter Funktionen
- Entfernen von Prädikaten, die immer 'wahr' oder immer 'falsch' sind
Performance-Verbesserungen im Data Sharing
- Reduktion der Group-Bufferpool-Nutzung bei intensiven Write-Aktivitäten von Threads (group-bufferpool-write-around-protocol)
Signalisierung von überhöhten Workfile-Nutzungen
Sonstige Verbesserungen bzw. Erweiterungen

Workshops/Fallbeispiele:

- Es wird kein praktischer Workshop durchgeführt.
- Bei Inhouse-Seminaren kann eine praktische Workshop-Umgebung eingerichtet werden.

 nach oben 

DB2-V12
DB2-Version 12 for z/OS

Zielgruppe:

- Alle, die an DB2-Versions-Details interessiert sind.

Voraussetzungen:

- Gute DB2-Kenntnisse.

Kursinhalte:

DB2-Version 12 for z/OS

 DB2-Entwicklungsgeschichte

DB2 Version 12: Systemtechnische Erweiterungen und Verbesserungen

Die DB2-Produkt-Familie: Grob-Überblick
Migration von DB2-Version 11 zur DB2-Version 12 - Single Phase-Migration
- Code Level, Catalog Level, Function Level und Application Compatibility Level
- Level-Nutzung und -Bereitstellung in Spezialregistern und Globalen Variablen
- Function Level: Verfügbarkeit der V12-Funktionalitäten - Application compatibility (APPLCOMPAT) und Fallback auf einen Star Function Level
Neues Page-Nummerierungskonzept mit Erhöhung der Partition-Größen und Verbesserung der Flexibilität
- APN- Absolute Page-Nummerierung und RPN- Relative Page-Nummerierung - Record-Identifier (RID) - Erweiterung
Trigger-Erweiterungen
- Basic- und Advanced Triggers
- CREATE TRIGGER (Advanced): Syntax-Diagramm
Von nun an wird eingepackt (Obfuscated Source Code - WRAP)
- Komponenten
Temporal-Table-Erweiterungen
- Mehr Flexibilität bei der Definition von BUSINESS_TIME-Perioden (inklusiv-inklusiv)
- BUSINESS_TIME Period - Verhalten der Daten beim UPDATE
- Unterstützung der Referential Integrity durch Referential Constraints
- Beteiligte Komponenten
- Beispiel- Szenarien
- Syntax-Beispiele
- Unterstützung von Temporal Logical Transactions für System-Period Temporal Tables (STT)
- Beteiligte Komponenten
- Spezifikation von logischen und physischen Transaktionsbereichen
- System-maintained Temporal Table-Konzept für Katalog-Tabellen
- Beteiligte Komponenten
Online-Schema-Erweiterungen
- Überblick der unterstützten PENDING-CHANGE-Funktionen
- DDL_MATERIALIZATION-Ein ussnahme auf sofortigen Vollzug der Änderung oder Pending-Status (nur für Änderungen von Spalten-Charakteristiken)
- Aspekte des sofortigen Vollzug der Änderung oder des Setzen eines Pending-Status (bei Änderungen von Spalten-Charakteristiken)
- Einfügen einer neuen Partition an jeder beliebigen Stelle
- Zusätzliche Reorganisations-Infos in SYSPENDINGDDL Übertragung der Eigentümerschaft eines DB2-Objektes (TRANSFER OWNERSHIP) Utility-Erweiterungen und Verbesserungen
- LOAD-Utility
- DRDA Fast Load
- UNLOAD-Utility
- REORG-Utility
- Überblick der Erweiterungen
- UTS-PBG-Erweiterungen
- RUNSTATS-Utility
- Überblick der Erweiterungen
- MODIFY RECOVERY-Utility Überblick der Erweiterungen
- Sonstige Utility-Erweiterungen Speicherung von Session-Daten im z/OS-Server (session token support) DB2 und der Rest der Welt Sonstiges Inkompatibilitäten und Besonderheiten der Version 12
- Veraltete Funktionalitäten (deprecated) Erweiterungen/PTFs seit der Auslieferung der Basis-Version 12

DB2-V12 - Verbesserungen. Erweiterungen der Anwendungsentwicklungs-Komponenten

Überblick
Neue Builtin-Funktionen
- Aggregations-Funktionen
- LISTAGG
- MEDIAN
- PERCENTILE_CONT
- PERCENTILE_DISC
- Skalare Funktionen
- HASH_CRC32, HASH_MD5, HASH_SHA1 und HASH_SHA256 Ermitteln Streuwert (Hash-Value) mittels Hash-Algorithmus
- WRAP - Lesbare Daten in unkenntliche bzw. schwer lesbare Daten kodieren (Obfuskation/obfuscate)
Erweiterungen beim MERGE-Statement
- MERGE: Syntax-Diagramm Gesamt-Überblick
Verarbeitungsmöglichkeit von Teilmengen der Result Table
- Blätter-Funktionalität/Aufsetzen auf Teilmenge (SQL Pagination Support)
- Basis-Prädikat und Row-Value-Expression mit Range-Operatoren
- SELECT: Sub-Select: Offset-Klausel: Überspringen von Ergebniszeilen der Result Table
- Anwendungsbeispiele (relevante Auszüge)
- DELETE von Teilmengen der Result Table
- FETCH-Klausel
ARRAY-Erweiterungen
Sonstige Erweiterungen

DB2 V12 - Performance-Verbesserungen

Überblick
Fast Un-clustered INSERT 
- Insert-Algorithmen
Index-Erweiterungen und Verbesserungen
- Fast Index Traversal (in-memory index optimization)
- Adaptiver Index zur Ausführungszeit (Execution time adaptive index)
Prädikat-Verarbeitung
- RUNSTATS für XML-Objekte, Frequency- und Histogramm-Statistiken für XML-Indizes sowie Filter Faktor-Kalkulation für das XMLEXISTS -Prädikat
Verbesserung beim Sort
- Vermeidung von Sort-Aufwendungen in Verbindung mit der FETCH FIRST-Klausel
- Vermeidung von Sort-Aufwendungen für OLAP-Funktionen mit der PARTITION BY- und ORDER BY-Klausel
- Reduzierung von Sort-Aufwendungen durch Verkürzung der Sort-Keys
- Sonstige Sort-Erweiterungen Einfügung von Prädikaten in innere Queries (pushdown) und Eliminierung nicht benötigter Spalten (pruning unused columns)
- Verbesserungen für Outer Joins und UNION ALL
- Verbesserungen für Views und Table Expressions
Static Plan Stability- Erweiterungen
- Überblick der Komponenten
- REBIND PACKAGE: APREUSESOURCE(PREVIOUS) oder APREUSESOURCE(ORIGINAL)
- FREE PACKAGE command PLANMGMTSCOPE (INACTIVE, ORIGINAL oder ALL) sowie INVALIDONLY (YES oder NO)
- Erweiterte BIND-Information für APCOMPARE und APREUSE in der Tabelle DSN_STATEMNT_TABLE
Dynamic SQL Plan Stability
- Grundsätzliche Aspekte bei der Abwicklung von dynamischen SQL-Statements
- Effizienz-Level für dynamische SQL-Statements bei erneuter Nutzung
- Stabilisierung von dynamischen SQL-Statements im Katalog
- Beteiligte Komponenten
- Stabilisierungs-Methoden
- Installationsparameter CACHEDYN_STABILIZATION und seine Wirkung
- -START DYNQUERYCAPTURE und die möglichen Optionen
- Identifizierung von Kandidaten für die Statement-Stabilisierung
- Invalidierung von Stabilisierten Dynamischen SQL-Statements
- EXPLAIN-Analyse von Stabilisierten Dynamischen SQL-Statements
Invalidierung von Dynamic SQL-Statements im Dynamic Statement Cache (DSC)
Automatische Aktualisierung von Statistik-Profilen
Resource Limit Facility (RLF) für Static SQL
- Überblick
- RLF-Installations-Parameter
- RLF-Tabellen
- RLMT - Resource Limit Table
- RLST - Resource Limit Specification Table Sonstige Erweiterungen

Zusammenfassung der Versionsänderungen

Erweiterungen und Änderungen der Installations-Parameter (ZPARMS) 
- Neue Installations-Parameter
- Geänderte Installations-Parameter
- Nicht mehr verfügbare Installations-Parameter
DB2-Katalog
- Neue Katalog-Tabellen
- History-Tabellen im Katalog als System-maintained Temporal Tables
Erweiterungen und Änderungen der DB2-Commands
- Neue DB2-Commands
- Erweiterungen der Optionen von DB2-Commands
Erweiterungen der DB2-Utilities
- Online-Utilities
Neue und veränderte SQL-Statements
- Neue SQL-Statements
- Veränderte/erweiterte SQL-Statements

Workshops/Fallbeispiele:

- Es wird kein praktischer Workshop durchgeführt.
- Bei Inhouse-Seminaren kann eine praktische Workshop-Umgebung eingerichtet werden.

 nach oben 

XML-GR
XML-Grundlagen

Zielgruppe:

Alle, die an XML-Grundlagen interessiert sind.

Voraussetzungen:

- keine

Kursinhalte:

XML - Extensible Markup Language

Einführung
  - Die Rolle von Metadaten und Daten
  - Trennung von Metadaten und Daten unter XML durch Marken ('Tags')
- (Un)Verbindliche theoretische Grundlagen und Quellen von XML
- Die Empfehlungen des Worldwibe Web Consortiums (W3C)
- XML-Versionen 1.0 und 1.1
- XML-Basis-Terminologie
- Was heißt und bedeutet 'XML'
- Zielsetzung und Aufgabenstellung von XML
- Kurze historische Entwicklungsgeschichte von XML
- XML-Familie
- Modell- und Schema-Komponenten
- Auf XML basierende Weiterentwicklungen
- XML-Dokument (XML-Dokument-Instanz)
- Der Aufbau eines XML-Dokuments
- Daten-orientiertes XML-Dokument
- Dokument-orientiertes XML-Dokument
- Das hierarchische Konzept von XML
- Das XML-Dokument reicht vom Einzeiler bis zur Abbildung komplexer Strukturen
XML-Metadaten-Überblick
- Ein XML-Dokument muss korrekt sein
- Mindest-Anforderung: wohlgeformt (well-formed)
- XML ist case-sensitiv, SQL aber nicht!
- Erweiterte wichtige Anforderung: gültig (validate)
- Gültiges XML-Dokument mit DTD-Definition
- Gültiges XML-Dokument mit XML-Schema-Definition
- Metadaten-Kategorien
- Information-Set eines XML-Dokuments
- Element und Attribut
- Element
- Attribut
- Normalisierung der Element- bzw. Attribut-Werte
XML-Metadaten: DTD - Document Type Definition
- Einfaches Beispiel für Elemente und Attribute
- DTD-Schlüsselworte
- XML-Deklaration und DOCTYPE (<!DOCTYPE..>) - ELEMENT-Typ (<!ELEMENT ... >)
- Beispiel-DTD mit Element-Typen
- Attribut-Typ (<!ATTLIST ... >)
- Beispiel-DTD mit Element- und Attribut-Typen
XML-Metadaten: XML-Schema
- XML-Schema-Dokument und XML-Instanzen-Dokument
- Daten-Typen des XML-Schemas
- Einschränkende Fassetten der Daten-Typen des XML-Schemas
- Struktur-Typen des XML-Schemas
- Schema-Komponenten
- Grober Überblick
- Komponenten-Typen, Typ-Deklarationen und -Definition
- Globale und lokale Komponenten
- Beziehungs-Diagramm der XML-Schema-Komponenten
- Design-Methoden des XML-Schemas
- Grundsätzliche Überlegungen
- Matroschka-Design: Individuelles Schema mit lokalen Elementen
- Salami-Design: Globales Schema mit ausschließlich globalen Elementen
- Jalousie-Design: Globales Schema mit Typen
- Umsetzung methodischer Prinzipien mit dem XML-Schema
- Generalisierung, Aggregation/Komposition und Spezialisierung
- Umsetzung der DTD-Komponenten in das XML-Schema
- Namensraum/Namespace-Konzept
- Der Zwang zu eindeutigen Namen
- Konzepte für Namenskonventionen mit eindeutigen Namen
- Der eindeutige Namensraum-Name ist ein URI
- Definition eines Namensraums mit dem Spezial-Attribut 'xmlns'
- Varianten der Namensraum-Nutzung
- Impliziter Namensraum mit Ziel-Namensraum
- Expliziter Namensraum mit Ziel-Namensraum
- Zusammenwirken mehrerer Namensräume: Heterogenes Design
- Schema-Bausteine mit gemeinsamem Namensraum (Chameleon-Effekt)
XPath-Sprachkomponenten
- Basis für XPath ist eine XML-Daten-Modell-Instanz
- Serialisierung, Sequenz und Atomisierung
- Generierung eines XML-Daten-Modells
- Beispielhafte XML-Dokument-Instanz
- Beispielhaftes XML-Daten-Modell
- Beispielhafte XML-Daten-Modell-Instanz
- Hierarchie-Regeln und -Funktionen des XML-Daten-Modells
- Test des Knoten-Typs (Kind-Test des Node-Types)
- Kontext-Knoten (Context Node)
- Achsen-Funktionalitäten: Vorwärts- und Rückwärts-Bewegungen
- Beispiele der Achsen-Funktionalitäten
- XPath-Ausdruck (XPath-Expression)
- Syntax-Struktur-Komponenten
- XPath-Funktionen
- Überblick der XPath-Funktionen
- Namensraum-Kürzel für XPath-Funktionen
XQuery-Sprachkomponenten
- XQuery-Beispiele - XQuery-Ausdruck (XQuery-Expression)
- Syntax-Struktur-Komponenten
XML-Schema- und XML-Daten-Verwaltung unter DB2
- Beispiel-Schema
- Beispiel-XML-Dokument
- Überblick der beteiligten Komponenten
- Übersicht der XML-Speicherstruktur
- Manipulation der XML-Dokumente
- DB2-Schema-Verwaltung
- Einstellung von gültigen XML-Daten
- Komposition und Dekomposition eines XML-Dokuments
- Überblick
- Komposition eines XML-Dokuments
- Beispiel von Kompositionen mit SQL-Funktionen
- XML-Wert als DB2-Datent-Typ konvertieren
- XML-Wert aus DB2-Datentypen erzeugen
- Dekomposition von XML-Daten (Shredding)
- XML-Schema für Annotationen
- Beispiel einer De-Kompositionen mit der SQL-XMLTABLE-Funktion
- XML-Wert als DB2-Datent-Typ konvertieren.

Workshops/Fallbeispiele:

- Es wird kein Workshop durchgeführt - nur theoretische Wissensvermittlung.

 nach oben 

SQL-VERTIEF
SQL-Vertiefung

Zielgruppe:

Alle, die die SQL-Entwicklungen über die Versionen hinweg erlernen wollen.

Voraussetzungen:

- Gute DB2-Kenntnisse

Kursinhalte:

SQL-Sprach-Grundlagen

- Grober Überblick der Basis-Sprach-Elemente
- Detail-Darstellung der Basis-Sprach-Elemente
- Expression - Operator
- Labeled Duration und DateTime-Arithmetik
- Row-Value-Expression (Row Expression) - Predicate / Prädikat - Search Condition / Such-Bedingung
- Function / Funktion - Funktions-Typen - Builtin Functions - Aggregate Function (vor V8: Column Function) - Skalare Funktionen / Scalar Functions - Table Functions - OLAP-Spezifikation
- Syntax der OLAP-Spezifikation
- Beispiele der OLAP-Aggregations-Funktionen

SELECT-Statement

- Grund-Funktionalität
- Die wesentlichen Klauseln des SELECT-Statements
- SELECT-Klausel
- Bereitstellung von Daten aus einer einzelnen Tabelle - Bereitstellung von Daten aus mehreren Tabellen (Join) - Verdichtung der Result Table (DISTINCT)
- FROM-Klausel
- Bereitstellung von Daten aus Basis-Tabellen bzw. Views
- WHERE-Klausel
- Einfache Vergleichsoperatoren
- Subquery
- ORDER BY-Klausel
- GROUP BY-Klausel
- SELECT-Statement: Zusammenfassung
- SELECT-Komponenten
- SELECT-Statement-Typen und Syntax-Einordung - SELECT-Klauseln: V8 und V9
- Join-Typen und deren Ergebnisse
- Inner Join
- Outer Join
- Left Outer Join
- Right Outer Join
- Full Outer Join
- Die Wirkung der ON-Klausel
- Verknüpfung mehrerer Join-Typen
- Table Expression
- Überblick
- Nested Table Expression
- Nested Table Expression mit CASE-Beispiel
- Common Table Expression (ab DB2-Version 8)
- Beispiel: Aggregate Funktionen schachteln
- Rekursives SQL
- Scalar Fullselect (ab DB2-Version 8)
- Beispiele - Scalar Full-Select in der WHERE-Bedingung
- Scalar Full-Select in der CASE-Expression
- Möglichkeiten und Risiken - Subquery
- Einsatzformen
- Non-Correlated und Correlated Subquery
- Vereinigung von Daten zweier Result Tables
- Überblick Set-Operatoren
- UNION
- INTERSECT (ab DB2-Version 9)
- EXCEPT (ab DB2-Version 9)
- Zusammenführen der Daten mehrerer Tabellen
- Abgrenzung eines Joins zum Set-Operator
- Spezialregister
- Session-Variablen (ab DB2-Version 8, erweitert in DB2-Version 9)
- Sonstige SQL-Erweiterungen der DB2-Version 8

DML-Manipulations-Statements

- Funktionalität
- Varianten der Manipulations-Statements
- Rowset-Verarbeitungs-Modus (ab DB2-Version 8)
- Host-Variablen-Array und FOR n ROWS-Klausel
- Multi-row INSERT
- GET DIAGNOSTICS-Statement (ab DB2-Version 8)
- MERGE-Statement (ab DB2-Version 9)
- TRUNCATE-Statement (ab DB2-Version 9)
- SELECT der Result Table einer Data Manipulation
- SELECT FROM FINAL TABLE (INSERT) - ab DB2-Version 8
- SELECT FROM OLD und FINAL TABLE (UPDATE, DELETE, MERGE) - ab DB2-Version 9

Cursor-Konzept

- SQL-Verarbeitungstypen in Programmen
- Cursor-Typen
- Ist die Result Table des Cursors read-only oder updateable?
- Scrollable Cursor
- Scrollable Cursor-Typen und ihre Result-Table-Modelle
- Static Scrollable Cursor
- Positionierungs-Möglichkeiten in der Result Table
- Manipulationen über die Result Table eines Static Scrollable Cursors
- Dynamic Scrollable Cursor (ab DB2-Version 8)
- Positionierungs-Möglichkeiten in der Result Table
- Manipulationen über die Result Table eines Dynamic Scrollable Cursors
- Rowset-Verarbeitung (ab DB2-Version 8)
- Übersicht
- Host-Variablen-Array
- Scrollable Cursor: Positionierung mit Rowsets
- Analyse der Rowset-Verarbeitungs-Ergebnisse mit GET DIAGNOSTICS

Funktionen, die DDL-Definitionen fordern

- Vergabe einer lfd. Nr. durch DB2
- IDENTITY-Charakteristik und SEQUENCE-Objekt (ab DB2-Version 8)
- Einsatz-Möglichkeit
- Vergleich der Verfahren
- Automatische Vergabe eines Änderungs-Zeitstempel durch DB2
- ROW-CHANGE-Expression (ab DB2-Version 9)
- Optimistic Locking
- Native SQL-Prozeduren (ab DB2-Version 9)
- Aufgabenstellung und Funktionsumfang
- Unterstützung von Nested Compound SQL-Statements
- Instead-of-Trigger (ab DB2-Version 9)
- Aufgabenstellung und Funktionsumfang
- Nutzungs-Beispiel

LOB- und XML-Werte

- Verarbeitung von LOB-Daten
- Behandlung komplexer Objekte im DB2
- Bereitstellungs-Methoden von LOB-Daten
- Schrittweise Bereitstellung kompletter LOB-Werte durch FETCH CONTINUE (ab DB2-Version 9) - LOB-File-Referenz: Referenz auf eine externe Datei, die einen LOB-Wert enthält
- Verarbeitung von XML-Dokumenten (ab DB2-Version 9)
- XML-Daten: Bereitstellungs-Techniken
- Manipulation von XML-Dokumenten
- Manipulation kompletter XML-Dokumente
- Manipulation von Knoten innerhalb eines XML-Dokuments
- SQL-XML-Funktionen: Beispiele für Komposition und De-Komposition
- XML-Objekte: XML Table, DocID- und NodeID-Index, XML-Index und XML-Tablespace

Workshops/Fallbeispiele:

- Es wird ein Workshop durchgeführt. Die Teilnehmer können die Workshop-Inhalte beeinflussen. Der Workshop kann unter z/OS oder Windows durchgeführt werden (unter Windows ohne Programmier-Beispiele).

 nach oben 
 

D-65201 Wiesbaden-Frauenstein -- Im Weingarten 47 -- Tel: +49 611 72 47 66 50 -- Fax: +49 611 72 47 66 51 -- e-mail:info@dgd-ub.de

Hinweis zum Datenschutz: Datenschutzerklärung