Está en la página 1de 12

DB2 RESEA HISTORICA ENTORNO QUE ES CARACTERSTICAS QUE TAMAO PUEDE TENER UNA TABLA TIPOS DE DATOS OPERADORES

Y FUNCIONES TIPOS DE TABLAS DEFINICIN DE DATOS(TRIGGERS DESDE QUE VERSIN ES SOPORTADA) PROGRAMAS BSICOS UTILIDADES ADICIONALES.
Resea Histrica: 1970: Se da el origen del DB2, y pertenece a la firma IBM. 1983: Se empez a vender DB2 con la versin 2.0. 1994:DB2 UDB (DB2 Universal Database) fue construido en base a dos productos incluidos en el DB2 de AIX, DB2 Common Server, que para propsitos generales inclua funciones avanzadas para el mercado de servidores de bases de datos, con soporte de hardware SMP y OLTP; y el DB2 Parallel Edition, que fue desarrollado para soportar aplicaciones de gran escala, como Data Warehousing y Data Mining. En la actualidad la tecnologa de gestin de datos de IBM es utilizada por ms de 40 millones de usuarios de 300.000 empresas en todo el mundo. Mientras que la evolucin del DB2, Universal Data Base dispone de ms de 6 millones de usuarios y 1.300.000 licencias instaladas.

Arquitectura basica de DB2: El nombre de DB2 es una abreviatura de Database 2. Es un producto SGBD para el sistema operativo MVS

DB2 coopera con (se anexa a, en la terminologa del producto) cualquiera de los tres entornos de susbsistemas de MVS: CICS, TSO e IMS. Estos sistemas cooperan con los recursos de DB2 para suministrar comunicacin de datos y gestion de transacciones. La figura anterior muestra las realciones entre los diversos componentes de DB2, DB2 proporciona acceso concurrente a las bases de datos para los usuarios de IM/VS-DC(information Management System/Virtual Storage-Data Communications: sistema de gestion de informacin/alamacenamiento virtual-comunicacionde datos), CICS(Customer Information Control System: sistema de control de informacin de clientes) y TSO(Time Sharing Option: opcion de tiempo compartido), tanto interactivos como por lotes. CICS es un sistema de supervisin de teleproceso: un producto de IBM que muchas industrias utilizan para procesar transacciones de negocios, IMS/DC es un entorno de comunicacin de datos que maneja bases de datos IMS jerarquica. TSO es un entorno de tiempo compartido producido por IBM y en uso desde ahce muchos aos. Con el recurso llamar y anexar CAF(Call Attach Facility) una aplicacin puede interactuar con una base de datos DB2 sin la ayuda de estos supervisores. Las bases de datos DB2 se pueden utilizar desde programas de aplicacin escritos en COBOL, PL/1, FORTRAN,C, PROLOG o lenguaje ensamblador de IBM. Los puntos que siguen describen con mayor detalle el empleo de los diversos susbsistemas ilustrados en la figura anterios: 1.- Una paliacin DB2 consiste en programas escritos en los lenguajes antes mencionados se ejecutan bajo el control de uno y solo uno de los tres subsistemas: IMS, CICS o TSO. Las apliaciones DB2 IMS, CICS y TSO se ejecutan por separado; de hecho, se describen en distintos juegos de manuales. 2.- Las aplicaciones IMS, CICS y TSO pueden compartir las mismas bases de datos DB2, CSP(Cross Systems Product: producto intersistemas) hace posible ejecutar bajo CICS una aplicacin creada bajo TSO, y viceversa. 3.-DB2 ofrece dos recursos en linea principales: QMF(Query Management Facility: recurso de gestion de consultas) bajo CICS o CAF, y DB2 Interactive (DB2i) bajo TSO.

DB2i acompaa a DB2: permite a los usuarios profesionales introducir SQL interactivamente a travs de una interfaz llamada SPUFI y les ayuda a preparar programas y utilerias para su ejecucin. 4.- Ademas de las bases de datos DB2, las bases de datos IMS tambien son accesibles desde una aplicacin DB2 bajo los entornos IMS o CICS, pero no bajo TSO. La misma aplicacin TSO se puede ejecutar por lotes o en linea, dirigiendo la E/S del programa a archivos o usando terminales para E/S

