You are on page 1of 95

Programming Bases in Mainframe

Mdulo Especfico

Tpico 410 - Data Storage & Data Base Management System

Tpico 420 - Accesing Data in a Data Base

Tpico 430 - Accessing Data from within a Program.

Estndares de programacin SQL.

Tpico 410 - Data Storage & Data Base Management System

OBJETIVOS.

Definir una Base de Datos.


Identificar los diferentes tipos de Bases de Datos. Definir un Sistema Manejador de Base de Datos. Describir funciones, ventajas y desventajas de un Manejador de Base de Datos. Describir las ventajas de una Base de datos relacional. Explicar las caractersticas bsicas del Sistema Manejador de Bases de Datos DB2.

Tpico 410 - Data Storage & Data Base Management System

Sistemas Manejadores de Bases de Datos y Bases de Datos.

Conceptos.

Base de Datos. Coleccin de archivos que contienen datos.

Manejador de Base de datos (DBMS). Es un grupo de programas especialmente escritos que pueden localizar datos existentes en una Base de datos.

Tpico 410 - Data Storage & Data Base Management System

Sistemas Manejadores de Bases de Datos y Bases de Datos.

Tipos de Organizacin.

Fsica.

Los datos deben ser almacenados en una posicin especifica de la Base de Datos.

Los datos tienen un tamao asociado, el cual debe ser tomado en cuenta cuando son almacenados.

Ejemplo: Datos Libros de una biblioteca

Posicin de los datos dentro de la base da datos


Tamao de los datos (nmero de bytes)
5

Piso o ubicacin donde se encuentra el libro.


Caractersticas fsicas del libro

Tpico 410 - Data Storage & Data Base Management System

Sistemas Manejadores de Bases de Datos y Bases de Datos.

Tipos de Organizacin.

Fsica (cont.)

El almacenamiento de las bases de datos es externa a la Working Storage de un programa COBOL.

Las principales caractersticas del almacenamiento externo de datos son:


Pueden ser accedidos rpidamente. El acceso a los datos puede ser limitado a los datos que slo quieran consultarse. Acceder a ciertos datos que puedan ser restringidos a los usuarios. Requiere menos espacio de memoria en la Working Storage. La informacin se encuentra disponible para mltiples usuarios.
6

Tpico 410 - Data Storage & Data Base Management System

Sistemas Manejadores de Bases de Datos y Bases de Datos.

Tipos de Organizacin.

Lgica.

Se refiere a las relaciones lgicas entre los datos que estn siendo almacenados en la Base de datos, sin necesidad de conocer su actual posicin en memoria o fsica en la Base de datos. Elementos de la Organizacin lgica:

Entidad. Trmino usado para refererirse a un objeto en particular que es representado en una Base de datos. Relacin. Es la correspondencia Datos. que existe entre las Bases de

Ocurrencias. Mientras una entidad se refiere a un objeto almacenado en una base de datos, las ocurrencias se refieren a una entidad especifica.
7

Tpico 410 - Data Storage & Data Base Management System

Sistemas Manejadores de Bases de Datos y Bases de Datos.

Tipos de Organizacin.

Lgica (cont.)
Cada materia tiene Muchos libros acerca de esta

Entidad

Materias (Negocios)

Entidad
Relacin en ambos sentidos Cada libro es escrito acerca de una materia

Contabilidad Bsica

Principios de Economa

Direccin Organizacional

Tpico 410 - Data Storage & Data Base Management System

Sistemas Manejadores de Bases de Datos y Bases de Datos.

Tipos de Organizacin.

Lgica (cont.)

ENTIDAD

Lista de Clientes

Jef Van Wie

Daniel Kim

Jodi Wert

OCURRENCIAS

Tpico 410 - Data Storage & Data Base Management System

Sistemas Manejadores de Bases de Datos y Bases de Datos.

Tipos de Organizacin.

Lgica (cont.)

Representacin de una entidad que pertenece a otra entidad.


Regin Europea
ENTIDAD PADRE

Regin Norte Amrica

Regin Del Sur

Regin Europea

Regin Asia

Regin frica/ Europa Este

ENTIDAD HIJO ENTIDAD PADRE

Oficina Nueva York

Oficina Chicago

Oficina Ro de Janeiro

Oficina Londres

Oficina Pars

Oficina Bangkok

Oficina Sydney

Oficina Riyadh

ENTIDAD HIJO

10

Tpico 410 - Data Storage & Data Base Management System

Sistemas Manejadores de Bases de Datos y Bases de Datos.

Tipos de Relaciones entre entidades.

Uno a uno. Significa que a un padre le pertenece un hijo.

Regin Amrica Del Sur

ENTIDAD PADRE

Oficina Ro de Janeiro

ENTIDAD HIJO

11

Tpico 410 - Data Storage & Data Base Management System

Sistemas Manejadores de Bases de Datos y Bases de Datos.

Tipos de Relaciones entre entidades.

Uno a muchos. Esta relacin existe cuando a un padre le pertenece ms de un hijo, y cada hijo tiene slo un padre.

Territorio de ventas

ENTIDAD PADRE

Regin Norte Amrica

Regin Amrica Del Sur

Regin Asia

Regin Europea

Regin frica/ Europa Este

ENTIDAD HIJO

12

Tpico 410 - Data Storage & Data Base Management System

Sistemas Manejadores de Bases de Datos y Bases de Datos.

Tipos de Relaciones entre entidades.

Muchos a muchos. Esta relacin existe cuando a un padre le pertenecen ms de un hijo, y cada hijo le corresponden mltiples padres.

Regin Norte Amrica

Regin Amrica Del Sur

ENTIDAD PADRE

Oficina Nueva York

Oficina Chicago

Oficina Mxico

Oficina Ro de Janeiro

ENTIDAD HIJO

13

Tpico 410 - Data Storage & Data Base Management System

Sistemas Manejadores de Bases de Datos y Bases de Datos.

Tipos de Bases de Datos.


Las bases de datos se catalogan de acuerdo al tipo de relacin que existe entre sus datos.

Jerrquicas

Network
Relacional

14

Tpico 410 - Data Storage & Data Base Management System

Sistemas Manejadores de Bases de Datos y Bases de Datos.

Tipos de Bases de Datos.

Jerrquicas. Este tipo de base de datos, establece una relacin de arriba - abajo entre los datos. Esta basada en una relacin uno a uno o uno a muchos.

Catlogo General

Catlogo de Qumica

Catlogo de Historia

Introduccin a Qumica

