DB2 for z/OS Taller de Programación de Aplicaciones Duración: 5 días (40 hrs.) Descripción Curso diseñado para presentar los conceptos fundamentales del desarrollo de aplicaciones en el manejador de base de datos DB2 for z/OS (IBM mainframe). Inicialmente, se cubren temas básicos como el SQL estático y dinámico y la programación en lenguajes tradicionales de mainframe (lenguajes de 3a. generación) como COBOL y PL1. Posteriormente, se describe el procedimiento de generación de aplicaciones, haciendo énfasis especial en el proceso de BIND de DB2 for z/OS y la estructura de planes y paquetes. Finalmente, se incluyen algunos temas de actualidad como el desarrollo de Stored Procedures y la programación de aplicaciones utilizando las facilidades objeto-relacionales de DB2, así como interfaces de programación “actuales” como CLI, ODBC y JDBC. Se incluyen prácticas de laboratorio para que los asistentes puedan aplicar los conocimientos adquiridos en las sesiones de teoría. Se entrega a los asistentes una copia de las notas del curso. Audiencia Programadores, Líderes de Proyecto, Administradores de Base de Datos, Usuarios Finales y en general cualquier otra persona que esté interesada en conocer el ambiente de programación del manejador de base de datos IBM DB2 for z/OS (IBM mainframe). Prerrequisitos Se recomienda que los asistentes a este curso cuenten con los siguientes conocimientos previos: Lenguaje SQL, en sus componentes DDL, DML y DCL. Experiencia de al menos 3 meses trabajando con el manejador de base de datos DB2 for z/OS. Conocimiento de programación de aplicaciones en SQL. Conocimiento de lenguajes de programación de 3a. Generación como C o COBOL. Familiaridad con interfaces para SQL como SPUFI. Contenido Módulo 1: Introducción Introducción al ambiente aplicativo en DB2 Alternativas de Programación SQL estático (“inmerso”) SQL dinámico CLI/ODBC OLE DB Aplicaciones Java Java Applets JDBC SQLJ Stored Procedures DB2 Connect Responsabilidades de un desarrollador Responsabilidades de un DBA de DB2 Entrenamiento Ejecutivo, S.C. Circuito del Mesón 186 Int. 12, Fracc. El Prado Tel. (442) 215.0021 www.executrain-qro.com DB2 for z/OS Taller de Programación de Aplicaciones Duración: 5 días (40 hrs.) Módulo 2: Repaso sobre arquitectura de objetos en DB2 for z/OS Database Tablespace Tablas Instrucción CREATE TABLE Tipos de datos Valores nulos Integridad Referencial Constraints Aliases Global Temporary Tables Vistas Check Option Local Check Option Cascaded Check Option Módulo 3: Estructura de Programas con SQL inmerso (embedded SQL) Lenguajes de programación soportados por DB2 SQL “inmerso” (embedded SQL) Delimitadores del SQL Variables Host Equivalencias de tipos de datos de DB2 contra variables Host Instrucción SELECT... INTO Variables Indicadoras SQLCA y manejo de Errores Módulo 4: Procedimiento de Preparación de Programas Precompilación Compilación y Link-edición DB2 BIND Planes en DB2 for z/OS Packages en DB2 for z/OS Características y funcionalidad de los Packages Versionamiento Resolución del Package a ejecutar – registro CURRENT PACKAGE PATH Resolución de nombres de objetos no calificados Parámetros del comando BIND Ambiente de ejecución de programas Módulo 5: Cursores Procesamiento de múltiples renglones Estructura de un programa con Cursores Declaración del cursor OPEN del cursor Instrucción FETCH CLOSE del cursor DELETE vía Cursor UPDATE vía Cursor Impacto de COMMIT en cursores Opción WITH HOLD Manipulación y reposicionamiento del Cursor Opciones que se pueden incluir en el SELECT de la instrucción DECLARE CURSOR FOR READ/FETCH ONLY OPTIMIZE FOR N ROWS WITH CS/RS/RR/UR USE AND KEEP ... LOCKS Módulo 6: Consideraciones básicas de Rendimiento Conceptos básicos sobre índices Estructura Índices únicos y no únicos Índices CLUSTER y NO CLUSTER Procesamiento de predicados Utilización de índices Optimizador de DB2 Estadísticas del Catálogo de DB2 Distribución de datos en columnas Módulo 7: Integridad referencial (IR) Llaves Primarias Integridad de la Entidad Llaves Foráneas Constraints UNIQUE Modelo de Integridad Referencial de DB2 for z/OS Instrucción CREATE TABLE Instrucción ALTER TABLE Impacto de instrucciones ALTER y DROP de objetos en DB2 Entrenamiento Ejecutivo, S.C. Circuito del Mesón 186 Int. 12, Fracc. El Prado Tel. (442) 215.0021 www.executrain-qro.com DB2 for z/OS Taller de Programación de Aplicaciones Duración: 5 días (40 hrs.) Índices únicos y llaves Primarias y Constraints de tipo UNIQUE Manejo de errores Validación de IR en DB2 vs. IR por aplicación Módulo 8: SQL Dinámico SQL estático vs. SQL dinámico Opciones del SQL dinámico Ejecución de instrucciones de SQL que no sean SELECT Ejecución de Instrucción SELECT con columnas definidas Ejecución de Instrucción SELECT con columnas variables Utilización de la SQLDA Impacto del COMMIT y ROLLBACK en el SQL dinámico CLI y ODBC Opción REOPTVARS del comando BIND Módulo 9: Seguridad en aplicaciones de DB2 Panorama de seguridad en DB2 for z/OS Autentificación en DB2 for z/OS Authorization-Id’s Registros especiales Instrucción SET CURRENT SQLID Consideraciones de seguridad en aplicaciones con SQL estático y dinámico Privilegio BINDADD Privilegio EXECUTE Privilegio CREATEIN Privilegio PACKADM BINDAGENT Parámetros de BIND relacionados con seguridad Concepto de Package Owner Módulo 10: Función EXPLAIN Concepto de EXPLAIN La PLAN_TABLE Introducción a métodos de acceso Tablespace Scan Matching Index Scan Index-Only Index Scan Non-Matching Index Scan SORT Invocando la función EXPLAIN interactivamente Parámetro EXPLAIN(YES) en el BIND PLAN/PACKAGE Ejemplos de métodos de acceso e información de EXPLAIN Herramienta IBM Data Studio Módulo 11: Concurrencia Locking en DB2 for z/OS Bloqueo de Tablas y Tablespaces Bloqueo a nivel Página Bloqueo a nivel Renglón (Row Level Locking) Matrices de compatibilidad de Locks Isolation Level Módulo 12: Stored Procedures en DB2 for Z/OS Introducción a Stored Procedures – motivación Aplicaciones Cliente Instrucción CALL Parámetros del SP Variables host Uso de la SQLDA Instrucción CREATE PROCEDURE Aplicaciones Server Definición de funciones Recepción de datos Valores de retorno Generación de “Resulta Sets” Recibiendo datos de “Resulta Sets” Instrucción DESCRIBE PROCEDURE Ambiente de Stored Procedures en DB2 for z/OS Generación de Stored Procedures en DB2 for z/OS Instrucción CREATE PROCEDURE Address Space de Stored Procedures (sssnSPAS) – V8 (deprecated) Work Load Manager (WLM) Manejo y ejecución de Stored Procedures en DB2 for z/OS Comando –START Procedure Comando –STOP Procedure Entrenamiento Ejecutivo, S.C. Circuito del Mesón 186 Int. 12, Fracc. El Prado Tel. (442) 215.0021 www.executrain-qro.com DB2 for z/OS Taller de Programación de Aplicaciones Duración: 5 días (40 hrs.) Consideraciones diversas sobre Stored Procedures Conversiones de juegos de caracteres Resolución de problemas Módulo 13: Utilerías Utilería LOAD Utilería LOAD vs. instrucción INSERT Cargando datos a una tabla Conversión de tipos de datos Valores nulos Cargando múltiples tablas Opciones de la utilería LOAD: RESUME YES/REPLACE/LOG YES/LOG NO Utilería CHECK DATA Opciones de CHECK DATA Tablas de excepciones Utilería RUNSTATS Opciones de RUNSTATS Estadísticas y comando BIND Utilerías COPY y RECOVER Resumen de estatus “PENDING” Módulo 14: Capacidades Objeto-relacionales de DB2 Definición de Large Objects. Necesidad de uso de Large Objects. Variables para referenciar LOB’s. LOB Locators User-Defined Distinct Types User-Defined Functions Sourced & External Table Functions Entrenamiento Ejecutivo, S.C. Circuito del Mesón 186 Int. 12, Fracc. El Prado Tel. (442) 215.0021 www.executrain-qro.com