Como se muestra en la figura anterior otros dos recursos QMF y DXT desempean importantes papeles en el empleo de DB2.

QMF(Query Management Facility). QMF es un producto de IBM que se vende por separado y que actua como lenguajes de consulta y elaborador de informes. Se ejecuta simplemente como aplicacin TSO en linea. Permite a usuarios finales no tcnicos hacer consultas adhoc en SQL O en QBE y muestra los resultados de dichas consultas como informes con formato. Puede tener acceso a bases de datos DB2 y SQL/DS. La salida de QMF se puede dirigir a otras utilerias a fin de dibujar graficas de barras (con la utileria interactiva de graficacin, Interactive Chart Utility) y otras presentaciones graficas de los datos (con el administrador de presentacin grafica de datos, Graphical Data Display Manager). Los usuarios construyen formas de manera interactiva y asi controlan la presentacin de los resultados de la consulta.

DXT(Data Extract). Este es un programa de utileria que extrae datos de bases de datos IMS o de archivos VSAM(Virtual Storage Acces Meted: metodo de acceso de almacenamiento virtual) o SAM(Sequential Access Meted: metodo de acceso secuencial) y los convierte en un archivo secuencial. DXT puede especificar las solicitudes de extraccin en forma de interactiva o como trabajos por lotes. Este archivo secuencial tiene un formato adecuado para cargarse directamente en una base de datos DB2. DXT es un producto independiente de IBM.

La Familia DB2 y DB2/2: SQL/DS es el primer SGBD relacional de IBM que pertenece a la familia DB2. Los recursos de definicin y manipulacin de datos en ambos sistemas son esencialmente idnticos, y solo muestran diferencias sintacticas secundarias. Los dos emplean SQL como lenguaje de consulta interactiva y como lenguaje de programacin de bases de datos, pues lo incorporan en un lenguaje anfitrion. En un principio, DB2 usaba el codigo SQL/DS para las partes superiores del sistema (por ejemplo, las funciones de optimizacion y procesamiento de consultas). Las partes inferiores de DB2 se construian a partir de cero. Los recursos QMF Y DXT pueden usarse tanto con DB2 como con SQL/DS; sin embargo, el almacenamiento de datos en SQL/DS y DB2 es diferente. Por ejemplo, conceptos como los espacios de tabla de DB2 no tienen contraparte en SQL/DS. Ademas, DB2 permite usar tcnicas especializadas para manejar bases de datos grandes y cargas de trabajo pesadas que son exclusivas del sistema operativo MVS. Asi como DB2 proporciona un recurso SQL interactivo para los usuarios finales a travs de DB2i, SQL/DS puede ofrecer a estos algunos recursos a travs de su componente ISQL(SQL interactivo). El IBM Database 2 OS/2(abreviado DB2/2) es el ultimo de los SGBDR de IBM. Se ejecuta bajo OS/2 y se introdujo en 1988 con el nombre OS/2 Extended Edition Database Manager. Cabe sealar que el SGBD AS/400 DBMS es diferente de los SGBDR de la familia DB2. La mayor parte de sus funcionalidad reside en hardware propietario.

Organizacin de Datos y Procesos en DB2: Veamos primero como los usuarios y los programas de apliacacion perciben las bases de datos DB2. todos los datos se visualizan como relaciones o tablas (termino legitimo en DB2). Las tablas son de dos tipos: tablas base, que existen fsicamente como datos almacenados, y vistas, que son tablas virtuales sin identidad fsica independiente en el almacenamiento. Una tabla base consiste en uno o mas archivos VSAM. Procesamiento de Aplicaciones. En la fig 2 se muestra de forma simplificada la preparacin de una aplicacin DB2 en SQL incorporado. Indica la secuencia de procesos por la que deben pasar las aplicaciones de los usuarios para tener acceso a una base de datos DB2. los componentes principales del flujo de la aplicacin SQL son el precompilador, el enlazador(Bind), el supervisor durante la ejecucin y el manejador de datos almacenados. En pocas palabras, realizan las siguientes funciones: Precompilador. La tarea del precompiladors procesar las instrucciones de SQL incorporadas en un programa escrito en un lenguaje anfitrion. El precompilador genera dos tipos de salidas: el programa fuente original, donde las instrucciones de SQL incorporado son reemplazados por llamadas CALL; y modulos de solicitud a la base de datos (DBRM: database request module), que son colecciones de instrucciones de SQL en forma de arbol de anlisis sintactico y que constituyen la entrada al proceso de enlace.