Qumica Orgnica

Qumica Atmica

Historia de La Humanidad

Primera Guerra Mundial

15

Tpico 410 - Data Storage & Data Base Management System

Sistemas Manejadores de Bases de Datos y Bases de Datos.

Tipos de Bases de Datos.

Desventajas del tipo de Bases de Datos jerrquicas.


Estructura rgida. Estructura Compleja. Las relaciones son limitadas.

16

Tpico 410 - Data Storage & Data Base Management System

Sistemas Manejadores de Bases de Datos y Bases de Datos.

Tipos de Bases de Datos.

Red (Network). Este tipo de base de datos, no restringe la relacin por lo que pueden establecerse relaciones desde uno a uno, uno a muchos y muchos a muchos.

El trmino de relacin owner-member, es el mismo concepto de la relacin padre-hijo. El modelo de Red es ms flexible que el jerrquico ya que permite la relacin muchos a muchos, adems de ser apropiada para el rpido procesamiento de altos volmenes de informacin.
Ben Dan Julie Mike

Arte Saln 12B Hora 09:00

Qumica Saln 506 Hora 13:00

Matemticas Saln 202 Hora 15:00 17

Biologa Saln 405 Hora 18:00

Francs Saln 233 Hora 12:00

Computadoras Saln 122 Hora 08:00

Tpico 410 - Data Storage & Data Base Management System

Sistemas Manejadores de Bases de Datos y Bases de Datos.

Tipos de Bases de Datos.

Desventajas.

No permite la manipulacin de datos por usuarios inexpertos. Es una estructura esttica, una vez definidas las relaciones no pueden ser cambiadas tan fcilmente, y son de alta complejidad.

18

Tpico 410 - Data Storage & Data Base Management System

Sistemas Manejadores de Bases de Datos y Bases de Datos.

Tipos de Bases de Datos.

Relacional. Es un modelo de almacenamiento en tablas, que estn compuestas de renglones y columnas.

La relacin padre-hijo no existe en este tipo de Bases de datos, estas son mantenidas a travs de la unin de columnas comunes (CROSS REFERENCE).
Hrs. Trab.
25 42 62 12

No-Emp.
SAID, FRANK DAVIS, JACKIE KOBREEK, NANCY BOVEN, MARY

Tarifa
5.35 8.25 2.50 4.50

Extra
0 2 22 0

Impuesto
15% 25% 5% 17%

No-Emp.
SAID, FRANK DAVIS, JACKIE KOBREEK, NANCY

Antigedad
14

F.Nac.
7-12-1956

Universidad
UNIVERSISDAD CALIFORNIA COLEGIO CARLLENGTON COLEGIO SMITH

21-03-1959

13-12-1959

BOVEN, MARY

15

4-08-1950

COLEGIO LAKE

CROSS REFERENCE

19

Tpico 410 - Data Storage & Data Base Management System

Sistemas Manejadores de Bases de Datos y Bases de Datos.

Tipos de Bases de Datos.

Ventajas.

Fcil uso. Por el manejo de columnas y renglones. Estructura de naturaleza dinmica. La cual puede ser modificada en cualquier momento para adicionar una columna, no causando gran impacto como lo sera en una estructura jerrquica o de red. Fcil acceso a usuarios sin experiencia y desarrollo para sistemas sofisticados. Son menos estructuradas El tiempo de procesamiento es ms lento No pueden manejar grandes cantidades de transacciones

Desventajas.

20

Tpico 410 - Data Storage & Data Base Management System

Sistemas Manejadores de Bases de Datos y Bases de Datos.

Tipos de Bases de Datos.

Tipo de Base de Datos

Estructura Predefinida

Vista Esttica

Relacin Entidad Padre-hijo Uno a uno Uno a muchos Uno a uno Uno a muchos Muchos a muchos Relaciones no definidas

Rendimiento - Muy rpido - Manejo de alto volumen de transacciones - Rpido - Manejo de alto volumen de transacciones - Acceso medio - Manejo de volumen de transacciones medio.

Jerrquica

Si

Si

Network

Si

Si

Relacional

No

No

21

Tpico 410 - Data Storage & Data Base Management System

Sistemas Manejadores de Bases de Datos y Bases de Datos.

Manejador de Base de Datos (DBMS).

Es un software que permite la comunicacin entre los programas orientados al negocio y la base de datos. Un DBMS permite concentrarse en las relaciones entre las diferente entidades de los datos, sin ser necesario conocer la organizacin de los datos.

Programa de aplicacin

DBMS

Base de Datos

22

Tpico 410 - Data Storage & Data Base Management System

Sistemas Manejadores de Bases de Datos y Bases de Datos.

Funciones de un DBMS.

Almacenamiento de datos. Controla el almacenamiento fsico de las Bases de datos.

Acceso de datos. Controla cmo son accedidos los datos fsicamente.

Mantenimiento de los datos. Esta incluye el mantenimiento de los datos como: actualizacin, insercin, borrado de datos.

23

Tpico 410 - Data Storage & Data Base Management System

Sistemas Manejadores de Bases de Datos y Bases de Datos.

Ventajas de un DBMS.

Velocidad. Los datos pueden ser accedidos rpidamente. Seguridad. El acceso a datos especiales es controlado Reduce la redundancia de datos. Los datos slo pueden ser almacenados una vez. Datos compartidos. Ms de una persona puede acceder a los mismos datos. Integridad de los datos. Puede ser mantenida exacta y consistentemente. Almacenamiento lgico de los datos. No es necesario conocer dnde se encuentran los datos almacenados, es suficiente hacer referencia lgica a los datos.

24

Mdulo Especfico

Tpico 410 - Data Storage & Data Base Management System.

Tpico 420 - Accesing Data in a Data Base.

Tpico 430 - Accessing Data from within a Program.

Estndares de programacin SQL.

25

Tpico 420 - Accessing Data in a Data Base

OBJETIVOS.

Escribir queries bsicos de SQL usando el comando SELECT y sus variaciones.

Escribir queries usando la combinacin bsica con AND y OR

Mantenimiento y modificacin de tablas usando comandos de INSERT, UPDATE, DELETE.

26

Tpico 420 - Accessing Data in a Data Base

Introduccin a SQL

SQL (Structure Query Lenguage). Es un lenguaje de manipulacin de datos, el cual al ser utilizado en combinacin con un manejador de base de datos permite acceder y manipular datos, as como definir datos (DB2).
Los datos contenidos en las tablas de la Base de datos son accedidos a travs de QUERIES, que son sentencias casi en lenguaje ingls.
Terminal en lnea Comandos SQL BD relacionadas

