Sunteți pe pagina 1din 153

BASE DE DATOS

DB2
INTRODUCCIÓN

• DB2es un sistema gestor de bases de datos relacional


que pertenece a una familia de productos IBM y que
puede ser ejecutado en diferentes sistemas operativos
como: Linux, Unix, Windows y zOS.

• Una base de datos relacional es una base en la que todos


los datos se contienen lógicamente en tablas.

• La definición y manipulación de los datos se realiza


utilizando SQL (Structured Query Language).
Panorama INFONAVIT
• Actualmente el Instituto del Fondo Nacional de la Vivienda para los Trabajadores desde
el centro de cómputo proporciona los servicios de talleres, precalificación, contabilidad,
crédito, recaudación fiscal, calidad y desarrollo a través del manejador de base de datos
DB2.
• El manejador de base de datos DB2 se encuentra en los ambientes productivos de las
particiones lógicas SYSK, SYSR y desarrollo y calidad en SYSJ y SYSA, y este a su vez
contiene un total de:
4 instancias productivas:
DB2A
DB2P
R3P1
DB2V
7 instancias de desarrollo y calidad:
DB2A
DB2D
DB2Q
R3P1
P3Q1
DB2V
DB2T
CARACTERÍSTICAS DE DB2

DB2 garantiza:

- Integridad de la información
- Consistencia
- Concurrencia
- Seguridad
- Oportunidad
- Recuperabilidad
- Conectividad
BAJA Y ALTA DB2

Para iniciar un subsistema DB2 se utiliza el comando de consola +r3p1 STA DB2 y para
el comando de consola +r3p1 STO DB2 o el comando db2 –sto db2
BAJA Y ALTA DB2

MSTR
Se encarga de todo

IRLM
Controla los bloqueos.

DIST
Controla los accesos remotos

DBM1
Controla los archivos
ACCESO A LOS DATOS POR UN PROGRAMA SIMPLE
. ABCCP = ALTA
BAJA
Sistema informático
CAMBIO
CONSULTA
Programa simple ABCCP
PROCESO

DASD DESVENTAJAS DE LOS PROGRAMAS


SIMPLES:
-Cada acción ABCCP requiere un programa
Archivo
específico
-Si cambia un archivo, hay que cambiar muchos
programas
ACCESO A DATOS POR PROGRAMA SIMPLE Y DBMS
.

Sistema informático
Un DBMS (Database management
system) es un subsistema para
Programa simple ABCCP DBMS manejar bases de datos.

DASD -Inserta, elimina y modifica datos


-Permite las consultas
BASE DE DATOS. -El programa solo tiene que dar y
Almacenamiento de datos pedir datos
para acceso eficiente y seguro
ACCESO A DB2
ACCESO A DB2

Hay cinco modos básicos para acceder a DB2:

-COMANDOS
-SQL
-UTILERÍAS ONLINE
-UTILERÍAS STAND-ALONE
-PROGRAMACIÓN
COMANDOS DB2

Es la forma más elemental de acceder a DB2.

Los comandos permiten desplegar y modificar el estado de componentes y


procesos DB2.

Los comandos más usuales son DISPLAY, ALTER, START, STOP, CANCEL y
TERMINATE y éstos se aplican a diversos objetos en diversas modalidades.

La descripción detallada de todos estos conceptos se hace en secciones


posteriores.
EJECUCIÓN DE COMANDOS DB2
Los comandos DB2 se ejecutan mediante el intérprete de comandos DSN.
Este intérprete se ejecuta en TSO.

Comandos DB2
INTÉRPRETE DSN

Comandos DB2

TSO
EJECUCIÓN DE COMANDOS DB2 (CONTINUACIÓN)
El comando END abandona el intérprete DSN y retorna al nivel de TSO
(PROMPT “READY”.)
READY
dsn system(dsnd)
DSN
-dis log
DSNJ370I -DSND DSNJC00A LOG DISPLAY
CURRENT COPY1 LOG = DB2.LOGCOPY1.DS02 IS 78% FULL
CURRENT COPY2 LOG = DB2.LOGCOPY2.DS02 IS 78% FULL
H/W RBA = 0C01A33B4000
H/O RBA = 0C0187F8BFFF
FULL LOGS TO OFFLOAD = 0 OF 8
OFFLOAD TASK IS (AVAILABLE)
DSNJ371I -DSND DB2 RESTARTED 01:11:44 MAY 6, 2012
RESTART RBA 0BFFECF3F000
CHECKPOINT FREQUENCY 5 MINUTES
LAST SYSTEM CHECKPOINT TAKEN 14:05:49 MAY 8, 2012
DSN9022I -DSND DSNJC001 '-DIS LOG' NORMAL COMPLETION
DSN
end
READY
EJECUCIÓN DE COMANDOS DB2 POR ISPF

En la opción 6 de ISPF (comandos TSO) se entra el comando DSN.

Menu List Mode Functions Utilities Help


ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss
ISPF Command Shell
Enter TSO or Workstation commands below:

===> dsn system(dsnd)

Place cursor on choice and press enter to Retrieve command

=>
=>
=>
=>
=>
=>
=>
=>
=>
=>
EJECUCIÓN DE COMANDOS DB2 POR ISPF (CONTINUACIÓN)

En la línea de comandos de cualquier panel ISPF se entra el comando DSN.

z/OS V1.11 INFRAESTRUCTURA CENTRAL DESARROLLO LATAM

Seleccionar Opcion ===> tso dsn system(dsnd)


SYSPLEX - SYSMDBBV
SYSID - CHLD
PDF Funciones Locales Group - XM26301
--------------- -------------------------- User - XM26301
0 Settings OS System Support Options Time - 14:32
1 Browse OU User Options
2 Edit SD SDSF
3 Utilities
4 Foreground
5 Batch DB Ambiente DB2
6 Command PP Programas Producto
7 Dialog Test
8 LM Utilities
9 SCLM
C Changes
T Tutorial

X Exit
-------------------------------------------------------------------------------
EJECUCIÓN DE COMANDOS DB2 POR BATCH

Luego del comando TSO DSN se entran los comandos DB2.


Por último se entra el comando END.
File Edit Edit_Settings Menu Utilities Compilers Test Help
sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss
EDIT LDB2DLDA.DB2VSYS.JCLBRS(EXECDSN) - 01.00 Columns 00001 00072
Command ===> Scroll ===> CSR
****** ***************************** Top of Data ******************************
000001 //XM26301C JOB (RINO),'LALUNA',
000002 // CLASS=0,
000003 // MSGCLASS=X,
000004 // MSGLEVEL=(1,1),
000005 // NOTIFY=&SYSUID
000006 //*
000007 //PASO EXEC PGM=IKJEFT01
000008 //STEPLIB DD DISP=SHR,DSN=LDB2DLDA.SDSNLOAD
000009 //SYSTSPRT DD SYSOUT=*
000010 //SYSTSIN DD *
000011 DSN SYSTEM(DSND)
000012 -DIS LOG
000013 END
****** **************************** Bottom of Data ****************************
EJECUCIÓN DE COMANDOS DB2 POR CONSOLA

El comando se puede entrar en SDSF.


