Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
RESEÑA HISTORICA
ENTORNO
QUE ES
CARACTERÍSTICAS
QUE TAMAÑO PUEDE TENER UNA TABLA
TIPOS DE DATOS
OPERADORES Y FUNCIONES
TIPOS DE TABLAS
DEFINICIÓN DE DATOS(TRIGGERS DESDE QUE VERSIÓN ES
SOPORTADA)
PROGRAMAS BÁSICOS UTILIDADES ADICIONALES.
Reseña Histórica:
1994:DB2 UDB (DB2 Universal Database) fue construido en base a dos productos incluidos en
el DB2 de AIX, DB2 Common Server, que para propósitos generales incluía 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.
Los puntos que siguen describen con mayor detalle el empleo de los diversos susbsistemas
ilustrados en la figura anterios:
1.- Una paliación 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
aplicación 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 acompaña a DB2: permite a los usuarios profesionales introducir SQL interactivamente a
través de una interfaz llamada SPUFI y les ayuda a preparar programas y utilerias para su
ejecución.
4.- Ademas de las bases de datos DB2, las bases de datos IMS tambien son accesibles desde
una aplicación DB2 bajo los entornos IMS o CICS, pero no bajo TSO. La misma aplicación 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 desempeñan 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
aplicación TSO en linea. Permite a usuarios finales no técnicos 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 graficación, Interactive
Chart Utility) y otras presentaciones graficas de los datos (con el administrador de presentación
grafica de datos, Graphical Data Display Manager). Los usuarios construyen formas de manera
interactiva y asi controlan la presentación 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 extracción 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.
SQL/DS es el primer SGBD relacional de IBM que pertenece a la “familia DB2”. Los recursos
de definición y manipulación de datos en ambos sistemas son esencialmente idénticos, y solo
muestran diferencias sintacticas secundarias. Los dos emplean SQL como lenguaje de consulta
interactiva y como lenguaje de programación 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 técnicas 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 través de DB2i, SQL/DS puede ofrecer a estos algunos recursos a través 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 señalar 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.
Organización 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 físicamente como datos almacenados, y
vistas, que son tablas virtuales sin identidad física independiente en el almacenamiento. Una
tabla base consiste en uno o mas archivos VSAM.
Enlazador: Este componente atiende ambos tipos de solicitudes de SQL: aquellas que
aparecen en programas de aplicación que han de ejecutarse una y otra vez, y las consultas ad
hoc que se ejecutan solo una vez. En la primera categoría, después de un análisis detallado y
una optimizacion de consulta, uno o mas DBRM relacionados se compilan solo una vez para
producir un plan de aplicación. 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 aplicación construir e introducir una instrucción en SQL (dinamico) para que se
ejecute de inmediato. El enlazador analiza sintacticamente todos los enunciados SQL. Las
instrucciones de manipulación de SQL se enlazan para producir codigo ejecutable, pero los
enunciados de definición y control solo se analizan y se dejan en una forma que se interpreta
en el momento de la ejecución. La salida del enlazador se denomina plan o paquete.
Supervisor durante la ejecución: Con este termino nos referimos a los servicios de DB3 que
controlan la ejecución de la aplicación. La ejecución de una llamada SQL dentro de un
ptrograma de aplicación real sigue los pasos de procesamiento ilustrados en la fig 3. cuando se
esta ejecutando el modulo de carga del programa de aplicación y llega a una instrucción CALL
insertada por el precompilador, el control pasa al supervisor a través del modulo apropiado de
interfaz de lenguaje de DB2. el supervisor durante la ejecucion obtiene el plan de aplicación y,
aprovechando la información 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 física. 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- según los requerimientos del plan de aplicación. Este componente
actualiza los indices si es necesario. A fin de lograr el desempeño optimo de las reservas de
almacenamiento
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 aplicación en linea
requiere los servicios de un gestor de comunicación de datos(DC: data communication). En el
caso de DB2, la funcion de gestor de comunicación de datos la desempeña el componente
TSO de MVS, el recurso de comunicación 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 ejecución interactiva, las instrucciones de SQL se compilan y se genera el plan de
aplicación correspondiente; los resultados se devuelven a la terminal y el plan se desecha
después de la ejecución.
Utilerias: Los servicios de base de datos incluyen un conjunto de utilerias, las cuales
describiremos mas adelante
Sabemos que recursos de definición de datos tiene SQL, estos recursos permiten crear,
eliminar y alterar (cuando sea apropiado) tablas base, vistas e indices.
No existe la instruccion ALTER VIEW(alterar vista). ALTER INDEX(alterar indice) si existe, pero
maneja los parámetros fisicos de los indices. Durante la creación, no se impone explícitamente
a las tablas base ningun ordenamiento de las tuplas. El ordenamiento de las columnas es
implícito e virtud del orden en que estan los nombres de las columnas en la instrucción
CREATE TABLE.
DB2 maneja el concepto de valores nulos. Cualquier columna puede contener un valor nulo a
menos que la definición de esa columna en CREATE TABLE especifique explícitamente NOT
NULL. Las columnas en las que se permiten valores nulos se representan físicamente 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).
En DB2, el administrador de bases de datos u otros usuarios autorizados pueden tener acceso,
a través de SQL, a las tablas denominadas catalogo. El catalogo del sistema DB2 contiene una
gran variedad de información, como definiciones de tablas base, vistas, indices, aplicaciones,
usuarios, privilegios de acceso y planes de aplicación. 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 información
relativa a cada tabla incluye, entre otras cosas, sus nombre, el nombre de quien la creo y el
numero total de columnas que contiene.
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 información 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 NAME
FORM SYSTABLES
WHERE 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 automáticamente 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.
SELECT TBNAME
FROM SYSIMB.SYSCOLUMNS
WHERE NAME=’NUMEROD’
Actualizacion de la información 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 SYSIBM.SYSTABLES
WHERE 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 todavía 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 definición de datos en SQL. El enunciado COMMENT (comentario) de SQL es
util porque permite almacenar información textual sobre una tabla o columna del catalogo.
2.- Presentar las filas completas de la tabla que satisfacen una condicion previamente
especificada (C1C).
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).
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 lógico.
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 instrucción 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
FROM TRABAJA_EN
WHERE HORAS>40
FROM TRABAJA_EN
WHERE NÚMP=P5
Se deben sustituir por construcciones con EXISTS y NOT EXISTS. Ademas, DB2 no maneja la
union externa (OUTER UNION).
UPDATE TRABAJA_EN
SET HORAS=X
FROM TRABAJ_EN)
DB2 Version 2 Release 3 (y Versión 3) se ajustan a las especificaciones ISO/ANSI SQL89. por
ello, es posible que algunas de las siguientes características 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 instrucción CREATE VIEW seguida de una consulta
SQL. Debemos tener presentes los siguientes puntos al definir vistas en DB2:
• En una definición de vista pueden intervenir una o mas tablas; puede incluir reunines y
funciones integradas.
• Si no se especifican nombres de columnas en la definición de vista, se pueden asignar
automáticamente, excepto cuando se utilicen funciones integradas, expresiones
aritméticas 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 comprobación para confirmar que ,
en efecto, se satisfaga el predicado de definición de la vista. Por ejemplo, en la
instrucción siguiente el predicado de definición de la vista es SALDO>500:
FROM CLIENTE
WHERE SALDO>500
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 definición de vista:
FROM EMPLEADO
GROUP BY ND
SELECT NDEP
FROM RESUMEN_DEPTO
SELECT SUM(SALARIOTOTAL)
FROM RESUMEN_DEPTO
Actualizacion de vistas. DB2 no cuenta con recursos para investigar lo que un usuario
desea hacer cuando especifica una actualizacion de vista. Por añadidura, 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:
• Cualesquiera tablas base o vistas que utilice el programa deberan declararse por
medio de un enunciado DECLARE. Esto facilita la comprensión 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 instrucción ejecutable del lenguaje
anfitrion.
• El SQL incorporado puede incluir recursos de definición 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 comunicación de SQL (SQL Communication Area: SQLCA) actua como area
de retroalimentación comun entre el programa de aplicación 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 obtención 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 automáticamente enunciados DECLARE TABLE en PL/1
a partir de las definiciones CREATE TABLE en SQL. Tambien se generan
automáticamente 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 situación especifica. En lo ejmplos
Almacenamiento de datos:
Espacio de tablas y tablas almacenadas.
Espacios de indices e indices
Utilerias de DB2.
Características internas de DB2
Seguridad y autorización
Procesamiento de transacciones