Tabla 1

Datos de las Tablas

DB2 XDB
DBMS

Tabla 2

Tabla 3
Tablas

27

Tpico 420 - Accessing Data in a Data Base

Introduccin a DB2.

Las bases de datos relacionales comienzan a tener mayor auge en 1980, llegando a reemplazar a las bases de datos jerrquicas.
DB2 es una herramienta usada en las DBMS, corre bajo el sistema operativo MVS de IBM. Caractersticas de DB2.

Utiliza lenguaje SQL (Structure Query Language), para acceder a los datos. En este lenguaje se distinguen dos sublenguajes:

Data Definition Language (DDL). Provee la definicin o descripcin de las tablas de las bases de datos. Manipula la estructura de las tablas. Data Manipulation Language (DML). Realiza la manipulacin o procesamiento de las tablas. Permite el acceso, actualizacin y mantenimiento de los datos.

28

Tpico 420 - Accessing Data in a Data Base

Introduccin a DB2.

Trminos de DB2.

Tabla. Es similar a un archivo, se encuentra compuesta de columnas y renglones.


Nombre CHOCO, DAN B. Direccin 465 JEFFERSON RD. MANSFIELD, CA. 34 SUNSET DR. BROOKVIEW, CA. 5213 ROCKET ROAD, MYTOWN, CA. Registro-polica YES

RENGLONES

BISHOP, MARY JONES, JACK

YES NO

COLUMNAS

29

Tpico 420 - Accessing Data in a Data Base

Introduccin a DB2.

Trminos de DB2.

Vista. Es una representacin alternativa de los datos de una o ms tablas.


Nombre CHOCO, DAN B. Direccin 465 JEFFERSON RD. MANSFIELD, CA. VISTA

Nombre CHOCO, DAN B. TABLA BISHOP, MARY JONES, JACK

Direccin 465 JEFFERSON RD. MANSFIELD, CA. 34 SUNSET DR. BROOKVIEW, CA. 5213 ROCKET ROAD, MYTOWN, CA.
30

Registro-polica YES YES NO

Tpico 420 - Accessing Data in a Data Base

Introduccin a DB2.

Trminos de DB2.

Query. Es una sentencia SQL usada para acceder los datos de las tablas en una Base de datos.

31

Tpico 420 - Accessing Data in a Data Base

Trminos de Bases de datos

Trminos de Bases de Datos Estndar 1. Base de datos - Es una coleccin de archivos que contienen datos 2. Archivo de datos - Es una coleccin de registros 3. Registro - Es un conjunto de campos.

Trminos de Bases de Datos Relacionales 1. Base de datos Relacional - es una coleccin de tablas 2. Tabla - Es una coleccin de renglones y columnas. 3. Rengln - es un conjunto de valores de una columnas 4. Columnas

4. Campos

32

Tpico 420 - Accessing Data in a Data Base

Funciones bsicas de SQL.

Son cuatro las funciones que permite realizar SQL.


Seleccionar (acceder) datos de las tablas (SELECT). Insertar o adicionar datos a las tablas (INSERT). Actualizar, modificar o dar mantenimiento a las tablas (UPDATE). Eliminar o borrar datos de las tablas (DELETE).

33

Tpico 420 - Accessing Data in a Data Base

Funciones Bsicas de SQL Tabla de Presidentes


PRE_NOMBRE ENGEL L C LOPEZ R A JOHNSON S L NEWTON D W FORD S B CARTIER J M RYAN J R PRE_NAC 1900 1927 1918 1923 1923 1934 1921 PRE_ANTI 8 2 5 5 2 4 8 PRE_EDAD 79 46 65 PRE_SEXO M F F M M F M PRE_OFIC TORONTO MADRID TORONTO CHICAGO NEW YORK GENOVA LONDRES

34

Tpico 420 - Accessing Data in a Data Base

Funciones bsicas de SQL - SELECT.

La sentencia SELECT permite acceder y seleccionar los datos de la tabla.

SELECT [*][nombre_columna1,nombre_columnaN][n] FROM tabla WHERE condicin.

35

Tpico 420 - Accessing Data in a Data Base

Funciones bsicas de SQL - SELECT.

Seleccin de todas las columnas de una tabla.


QUERY SELECT * FROM PRESIDENTES
PRE_NOMBRE ENGEL L C LOPEZ R A JOHNSON S L NEWTON D W FORD S B CARTIER J M RYAN J R

RESULTADO DEL QUERY


PRE_NAC 1900 1927 1918 1923 1923 1934 1921 PRE_ANTI 8 2 5 5 2 4 8 PRE_EDAD 79 46 65 PRE_SEXO M F F M M F M PRE_OFIC TORONTO MADRID TORONTO CHICAGO NEW YORK GENOVA LONDRES

Evitar el uso de * a menos que se requiera, ya que ste implica tiempo de procesamiento. Los nombres de las columnas son conectados a travs de _.

36

Tpico 420 - Accessing Data in a Data Base

Funciones bsicas de SQL - SELECT.

Selecciona los datos de las columnas especificadas por su nombre.


QUERY SELECT PRE_NOMBRE, PRE_SEXO FROM PRESIDENTES RESULTADO DEL QUERY
PRE_NOMBRE ENGEL L C LOPEZ R A JOHNSON S L NEWTON D W FORD S B CARTIER J M RYAN J R PRE_SEXO M F F M M F M

Los nombres de las columnas deben ser separados por comas. El orden de las columnas aparece de acuerdo al especificado en el query.

37

Tpico 420 - Accessing Data in a Data Base

Funciones bsicas de SQL - SELECT.

Selecciona los datos de las columnas especificadas por su posicin.


QUERY SELECT 5,1 FROM PRESIDENTES RESULTADO DEL QUERY
PRE_SEXO M F F M M F M PRE_NOMBRE ENGEL L C LOPEZ R A JOHNSON S L NEWTON D W FORD S B CARTIER J M RYAN J R

El orden de las columnas aparece de acuerdo al especificado en el query.

38

Tpico 420 - Accessing Data in a Data Base

Funciones bsicas de SQL - SELECT DISTINCT.

La sentencia SELECT DISTINCT permite seleccionar datos de la tabla y eliminar de la seleccin aquellos duplicados.

SELECT DISTINCT nombre_columna

FROM tabla
WHERE condicin.

39

Tpico 420 - Accessing Data in a Data Base