El slash indica comando de consola y el guión un comando de DB2 DSN1.
Display Filter View Print Options Help
-------------------------------------------------------------------------------
SDSF SYSLOG 5.101 SYS1 SYS1 10/31/2013 2W 2595 DATA SET DISPLAYED
COMMAND INPUT ===> /- dis log SCROLL ===> CSR
N 0020000 P390 13304 17:00:50.52 JOB00060 00000081 ICH70001I IBMUSER LAST
N 4000000 P390 13304 17:00:50.56 JOB00060 00000090 $HASP373 IBMUSER0 STARTE
N 0000000 P390 13304 17:00:50.61 JOB00060 00000081 IEF403I IBMUSER0 - START
N 0000000 P390 13304 17:00:52.30 JOB00060 00000090 IEF404I IBMUSER0 - ENDED
N 4000000 P390 13304 17:00:52.34 JOB00060 00000081 $HASP395 IBMUSER0 ENDED
NC0000000 P390 13304 17:00:52.40 INTERNAL 00000290 SE '17.00.52 JOB00060 $H
SC USER=(IBMUSER)
N C000000 P390 13304 17:00:52.69 00000081 $HASP309 INIT 1 INACT
M 8000000 P390 13304 17:01:03.68 STC00023 00000090 DSNL512I - DSNLILNR TCP
D 186 00000090 FAILED WITH
E 186 00000090 RETURN CODE=1
M 8000000 P390 13304 17:04:03.85 STC00023 00000090 DSNL512I - DSNLILNR TCP
D 187 00000090 FAILED WITH
E 187 00000090 RETURN CODE=1
M 8000000 P390 13304 17:07:04.03 STC00023 00000090 DSNL512I - DSNLILNR TCP
D 188 00000090 FAILED WITH
E 188 00000090 RETURN CODE=
5000000 P390 14.25.41 STC00026 *03 IEF238D CSQ1MSTR - REPLY DEVICE NAME OR '
FFFFFFF P390 14.24.18 STC00002 *02 ISTEXC200 - DYN COMMANDS MAY BE ENTERED
******************************** BOTTOM OF DATA ********************************
EJECUCIÓN DE COMANDOS DB2 POR CONSOLA (CONTINUACIÓN)

El resultado se despliega en la pantalla hasta que se presione una tecla.

Display Filter View Print Options Help


-------------------------------------------------------------------------------
SDSF SYSLOG 5.101 SYS1 SYS1 10/31/2013 2W 2595 COMMAND ISSUED
COMMAND INPUT ===> SCROLL ===> CSR
RESPONSE=P390
DSNJ370I - DSNJC00A LOG DISPLAY
CURRENT COPY1 LOG = DSN710.LOGCOPY1.DS02 IS 17% FULL
CURRENT COPY2 LOG = DSN710.LOGCOPY2.DS02 IS 17% FULL
H/W RBA = 000093FFD11C
H/O RBA = 000093A7FFFF
FULL LOGS TO OFFLOAD = 0 OF 6
OFFLOAD TASK IS (AVAILABLE)
DSNJ371I - DB2 RESTARTED 14:25:35 OCT 31, 2013
RESTART RBA 000093FB7000
CHECKPOINT FREQUENCY 50000 LOGRECORDS
LAST SYSTEM CHECKPOINT TAKEN 14:27:02 OCT 31, 2013
DSN9022I - DSNJC001 '-DIS LOG' NORMAL COMPLETION
E 187 00000090 RETURN CODE=1
M 8000000 P390 13304 17:07:04.03 STC00023 00000090 DSNL512I - DSNLILNR TCP
D 188 00000090 FAILED WITH
E 188 00000090 RETURN CODE=
5000000 P390 14.25.41 STC00026 *03 IEF238D CSQ1MSTR - REPLY DEVICE NAME OR '
FFFFFFF P390 14.24.18 STC00002 *02 ISTEXC200 - DYN COMMANDS MAY BE ENTERED
******************************** BOTTOM OF DATA ********************************
SQL

STRUCTURED QUERY LANGUAGE.

Es la forma más común de acceder a DB2.

El SQL permite operar sobre los datos y los objetos que contienen datos.

Por SQL acceden los programadores y hasta los usuarios finales.


CLASIFICACIÓN DE SQL

-DDL (DATA DEFINITION LANGUAGE). Para crear, alterar y eliminar objetos


de base de datos. Sus únicas tres sentencias son CREATE, ALTER, DROP

-DML (DATA MANIPULATION LANGUAGE). Para consultar, insertar, modificar


y borrar datos de tablas DB2. Sus únicas cuatro sentencias son SELECT,
INSERT, UPDATE y DELETE

-DCL (DATA CONTROL LANGUAGE). Para todo lo demás. Cualquier sentencia


SQL que no es ni DDL ni DML es DCL. Se usan sobre todo en programación y
para fines de seguridad de acceso. Las sentencias comunes son COMMIT,
ROLLBACK, SET, RUN, GRANT, REVOKE
EJECUCIÓN DE SQL
Las sentencias SQL se ejecutan usando el programa DSNTEP2.
El DSNTEP2 se ejecuta mediante intérprete de comandos DSN.
Este intérprete se ejecuta en TSO.
Sentencias SQL
PROGRAMA DSNTEP2

Sentencias SQL

INTÉRPRETE DSN

TSO
EJECUCIÓN DE SQL (CONTINUACIÓN)
Con el JOB para ejecutar comandos TSO se ejecuta el comando DSN y luego
el programa DSNTEP2.
File Edit Edit_Settings Menu Utilities Compilers Test Help
sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss
EDIT LDB2DLDA.DB2VSYS.JCLBRS(EXECSQL) - 01.00 Columns 00001 00072
Command ===> Scroll ===> CSR
****** ***************************** Top of Data ******************************
000001 //XM26301S JOB (RINO),'LALUNA',
000002 // CLASS=A,
000003 // MSGCLASS=X,
000004 // MSGLEVEL=(1,1),
000005 // NOTIFY=&SYSUID
000006 //*
000007 //PASO EXEC PGM=IKJEFT01
000008 //STEPLIB DD DISP=SHR,DSN=LDB2DLDA.SDSNLOAD
000009 //SYSTSPRT DD SYSOUT=*
000010 //SYSPRINT DD SYSOUT=*
000011 //SYSTSIN DD *
000012 DSN SYSTEM(DSND)
000013 RUN PROGRAM(DSNTEP2) PLAN(DSNTEP2) -
000014 LIBRARY('LDB2DLDA.RUNLIB.LOAD')
000015 END
000016 //SYSIN DD *
000017 SELECT * FROM SYSIBM.SYSDATABASE
****** **************************** Bottom of Data ****************************
EJECUCIÓN DE SQL (CONTINUACIÓN)
La sentencia SQL SELECT se da en la tarjeta SYSIN.

File Edit Edit_Settings Menu Utilities Compilers Test Help


sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss
EDIT LDB2DLDA.DB2VSYS.JCLBRS(EXECSQL) - 01.00 Columns 00001 00072
Command ===> Scroll ===> CSR
****** ***************************** Top of Data ******************************
000001 //XM26301S JOB (RINO),'LALUNA',
000002 // CLASS=A,
000003 // MSGCLASS=X,
000004 // MSGLEVEL=(1,1),
000005 // NOTIFY=&SYSUID
000006 //*
000007 //PASO EXEC PGM=IKJEFT01
000008 //SYSTSPRT DD SYSOUT=*
000009 //SYSPRINT DD SYSOUT=*
000010 //SYSTSIN DD *
000011 DSN SYSTEM(DSND)
000012 RUN PROGRAM(DSNTEP2) PLAN(DSNTEP2) -
000013 LIBRARY('LDB2DLDA.RUNLIB.LOAD')
000014 END
000015 //SYSIN DD *
000016 SELECT * FROM SYSIBM.SYSDATABASE
****** **************************** Bottom of Data ****************************
EJECUCIÓN DE SQL (CONTINUACIÓN)