Enlazador: Este componente atiende ambos tipos de solicitudes de SQL: aquellas que aparecen en programas de aplicacin que han de ejecutarse una y otra vez, y las consultas ad hoc que se ejecutan solo una vez. En la primera categora, despus de un anlisis detallado y una optimizacion de consulta, uno o mas DBRM relacionados se compilan solo una vez para producir un plan de aplicacin. Asi , como el costo de este enlace se amortiza durante las multilples ejecuciones del programa, se justifica plenamente. Ademas, el proceso de enlace permite a una aplicacin construir e introducir una instruccin en SQL (dinamico) para que se ejecute de inmediato. El enlazador analiza sintacticamente todos los enunciados SQL. Las instrucciones de manipulacin de SQL se enlazan para producir codigo ejecutable, pero los enunciados de definicin y control solo se analizan y se dejan en una forma que se interpreta en el momento de la ejecucin. La salida del enlazador se denomina plan o paquete. Supervisor durante la ejecucin: Con este termino nos referimos a los servicios de DB3 que controlan la ejecucin de la aplicacin. La ejecucin de una llamada SQL dentro de un ptrograma de aplicacin real sigue los pasos de procesamiento ilustrados en la fig 3. cuando se esta ejecutando el modulo de carga del programa de aplicacin y llega a una instruccin CALL insertada por el precompilador, el control pasa al supervisor a travs del modulo apropiado de interfaz de lenguaje de DB2. el supervisor durante la ejecucion obtiene el plan de aplicacin y, aprovechando la informacin de control en este, solicita que el manejador de datos almacenados tenga acceso real a la base de datos. Manejador de Datos Almacenados: Este es el componente del sistema que maneja la base de daos fsica. Contiene lo que en DB2 se llama Data Manager(gestor de datos), asi como el Buffer Manager(gestor de almacenamiento intermedio), Log Manager(gestor de bitacora), etc. Juntos realizan todas las funciones necesarias ara manipular la base de datos almacenada

buscar, leer, actualizar- segn los requerimientos del plan de aplicacin. Este componente actualiza los indices si es necesario. A fin de lograr el desempeo optimo de las reservas de almacenamiento

intermedio de lectura anticipada (read-ahead) y el de buscar al lado (look-aside). El manejador de datos almacenados puede otorgar acceso disperso y enlazado a las tablas del sistema almacenadas en el catalogo; tiene acceso a los datos o a los indices proporcionando identificadores de paginas al gestor de almacenamiento intermedio. El tamao de las paginas es de 4096 bytes y corresponde al tamao de pagina del sistema operativo Procesamiento Interactivo. Los usuarios en linea de DB2 pueden tener acceso a la base de datos mediante el recurso DB2i(DB2 interactivo), que es una apliacacion en linea ejecutable bajo DB2. Para que un usuario en linea pueda comunicarse con esta aplicacin en linea requiere los servicios de un gestor de comunicacin de datos(DC: data communication). En el caso de DB2, la funcion de gestor de comunicacin de datos la desempea el componente TSO de MVS, el recurso de comunicacin de datos DC de IMS, o el CICS. DB2i acepta instrucciones en SQL de una terminal y los transfiere a DB2 para que los ejecute Incluso durante la ejecucin interactiva, las instrucciones de SQL se compilan y se genera el plan de aplicacin correspondiente; los resultados se devuelven a la terminal y el plan se desecha despus de la ejecucin. Utilerias: Los servicios de base de datos incluyen un conjunto de utilerias, las cuales describiremos mas adelante