Funciones bsicas de SQL - SELECT DISTINCT.

Seleccin de una columna


QUERY SELECT DISTINCT PRE_SEXO FROM PRESIDENTES RESULTADO DEL QUERY

PRE_SEXO M F

Seleccionando dos columnas


QUERY SELECT DISTINCT PRE_SEXO, PRE_OFIC FROM PRESIDENTES RESULTADO DEL QUERY
PRE_SEXO M F F M M F M PRE_OFIC TORONTO MADRID TORONTO CHICAGO NEW YORK GENOVA LONDRES

40

Tpico 420 - Accessing Data in a Data Base

Funciones bsicas de SQL - WHERE.

Permite establecer condiciones especificas de la seleccin de datos.

SELECT nombre-columna FROM tabla WHERE nombre_columna1 [=, >,<,<>] nombre_columna2, constante
QUERY SELECT PRE_NOMBRE FROM PRESIDENTES WHERE PRE_SEXO = M RESULTADO DEL QUERY

PRE_NOMBRE ENGEL L C NEWTON D W FORD S B RYAN J R

41

Tpico 420 - Accessing Data in a Data Base

Funciones bsicas de SQL - WHERE.

Distincin de valores numricos y alfanumricos


Valor Alfanumricos Entre comillas SI Bsqueda Tienen que ser idntico el carcter indicado al buscado Los valores pueden ser equivalentes. Valor 123 ABC $123 1.2 1-2 Representacin Alfanumrica 123 ABC $123 1.2 1-2 Representacin Numrica 123 No aplica No aplica 1.2 No aplica

Numricos

No

42

Tpico 420 - Accessing Data in a Data Base

Funciones bsicas de SQL - ORDER BY.

La clusula ORDER BY permite especificar el orden en el que deben ser listados los datos accedidos.

SELECT nombre-columna

FROM tabla
ORDER BY [nombre_columna, N]

43

Tpico 420 - Accessing Data in a Data Base

Funciones bsicas de SQL - ORDER BY.

Ordenacin por una columna


QUERY SELECT PRE_NOMBRE, PRE_SEXO, PRE_OFIC FROM PRESIDENTES ORDER BY PRE_NOMBRE RESULTADO DEL QUERY
PRE_NOMBRE CARTIER J M ENGEL L C FORD S B JOHNSON S L LOPEZ R A NEWTON D W RYAN J R PRE_SEXO F M M F F M M PRE_OFIC GENOVA TORONTO NEW YORK TORONTO MADRID CHICAGO LONDRES

44

Tpico 420 - Accessing Data in a Data Base

Funciones bsicas de SQL - ORDER BY.

Ordenacin por ms de una columna


QUERY SELECT PRE_NOMBRE, PRE_SEXO, PRE_ANTI FROM PRESIDENTES WHERE PRE_NAC > 1921 ORDER BY PRE_SEXO, PRE_ANTI RESULTADO DEL QUERY

PRE_NOMBRE LOPEZ R A CARTIER J M FORD S B NEWTON D W

PRE_SEXO F F M M

PRE_ANTI 2 4 2 5

45

Tpico 420 - Accessing Data in a Data Base

Funciones bsicas de SQL - ORDER BY.

Los datos pueden ser ordenados ascendentemente (ASC)

QUERY SELECT PRE_ANTI FROM PRESIDENTES ORDER BY PRE_ANTI

RESULTADO DEL QUERY


PRE_ANTI 2 2 4 5 5 8 8

ASC

46

Tpico 420 - Accessing Data in a Data Base

Funciones bsicas de SQL - ORDER BY.

Los datos pueden ser ordenados descendentemente (DESC)

QUERY SELECT PRE_ANTI FROM PRESIDENTES ORDER BY PRE_ANTI

RESULTADO DEL QUERY


PRE_ANTI 8 8 5 5 4 2 2

DESC

47

Tpico 420 - Accessing Data in a Data Base

Funciones bsicas de SQL - ORDER BY.

En vez de utilizar los nombres de las columnas con la clusula ORDER BY, se pueden utilizar nmeros que correspondan al orden en que las columnas se listan en la sentencia SELECT.
QUERY SELECT PRE_NOMBRE, PRE_SEXO, PRE_ANTI FROM PRESIDENTES WHERE PRE_NAC > 1921 ORDER BY 2, 3 RESULTADO DEL QUERY

PRE_NOMBRE LOPEZ R A CARTIER J M FORD S B NEWTON D W

PRE_SEXO F F M M

PRE_ANTI 2 4 2 5

48

Tpico 420 - Accessing Data in a Data Base

Condiciones Mltiples.

Las condiciones usadas en la sentencia WHERE pueden ser combinadas con las clusulas AND y OR.

OR - Se utiliza para vincular las condiciones de bsqueda en un query, la seleccin regresa los registros que cumplan con alguna de las condiciones especificadas.
QUERY SELECT PRE_NOMBRE, PRE_OFIC, PRE_SEXO FROM PRESIDENTES WHERE PRE_OFIC = TORONTO OR PRE_OFIC = GENOVA RESULTADO DEL QUERY

PRE_NOMBRE ENGEL L C JOHNSON S L CARTIER J M

PRE_OFIC TORONTO TORONTO GENOVA

PRE_SEXO M F F

49

Tpico 420 - Accessing Data in a Data Base

Condiciones Mltiples.

AND - Se utiliza para vincular las condiciones de bsqueda en un query, la seleccin regresa los registros que cumplan con todas las condiciones especificadas.
STAFF_NOMBRE SANDER HANES STAFF_SALARIO 48357.50 30659.80 41150.00 41225.00 39818.00 41000.00 STAFF_PUESTO DIRECTOR DIRECTOR DIRECTOR VENTAS DIRECTOR VENTAS

Tabla de STAFF

FRAYE SMITH QUILL GRAHAM

QUERY SELECT STAFF_NOMBRE, STAFF_SALARIO, STAFF_PUESTO FROM STAFF WHERE STAFF_PUESTO = DIRECTOR AND STAFF_SALARIO > 40000

RESULTADO DEL QUERY


STAFF_NOMBRE SANDER FRAYE STAFF_SALARIO 48357.50 41150.00 STAFF_PUESTO DIRECTOR DIRECTOR

50

Tpico 420 - Accessing Data in a Data Base

Condiciones Mltiples.

OR y AND mltiples. Se puede vincular ms de una condicin a travs de OR y AND.