Pero el resultado de la ejecución del programa DSNTEP2, es decir, el


resultado del QUERY aparece en el archivo SYSPRINT.
Display Filter View Print Options Help
-------------------------------------------------------------------------------
SDSF OUTPUT DISPLAY XM26301S J0024611 DSID 104 LINE 0 COLUMNS 02- 81
COMMAND INPUT ===> SCROLL ===> CSR
********************************* TOP OF DATA **********************************

PAGE 1
***INPUT STATEMENT:
SELECT * FROM SYSIBM.SYSDATABASE
+-------------------------
| NAME
+-------------------------
1_| APT920
2_| APTA1
3_| BABD001
4_| BABF001
5_| BADC001
6_| BADD001
7_| BADF001
8_| BADT001
9_| BAMC001
10_| BAMD001
11_| BAMF001
12_| BAMT001
OTRAS VÍAS DE EJECUCIÓN DE SQL

Se puede ejecutar SQL por otras vías como:

-DB2 interactivo

-DB2 TOOLS

-Herramientas administrativas CA
UTILERÍAS ONLINE

Las utilerías ONLINE son procesos relacionados con todos los archivos que
contienen datos.

Estos procesos son realizados por DB2, que lleva un estricto control y
registro de los procesos y los archivos y datos manipulados.

El estricto control permite que todo proceso sea reiniciable, minimizando o


eliminando el riesgo de afectación dañina a los datos. El registro de
procesos, archivos y datos permite que en el futuro todos éstos puedan ser
usados para fines de consulta y recuperabilidad.
TIPOS DE UTILERÍAS ONLINE

Las utilerías ONLINE usuales son:

- Respaldo y recuperación
- Carga y descarga
- Reorganización
- Estadísticas
- Establecimiento de punto de consistencia (QUIESCE)
EJECUCIÓN DE UTILERÍAS ONLINE

Las utilerías ONLINE se ejecutan por medio del programa DSNUTILB en un


JOB.

A cada proceso de utilería se le da un nombre (UTILID). En el JOB se indica el


SUBSYSTEM ID y el nombre de utilería.

En el JOB se especifican diferentes archivos, según la utilería de que se


trate. Por ejemplo, si es un respaldo hay que especificar (SYSCOPY) el
nombre del archivo que va a contener la copia, y si es una carga hay que
especificar (SYSREC00) el nombre del archivo plano que contiene los datos.
EJECUCIÓN DE UTILERÍAS ONLINE (CONTINUACIÓN)

En SYSIN se da el comando que especifica la utilería que se va a realizar.

La utilería se ejecuta por fases. En caso de una falla con el proceso, luego de
corregir las causas de la falla, dependiendo de la fase, el proceso se puede
reiniciar.
EJECUCIÓN DE UTILERÍAS ONLINE (CONTINUACIÓN)
Se usa el programa DSNUTILB.
Como parámetro en la tarjeta EXEC PGM se dan el SUBSYSTEM ID y el
UTILID.
File Edit Edit_Settings Menu Utilities Compilers Test Help
sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss
EDIT XM26301.PO.JCL(EXECUTIL) - 01.00 Columns 00001 00072
Command ===> Scroll ===> CSR
****** ***************************** Top of Data ******************************
000001 //XM26301U JOB (RINO),'LALUNA',
000002 // CLASS=0,
000003 // MSGCLASS=X,
000004 // MSGLEVEL=(1,1),
000005 // NOTIFY=&SYSUID
000006 //*
000007 //PASO EXEC PGM=DSNUTILB,
000008 // PARM=‘MXD1,COPIA'
000009 //STEPLIB DD DISP=SHR,DSN=LDB2MXD1.DMD1.SDSNLOAD
000010 //SYSCOPY DD DISP=(,CATLG,CATLG),
000011 // UNIT=3390,SPACE=(CYL,(10,10),RLSE),
000012 // DSN=XM26301.PS.COPIA.DBCURSO.TSCURSO.F01
000013 //SYSPRINT DD SYSOUT=*
000014 //SYSIN DD *
000015 COPY TABLESPACE DBCURSO.TSCURSO FULL YES
****** **************************** Bottom of Data ****************************
EJECUCIÓN DE UTILERÍAS ONLINE (CONTINUACIÓN)
En SYSIN se indica que se trata de un respaldo.

File Edit Edit_Settings Menu Utilities Compilers Test Help


sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss
EDIT XM26301.PO.JCL(EXECUTIL) - 01.00 Columns 00001 00072
Command ===> Scroll ===> CSR
****** ***************************** Top of Data ******************************
000001 //XM26301U JOB (RINO),'LALUNA',
000002 // CLASS=0,
000003 // MSGCLASS=X,
000004 // MSGLEVEL=(1,1),
000005 // NOTIFY=&SYSUID
000006 //*
000007 //PASO EXEC PGM=DSNUTILB,
000008 // PARM=‘MXD1,COPIA'
000009 //STEPLIB DD DISP=SHR,DSN=LDB2MXD1.DMD1.SDSNLOAD
000010 //SYSCOPY DD DISP=(,CATLG,CATLG),
000011 // UNIT=3390,SPACE=(CYL,(10,10),RLSE),
000012 // DSN=XM26301.PS.COPIA.DBCURSO.TSCURSO.F01
000013 //SYSPRINT DD SYSOUT=*
000014 //SYSIN DD *
000015 COPY TABLESPACE DBCURSO.TSCURSO FULL YES
****** **************************** Bottom of Data ****************************
EJECUCIÓN DE UTILERÍAS ONLINE (CONTINUACIÓN)
Luego de submitir…

Display Filter View Print Options Help


-------------------------------------------------------------------------------
SDSF OUTPUT DISPLAY XM26301U J0032748 DSID 2 LINE 0 COLUMNS 02- 81
COMMAND INPUT ===> SCROLL ===> CSR
********************************* TOP OF DATA **********************************
J E S 2 J O B L O G -- S Y S T E M M E X D -- N O

08.40.11 J0032748 ---- THURSDAY, 10 MAY 2012 ----