Definicin de Datos en DB2: Sabemos que recursos de definicin de datos tiene SQL, estos recursos permiten crear, eliminar y alterar (cuando sea apropiado) tablas base, vistas e indices. Entre sus instrucciones se encuentran las siguientes: Para tablas Para vistas Para indices

CREATE TABLE ALTER TABLE DROP TABLE

CREATE VIEW

CREATE INDEX ALTER INDEX

DROP VIEW

DROP INDEX

No existe la instruccion ALTER VIEW(alterar vista). ALTER INDEX(alterar indice) si existe, pero maneja los parmetros fisicos de los indices. Durante la creacin, no se impone explcitamente a las tablas base ningun ordenamiento de las tuplas. El ordenamiento de las columnas es implcito e virtud del orden en que estan los nombres de las columnas en la instruccin CREATE TABLE. DB2 maneja el concepto de valores nulos. Cualquier columna puede contener un valor nulo a menos que la definicin de esa columna en CREATE TABLE especifique explcitamente NOT NULL. Las columnas en las que se permiten valores nulos se representan fsicamente en la base de datos almacenada mediante dos columnas: la columna de datos propiamente dicha y una columna oculta de indicadores, con un byte de ancho, en la que un valor hexadecimal de FF significa que se debe ignorar el valor de datos correspondiente (es decir, es nulo) y un valor de OO indica que el valro correspondiente es valido (no nulo). El Catalogo del Sistema: En DB2, el administrador de bases de datos u otros usuarios autorizados pueden tener acceso, a travs de SQL, a las tablas denominadas catalogo. El catalogo del sistema DB2 contiene una gran variedad de informacin, como definiciones de tablas base, vistas, indices, aplicaciones, usuarios, privilegios de acceso y planes de aplicacin. El sistema consulta estas descripciones para efectuar ciertas tareas; por ejemplo, durante la optimizacion de consultas el componente denlazador usa el catalogo para obtener iformacion sobre los indices. DB2 adopta un enfoque uniforme para almacenar los datos y el catalogo: ambos se almacenan como tablas. En vez de describir exhaustivamente el catalogo, daremos una idea de su contenido mencionando unas cuantas tablas importantes: 1.- SYSTABLES: Esta tiene una entrada por cada tabla base del sistema. La informacin relativa a cada tabla incluye, entre otras cosas, sus nombre, el nombre de quien la creo y el numero total de columnas que contiene. 2.-SYSCOLUMNS: Esta contiene una entrada por cada columna(atributo) definida en el sistema. Para cada columna, se almacena su nombre, el nombre de la tabla a la que pertenece, su tipo e informacin adicional. El mismo nombre de columna puede aparecer en varias tablas. 3.-SYSINDEXES. Esta contiene, para cada indice, su nombre, el nombre de la tabla indizada, el nombre del usuario que creo el indice, etc. Consulta de la informacin del catalogo. Como el catalogo esta organizado en forma de tablas, puede consultarse con SQL, igual que cualquier otra tabla. Por ejemplo, consideremos la consulta SELECT FORM WHERE NAME SYSTABLES COLCOUNT>5

Esta consulta SQL busca en el catalogo los nombres de las tablas que contienen mas de cinco columnas.

El nombre del creador de las tablas del catalogo es SYSIBM; por tanto, hacemos referencia al nombre completo de una tabla, como SYSTABLES, escribiendo SYSIBM, SYSTABLES. El sistema crea automticamente entradas de catalogo para las tablas del catalogo. Los usuarios autorizados tienen acceso al catalogo para consultarlo. Asi , quienes tienen privilegio de SELECT para el catalogo del sistema, si no estan familiarizados con la estructura de la base de datos, pueden consultar el catalogo para conocerla mejor. Por ejemplo, la consulta SELECT FROM WHERE TBNAME SYSIMB.SYSCOLUMNS NAME=NUMEROD