QUERY SELECT PRE_NOMBRE, PRE_ANTI FROM PRESIDENTES WHERE PRE_NOMBRE= JOHNSON S L OR PRE_SEXO = F OR PRE_ANTI > 4 RESULTADO DEL QUERY

PRE_NOMBRE ENGEL L C LOPEZ R A JOHNSON S L NEWTON D W CARTIER J M RYAN J R

PRE_ANTI 8 2 5 5 4 8

QUERY SELECT PRE_NOMBRE, PRE_ANTI FROM PRESIDENTES WHERE PRE_NOMBRE= JOHNSON S L AND PRE_SEXO = F AND PRE_ANTI > 4

RESULTADO DEL QUERY

PRE_NOMBRE JOHNSON S L

PRE_ANTI 5

51

Tpico 420 - Accessing Data in a Data Base

Condiciones Mltiples.

OR y AND combinados. Se puede vincular ms de una condicin a travs de OR y AND en forma combinada.

SQL evalan primero las condiciones AND, en caso de que no sean utilizados parntesis.
QUERY RESULTADO DEL QUERY

SELECT FLIGHT, DEPARTS, DESTINATION FROM AIRLINE_SCHEDULE WHERE DEPARTS > 'PM1200' AND DESTINATION = 'NEW YORK' OR DESTINATION = 'NEWARK'

FLIGHT 101 116 142 193 184

DEPARTS PM1300 PM1400 AM0700 PM1400 PM1500

DESTINATION NEW YORK NEW YORK NEWARK NEWARK NEWARK

En el ejemplo las dos primeras expresiones son combinadas para crear la primera condicin, la segunda condicin slo considera los vuelos con destino a NEWARK sin importar la hora, para tomar en cuenta la hora se requerira el uso de parntesis.
52

Tpico 420 - Accessing Data in a Data Base

Parntesis y clusula WHERE.

Los parntesis se pueden utilizar para eliminar el orden en que SQL evalan las expresiones.
El uso de parntesis con mltiples condiciones de bsqueda permite mejorar la legibilidad de la consulta. El orden de bsqueda cuando se usan los parntesis es:
1. 2. 3.