08.40.11 J0032748 IRR010I USERID XM26301 IS ASSIGNED TO THIS JOB.
08.40.12 J0032748 ICH70001I XM26301 LAST ACCESS AT 08:33:49 ON THURSDAY, MAY 1
08.40.12 J0032748 $HASP373 XM26301U STARTED - WLM INIT - SRVCLASS BATCH_A - S
08.40.12 J0032748 IEF403I XM26301U - STARTED - TIME=08.40.12
08.40.13 J0032748 - --TIMINGS (MIN
08.40.13 J0032748 -STEPNAME PROCSTEP RC EXCP CONN TCB SRB CLOCK
08.40.13 J0032748 -PASO 00 596 51 .00 .00 .0
08.40.13 J0032748 IEF404I XM26301U - ENDED - TIME=08.40.13
08.40.13 J0032748 -XM26301U ENDED. NAME-LALUNA TOTAL TCB CPU TIM
08.40.13 J0032748 $HASP395 XM26301U ENDED
------ JES2 JOB STATISTICS ------
10 MAY 2012 JOB EXECUTION DATE
15 CARDS READ
63 SYSOUT PRINT RECORDS
0 SYSOUT PUNCH RECORDS
4 SYSOUT SPOOL KBYTES
EJECUCIÓN DE UTILERÍAS ONLINE (CONTINUACIÓN)
En SYSPRINT se muestra el resultado del proceso.

Display Filter View Print Options Help


-------------------------------------------------------------------------------
SDSF OUTPUT DISPLAY XM26301U J0032748 DSID 102 LINE 0 COLUMNS 02- 81
COMMAND INPUT ===> SCROLL ===> CSR
********************************* TOP OF DATA **********************************
DSNU000I 131 08:40:12.74 DSNUGUTC - OUTPUT START FOR UTILITY, UTILID = COPIA
DSNU1044I 131 08:40:12.82 DSNUGTIS - PROCESSING SYSIN AS EBCDIC
DSNU050I 131 08:40:12.88 DSNUGUTC - COPY TABLESPACE DBCURSO.TSCURSO FULL YES
DSNU400I 131 08:40:13.13 DSNUBBID - COPY PROCESSED FOR TABLESPACE DBCURSO.TSC
NUMBER OF PAGES=3
AVERAGE PERCENT FREE SPACE PER PAGE = 32.33
PERCENT OF CHANGED PAGES = 25.00
ELAPSED TIME=00:00:00
DSNU428I -DMD2 131 08:40:13.14 DSNUBAFI - DB2 IMAGE COPY SUCCESSFUL FOR TABLESP
DSNU010I 131 08:40:13.16 DSNUGBAC - UTILITY EXECUTION COMPLETE, HIGHEST RETUR
******************************** BOTTOM OF DATA ********************************
UTILERÍAS NO IBM

Hay otros productos que venden utilerías ONLINE (como BMC o PLATINUM
CA), pero su función y operación es casi idéntica.
UTILERÍAS STAND-ALONE

Las utilerías STAND-ALONE son procesos relacionados con todos los


archivos manejados por DB2.

Estos procesos se realizan sin registro ni control de DB2.

De hecho, algunas de éstas solo pueden ejecutarse cuando DB2 no está


activo.

Una utilería STAND-ALONE puede dañar irreversiblemente el entorno DB2.


Por lo mismo, los resultados quedan bajo la responsabilidad de quien ejecutó
el proceso.
UTILERÍAS STAND-ALONE (CONTINUACIÓN)

Las utilerías STAND-ALONE usuales son:

-Consulta y modificación del inventario de LOGS


-Copia, verificación y listado del contenido de un archivo
-Formateo y listado de archivos de LOG
-Estimación de espacio usado cuando los datos son comprimidos
-Reconfiguración para obtención de DUMPS
-Crecimiento de BSDS
ACCESO A DB2 POR PROGRAMACIÓN (SQL EMBEBIDO)

El acceso a DB2 mediante programación consiste básicamente en la


inclusión de sentencias SQL dentro de un programa (esto se llama SQL
EMBEBIDO.)

La mayor ventaja de esta manera de acceso es que las variables del


programa pueden interactuar con las sentencias SQL.

El programa puede ser de diversos lenguajes como COBOL, REXX o java.


EJEMPLO DE SQL EMBEBIDO
Se exhibe un ejemplo COBOL de SQL embebido.
Hay que notar la interacción entre el SQL y las variables COBOL.

IDENTIFICATION DIVISION.
PROGRAM-ID. COBCOUNT
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 CUANTOS PIC 9(3) VALUE ZERO.
...
PROCEDURE DIVISION.
...
EXEC SQL
SELECT COUNT(*) INTO :CUANTOS
FROM SYSIBM.SYSDATABASE
END-EXEC
...
PREPARACIÓN DE SQL EMBEBIDO

Un programa con SQL embebido tiene que pasar por una precompilación,
que es una separación de sentencias del lenguaje y sentencias SQL (DBRM
database request module).

El DBRM tiene que pasar por un BIND para generar un paquete (SQL
ejecutable), almacenado en tablas internas de DB2.

El paquete tiene que pasar por otro BIND para generar un plan, ejecutable por
DB2.
EJECUCIÓN DE SQL EMBEBIDO
Un programa con SQL embebido se ejecuta con un JCL como éste:

File Edit Edit_Settings Menu Utilities Compilers Test Help


sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss
EDIT DESA.BATCH.JCLLIB(JOBCOUNT) - 01.00 Columns 00001 00072
Command ===> Scroll ===> CSR
****** ***************************** Top of Data ******************************
000001 //XM26301C JOB (RINO),'LALUNA',
000002 // CLASS=A,
000003 // MSGCLASS=X,
000004 // MSGLEVEL=(1,1),
000005 // NOTIFY=&SYSUID
000006 //*
000007 //PASO EXEC PGM=IKJEFT01
000008 //SYSTSPRT DD SYSOUT=*
000009 //SYSPRINT DD SYSOUT=*
000010 //SYSTSIN DD *
000011 DSN SYSTEM(DSND)
000012 RUN PROGRAM(COBCOUNT) PLAN(PLACOUNT) -
000013 LIBRARY(‘DESA.BATCH.LOADLIB')
000014 END
****** **************************** Bottom of Data ****************************
RECAPITULACIÓN ACCESO A DB2

CREATE
ACCESO A DB2 COMANDOS DB2 ALTER
DDL
DROP
SQL
DML SELECT
INSERT
UPDATE
DCL DELETE

RESPALDO-RECUPERACIÓN
UTILERÍAS ONLINE CARGA-DESCARGA
REORGANIZACIÓN
ESTADÍSTICAS
PUNTO DE CONSISTENCIA (QUIESCE)
UTILERÍAS STAND-ALONE
MANEJO DE INVENTARIO
MANEJO DE ARCHIVOS
MANEJO DE LOGS
ESTIMACIÓN DE ESPACIO
PROGRAMACIÓN (SQL EMBEBIDO) CONFIGURACIÓN DE DUMPS
CRECIMIENTO DE BSDS

BIND
EJECUCIÓN
OBJETOS DB2
STORAGE GROUP

Un STORAGE GROUP es un conjunto de discos donde quedarán los archivos


(tablespaces e index spaces).
Se define con la sentencia SQL DDL CREATE STOGROUP dando un nombre
de ocho caracteres y listando los discos.
Usar ‘*’ como lista de discos causa que sea manejado por SMS.

Storage group

disco 1 disco 2 Disco 3 disco n


STORAGE GROUP (CONTINUACIÓN)
Aquí se ven dos archivos.
El primero, por usar SG11, se guarda en uno de los discos especificados.
El segundo, por usar SG12, se guarda en algún disco asignado por SMS.

Archivo1 en
SG11 (lista de
DB2
discos) W4DB21 OS39M1

?
Archivo2 en
SG12 (disco ‘*’) DB2 SMS
BASE DE DATOS
Una BASE DE DATOS es un agrupamiento lógico de tablas y de todos los
elementos relacionados con éstas.
Estos elementos son el tablespace, el índice junto con su index space, la
vista, etc.
La definición de la base de datos se hace con la sentencia SQL DDL CREATE
DATABASE dando un nombre de ocho caracteres.
Base de datos

Tablespace1 Tablespace2 Tablespace3 TablespaceN

Index
Index space1 Index space2 Index space3
spaceM
BUFFERPOOL
Un BUFFER es una zona de memoria intermedia entre un archivo físico en
disco y un programa.

Memoria

Archivo Buffer
DB2
BUFFERPOOL (CONTINUACIÓN)
Cuando se leen datos de un archivo (tablespace o index space), primero se
copian del archivo en disco al buffer.
Luego son leídos del buffer por el programa (como DB2.)
Memoria

Archivo Buffer
DB2
BUFFERPOOL (CONTINUACIÓN)
Cuando se escriben datos en un archivo (tablespace o index space), primero
se manipulan en el buffer por el programa.
Luego son copiados del buffer al archivo en disco.
Memoria

Archivo Buffer
DB2
BUFFERPOOL (CONTINUACIÓN)
Un buffer está estructurado en páginas.
Todas las páginas son del mismo tamaño.
El tamaño puede ser 4 Kb, 8 Kb, 16 Kb y 32 Kb. Hay otros tamaños, pero DB2
solo usa estos cuatro.

Memoria

Buffer
BUFFERPOOL (CONTINUACIÓN)
Un tablespace o index space es un archivo VSAM y también está
estructurado en páginas.
El tamaño de las páginas en el space es el mismo del bufferpool asignado.
El tamaño de las páginas permite el acceso eficiente o el manejo de registros
grandes.
Memoria

Space (VSAM) Buffer


NOMBRE DE BUFFERPOOL

Hay una serie de bufferpools de modo que objetos diferentes pueden usar
bufferpools diferentes:

Los de 4Kb se llaman BP0, BP1, BP2, …, BP49.

Los de 8Kb se llaman BP8K0, BP8K1, …, BP8K9.

Los de 16Kb se llaman BP16K0, BP16K1, …, BP16K9.

Los de 32Kb se llaman BP32K, BP32K1, …, BP32K9.


TABLESPACE
Un TABLESPACE es un recipiente que va a contener una o más tablas.
El tablespace se crea con la sentencia SQL DDL CREATE TABLESPACE
asociado a una base de datos y dando un nombre de ocho caracteres.
Base de datos
Tablespace

tabla2
tabla1

tabla3
JERARQUÍA DEL TABLESPACE
El tablespace pertenece (de manera lógica) a una base de datos.
Una base de datos puede tener muchos tablespaces.

Jerárquicamente (en forma esquemática) se Físicamente, la base de datos no existe, y solo


tiene esta estructura: se tiene un conjunto de archivos VSAM:

Base de datos
Tablespace 1

Tablespace 1 … Tablespace S

Tablespace S
TABLESPACE PARTICIONADO
Un tablespace particionado es un tablespace que está repartido en varios
archivos VSAM.
Hay varias maneras como un tablespace puede ser particionado.

Tablespace no particionado
Tablespace particionado

Partición1 Partición2 ParticiónN


TAMAÑO DE PÁGINA DE UN TABLESPACE
El tamaño de página del VSAM tablespace es el tamaño de página del
bufferpool al que se asignó.
Si no se especifica, se le asigna el registrado como default para la base de
datos.
Bufferpool

Tablespace
TABLESPACE CON COMPRESIÓN DE DATOS
Los datos se pueden almacenar comprimidos o no.
Cuando los datos están comprimidos se ahorra espacio pero se pierde
eficiencia.
Tablespace COMPRESS NO
Tablespace COMPRESS YES

tabla
diccionario
tabla
ARCHIVO VSAM DE UN TABLESPACE
Al crear el tablespace se aloja un archivo VSAM llamado
vcatname.DSNDBD.dbname.tsname.I0001.A001 donde vcatname es el
asociado al storage group.
create tablespace tscrs in dbcrs using stogroup sgcrs;

Storage group SGCRS


(VCAT VCCRS)

TABLESPACE DBCRS.TSCRS
VCCRS.DSNDBD.DBCRS.TSCRS.I0001.A001
ESPACIO PRIMARIO Y SECUNDARIO DE UN TABLESPACE
Al crear un tablespace se especifica el tamaño de los extents.
El archivo se aloja con el espacio dado en PRIQTY.
Cada que se hace un extent se agrega al archivo el espacio dado en SECQTY.

Tablespace al definir.
Extent original.
Tamaño PRIQTY

Extent. Extent. Extent. Extent.


Extent original. Tamaño Tamaño Tamaño Tamaño
SECQTY SECQTY SECQTY SECQTY
Tamaño PRIQTY
PCTFREE DE UN TABLESPACE
Por ser un archivo VSAM, se permite especificar un porcentaje de espacio
que va a quedar libre en cada página durante una carga inicial.
El espacio libre se usa después para datos insertados.

Página Tablespace luego de una carga inicial de datos

Libre (pctfree %)
FREEPAGE DE UN TABLESPACE
Por ser un archivo VSAM, se permite especificar una cantidad de páginas
luego de las cuales va a quedar libre una página durante una carga inicial.
El espacio libre se usa después para datos insertados.
Libre (freepage 4)

Página Tablespace luego de una carga inicial de datos


TABLA
La tabla es el principal objeto DB2.
La tabla está contenida en un tablespace. Por esto se suele decir que le
pertenece.
La tabla se crea con el comando SQL DDL CREATE TABLE.
Base de datos TABLESPACE

tabla2
tabla1

tabla3
NOMBRE DE LA TABLA

El nombre de la tabla consta de dos partes:

a) Un esquema (de hasta ocho caracteres). Por omisión, el esquema es el


user ID de quien la está creando
b) Un nombre (de hasta dieciocho caracteres)
JERARQUÍA DE LA TABLA
Un tablespace puede contener muchas tablas.
El tablespace “pertenece” a una base de datos, por lo que la tabla
“pertenece” a la misma base de datos.
Jerárquicamente (en forma esquemática) se tiene esta estructura:

Base de datos

Tablespace 1 … Tablespace S

Tabla 11 … Tabla 1T
MANIPULACIÓN DE LA TABLA
La tabla contiene datos.
Los datos se manipulan (creación, consulta, cambio y eliminación) con las
sentencias SQL DML (INSERT, SELECT, UPDATE, DELETE.)

SQL DML
ÍNDICE
Un ÍNDICE es un objeto que contiene datos de la tabla junto con apuntadores.
El principal uso de los índices es el acceso más rápido a los datos.
El índice está guardado en un archivo VSAM INDEX SPACE.
El índice se crea con la sentencia SQL DDL CREATE INDEX.
Base de datos Tablespace Index space

tabla2
tabla1

tabla3 índice31
NOMBRE DEL ÍNDICE

El nombre del índice consta de dos partes:

a) Un esquema (de hasta ocho caracteres). Por omisión, el esquema es el


user ID de quien la está creando
b) Un nombre (de hasta dieciocho caracteres)
LLAVES DE ÍNDICE

El índice se forma con un conjunto de columnas de la tabla.

Estas columnas se llaman la LLAVE del índice.


JERARQUÍA DEL ÍNDICE
El índice “pertenece” a una tabla y ésta está contenida en un tablespace y
éste “pertenece” a una base de datos. Por esto se suele decir que el índice
pertenece al tablespace a la misma base de datos.

Base de datos
Tablespace Index space

tabla2
tabla1

tabla3 índice31
JERARQUÍA DEL ÍNDICE (CONTINUACIÓN)
Una tabla puede tener varios índices.
Un índice tiene que estar en un INDEX SPACE. El index space solo puede
contener un índice.

Base de datos Index space 31


Tablespace

índice31

Index space 32

tabla3 índice32


JERARQUÍA DEL ÍNDICE (CONTINUACIÓN)
Con todo lo dicho, jerárquicamente (en forma esquemática) se tiene esta
estructura:

Base de datos

Tablespace 1 … Tablespace S

Tabla 11 … Tabla 1T

Índice 111 … Índice 11J


JERARQUÍA DEL ÍNDICE (CONTINUACIÓN)
Físicamente, solo se tiene un conjunto de archivos VSAM.
Los archivos no tienen una relación intrínseca.

Tablespace 1 … Tablespace S

Index space 111 … Index space 11J


TAMAÑO DE PÁGINA DE UN INDEX SPACE
El tamaño de página del VSAM index space es el tamaño de página del
bufferpool al que se asignó.
Si no se especifica, se le asigna el registrado como default para la base de
datos.
Bufferpool