Lista los nombres de las tablas DEPARTAMENTO Y LUGARES_DEPTOS porque contienen la columna NUMEROD. La disponibilidad para el usuario de la misma interfaz SQL para tener acceso a los metadatos, y no solo a los datos, es un recurso importante de DB2 Actualizacion de la informacin del Catalogo: Si bien para los usuarios la consulta del catalogo es informativa, su actualizacion puede ser realmente devastadora. Por ejemplo, una solicitud corriente de actualizacion como DELETE FROM WHERE SYSIBM.SYSTABLES CREATOR=NAVATHE

Eliminara el catalogo las entradas de todas las tablas creadas por NAVATHE. En consecuencia, dejan de existir las definiciones de dichas tablas, aunque todava existan las tablas mismas. En esencia, las tablas se han vuelto inaccesibles. A fin de evitar tales situaciones, no esta permitido realizar las operaciones UPDATE, DELETE ni INSERT en las tablas del catalogo; estas funciones se llevan a cabo con ALTER TABLE, DROP TABLE y CERATE TABLE, que son las instrucciones definicin de datos en SQL. El enunciado COMMENT (comentario) de SQL es util porque permite almacenar informacin textual sobre una tabla o columna del catalogo. Por ejemplo con referencia a la definicin de base de datos de la fig......................, el enunciado COMMENT ON COLUMN DEPENDIENTE.NSSE.IS Si ambos padres de un dependiente son empleados, el dependiente se representa dos veces se almacena en las columnas REMARKS apropiadas de la entrada en la tabla SYSCOLUMNS.

Manipulacin de Datos en DB2: SQL es el lenguaje de manipulacin de datos primordial de DB2. Como referencia rapida, ofrecemos la siguiente lista con algunos tipos de obtenciones y actualizaciones que permite realizar el SQL de DB2; las versiones mas nuevas de DB2 tal vez manejen algunas de las caractersticas que por ahora no estan disponibles: 1.-Obtenciones simples de tablas(OO). 2.- Presentar las filas completas de la tabla que satisfacen una condicion previamente especificada (C1C). 3.- Obtenciones con eliminacin de filas repetidas(C11A)

4.- Obtencion con valores calculados a partir de las columnas(C15) 5.- Ordenacin del resultado de una consulta(C28). 6.- Obtenciones con condiciones que implican conjuntos e intervalos. Estas se realizan con diversos tipos de constructores: a. Con IN (C13) b. Con BETWEEN : DB2 permite construcciones con BETWEEN o NOT BETWEEN; p. Ej.,WHERE SALARIO BETWEEN 50 000 AND 100 000. c. Con LIKE (C25, C26). d. Con NULL en comparaciones(C14). 7. Obtencin a partir de multiples tablas mediante reuniones(C1,C2,C8, etc). 8. Consultas anidadas: La Anidacion puede lograrse pasando los resultados de la subconsulta interior a la consulta exterior, mediante IN. En general, las consultas pueden anidarse hasta cualquier numero de niveles. Como se ilustra en C4A, las subconsultas interior y exterior pueden referirse a la misma tabla 9. Con EXIXTS: La cuantificacion existencial se logra conectando dos subconsultas con EXISTS. Como no es posible aplicar directamente la cuantificacion universal, ello se hace con NOT EXISTS. 10. Empleo de funciones integradas: las funciones del SQL de DB2 incluyen COUNT, SUM, AVG, MAX y MIN, EXISTS tambien se considera una funcion integrada, aunque, en vez de devolver un valor numerico o de cadena, devuelve un valor lgico. 11. Agrupacin y condiciones sobre grupos. 12UNION: Es posible obtener la union de los resultados de subconsultas, siempre que sean compatibles con la union . En DB2 la posibilidad de incluir cadenas en la instruccin SELECT resulta muy util junto con UNION. Por ejemplo, si queremos obtener una lista de las personas que trabajaron mas de 40 horas o que trabajaron en el proyecto P5, podriamos introducir SELECT FROM WHERE UNION NSSE,trabajo mas de 40 horas. TRABAJA_EN HORAS>40 SELECT FROM WHERE NSSE,trabajo en el proyecto P5 TRABAJA_EN NMP=P5

Los resultados podran verse ai: 1000 trabajo mas de 40 horas, 1002 trabajo mas de 40 horas Observer que si no ubieramos incluido restricciones de cadena en la clausula SELECT, la entidad repetida (1002) habria sido eliminada.