Se evalan las expresiones encerradas en parntesis Son consideradas las condiciones vinculadas con AND Se evalan las condiciones vinculadas con OR
QUERY SELECT FLIGHT, DEPARTS, DESTINATION FROM AIRLINE_SCHEDULE WHERE (DESTINATION = 'NEW YORK' OR DESTINATION = 'NEWARK) AND DEPARTS > 'PM1200' RESULTADO DEL QUERY

FLIGHT 101 116 193 184


53

DEPARTS PM1300 PM1400 PM1400 PM1500

DESTINATION NEW YORK NEW YORK NEWARK NEWARK

Tpico 420 - Accessing Data in a Data Base

Uso de valores Nulos en condiciones.

Los valores nulos hacen referencia a un valor especial que indica ausencia de valor.
En algunos manejadores se representan por un guin -. El que la columna de una tabla pueda o no contener valores nulos, depender de la definicin que haya especificado el DBA cuando la tabla fue creada.
Nulo STAFF_JOB CLERK SALES CLERK CLERK STAFF_SALARY 20659.00 16502.83 12508.20 11600.00 1152.00 206.60 0.00 STAFF_COMM

Por ejemplo:
STAFF_NAME HANES ROTHMAN NOONAN NEWCOMBE

54

Tpico 420 - Accessing Data in a Data Base

Uso de valores Nulos en condiciones.

Reglas de manejo para valores nulos:

Si una condicin es aplicada en una columna que contiene valores nulos, los registros no son seleccionados. Si se realiza un calculo utilizando una columna que contenga valores nulos, los registros que contienen nulos sern ignorados.

QUERY SELECT STAFF_NAME, STAFF_JOB, STAFF_SALARY, STAFF_COM FROM STAFF WHERE STAFF_JOB = CLERK AND STAFF_COM < 1000.00

RESULTADO DEL QUERY

STAFF_NAME NOONAN NEWCOMBE

STAFF_JOB CLERK CLERK

STAFF_SALARY 12508.20 11600.00

STAFF_COMM 206.60 0.00

55

Tpico 420 - Accessing Data in a Data Base

Uso de valores Nulos en condiciones.

Seleccin de valores nulos en una columna:


SINTAXIS SELECT columna1, columnaN FROM tabla WHERE columna IS NULL EJEMPLO SELECT STAFF_NAME, STAFF_JOB, STAFF_SALARY, STAFF_COM FROM STAFF WHERE STAFF_COM IS NULL

Seleccin de valores no nulos en una columna:


SINTAXIS EJEMPLO

SELECT columna1, columnaN FROM tabla WHERE columna IS NOT NULL

SELECT STAFF_NAME, STAFF_JOB, STAFF_SALARY, STAFF_COM FROM STAFF WHERE STAFF_COM IS NOT NULL

56

Tpico 420 - Accessing Data in a Data Base

Modificacin de Tablas - INSERT

El comando INSERT, permite la adicin nuevos registros a una tabla existente.


INSERT INTO tabla VALUES (valor1, valor2, valorN)

Reglas para uso del comando INSERT: Debe haber un valor para cada columna de la tabla. Los valores deben estar listados en el orden en que las columnas aparecen en la tabla, en caso de no haber listado los campos. Los valores deben estar separados por comas. Cada campo alfanumrico (carcter) debe estar entre comillas. Los valores numricos no requieren comillas.

57

Tpico 420 - Accessing Data in a Data Base

Modificacin de Tablas - INSERT

Insercin de registros sin especificacin de columnas.

QUERY INSERT INTO TELEFONOS VALUES ('ABRAMS', 'DIANE', 2037951234, 123)

RESULTADO DEL QUERY


APELLIDO ABRAMS NOMBRE DIANE NO_TELEF 2037951234 EXT 123

El orden de los valores debe ser el mismo en el que se encuentran organizadas las columnas de la tabla.

58

Tpico 420 - Accessing Data in a Data Base

Modificacin de Tablas - INSERT

Insercin de registros especificando los nombres de columnas.


QUERY INSERT INTO TELEFONOS (APELLIDO, NOMBRE, NO_TLEF, EXT) VALUES ('ABRAMS', 'DIANE', 2037951234, 123) RESULTADO DEL QUERY
APELLIDO ABRAMS NOMBRE DIANE NO_TELEF 2037951234 EXT 123

De esta forma se pueden asignar los valores a los campos directamente en cualquier orden, sin llevar el mismo orden en que se encuentran organizadas las columnas de la tabla.

59

Tpico 420 - Accessing Data in a Data Base

Modificacin de Tablas - INSERT

Insercin de registros con valores nulos.

El valor nulo slo puede ser asignado para aquellas columnas hayan sido definidas para valores nulos.
QUERY RESULTADO DEL QUERY APELLIDO ABRAMS NOMBRE DIANE NO_TELEF 2037951234 EXT -

INSERT INTO TELEFONOS (APELLIDO, NOMBRE, NO_TLEF, EXT) VALUES ('ABRAMS', 'DIANE', 2037951234, NULL)

Cuando la columna maneja nulos, sta puede ser omitida del query.

60

Tpico 420 - Accessing Data in a Data Base

Modificacin de Tablas - UPDATE

El comando UPDATE, permite la adicin nuevos registros a una tabla existente.


UPDATE tabla SET nombre_columna = valor WHERE condicin.

Si la clusula WHERE es omitida, la actualizacin se realiza en todos los registros de la tabla.

Si se desea actualizar mas de una columna, se deber separar por una coma y un espacio.

61

Tpico 420 - Accessing Data in a Data Base

Modificacin de Tablas - UPDATE

Actualizacin de una columna.


QUERY UPDATE TELEFONOS SET EXT = 111 WHERE APELLIDO = BAKER AND NOMBRE = JOHN RESULTADO DEL QUERY Antes de la actualizacin
APELLIDO BAKER DIETZ NOMBRE JOHN ELLEN NO_TELEF 1234567890 9876543210 EXT 999 -

Posterior a la actualizacin
APELLIDO BAKER DIETZ NOMBRE JOHN ELLEN NO_TELEF 1234567890 9876543210 EXT 111 -

62

Tpico 420 - Accessing Data in a Data Base

Modificacin de Tablas - UPDATE

Actualizacin de ms de una columna.


QUERY UPDATE TELEFONOS SET EXT = 111, NO_TELEF = 6666666666 WHERE APELLIDO = DIETZ AND NOMBRE = ELLEN RESULTADO DEL QUERY Antes de la actualizacin
APELLIDO BAKER DIETZ NOMBRE JOHN ELLEN NO_TELEF 1234567890 9876543210 EXT 999 -

Despus de la actualizacin
APELLIDO BAKER DIETZ NOMBRE JOHN ELLEN NO_TELEF 1234567890 6666666666 EXT 999 111

63

Tpico 420 - Accessing Data in a Data Base

Modificacin de Tablas - UPDATE

Actualizacin de TODOS los registros en una columna especifica.


QUERY UPDATE TELEFONOS SET NO_TELEF = 4444444444 RESULTADO DEL QUERY Antes de la actualizacin
APELLIDO BAKER DIETZ NOMBRE JOHN ELLEN NO_TELEF 1234567890 9876543210 EXT 999 -

Despus de la actualizacin
APELLIDO BAKER DIETZ NOMBRE JOHN ELLEN NO_TELEF 4444444444 4444444444 EXT 999 -

64

Tpico 420 - Accessing Data in a Data Base

Modificacin de Tablas - DELETE

El comando DELETE permite el borrado de registros de una tabla.


DELETE FROM tabla WHERE condicin.

Si la clusula WHERE es omitida, todos los registros de la tabla son borrados. La tabla queda vaca.

65

Tpico 420 - Accessing Data in a Data Base

Modificacin de Tablas - DELETE

Eliminacin de registros con una condicin especifica.


QUERY DELETE FROM TELEFONOS WHERE APELLIDO = BAKER RESULTADO DEL QUERY Antes de la actualizacin
APELLIDO BAKER DIETZ NOMBRE JOHN ELLEN NO_TELEF 123456789 9876543210 EXT 999 -

Despus de la actualizacin
APELLIDO DIETZ NOMBRE ELLEN NO_TELEF 9876543210 EXT -

66

Tpico 420 - Accessing Data in a Data Base

Modificacin de Tablas - DELETE

Eliminacin de registros de una tabla


QUERY DELETE FROM TELEFONOS RESULTADO DEL QUERY Antes de la actualizacin
APELLIDO BAKER DIETZ NOMBRE JOHN ELLEN NO_TELEF 123456789 9876543210 EXT 999 -

Despus de la actualizacin
APELLIDO NOMBRE NO_TELEF EXT

67

Mdulo Especfico

Tpico 410 - Data Storage & Data Base Management System

Tpico 420 - Accesing Data in a Data Base

Tpico 430 - Accessing Data from within a Program.

Estndares de programacin SQL.

68

Tpico 430 - Accessing Data from within a Program

OBJETIVOS.

Describir el funcionamiento de sentencias de SQL en un programa COBOL.


Describir como son definidas en la Working Storage las variables host y estructuras host, as como su utilizacin por estructuras SQL y programas COBOL. Describir como interactan el COBOL y SQL a travs del uso de estructuras, variables host y manejo de errores. Uso correcto de la sentencia SELECT para acceder un solo rengln de datos de una tabla SQL. Explicar como interactan los procesos de SQL y COBOL para acceder mltiples renglones de una tabla SQL. Explicar el proceso de precompilacin.

69

Tpico 430 - Accessing Data from within a Program

Sentencias SQL .

Las sentencias SQL son precedidas por :


EXEC SQL que indica el inicio de la sentencia SQL END-EXEC que indica el final de la sentencia SQL La sintaxis de estas sentencias es:

Deben ser codificadas al inicio y al final de cada sentencia SQL Ser codificadas entre las columnas 12 y 72 del programa COBOL Terminar con un punto, a menos que est contenida dentro de una estructura IF.
EXEC SQL SELECT * INTO :DCLGEN-EMP FROM EMPLEADOS END-EXEC.

70

Tpico 430 - Accessing Data from within a Program

Variables Host.

Son los campos declarados en la Working Storage que permiten comunicarse a COBOL y SQL . Estos campos pueden ser usados directamente entre los dos lenguajes.

Las variables Host pueden ser usadas para:


Para realizar INSERT, UPDATE, DELETE de columnas. Recibir valores de columnas. Pueden ser usadas en clusulas WHERE.

71

Tpico 430 - Accessing Data from within a Program

Variables Host.

EMPLEADOS
EMP_ NOMBRE JONES EMP_ID 12345678 EMP_ SALARIO 90,000.00 EMP_ COM 9,000.00

WORKING-STORAGE SECTION. 01 CAMPOS-WORK. 05 WS-HOST-VARIABLES. 10 HOST-NOMBRE 10 HOST-ID 10 HOST-SALARIO 10 HOST-COM

PIC PIC PIC PIC

X(30). X(08). S9(6)V9(2) COMP-3. S9(6)V9(2) COMP-3.

72

Tpico 430 - Accessing Data from within a Program

Variables Host.
EMP_ NOMBRE EMP_ID 12345678 EMP_ SALARIO 90,000.00 EMP_ COMM 9,000.00

EMPLEADOS

JONES

WORKING-STORAGE SECTION. 01 CAMPOS-WORK. 05 WS-HOST-VARIABLES. 10 HOST-NOMBRE PIC X(30). 10 HOST-ID PIC X(08). 10 HOST-SALARIO PIC S9(6)V9(2) COMP-3. 10 HOST-COM PIC S9(6)V9(2) COMP-3.

EXEC SQL SELECT EMP_NOMBRE, EMP_ID, EMP_SALARIO, EMP_COMM INTO :HOST-NOMBRE, :HOST-ID, :HOST-SALARIO, :HOST-COM FROM EMPLEADOS WHERE EMP_NOMBRE = :WS-NOMBRE END-EXEC.

73

Tpico 430 - Accessing Data from within a Program

Variables Host.

Reglas del uso de variables Host:


No necesariamente deben ser iguales a los nombres de las columnas. Deben ser definidas en la Working Storage. Cuando son usadas en una sentencia SQL deben ser precedidas por :. La definicin de las variables host debe coincidir con cada una de las columnas definidas en la tabla. La estructura de las variables host slo pueden contener como mximo un subnivel.

74

Tpico 430 - Accessing Data from within a Program

Variables Host.

Compatibilidad del tipo de datos.

COBOL WS-NUMBER PIC S9(6)V99 COMP-3. WS-CARACTER PIC X(20) WS-DATE PIC X(10)

SQL DECIMAL CHAR DATE (8,2) (20)

La longitud y tipo definidos para las variables Host, debe ser idntica a la definicin de las columnas de la tabla DB2.

75

Tpico 430 - Accessing Data from within a Program

Sentencia INCLUDE.

Para el caso de SQL, existe una sentencia que permite integrar copybooks a la Working Storage:

EXEC SQL

INCLUDE copybook
END-EXEC.

La defincin de la tabla en DB2, as como su definicin COBOL generalmente se encuentran en un solo copybook, los cuales son llamados DCLGEN.

76

Tpico 430 - Accessing Data from within a Program

Contenido de un DCLGEN
EXEC SQL DECLARE AUTOS TABLE ( AUTO_MATRICUL
AUTO_MARCAUTO

AUTO_MODEAUTO
AUTO_PRECUNIT AUTO_FECHBAJA ) END-EXEC.

CHAR (10) NOT NULL, CHAR (15) NOT NULL, CHAR (10) NOT NULL, DECIMAL (10, 0), DATE

DEFINICION DB2

01

DCLAUTOS. 03 AUTO-MATRICUL 03 AUTO-MARCAUTO 03 AUTO-MODEAUTO 03 AUTO-PRECUNIT 03 AUTO-FECHBAJA


77

PIC PIC PIC PIC PIC

X(10). X(15). X(10). S9(10)V COMP-3. X(10).

DEFINICION COBOL

Tpico 430 - Accessing Data from within a Program

Comunicacin y manejo de errores.

La ejecucin de un query involucra un estatus de ejecucin, a travs de cdigos de retorno o error.


Estos cdigos de retorno son informados en la SQLCA (SQL Comunication Area), la cual es incluida en la Working Storage por medio de la sentencia INCLUDE. El campo ms usado de la SQLCA es:

SQLCODE. El cual indica si la sentencia SQL fue ejecutada o no correctamente. Los valores ms frecuentes de este campo son:
Valor SQLCODE 0 +100 +## -### Descripcin La sentencia SQL fue ejecuta exitosamente Indica que no se encontraron registros que cumplieran con las condiciones indicadas. Si el valor devuelto es distinto a los anteriores(<0 y <> +100) y es positivo indica que ha ocurrido un warning. Si el valor devuelto por la sentencia SQL es negativo(<0), indica que ha ocurrido un error .
78

Tpico 430 - Accessing Data from within a Program

Comunicacin y manejo de errores.


EXEC SQL SELECT EMP_ID, EMP_NOMBRE, EMP_SALARIO, EMP_COMM INTO :EMP-NOMBRE, :EMP-EDAD, :EMP-SEXO FROM EMPLEADO WHERE DNI = :EMP-DNI END-EXEC. IF ELSE IF SQLCODE EQUAL WS-NOTFND SET NO-ENCONTRADO TO TRUE Evala el cdigo +100 SQLCODE EQUAL ZERO SET SI-ENCONTRADO TO TRUE Evala el cdigo 0

ELSE
MOVE WS-ERROR-SQL TO LIN-INF-ERROR MOVE SQLCODE TO LIN-CODE-SQL PERFORM 9999-ESCRIBE-MENSAJE-ERROR THRU 9999-ESCRIBE-MENSAJE-ERROR END-IF END-IF.
79

Tpico 430 - Accessing Data from within a Program

Comunicacin y manejo de errores.

Sentencia DISPLAY.

Es una sentencia COBOL que permite desplegar mensajes de error durante la ejecucin de un progrma. Por ejemplo:
IF
ELSE IF ELSE MOVE WS-ERROR-SQL TO LIN-INF-ERROR MOVE SQLCODE TO LIN-CODE-SQL DISPLAY ERROR DE EJECUCION SQL: SQLCODE END-IF END-IF. SQLCODE EQUAL WS-NOTFND DISPLAY REGISTRO NO ENCONTRADO: EMP-DNI

SQLCODE EQUAL ZERO SET SI-ENCONTRADO TO TRUE

80

Tpico 430 - Accessing Data from within a Program

Seleccin de informacin simple.

A travs de la sentencia SELECT se puede acceder a un slo rengln de la tabla que cumpla con el criterio establecido.

EXEC SQL SELECT nombre_columna INTO :host-variable FROM tabla WHERE condicin. END-EXEC.

Condiciones de uso:

Asegurar que slo un rengln de la tabla cumplir con la condicin de lo contrario se producir un error de SQL.

81

Tpico 430 - Accessing Data from within a Program

Seleccin de informacin mltiple.

Un CURSOR, es un mtodo de SQL para acceso de uno o ms renglones que cumplen un criterio establecido.
El uso de un cursor permite al programa colocar los datos en una tabla temporal llamada ACTIVE SET. El uso de un cursor requiere de cuatro sentencias:

DECLARE. OPEN. FETCH. CLOSE.

82

Tpico 430 - Accessing Data from within a Program

Seleccin de informacin mltiple.

La sentencia DECLARE, indica a SQL las columnas que van a ser accedidas y las condiciones que se han de cumplir a travs de la sentencia SELECT.

Sintaxis
EXEC SQL DECLARE nombre_cursor CURSOR FOR SELECT campo1, campo2, campoN FROM nombre_tabla WHERE condicin END-EXEC.

Ejemplo
EXEC SQL DECLARE EMPLEADO_CURSOR CURSOR FOR SELECT EMP_ID, EMP_NOMBRE, EMP_SALARIO, EMP_COMM FROM EMPLEADOS WHERE EMP_SALARIO >= :EMP-SALARIO END-EXEC.

83

Tpico 430 - Accessing Data from within a Program

Seleccin de informacin mltiple.

La sentencia OPEN, activa el cursor declarado y se posiciona en los datos que cumplen con la condicin (si existe) en la tabla temporal (Active Set).

Sintaxis
EXEC SQL OPEN nombre_cursor END-EXEC. MOVE WS-SALARIO

Ejemplo
TO EMP-SALARIO.

EXEC SQL OPEN EMPLEADO_CURSOR END-EXEC.

Las sentencias DECLARE y OPEN siempre trabajan juntas.

84

Tpico 430 - Accessing Data from within a Program

Seleccin de informacin mltiple.

La sentencia FETCH, accede uno a uno los registros que se encuentran en la tabla temporal (Active Set).

Sintaxis
EXEC SQL FETCH nombre_cursor INTO :HOST1, :HOST2, :HOSTn END-EXEC.

Ejemplo
EXEC SQL FETCH EMPLEADO_CURSOR INTO :EMP-ID, :EMP-NOMBRE, :EMP:_SALARIO, :EMP_COMM END-EXEC.

85

Tpico 430 - Accessing Data from within a Program

Seleccin de informacin mltiple.

La sentencia CLOSE, libera los recursos de la tabla de datos y la tabla temporal (Active Set).

Sintaxis
EXEC SQL CLOSE nombre_cursor END-EXEC.

Ejemplo
EXEC SQL CLOSE EMPLEADO_CURSOR END-EXEC.

86

Tpico 430 - Accessing Data from within a Program

Seleccin de informacin mltiple.


EMP_ID 12345678 12345890 EMP_ NOMBRE JONES TAYLOR EMP_ SALARIO 90,000.00 75,000.00 EMP_ COMM 9,000.00 7,500.00

DECLARE OPEN

45544354

SMITH

82,500.00

8,250.00

EMP_ID 12345678 12345890 45544354

EMP_ NOMBRE JONES TAYLOR SMITH

EMP_ SALARIO 90,000.00 75,000.00 82,500.00

EMP_ COMM 9,000.00 7,500.00 8,250.00

FETCH

CLOSE

87

Tpico 430 - Accessing Data from within a Program

Modificacin de Tablas en COBOL con SQL.

Insercin de registros en una tabla.


EXEC SQL INSERT INTO nombre-tabla VALUES (:variable-host1,

:variable-host2)
END-EXEC

88

Tpico 430 - Accessing Data from within a Program

Modificacin de Tablas en COBOL.

Actualizacin de registros en una tabla.


EXEC SQL UPDATE nombre-tabla SET columna1 = :variable-host1,

columna2 = :variable-host2
WHERE condicin END-EXEC

89

Tpico 430 - Accessing Data from within a Program

Modificacin de Tablas en COBOL.

Eliminacin de registros en una tabla.


EXEC SQL DELETE FROM nombre-tabla WHERE condicin

END-EXEC

90

Tpico 430 - Accessing Data from within a Program

Proceso de Precompilacin.

Durante el proceso de precompilacin se realizan los siguientes pasos:


La precompilacin se realiza antes del proceso de compilacin. Las sentencias SQL son traducidas por el precompilador, para despus ser procesadas por COBOL, validando copybooks, sintaxis e inconsistencias.

Procesar todas las sentencias INCLUDE, a travs de la librera SYSLIB.


Si el programa es precompilado sin errores, no significa que no existan estos, ya que el precompilador no se comunica con el DB2 para validar la existencia de las tablas o columnas que son mencionadas en el programa. El precompilador slo verifica la sintaxis.

91

Tpico 430 - Accessing Data from within a Program


COLECCIN Y COLECCIN X PAQUETE 1 PAQUETE 1 PAQUETE 2 PAQUETE 2

Directorio DB2

CATALOGOS DB2

DBRMS

DBRMS DBRMS

DBRMS

PLAN
PROG. FUENTE PRE COMPILADOR DBRM BIND

PACKAGE

TRANSLATOR
RUN MOD. OBJETO

COMPILADOR

SUB MODULOS

LINK-EDIT

Llamada esttica

LOAD

Llamada dinmica

92

Mdulo Especfico

Tpico 410 - Data Storage & Data Base Management System

Tpico 420 - Accesing Data in a Data Base

Tpico 430 - Accessing Data from within a Program.

Estndares de programacin SQL.

93

Estndares de Programacin SQL

Estndares de Programacin SQL.

Utilizacin de Data Definition Leguaje (DDL).

Definicin y creacin de tablas, ndices, etc., son responsabilidad del Administrador de Base de Datos.

En la manipulacin de datos (DML) se deben seguir los siguientes estndares:

Codificar las sentencias SQL en el progragrama COBOL, entre las columnas 12 y 72.
Poner punto al final de la sentencia SQL (EXEC SQL y END-EXEC). Si la sentencia SQL se encuentra dentro de un IF no se pondr punto en la sentencia END-EXEC. Las sentencias INCLUDE y DECLARE sean definidas en la Working Storage.

94

Estndares de Programacin SQL

Estndares de Programacin SQL.

Utilizar una sangra de 4 caracteres a la derecha del EXEC SQL.


Alinear todos los verbos SQL y clusulas. Evitar el uso de predicados complejos OR Especificar las columnas que sean requeridas nicamente.

Uso de cursores.

Codificar un OPEN y un CLOSE por cada cursor. Codificar las sentencias DECLARE, OPEN, FETCH, CLOSE en esta secuencia fsica dentro del programa.

Manejo de errores.

Incluir la copy SQLCA.

95

You might also like