Index space
ARCHIVO VSAM DE UN INDEX SPACE
Al crear el índice se aloja un archivo VSAM llamado
vcatname.DSNDBD.dbname.ixspace.I0001.A001 donde vcatname es el
asociado al storage group, y ixspace es el nombre del índice si éste no
excede ocho caracteres, o es un nombre generado dinámicamente por DB2.
create index ixcrs … using stogroup sgcrs;

Storage group SGCRS


(VCAT VCCRS)

INDEX SPACE DBCRS.IXCRS


VCCRS.DSNDBD.DBCRS.IXCRS.I0001.A001
ESPACIO PRIMARIO Y SECUNDARIO DE UN INDEX SPACE
Al crear un index space se especifica el tamaño de los extents.
El archivo se aloja con el espacio dado en PRIQTY.
Cada que se hace un extent se agrega al archivo el espacio dado en SECQTY.

Index space al definir.


Extent original.
Tamaño PRIQTY

Extent. Extent. Extent. Extent.


Extent original. Tamaño Tamaño Tamaño Tamaño
SECQTY SECQTY SECQTY SECQTY
Tamaño PRIQTY
PCTFREE DE UN INDEX SPACE
Por ser un archivo VSAM, se permite especificar un porcentaje de espacio
que va a quedar libre en cada página durante una carga inicial.
El espacio libre se usa después para datos insertados.

Página Index space luego de una carga inicial de datos

Libre (pctfree %)
FREEPAGE DE UN INDEX SPACE
Por ser un archivo VSAM, se permite especificar una cantidad de páginas
luego de las cuales va a quedar libre una página durante una carga inicial.
El espacio libre se usa después para datos insertados.
Libre (freepage 4)

Página Index space luego de una carga inicial de datos


UNIDAD DE TRABAJO
UNIDAD DE TRABAJO
Una UOW (UNIT OF WORK = UNIDAD DE TRABAJO) es una serie de cambios
a datos en una tabla, bien delimitados en el tiempo, es decir, una UOW tiene
un inicio y un final.
t

Inicio de Modificaciones Final de


la UOW la UOW
UNIDAD DE TRABAJO (CONTINUACIÓN)
Durante la ejecución de una UOW, DB2 impide que los datos que están
siendo modificados puedan ser usados por cualquier otro proceso.
Esto se llama bloqueo.

Datos en una tabla


t

Otro Otro
proceso proceso

Proceso causante
de la UOW
LOG DE DB2

El LOG de DB2 es un archivo donde se registra la historia de los datos, es


decir, todo cambio que han tenido los datos.

El log es esencial para el funcionamiento de DB2. Si no hay log DB2


simplemente se detiene.

(No hay que confundir el log de DB2 con el log del sistema SYSLOG.)
LOG DE DB2 (CONTINUACIÓN)
Idealmente, el log es un archivo de longitud infinita, o lo suficientemente
grande para registrar toda la historia.
LOG DE DB2 (CONTINUACIÓN)
En la realidad, el log se forma con varios archivos de tamaño finito, usándose
uno tras otro en secuencia cíclica.
Estos archivos se conocen como LOGS ACTIVOS (ACTIVE LOG).
Los log activos son archivos VSAM.
RANGO DE LOG
Cada archivo tiene una hora de inicio y una hora de final.
En los logs (y en general en DB2) se usa una medida correspondiente al
tiempo llamada RBA (relative byte address).
El RBA corresponde a la dirección contando desde que nació DB2.

Primer log Segundo log Log actual

RBA 0 RBA 1234FF RBA 123500 RBA 3247FF RBA DF2AC300


RBA actual
RANGO DE LOG (CONTINUACIÓN)
El RBA es monótonamente creciente igual que el tiempo y hay una
correspondencia uno a uno entre ambos.

Primer log Segundo log Log actual

1997.11.02.23.15.37 1997.11.02.23.39.04 2014.01.23.23.23.09

2014.01.23.25.15.19
RANGO DE LOG (CONTINUACIÓN)
Como se dijo, en la realidad solo se tiene un conjunto pequeño de archivos,
cubriendo un lapso pequeño.
Típicamente, el lapso cubierto es de unas pocas horas.

Log más viejo Log actual

2014.01.23.17.32.38 2014.01.23.23.23.09

2014.01.23.25.15.19
LOGS ARCHIVADOS
Para extender el lapso de cobertura del log, cada vez que se llena un archivo
se saca una copia en un archivo plano en un medio más lento y/o más barato.
Estas copias de log se llaman LOG ARCHIVADO (ARCHIVED LOG.)
Log más viejo Log actual
LOGS ARCHIVADOS (CONTINUACIÓN)
Con los logs archivados, el lapso se incrementa a algunos días.
Utilizando una gran cantidad de espacio, se puede alcanzar a cubrir un mes.

2014.01.09.07.26.54 2014.01.23.23.23.09
BOOT STRAP DATASET
La gran cantidad de archivos log obliga a usar un inventario (log inventory).
Éste se guarda en un archivo llamado BOOT STRAP DATASET (BSDS).
Ahí se indica el RBA inicial y final de todo log (activo y archivado.)
BSDS (Boot strap dataset,
inventario de logs)
DUAL LOG
Para prevenir una pérdida fatal de información, DB2 permite el uso dual de
log, es decir, se puede tener dos archivos por cada log activo o por cada log
archivado o de BSDS.
BSDS
Log más viejo Log actual
UTILIDAD DEL LOG

El log permite la reversión de cambios frustrados y también la


recuperabilidad de los datos.
UTILIDAD DEL LOG (CONTINUACIÓN)
Para la recuperabilidad, se requiere que exista un respaldo de la tabla dentro
del lapso cubierto.

Respaldo de la tabla

2014.01.09.07.26.54 2014.01.23.23.23.09
COMMIT Y ROLLBACK
Durante la ejecución de una UOW, la base de datos no es consistente, pues
son distintos los contenidos del archivo físico y de las páginas de memoria
del bufferpool

Datos en memoria buffeepool (imagen modificada)


t

Proceso causante
de la UOW

Datos en disco (imagen al principío de la UOW)


COMMIT
Al terminar exitosamente una UOW, se hace un COMMIT, registrando
físicamente en disco los cambios realizados.

Datos en memoria buffeepool (imagen modificada)


t

Proceso COMMIT

Datos en disco (empatado con la imagen modificada)


ROLLBACK
Al terminar con falla una UOW, se hace un ROLLBACK, deshaciendo en
memoria los cambios hechos y restaurando la imagen en memoria a la
imagen original.
Datos en memoria buffeepool (empatados a la imagen
al principío de la UOW)
t

Proceso
ROLLBACK

Datos en disco (imagen al principío de la UOW)


QUIESCE
En el esquema relacional, los datos normalizados se distribuyen en varias
tablas y quizá en varios tablespaces.
En algún momento, puede haber tablespaces relacionados no consistentes.

Tablespace1

Tablespace11 Tablespace12

Tablespace121 Tablespace122 Tablespace123

Tablespace1211 Tablespace1212
QUIESCE (CONTINUACIÓN)
COMMIT puede hacer consistente algunos tablespaces, pero quizá no todos.

Tablespace1

Tablespace11 Tablespace12

Tablespace121 Tablespace122 Tablespace123

Tablespace1211 Tablespace1212
QUIESCE (CONTINUACIÓN)
La operación QUIESCE (realizada mediante una utilería), se encarga de hacer
consistente todo un conjunto de tablespaces.
Se le tiene que decir cuáles tablespaces.