13. CONTAINS, INTERSECTION y MINUS. El SQL de DB2 no cuenta con estos operadores. Se deben sustituir por construcciones con EXISTS y NOT EXISTS. Ademas, DB2 no maneja la union externa (OUTER UNION). 14. Insercin (A1,A1A,A3B). 15. Eliminacin: Se logra con DELETE(A4A-A4D). Si queremos eliminar por ejemplo la definicin de la tabla debemos usar DROP TABLE. 16. Modificacin: Se logra con UPDATE(A5,A6). Las instrucciones de actualizacion de SQL de DB2 tienen el defecto de que cuando en un INSERT , DELETE O UPDATE interviene una subconsulta, la subconsulta anidada no puede hacer referencia a la tabla destino de la operacin. Por ejemplo, si queremos actualizar el valor de HORAS en todas las filas, asignndole el promedio de las horas, seria deseable un tipo de construccin como el que sigue, pero que no esta permitido en DB2 UPDATE SET WHERE TRABAJA_EN HORAS=X X=(SELECT FROM AVG(HORAS) TRABAJ_EN)

(Una construccione que hiciera innecesaria X eliminando la clausula WHERE y anidara un SELECT dentro del UPDATE funcionaria aun mejor.) En la practica, el resultado se logra obteniendo primero el promedio y empleando despus ese promedio para hacer la actualizacion. DB2 Version 2 Release 3 (y Versin 3) se ajustan a las especificaciones ISO/ANSI SQL89. por ello, es posible que algunas de las siguientes caractersticas de SQL2, no esten disponibles en DB2: 1. La orden CREATE DOMAIN(como mecanismo para definir nuevos tipos que sirvan para referirse a conjuntos de valores). 2. Empleo de tablas reunidas dentro de la clausula FROM 3. La orden CREATE ASSERTION y las instrucciones TRIGGER con procedimientos de accion. Procesamiento de vistas: Se puede definir una vista en DB2 con la instruccin CREATE VIEW seguida de una consulta SQL. Debemos tener presentes los siguientes puntos al definir vistas en DB2: En una definicin de vista pueden intervenir una o mas tablas; puede incluir reunines y funciones integradas. Si no se especifican nombres de columnas en la definicin de vista, se pueden asignar automticamente, excepto cuando se utilicen funciones integradas, expresiones aritmticas o restricciones. La consulta SQL con que se define la vista no puede usar UNION ni ORDER BY. Es posible definir vistas sobre vistas ya existentes. Cuando se define una vista con la clausula WITH CHECK OPTION, cualquier INSERT o UPDATE en terminos de esa vista se sometera a comprobacin para confirmar que ,

en efecto, se satisfaga el predicado de definicin de la vista. Por ejemplo, en la instruccin siguiente el predicado de definicin de la vista es SALDO>500:

CREATE VIEW AS SELECT FROM WHERE

SUGETO_DE_CREDITO NUMCLI, NOMBRE, NUMTEL CLIENTE SALDO>500

WITH CHECK OPTION

Obtencion de datos de vistas. Al especificar consultas para obtecion de datos las vistas se tratan igual que las tablas base. Pueden haber problemas cuando un atributo de la vista sea resultado de una funcion integrada aplicada a una tabla base subyacente. Por ejemplo, consideremos la siguiente definicin de vista: CREATE VIEW AS RESUMEN_DEPTO(NDEP,SALARIOTOTAL) SELECT ND, SUM(SALARIO) FROM EMPLEADO GROUP BY ND Veamos ahora dos consultas. En primer lugar, la consulta SELECT FROM WHERE NDEP RESUMEN_DEPTO SALARIOTATAL>100 000

No es valida, por que despues de la coversion la clausula WHERE quedara como WHERE SUM(SALARIO)>100 000, y no pueden incluirse funciones integradas en una clausula WHERE. La conversin correcta (puede escribirla el lector?) contiene una clausula HAVING, pero en DB2 no es posible una consulta convertida como esa. En segundo lugar, la consulta SELECT FROM SUM(SALARIOTOTAL) RESUMEN_DEPTO

