Professional Documents
Culture Documents
Mdulo Especfico
OBJETIVOS.
Conceptos.
Manejador de Base de datos (DBMS). Es un grupo de programas especialmente escritos que pueden localizar datos existentes en una Base 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.
Tipos de Organizacin.
Fsica (cont.)
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
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
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
Tipos de Organizacin.
Lgica (cont.)
ENTIDAD
Lista de Clientes
Daniel Kim
Jodi Wert
OCURRENCIAS
Tipos de Organizacin.
Lgica (cont.)
Regin Europea
Regin Asia
Oficina Chicago
Oficina Ro de Janeiro
Oficina Londres
Oficina Pars
Oficina Bangkok
Oficina Sydney
Oficina Riyadh
ENTIDAD HIJO
10
ENTIDAD PADRE
Oficina Ro de Janeiro
ENTIDAD HIJO
11
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 Asia
Regin Europea
ENTIDAD HIJO
12
Muchos a muchos. Esta relacin existe cuando a un padre le pertenecen ms de un hijo, y cada hijo le corresponden mltiples padres.
ENTIDAD PADRE
Oficina Chicago
Oficina Mxico
Oficina Ro de Janeiro
ENTIDAD HIJO
13
Jerrquicas
Network
Relacional
14
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
15
16
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
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
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
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
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
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
Funciones de un DBMS.
Mantenimiento de los datos. Esta incluye el mantenimiento de los datos como: actualizacin, insercin, borrado de datos.
23
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
25
OBJETIVOS.
26
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
DB2 XDB
DBMS
Tabla 2
Tabla 3
Tablas
27
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
Introduccin a DB2.
Trminos de DB2.
RENGLONES
YES NO
COLUMNAS
29
Introduccin a DB2.
Trminos de DB2.
Direccin 465 JEFFERSON RD. MANSFIELD, CA. 34 SUNSET DR. BROOKVIEW, CA. 5213 ROCKET ROAD, MYTOWN, CA.
30
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
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
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
34
35
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
Los nombres de las columnas deben ser separados por comas. El orden de las columnas aparece de acuerdo al especificado en el query.
37
38
La sentencia SELECT DISTINCT permite seleccionar datos de la tabla y eliminar de la seleccin aquellos duplicados.
FROM tabla
WHERE condicin.
39
PRE_SEXO M F
40
SELECT nombre-columna FROM tabla WHERE nombre_columna1 [=, >,<,<>] nombre_columna2, constante
QUERY SELECT PRE_NOMBRE FROM PRESIDENTES WHERE PRE_SEXO = M RESULTADO DEL QUERY
41
Numricos
No
42
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
44
PRE_SEXO F F M M
PRE_ANTI 2 4 2 5
45
ASC
46
DESC
47
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_SEXO F F M M
PRE_ANTI 2 4 2 5
48
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_SEXO M F F
49
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
QUERY SELECT STAFF_NOMBRE, STAFF_SALARIO, STAFF_PUESTO FROM STAFF WHERE STAFF_PUESTO = DIRECTOR AND STAFF_SALARIO > 40000
50
Condiciones Mltiples.
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
PRE_NOMBRE JOHNSON S L
PRE_ANTI 5
51
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'
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
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
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
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
55
SELECT STAFF_NAME, STAFF_JOB, STAFF_SALARY, STAFF_COM FROM STAFF WHERE STAFF_COM IS NOT NULL
56
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
El orden de los valores debe ser el mismo en el que se encuentran organizadas las columnas de la tabla.
58
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
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
Si se desea actualizar mas de una columna, se deber separar por una coma y un espacio.
61
Posterior a la actualizacin
APELLIDO BAKER DIETZ NOMBRE JOHN ELLEN NO_TELEF 1234567890 9876543210 EXT 111 -
62
Despus de la actualizacin
APELLIDO BAKER DIETZ NOMBRE JOHN ELLEN NO_TELEF 1234567890 6666666666 EXT 999 111
63
Despus de la actualizacin
APELLIDO BAKER DIETZ NOMBRE JOHN ELLEN NO_TELEF 4444444444 4444444444 EXT 999 -
64
Si la clusula WHERE es omitida, todos los registros de la tabla son borrados. La tabla queda vaca.
65
Despus de la actualizacin
APELLIDO DIETZ NOMBRE ELLEN NO_TELEF 9876543210 EXT -
66
Despus de la actualizacin
APELLIDO NOMBRE NO_TELEF EXT
67
Mdulo Especfico
68
OBJETIVOS.
69
Sentencias SQL .
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
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.
Para realizar INSERT, UPDATE, DELETE de columnas. Recibir valores de columnas. Pueden ser usadas en clusulas WHERE.
71
Variables Host.
EMPLEADOS
EMP_ NOMBRE JONES EMP_ID 12345678 EMP_ SALARIO 90,000.00 EMP_ COM 9,000.00
72
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
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
Variables Host.
COBOL WS-NUMBER PIC S9(6)V99 COMP-3. WS-CARACTER PIC X(20) WS-DATE PIC X(10)
La longitud y tipo definidos para las variables Host, debe ser idntica a la definicin de las columnas de la tabla DB2.
75
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
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
DEFINICION COBOL
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
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
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
80
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
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:
82
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
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.
84
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
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
DECLARE OPEN
45544354
SMITH
82,500.00
8,250.00
FETCH
CLOSE
87
:variable-host2)
END-EXEC
88
columna2 = :variable-host2
WHERE condicin END-EXEC
89
END-EXEC
90
Proceso de Precompilacin.
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.
91
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
93
Definicin y creacin de tablas, ndices, etc., son responsabilidad del Administrador de Base de Datos.
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
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.
95