Tablespace1

Tablespace11 Tablespace12

Tablespace121 Tablespace122 Tablespace123

Tablespace1211 Tablespace1212
THREAD
Un THREAD es el proceso dentro de DB2 asociado a procesos de usuario.
El thread generalmente tiene un principio y un final, correspondientes al
principio y final de su proceso asociado.
t
Thread

Proceso
THREAD (CONTINUACIÓN)
Hay un tipo de threads que no terminan con el proceso.
Se quedan esperando para atender más y más procesos.

t
Thread

Proceso1 Proceso2 ProcesoN


THREAD (CONTINUACIÓN)
Un thread puede tener una UOW, o…

t
Thread
uow1
THREAD (CONTINUACIÓN)
… varias, o…

t
Thread
uow1 uow2 uow3 uow4
THREAD (CONTINUACIÓN)
… si solo consulta datos, ninguna.

t
Thread
ARQUITECTURA DB2
SUBSISTEMA DB2
DB2 es un subsistema que atiende peticiones de usuarios para acceder a
bases de datos.
Se identifica por un SSID (subsystem ID) que es una cadena de hasta cuatro
caracteres.

Peticiones de usuarios
(SQL, comandos, DB2
utilerías) Bases de datos
COMPONENTES DB2
En forma simplificada, tenemos que DB2 requiere address spaces originados
en la biblioteca DB2 PROCLIB.

DB2
Address spaces DB2
Biblioteca (ssidMSTR, ssidIRLM,
DB2 ssidDBM1, ssidDIST,
PROCLIB ssidWLM, ssidADMT)
BIBLIOTECAS DB2
Los componentes DB2 están en una serie de bibliotecas.

Biblioteca 1
Biblioteca 2

DB2 Biblioteca 3

Biblioteca N
COMPONENTES DB2
Ahora se agregan a los componentes DB2 las bibliotecas DB2:

DB2
Address
spaces
DB2

Biblioteca 1
Biblioteca 2
Biblioteca 3

Biblioteca N
PARÁMETROS DE ARRANQUE

DB2 se configura en su arranque con un módulo de parámetros. Éstos se


conocen entonces como parámetros de arranque.

Se trata de una tabla ensamblador.

El fuente está se conoce como DSNTIJUZ y el carga resultado es una exit


conocida como DSNZPARM.
COMPONENTES DB2
Entonces se tiene un componente más:

DB2
Address Parámetros
spaces de arranque
DB2 DSNZPARM

Biblioteca 1
Biblioteca 2
Biblioteca 3

Biblioteca N
DB2 LOG

Como se dijo antes, el log de DB2 es un componente esencial para su


funcionamiento (y como el log son muchos archivos, éstos son componentes
del DB2.)

Se tiene un conjunto dual de logs activos, un par de archivos BSDS y un


conjunto (que puede ser dual o no) de logs archivados.
COMPONENTES DB2
Se incluyen otros componentes más:

DB2
Address Parámetros
spaces de arranque
DB2 DSNZPARM

BSDS 1
Biblioteca 1
BSDS 2
Biblioteca 2
Biblioteca 3 Logcopy 1 1 Logcopy 1 N
Logcopy 2 1 Logcopy 2 N
Archlog 1 J Archlog 1 K
Biblioteca N Archlog 2 J Archlog 2 K
CATÁLOGO DB2

DB2 tiene una base de datos DSNDB06 conocida como CATÁLOGO DB2 que
consta de muchas tablas con la especificación de todos los objetos que usa
el mismo DB2.

Por ejemplo, hay una tabla de tablas, una tabla de tablespaces, una tabla de
columnas, etc.

Los objetos del catálogo DB2 están registrados en el catálogo DB2.


DIRECTORIO DB2

DB2 tiene una base de datos DSNDB01 conocida como DIRECTORIO DB2 que
consta de algunas tablas con información para uso interno del mismo DB2.

Por ejemplo, hay una tabla de apuntadores a objetos DB2, una tabla de
rutinas SQL ejecutables, etc.
OTRAS BASES DE DATOS DB2

DB2 tiene otras dos bases de datos propias:

- DSNDB07. Contiene tablespaces cuyo espacio no se usa para datos sino


solo como áreas de trabajo para porcesos SORT

- DSNDB04. Contiene todos los tablespaces definidos sin especificación de


base de datos o definidos implícitamente
COMPONENTES DB2
Y crece el conjunto de componentes:

DB2
Catálogo Work
Address Parámetros
DB2 database
spaces de arranque
DB2 DSNZPARM
Directorio Default
BSDS 1 DB2 database
Biblioteca 1
BSDS 2
Biblioteca 2
Biblioteca 3 Logcopy 1 1 Logcopy 1 N
Logcopy 2 1 Logcopy 2 N
Archlog 1 J Archlog 1 K
Biblioteca N Archlog 2 J Archlog 2 K
POOLS

En resumen, se tiene cuatro tipos distintos de zonas de memoria:

1) BUFFERPOOL
2) EDMPOOL
3) SORTPOOL
4) RIDPOOL
COMPONENTES DB2
En este punto se tienen estos componentes:

DB2
Catálogo Work
Address Parámetros Bufferpool Edmpool
DB2 database
spaces de arranque
DB2 DSNZPARM
Directorio Default
BSDS 1 DB2 database Sortpool Ridpool
Biblioteca 1
BSDS 2
Biblioteca 2
Biblioteca 3 Logcopy 1 1 Logcopy 1 N
Logcopy 2 1 Logcopy 2 N
Archlog 1 J Archlog 1 K
Biblioteca N Archlog 2 J Archlog 2 K
INTERFAZ INTERACTIVA

El DB2 interactivo es una interfaz en ISPF TSO.

Entre otras opciones permite la ejecución de comandos DB2 y sentencias


SQL.
OTRAS INTERFACES

Las otras interfaces de usuarios con DB2 que pueden usarse en forma
BATCH son:

1) Programa DSN para ejecución de comandos y programas

2) Programa DSNUTILB para ejecución de utilerías ONLINE

3) Programas correspondientes a utilerías STAND-ALONE


COMPONENTES DB2
El esquema de componentes de infraestructura DB2 concluye así:

DB2
Catálogo Work
Address Parámetros Bufferpool Edmpool
DB2 database
spaces de arranque
DB2 DSNZPARM
Directorio Default
BSDS 1 DB2 database Sortpool Ridpool
Biblioteca 1
BSDS 2
Biblioteca 2
Biblioteca 3 Logcopy 1 1 Logcopy 1 N DB2
Logcopy 2 1 Logcopy 2 N interactivo

Archlog 1 J Archlog 1 K Interfaces


Biblioteca N Archlog 2 J Archlog 2 K batch
OBJETOS APLICATIVOS

En otro sentido, se tienen los siguientes objetos aplicativos DB2:

-Storage groups
-Bases de datos
-Tablespaces
-Tablas y vistas
-Índices e index spaces
-Programas, planes y paquetes
-Otros objetos
COMPONENTES DEL AMBIENTE DB2
Los objetos aplicativos son independientes de la infraestructura DB2.
Esquemáticamente se tiene lo siguiente:

Infraestructura
DB2 Entorno aplicativo DB2
SEGURIDAD DB2
ROLES DB2

Se reconocen cuatro roles principales en un entorno aplicativo DB2 for z/OS:

1) Usuario final
2) Programador aplicativo
3) Administrador de bases de datos (DBA) o System programmer (SP)
4) Operador