Tampoco es valida, porque SUM(SALARIOTOTAL) equivale a SUM(SUM(SALARIO)), y DB2 no permite anidar las funciones integradas. Actualizacion de vistas. DB2 no cuenta con recursos para investigar lo que un usuario desea hacer cuando especifica una actualizacion de vista. Por aadidura, no hay mecanismos para analizar una actualizacion y determinar si equivale a un conjunto unico de actualizaciones de las relaciones base. Por tanto, DB2 adopta un enfoque mas bien restringido al permitir unicamente la actualizacion de vistas de una sola

relacion. Ademas , incluso en el caso de vistas de una sola ralcion, valdran las siguientes restricciones: No se puede actualizar una vista si (a) en su definicin interviene una funcion integrada(b) su definicin tiene DISTINCT en la clausula SELECT, (c) su definicin incluye una subconsulta y la clausula FROM de dicha subconsulta hace referencia a la tabla base sobre la cual esta definida la vista, o (d) hay una clausula GROUP BY en la definicin de la vista. Si un campo de la vista se deriva de una expresin aritmtica o de una constante, no se permite inserciones ni actualizaciones; sin embargo, si se permite DELETE (ya que es posible eliminar una fila correspondiente de la tabla base).

Empleo de SQL incorporado: Incorporar SQL en programas escritos en COBOL, PL/I, FORTRAN, C, PROLOG y lenguaje ensamblador. Las pautas de incorporacin son las siguientes: Cualesquiera tablas base o vistas que utilice el programa deberan declararse por medio de un enunciado DECLARE. Esto facilita la comprensin del programa y ayuda al precompilador a verificar la sintaxis. Las instrucciones de SQL incorporado deben ir precedidas por EXEC SQL y pueden ir en cualquier lugar en que este permitida una instruccin ejecutable del lenguaje anfitrion. El SQL incorporado puede incluir recursos de definicin de datos, como CREATE TABLE Y DECLARE-CURSOR, que son puramente declarativos. Las instrucciones de SQL pueden hacer referencia a variables del lenguaje anfitrion precedidas por un signo de dos puntos. Las variables anfitrion que reciban valores de SQL deberan tener tipos de datos compatibles con las definiciones de campos en SQL. La compatibilidad no se define con mucha rigurosidad; por ejemplo, las cadenas de caracteres de diversas longitudes o los datos numericos de naturaleza binaria o decimal se consideran compatibles, DB2 se encarga de las conversiones apropiadas. El area de comunicacin de SQL (SQL Communication Area: SQLCA) actua como area de retroalimentacin comun entre el programa de aplicacin y DB2. Un indicador de estado SQLCODE, contiene un valor numerico que muestra el resultado de una consulta(por ejemplo, cero indica que se complito con xito, y +100 indica que se ejecuto la consulta peor que el resultado es nulo). No se necesita un cursor para una consulta de obtencin de datos SQL que devuelva una sola tupla, ni para las instrucciones UPDATE, DELETE o INSERT(excepto cuando se requiera el CURRENT OF de un registro) Puede usarse un programa de utileria especial llamado DCLGEN(generador de declaraciones) para construir automticamente enunciados DECLARE TABLE en PL/1 a partir de las definiciones CREATE TABLE en SQL. Tambien se generan automticamente estructuras PL/1 o COBOL que corresponden a las definiciones de las tablas. Las instucciones WHENEVER(siempre que), colocada fuera de linea, permite revisar SQLCODE para detectar una situacin especifica. En lo ejmplos

WHENEVER WHENEVER

NOTFOUND PERFORM X; SQLERROR GO TO Y;

NOTFOUND Y SQLERROR son palabras reservadas del sistema que corresponden a SQLCODE = 100 y SQLCODE = otro valor que no sea 0 ni 100, respectivamente.

Integridad referencial: Almacenamiento de datos: Espacio de tablas y tablas almacenadas. Espacios de indices e indices Utilerias de DB2. Caractersticas internas de DB2 Seguridad y autorizacin Procesamiento de transacciones

También podría gustarte