Professional Documents
Culture Documents
SSS
SSSSSSS
SSSSSSS
SSS
SSSSSSSSS
QQQQQQQ
QQ QQ
QQ QQ
QQ QQ
QQ QQQ
QQQQQQ QQ
LL
LL
LL
LL
LLLLLLLL
LLLLLLLLL
//
//
//
//
//
//
DDDDDDD
DDDDDDDD
DD DD
DD DD
DD DD
DDDDDDDD
BBBBBBB
BBBBBBBB
BB BB
BBBBBBBB
BB BB
BBBBBBBB
222222222
222
2222222
2222222
222
222222222
I
INDICE
________
CEPTOS.
Conceptos ................................................ 1
Tablas ................................................... 1
Tipos de datos que puede contener una columna de una tabla 2
Indices .................................................. 2
TRUCCIONES S.Q.L.
Instrucciones basicas .................................... 7
Clausula Where ........................................... 8
Select into .............................................. 8
Update ................................................... 9
Delete ................................................... 9
Insert ................................................... 10
Insercion a la vez de varias filas de una tabla en otra .. 10
Funciones del cursor ..................................... 11
Declare cursor ........................................... 11
Open ..................................................... 12
Fetch .................................................... 12
II
TAS.
Concepto ................................................. 22
Proceso de una vista ..................................... 23
Subquery ................................................. 24
Formas de incluir una subquery en una clausula where o
having ................................................... 24
- Inmediatamente despues de un operador de comparacion.. 24
- Despues de un operador de comparacion seguido de all
o any .................................................. 25
- Despues de In, para indicar que el valor de la expre-
sion debe estar entre los valores devueltos por la sub-
query .................................................. 25
- Despues de Exists, verificacion de que puede ser en-
contrada una fila con la condicion de la subquery ...... 26
Subquery correlativa ..................................... 26
Otros ejemplos ........................................... 26
- Con una SELECT ....................................... 26
- Con una UPDATE ....................................... 27
- Con una DELETE ....................................... 27
FI.
Crear y probar instrucciones SQL ......................... 27
Creacion de una tabla .................................... 28
Creacion de una vista .................................... 28
Creacion de una tabla .................................... 28
Crear un nombre alternativo o sinonimo para una tabla o
vista y dar de baja ese sinonimo ......................... 28
III
ELES.
Panel Principal .......................................... 28
- Especificar un fichero de entrada .................... 28
- Especificar un fichero de salida ..................... 28
- Especificar las opciones de proceso .................. 29
Panel de opciones por defecto ............................ 29
- Especificar otras opciones de proceso ................ 29
- Definir caracteristicas del fichero de salida ........ 29
- Especificar defectos para el formato de salida ....... 30
Panel Commit/Rollback .................................... 30
Restricciones ............................................ 30
NDICE I.
Ejemplos de instrucciones sql en cobol II ................ 37
- Distinct ............................................. 37
- Count ................................................ 38
- Sum .................................................. 38
- Union ................................................ 39
- Between (not between) ................................ 40
- In (not in) .......................................... 40
- Like (not like) ...................................... 40
- Group by ............................................. 40
- Max .................................................. 41
- Min .................................................. 41
- Having ............................................... 41
IV
NIFICACION.
Gestion del proyecto ..................................... 47
Seleccion de la aplicacion piloto ........................ 47
Definicion de estandares ................................. 48
Identificar los recursos a proteger ...................... 48
EGRIDAD DE DATOS.
Un adecuado diseño de base de datos ...................... 53
- Analisis total de los datos .......................... 53
- Normalizacion de los datos ........................... 53
Un adecuado diseño de modulos, codificacion y pruebas .... 54
CONCEPTOS
_________
+-------------+
¦ TERMINAL ¦
¦ CICS/OS/VS ¦
+-------------+
¦
+---------¦--------------------------------------------------
¦ v
¦ +------------+ MVS/SD
¦ ¦ CICS/OS/VS ¦-------------+ Sistema Operativo
¦ +------------+ ¦
¦ ¦ ¦
¦ v v
¦ +------------+ +-------+ +-----------+
¦ ¦ IMS/VS ¦ ¦ DB2 ¦<------- ¦ TSO y ¦
¦ ¦ DB ¦ +-------+ ¦ BATCH ¦
¦ +------------+ ¦ +-----------+
+---------¦------------------¦-------------------------------
¦ ¦
v v
+----------+ +-----------+
+----------+ ¦ +----------+ ¦
¦ Bases de ¦ ¦ ¦ Bases de ¦ ¦
¦ Datos ¦--+ ¦ Datos ¦----+
¦ IMS/VS ¦ ¦ DB2 ¦
¦ DL/I ¦ ¦ ¦
+----------+ +----------+
TABLAS
______
Los datos en las bases de datos DB2 estan disponibles para un prog
de aplicacion como un conjunto de tablas. Las tablas son estructur
datos de dos dimensiones, compuestas de FILAS y COLUMNAS.
Un nombre de tabla esta formado por un identificador de la persona
creo la tabla, y de un nombre descriptivo de esta, separados por p
. Datos numericos:
SMALLINT - Enteros binarios de media palabra
INTEGER - Enteros binarios de una palabra
DECIMAL - Numeros decimales
FLOAT - Numeros de coma flotante
INDICES
_______
VISTAS
______
AUTORIZACION
____________
CONCURRENCIA
____________
Unidad de recuperacion
______________________
AYUDAS A LA PROGRAMACION
________________________
Spufi:
_____ Permite usar el SQL sin tener que codificar un programa com
mediante instrucciones que pueden ser ejecutadas y mostrada
el terminal.
ONLINE HELP:
___________ Proporciona ayuda durante la ejecucion del spufi.
+-----------------------------------------------+
¦ APLICACION ¦
¦ ¦
¦ 1 - Area de datos <-----------+ ¦
¦ 2 - SQLCA ¦ ¦
¦ ¦ ¦
¦ +--> 3 - Entrada al programa ¦ ¦
¦ ¦ 4 - Tratar mensaje de entrada ¦ ¦
¦ ¦ 5 - Proceso ¦ ¦
¦ ¦ 6 - Instrucciones SQL ---+ ¦ ¦
¦ ¦ 7 - Mensaje de salida ¦ ¦ ¦
¦ ¦ +-- 8 - Terminacion ¦ ¦ ¦
¦ ¦ ¦ ¦ ¦ ¦
+---¦--¦----------------------------¦----¦------+
¦ ¦ ¦ ¦
¦ ¦ v ¦
+--------¦--------------+ +-----------+ -----> +-----
¦ ENTRY ¦ CICS/OS/VS ¦ ¦ CICS/OS/VS¦ ¦ DB2
¦ v ¦ +-----------+ <----- +-----
¦ EXIT ¦
+-----------------------+
INSTRUCCIONES S.Q.L.
____________________
INSTRUCCIONES BASICAS
______________________
CLAUSULA WHERE
______________
SELECT INTO
___________
Funcion
_______
Recuperar una fila especifica.
Formato
_______
EXEC SQL
SELECT nombres_de_las_columnas que nos interesan
INTO nombres_de_vbles usadas para contener los datos recupera
FROM nombre_de_la_tabla o vista que contiene los datos
WHERE condicion_de_busqueda
END-EXEC
Se pueden especificar hasta 300 columnas en la clausula SELECT. Si
quieren recuperar todas las columnas, en el mismo orden en que apa
en la fila, se pondra un asterisco, en lugar del nombre de las col
el valor de la primera columna especificada se guardara en la prim
UPDATE
______
Funcion
_______
Cambiar el valor de una o mas columnas en cada fila que satisface
condicion de busqueda de la clausula WHERE. Tambien se puede usar
borrar un valor de una fila , cambiando el valor de la columna a N
Formato
_______
EXEC SQL
UPDATE nombre_de_la_tabla o vista
SET columnas que se quieren actualizar = nuevo valor
WHERE condicion_de_busqueda
END-EXEC
El nuevo valor especificado para una columna puede ser el nombre d
otra columna de la misma fila, una constante, una variable, una ex
sion aritmetica, un valor nulo, etc.
Si se omite la clausula WHERE, el DB2 actualiza cada fila de la ta
o vista con los valores dados.
DELETE
______
Funcion
_______
Quitar filas enteras de una tabla, no columnas especificas.
10
Formato
_______
EXEC SQL
DELETE
FROM nombre_de_la_tabla o vista
WHERE condicion_de_busqueda
END-EXEC
Si se omite la clausula WHERE, se borraran todas las filas de la t
bla o vista. Para borrar la definicion de una tabla, ademas de su
contenido, se usa la instruccion DROP.
INSERT
______
Funcion
_______
Añadir nuevas filas a una tabla o vista, se puede:
. Especificar los valores de las columnas que se quieren insert
. Incluir una instruccion SELECT en la INSERT para decir al DB2
los datos para la nueva fila estan contenidas en otra tabla o
Formato
_______
EXEC SQL
INSERT
INTO nombre_de_la_tabla o vista (nombres de columnas)
VALUES (valor_de_cada_columna especificada en la clausula INT
END-EXEC
Si se especifican menos nombres de columnas de los que hay en la f
el DB2 les asigna valores por defecto.
Si se intenta insertar una fila que duplica otra existente en la t
. Si la tabla tiene un indice unico, la fila no es insertada, y
DB2 proporciona un SQLCODE -803
. Si la tabla no tiene un indice unico, la fila es insertada sin
Ejemplo:
Se crea una tabla llamada EMPTIME con las columnas EMPNUMBER,
PROYNUMBER, STARTDATE y ENDDATE, y se usa la INSERT para llenarla.
11
EXEC SQL
INSERT INTO USERA.EMPTIME
(EMPNUMBER, PROYNUMBER, STARTDATE, ENDDATE)
SELECT EMPNO, PROYNO, COMIENZO, FIN
FROM DSN.EMP
END-EXEC
En una SELECT embebida en una INSERT no se puede poner UNION ni OR
El numero de columnas de la SELECT debe ser el mismo de la INSERT.
datos que se seleccionan deben ser compatibles con las columnas en
que se van a insertar. Para las columnas que no se especifiquen se
sertaran los valores por defecto establecidos cuando se creo la ta
Cuando se inserta una fila en una vista, si esta no contiene todas
columnas de la tabla base, el DB2 inserta en ellas valores por def
DECLARE CURSOR
______________
Funcion
_______
Se usa para definir e identificar un conjunto de filas que van a s
accedidas con un cursor.
Formato
_______
EXEC SQL
DECLARE nombre_del_cursor
CURSOR FOR SELECT columna 1, columna 2 .....
FROM nombre_de_la_tabla
WHERE columna 1 = condicion_de_busqueda
FOR UPDATE OF columna 2 ...(columnas de cada fila que se
quieren actualizar)
END-EXEC
12
OPEN
____
Funcion
_______
Le dice al DB2 que se esta preparado para procesar la primera fila
la tabla de resultados.
Formato
_______
EXEC SQL
OPEN nombre_del_cursor
END-EXEC
FETCH
_____
Funcion
_______
Mover a las variables del programa el contenido de la fila selecci
Formato
_______
EXEC SQL
FETCH nombre_del_cursor
INTO variable 1, variable 2 ....
END-EXEC
Cuando se utiliza la instruccion FETCH, el DB2 usa el cursor para
tar a la siquiente fila de la tabla de resultados.
13
Funcion
_______
Para detectar que ya no tenemos mas filas para procesar se puede:
. Examinar si el SQLCODE tiene valor 100, esto ocurre cuando una
truccion FETCH ha recuperado la ultima fila de la tabla de res
dos y se da otra FETCH. Ejemplo: IF SQLCODE = 100 GO TO NO-DAT
. Codificar la instruccion WHENEVER NOT FOUND bifurcando a otra
del programa.
Formato
_______
EXEC SQL
WHENEVER NOT FOUND GO TO direccion_simbolica
END-EXEC
UPDATE
______
Funcion
_______
Una vez que se ha recuperado la fila actual, se puede actualizar e
con UPDATE.
Formato
_______
EXEC SQL
UPDATE nombre_de_la_tabla
SET columna 1 = valor , columna 2 = valor ....
WHERE CURRENT OF nombre_del_cursor
END-EXEC
Cada columna que se quiere actualizar debe haber sido nombrada pre
mente en la clausula FOR UPDATE OF de la instruccion DECLARE CURSO
La clausula WHERE identifica el cursor que apunta a la fila que va
ser actualizada. Despues de actualizar una fila, la posicion del c
permanece en esa fila hasta que se utilice una instruccion FETCH p
la siguiente fila.
Con la instruccion UPDATE se actualizan varias filas con una sola
truccion SQL, mientras que UPDATE ... WHERE CURRENT OF, permite ob
una copia de la fila, examinarla, y entonces, actualizarla.
14
DELETE
______
Funcion
_______
Una vez que se ha recuperado la fila actual, se puede borrar con D
Formato
_______
EXEC SQL
DELETE FROM nombre_de_la_tabla
WHERE CURRENT OF nombre_del_cursor
END-EXEC
La clausula WHERE identifica el cursor que apunta a la fila que va
borrada. Despues de borrar una fila, no se puede actualizar o borr
utilizando ese cursor, hasta que se de una FETCH para la siguiente
Con la instruccion DELETE se borran varias filas con una sola inst
ccion SQL, mientras que DELETE ... WHERE CURRENT OF, permite obten
una copia de la fila, examinarla, y entonces, borrarla.
CLOSE
_____
Funcion
_______
Cerrar el cursor una vez que se ha terminado de procesar las filas
la tabla de resultados si se quiere volver a utilizarlo. El DB2 ci
el cursor automaticamente cuando termina el programa.
Formato
_______
EXEC SQL
CLOSE nombre_del_cursor
END-EXEC
Si el programa completa una unidad de recuperacion todos los curso
abiertos son cerrados automaticamente por el DB2. Si el cursor se
ve a abrir, el proceso comenzara al principio de la tabla de resul
y se tendra que restablecer la posicion del cursor.
Ejemplo:
Supongamos que se quieren actualizar los datos de los empleados de
tabla DSN.EMPL dando un SYNCPOINT cada 100 filas.
15
OPERACIONES ARITMETICAS
_______________________
16
FUNCIONES BUILT-IN
__________________
MAX
___
MIN
___
SUM
___
COUNT
_____
17
GROUP BY
________
18
EXEC SQL
DECLARE XYZ CURSOR FOR
SELECT WORKDEPT, SEX, AVG(SALARY)
FROM DSN-EMP
GROUP BY WORKDEPT, SEX
END-EXEC
.......................................
EXEC SQL
FETCH XYZ
INTO :WORK-DEPT, :SEX, :AVG-SALARY
END-EXEC
HAVING
______
ORDER BY
________
19
UNION
_____
20
Ejemplo:
EXEC SQL
DECLARE XYZ CURSOR FOR
SELECT EMPNO
FROM DSN.EMP1
WHERE WORKDEPT = :WORK-DEPT
UNION
SELECT DISTINCT EMPNO
FROM DSN-EMP2
WHERE PROJNO = :NUM-PROY
END-EXEC
.......................................
EXEC SQL
FETCH XYZ
INTO :EMP-NUMBER
END-EXEC
21
EXEC SQL
DECLARE XYZ CURSOR FOR
SELECT EMP1.EMPNO, LASTNAME, ACTNUM, EMPTI
FROM DSN.EMP1, DSN-EMP2
WHERE EMP1.EMPNO = EMP2.EMPNO
END-EXEC
.......................................
EXEC SQL
FETCH XYZ
INTO :EMP-NUMBER, :NAME, :ACTIV, :TIME
END-EXEC
IN
__
Indica que se esta interesado en las filas para las que el valor d
columna especificada esta entre los valores que se listan.
WHERE WORKDEPT IN ('A00', 'C01', 'E02')
LIKE
____
Indica que se esta interesado en las filas para las que el valor d
columna especificada es similar al que se proporciona. El grado de
recido es determinado por dos caracteres especiales usados en la c
que se incluye en la condicion de busqueda:
22
IS NULL
_______
Indica que se esta interesado en las filas para las que el valor d
columna especificada es nulo.
WHERE CODIGO IS NULL
Para indicar que se esta interesado en las filas para las que el v
de la columna especificada es blancos.
WHERE CODIGO = ' '
VISTAS
______
CONCEPTO
________
SUBQUERY
________
EXEC SQL
DECLARE XYZ CURSOR FOR
SELECT EMPNO, LASTNAME, JOBCODE
FROM DSN.EMP1
WHERE EDUCLEVEL >
(SELECT AVG (EDUCLEVEL)
FROM DSN.EMP2
END-EXEC
25
.......................................
EXEC SQL
FETCH XYZ
INTO :EMP-NUMBER, :NAME, :CODE
END-EXEC
Ejemplo:
EXEC SQL
DECLARE XYZ CURSOR FOR
SELECT EMPNO, LASTNAME, JOBCODE
FROM DSN.EMP1
WHERE EMPNO IN
(SELECT DISTINCT EMPNO
FROM DSN.EMP2
WHERE PROYNO = 'M1')
END-EXEC
.......................................
EXEC SQL
FETCH XYZ
INTO :EMP-NUMBER, :NAME, :CODE
END-EXEC
26
Ejemplo:
WHERE EXISTS SUBQUERY
No es necesario especificar nombres de columna en la SELECT, sin
ya que la SUBQUERY no va a devolver datos.
SUBQUERY CORRELATIVA
____________________
OTROS EJEMPLOS
______________
27
EXEC SQL
DECLARE XYZ CURSOR FOR
SELECT EMPNO, LASTNAME, WORKDEPT, JOBCODE
FROM DSN.EMP ESTAFILA
WHERE JOBCODE >
(SELECT AVG (JOBCODE)
FROM DSN.EMP
WHERE WORKDEPT = ESTAFILA.WORKDE
END-EXEC
.......................................
EXEC SQL
FETCH XYZ
INTO :EMP-NUMBER, :NAME, :DEPT, :CODE
END-EXEC
28
PANELES
_______
1) Panel Principal
_______________
29
30
3) PANEL COMMIT/ROLLBACK
_____________________
RESTRICCIONES
_____________
31
32
33
VARIABLES INDICADOR
___________________
SQLCAID
_______
34
SQLCABC
_______
SQLCODE
_______
SQLERRM
_______
SQLERRD
_______
SQLERRD(3) indica el numero de filas insertadas, actualizadas o
borradas en una tabla.
SQLWARN0
________
35
SQLWARN1
________
SQLWARN2
________
SQLWARN3
________
SQLWARN4
________
36
37
- DECLARE CURSOR.
Esta sentencia SQL no actualiza el SQLCODE.
- SQLCODE = 100.
Si se declara un cursor para la SELECT y no hay filas que satis
las condiciones de busqueda el DB2 nos devuelve un SQLCODE = 10
en la primera FETCH que se haga.
APENDICE I
__________
*----------------------------------------------------------------*
* LEER TABLA DE ALTAS DE CLIENTE. *
*----------------------------------------------------------------*
BUSCA-ALTAS.
MOVE TVACLTEA TO CVANORAA-A
EXEC SQL
SELECT DISTINCT CVANORAA, CVANCTAA
INTO :CVANORAA-A, :CVANCTAA-A
FROM FVAORALV
WHERE CVANORAA = :CVANORAA-A
END-EXEC.
38
COUNT
_____
*----------------------------------------------------------------*
*CUENTA EL NUMERO DE DOMICILIACIONES DE UNA ENTIDAD EMISORA *
*----------------------------------------------------------------*
CUENTA-DOMICILI.
EXEC SQL
SELECT
COUNT (*)
INTO :CDOIMPOP-M
FROM FDOMAESV
WHERE CDOEMISA = :CDOEMISA-M
END-EXEC.
SUM
___
*----------------------------------------------------------------*
*SUMA EL CONTENIDO DEL CAMPO CVANTITP *
*----------------------------------------------------------------*
77 IND-NULL PIC S9(4) COMP VALUE 0.
SELECT2-FVAORBCV.
MOVE 0 TO IND-NULL CVANTITP-C SQLCODE.
EXEC SQL
SELECT SUM(CVANTITP)
INTO :CVANTITP-C :IND-NULL
FROM FVAORBCV
WHERE CVAENTIA = :WS-ENTI-DEPOS-1234 AND
CVACLTEA = :CVACLTEA-C AND
CVAPIVAA = :CVAPIVAA-C AND
CVAOBSTA = '03' AND
CVATIOPA = '5'
END-EXEC.
IF SQLCODE = NOENCONTRADO OR IND-NULL < 0
THEN . . .
39
UNION
_____
*------------------------------------------------------*
* SELECCIONAR DE CARTERAS LA SUMA DE TITULOS QUE EL *
* CLIENTE POSEE DE LA CLAVE VALOR AMPLIACION Y QUE *
* ESTEN EN SITUACION '0' O '1'. *
* SE RECUPERARA UN FILA POR CADA DISTINTO CLTE EN CADA*
* CARTERA. *
*------------------------------------------------------*
DECLARE-CURSOR1.
MOVE CORRECTO TO SQLCODE.
EXEC SQL
DECLARE CURSOR1 CURSOR FOR
SELECT
D.CVACLICA, SUM(CVAUNUMP - CVAPNUMP + 1)
FROM
FVACARTV D
WHERE
(D.CVAENTIA = :W-ENTIDAD AND
D.CVACLANA >= :WS-CVACLA00 AND
D.CVACLANA <= :WS-CVACLA19 OR
D.CVAENTIA = :W-ENTIDAD AND
D.CVACLANA >= :WS-CVACLA40 AND
D.CVACLANA <= :WS-CVACLA59) AND
D.CVASITIA IN('0', '1')
GROUP BY
D.CVACLICA
UNION ALL
SELECT
P.CVACLICA, SUM(CVANTITP)
FROM
FVACAPRV P
WHERE
(P.CVAENTIA = :W-ENTIDAD AND
P.CVACLANA >= :WS-CVACLA00 AND
P.CVACLANA <= :WS-CVACLA19 OR
P.CVAENTIA = :W-ENTIDAD AND
P.CVACLANA >= :WS-CVACLA40 AND
P.CVACLANA <= :WS-CVACLA59) AND
P.CVASITIA IN('0', '1')
GROUP BY
P.CVACLICA
ORDER BY 1
END-EXEC.
IF SQLCODE NOT = CORRECTO AND
SQLCODE NOT = NOENCONTRADO
THEN
MOVE 'DECLARE-CURSOR1' TO WS-PARRAFO
MOVE 'FVACARTV' TO DET8-TABLA
PERFORM FIN-DB2.
40
IN (not in)
__
WHERE CAMPO1 LIKE 'TIO %' (que empienza por "TIO ")
WHERE CAMPO1 LIKE '%RAMIRO%' (que lleva "RAMIRO" en
cualquier posicion)
EXEC SQL
DECLARE XMP1 CURSOR FOR
SELECT DEPARTAMENTO, SEXO, AVG(SALARIO)
FROM TABLA1
GROUP BY DEPARTAMENTO, SEXO
END-EXEC.
EXEC SQL
FETCH XMP1
INTO :CAMPO1, :CAMPO2, CAMPO3
END-EXEC.
41
EXEC SQL
SELECT MAX(SALARIO)
INTO :CAMPO1
FROM TABLA1
WHERE DEPARTAMENTO = 'AX21'
END-EXEC.
EXEC SQL
SELECT MIN(SALARIO)
INTO :CAMPO1
FROM TABLA1
WHERE DEPARTAMENTO = 'AX21'
END-EXEC.
EXEC SQL
DECLARE XMP1 CURSOR FOR
SELECT DEPARTAMENTO, AVG(SALARIO), MIN(EDLI)
FROM TABLA1
WHERE SEXO = 'V'
GROUP BY DEPARTAMENTO
HAVING MIN(EDLI) >= 16
END-EXEC.
EXEC SQL
FETCH XMP1
INTO :CAMPO1, :CAMPO2, CAMPO3
END-EXEC.
(Nos da la media del salario y el valor minimo del campo EDLI por
departamento cuando el campo sexo sea = 'V' y el minimo de EDLI
sea mayor o igual que 16).
42
WLM.-IBM
Son varias las funciones involucradas e
implementacion de una aplicacion en DB2, debiendo tener
cuenta el que una misma persona puede realizar mas de
funcion.
Las principales funciones que sera necesario desa
son:
ADMINISTRACION DE DATOS
_______________________
43
44
45
PROGRAMACION DE APLICACIONES
____________________________
46
47
¦Estrategia de desarrollo.
GESTION RDTO ¦Definir entorno de herramientas.
¦Analizar y refinar.
¦
48
3.-Definicion de Estandares.
Participaran en administrador de base de datos
administrador de datos, el programador del sistema y
analista de la aplicacion.
Su actividad consistira en :
a) Denominacion de los objetos DB2, programas, cop
transacciones, usuarios, jobs.
b) Directrices para el diseño de tablas y de
aplicacion.
c) Directrices para la programacion de la aplicacion
d) Directrices de documentacion.
e) Procedimientos especificos de instalacion.
49
2.-Analisis de aplicaciones.
Consistira en la eleccion y aplicacion de
metodologia por parte de los analistas de aplicaciones,
para las tareas de:
* Definicion de requerimientos.
* Diseño externo.
* Modelo logico de datos.
* Diseño interno.
Actividades importantes, integradas en las señala
son:
- ANALISIS DE DATOS.
- DESARROLLAR PROTOTIPOS FUNCIONALES ( QMF, CSP, SQL
- DIRECTRICES PARA EL DISEÑO DE APLICACIONES.
50
51
INTRODUCCION.-
______________
A)ANALISIS DE DATOS.
____________________
52
B)NORMALIZACION
_______________
53
C)INTEGRIDAD REFERENCIAL
________________________
INTEGRIDAD DE DATOS:
_____________________
54
55
A)CONCURRENCIA.
______________
56
57
58
59
60
SELECCION DE INDICES
____________________
La seleccion de indices es uno de los aspectos
importantes en el diseño, siendo la mas notable consecuen
el rendimiento, ademas de permitirnos forzar la unicidad
registros en donde la clave sea unica.
61
ACCESO DE DATOS
_______________
62
3)Algunas tecnicas que ayudan a elegir el mejor camino
acceso son:
a)Si se va a actualizar una columna de un indice, entonc
este indice no se considerara por el DB2 en sus criterio
de busqueda. El procedimiento aconsejable sera:
1)DECLARE y OPEN, una SELECT con el criterio de actualiz
2)FETCH a fila ( proxima).
3)Cambiar el valor de la columna en el programa.
4)DELETE de fila usando la clave primaria unica.
5)Re-Insertar la fila con el nuevo valor de la columna.
6)Repetir los pasos 2-5 para continuar actualizando fila
¦ Programa ¦
¦ Fuente ¦
¦
v
¦ Traductor ¦
¦ Comandos Cics ¦
¦
v
¦ Precompilador ¦
¦ DB2 ¦
¦
¦ ¦
v v
¦ DBRM ¦ ¦ Compilador ¦
¦ Cobol ¦
¦
v ¦
¦ BIND ¦ v
¦ linkaje ¦
¦
v ¦
¦ PLAN ¦ v
¦ modulo ¦
GESTION DE CAMBIOS EN BD
________________________
Por cambios en :
-Tablas y/o vistas (DROP, CREATE, ALTER).
-Adicion o baja de indices.
-Cambios en el espacio de tablas (ALTER).
65
66
2.-MEJORAS EN LA OPERACION.
67
3.-MEJORAS DE RENDIMIENTOS.
C)En :
* Evitar sort innecesarios en ORDER BY y GROUP BY.
* Clasifica el resultado de una IN subquery.
68
________________________________________________________________
________________________________________________________________
________________________________________________________________
________________________________________________________________