Por supuesto que esta lista puede variar según el estilo y las costumbres de
cada organización.
ROL USUARIO FINAL

CREATE
ACCESO A DB2 COMANDOS DB2 ALTER
DDL
DROP
SQL
DML SELECT
INSERT
UPDATE
DCL DELETE

RESPALDO-RECUPERACIÓN
UTILERÍAS ONLINE CARGA-DESCARGA
REORGANIZACIÓN
ESTADÍSTICAS
PUNTO DE CONSISTENCIA (QUIESCE)
UTILERÍAS STAND-ALONE
MANEJO DE INVENTARIO
MANEJO DE ARCHIVOS
MANEJO DE LOGS
ESTIMACIÓN DE ESPACIO
PROGRAMACIÓN (SQL EMBEBIDO) CONFIGURACIÓN DE DUMPS
CRECIMIENTO DE BSDS

BIND
EJECUCIÓN
ROL PROGRAMADOR APLICATIVO

CREATE
ACCESO A DB2 COMANDOS DB2 ALTER
DDL
DROP
SQL
DML SELECT
INSERT
UPDATE
DCL DELETE

RESPALDO-RECUPERACIÓN
UTILERÍAS ONLINE CARGA-DESCARGA
REORGANIZACIÓN
ESTADÍSTICAS
PUNTO DE CONSISTENCIA (QUIESCE)
UTILERÍAS STAND-ALONE
MANEJO DE INVENTARIO
MANEJO DE ARCHIVOS
MANEJO DE LOGS
ESTIMACIÓN DE ESPACIO
PROGRAMACIÓN (SQL EMBEBIDO) CONFIGURACIÓN DE DUMPS
CRECIMIENTO DE BSDS

BIND
EJECUCIÓN
ROL DBA O SP

CREATE
ACCESO A DB2 COMANDOS DB2 ALTER
DDL
DROP
SQL
DML SELECT
INSERT
UPDATE
DCL DELETE

RESPALDO-RECUPERACIÓN
UTILERÍAS ONLINE CARGA-DESCARGA
REORGANIZACIÓN
ESTADÍSTICAS
PUNTO DE CONSISTENCIA (QUIESCE)
UTILERÍAS STAND-ALONE
MANEJO DE INVENTARIO
MANEJO DE ARCHIVOS
MANEJO DE LOGS
ESTIMACIÓN DE ESPACIO
PROGRAMACIÓN (SQL EMBEBIDO) CONFIGURACIÓN DE DUMPS
CRECIMIENTO DE BSDS

BIND
EJECUCIÓN
ROL OPERADOR

CREATE
ACCESO A DB2 COMANDOS DB2 ALTER
DDL
DROP
SQL
DML SELECT
INSERT
UPDATE
DCL DELETE

RESPALDO-RECUPERACIÓN
UTILERÍAS ONLINE CARGA-DESCARGA
REORGANIZACIÓN
ESTADÍSTICAS
PUNTO DE CONSISTENCIA (QUIESCE)
UTILERÍAS STAND-ALONE
MANEJO DE INVENTARIO
MANEJO DE ARCHIVOS
MANEJO DE LOGS
ESTIMACIÓN DE ESPACIO
PROGRAMACIÓN (SQL EMBEBIDO) CONFIGURACIÓN DE DUMPS
CRECIMIENTO DE BSDS

BIND
EJECUCIÓN
DIVERSIDAD DE PERMISOS

En los diagramas anteriores se nota que para distintos roles hay una
diversidad de permisos requeridos por las distintas funciones que
desempeñan.
PROTECCIÓN DE RECURSOS

DB2 controla el acceso de los distintos usuarios a los distintos recursos en


distintos modos, mediante privilegios y autoridades, para garantizar la
seguridad, es decir, para impedir cualquier acceso no autorizado.
Recursos DB2

MÓDULO DE
SEGURIDAD
DB2
PRIVILEGIO

Un privilegio es un permiso para usar un recurso específico en un modo


específico.

Por ejemplo, alguien requiere un permiso para consultar una tabla y recibe un
privilegio.
LISTA DE PRIVILEGIOS
LISTA DE PRIVILEGIOS (CONTINUACIÓN)
LISTA DE PRIVILEGIOS (CONTINUACIÓN)
ASIGNACIÓN DE PRIVILEGIO

Un privilegio se asigna mediante el comando SQL DCL GRANT:

GRANT privilegio ON recurso TO usuario ;


DESASIGNACIÓN DE PRIVILEGIO

Un privilegio se desasigna mediante el comando SQL DCL REVOKE:

REVOKE privilegio ON recurso FROM usuario ;


AUTORIDAD

Una autoridad es un permiso para realizar una función global sobre todos los
objetos de un ambiente.

Por ejemplo, alguien requiere para ejecutar procesos de respaldo de todas


las tablas y recibe una autoridad de operador.
LISTA DE AUTORIDADES
ASIGNACIÓN DE AUTORIDAD

Una autoridad se asigna mediante el comando SQL DCL GRANT:

GRANT autoridad TO usuario ;


DESASIGNACIÓN DE AUTORIDAD

Una autoridad se desasigna mediante el comando SQL DCL REVOKE:

REVOKE autoridad FROM usuario ;


PERMISO DE DAR PERMISO

Al mismo tiempo que se da un permiso, se puede extender la facultad de dar


permiso:

GRANT . . . WITH GRANT OPTION ;

Usuario 2
PERMISO GRUPAL

Se puede asignar un permiso grupalmente:

GRANT . . . TO grupo_RACF ;
PERMISO GRUPAL (CONTINUACIÓN)

Todos los usuarios asociados al grupo heredan el permiso:

grupo_RACF

Usuario 1 Usuario 2 … Usuario N


VENTAJAS DE LA ADMINISTRACIÓN DE SEGURIDAD POR DB2

- El personal DBA conoce todos los recursos


- El personal DBA conoce todos los privilegios
- El personal DBA conoce a los usuarios
- Se facilita la solicitud de permisos
- Se facilita la verificación de permisos
DESVENTAJAS DE LA ADMINISTRACIÓN DE SEGURIDAD POR DB2

- El personal DBA no es especialista en administración de seguridad


ADMINISTRACIÓN DE SEGURIDAD POR RACF

Se puede delegar a RACF la protección de recursos DB2.

Recursos DB2

MÓDULO DE
SEGURIDAD
POR DB2

MÓDULO DE
SEGURIDAD
POR RACF
CLASES RACF PARA RECURSOS DB2

Para administrar los recursos DB2, RACF tiene una serie de clases:
PERFILES RACF PARA RECURSOS DB2

A cada autoridad DB2 o cada recurso DB2 y privilegio se asigna un perfil de


una clase.

Por ejemplo, hay un perfil para consultar la tabla SYSIBM.SYSTABLES en el


subsistema DB2 DB2L:

Perfil ‘DB2L.SYSIBM.SYSTABLES.SELECT’ en la clase ‘MDSNTB’


VENTAJAS DE LA ADMINISTRACIÓN DE SEGURIDAD POR RACF

- El personal RACF es especialista en administración de seguridad


- La administración se ajusta a las mejores prácticas
- Se facilita el esquema de seguridad grupal y genérica
DESVENTAJAS DE LA ADMINISTRACIÓN DE SEGURIDAD POR DB2

- El personal RACF no es especialista en DB2


- Los procedimientos son más complejos
CENTRO DE CÓMPUTO

Centro de cómputo
Computadora
Dispositivo Sistema informático
de entrada
Usuario Programa
Dispositivo
de salida

Datos almacenados

S-ar putea să vă placă și