1. L afamilia de productos DB2 Universal Darabase de IBM consiste en servidores de bases de datos
y un conjunto de productos relacionados. DB2 Universal Database Server está disponible en
muchas plataformas hardware y sistemas operativos, abarcando desde mainjrames (grandes
ordenadores centrales) y grandes servidores a estaciones de trabaje e incluso a pequeños dispositivos
de bolsillo. Se ejecuta en una serie de sistemas operativos IBM y de otras, marca". Everyplace Bdition
soporta sistemas operativos tales como PalmOS, Wmdows CE yotros. Las aplicaciones pueden migrar
fécílrnente desde las plataformas de gama baja a servidores de gama alta. Además del motor del núcleo
de la base de datos, la familia DB2 consta también de varios otros productos que proporcionan herra-
mientas, administración, replicas. acceso a datos distribuido, acceso a datos generalizados, aLAP y
otras muchas caracreífsticas. En la Figura 26.1 se describen los diferentes productos en la familia.
El origen de DB2 se remonta al proyecto System R en el Centro de Investigación de Almadén
(Almaden Research Center) de IBM (entonces denominado Laboratorio de investigación de San
José de IBM; IBMSan Jose Research Laboratory). El primer producto DB2 se lanzó en 1984 sobre
la plataforma mainframe de IBM. Fue seguido por otras versiones para otras plataformas. IBM ha
mejorado continuamente el producto DB2 en áreas tales como procesamiento de transacciones
(registro histórico de escritura anticipada y los algoritmos de recuperación ARIES),'procesamientb
y optimización de consultas (proyecto de investigación Starbursr), procesamiento en paralelo (DB2
Parallel Edition}, soporte para bases de. datos activas (restricciones y disparadores) y soporte rela-
cional orientado a objetos aprovechando las innovaciones de su división de investigación. Se pue-
den ver las notas bibliográficas para referencias que proporcionan más detalles.
El motor de la base de datos DB2 está disponible 'en cuatro bases de código diferentes: (1)
OS/390. (2) VM, (3) AS/4QO y (4) resto de plataformas. Los elementos comunes en todas estas
bases de código son interface-s externas (en concreto el lenguaje de definición de datos (LDD) y
SQL) y herramientas básicas tales como administración. Sin embargo, existen diferencias como
resultado de diferentes historias de desarrollo para las bases de código. El resto de este capítulo se
enfocará en DB2 Universal Database System de plataformas Unix, Windows y OS/2. Se reseña-
rán las características específicas de interés en otros sistemas DBl cuandose considere apropiado.
Servidores de bases de datos
DB2 UDB para Unix. Windows, OS/2, Linux
DB2 UDB para OS/390
DB2 UDB para AS/400
DB2 para VMNSE
Desarrollo de aplicaciones
Gestión de contenidos
VisualAge para Java, C++
ContentManager
VisualAge Generatór
Ccnteni Manager VideoCharger
DB2 Forms para OS/390
Lotus Approach
Herramientas de gestión de bases de datos
DB2 Control center
Inteligencia de negocios
DB2 Adtnin Tools para OS/390
DB2 OLAP Servar
DB2 Buffer Pool Tcot
DB2 Intelligent Miner
DB2 Estlmatorpara 05/390
DB2 Spatial Extender
DB2. Pelformance Monitor
DB2 werebocse Manager
DB2 Visual Explain
OMF para OS1390
DB2 Query Patroller
etc.
Herramientas para e! negocio electrónico (E-Business)
Acceso móvil a datos
DB2 Net Search Extender
DB2 EveryPlace
DB2 XML Extender
DB2 Satellite Edition
Net.Deta
DB2 para Websphere
Multimedia
IntegraciÓn de datos
DB2 ObjeetRelational Extenders
DB2 DataJoiner
Digital Lfbrerv ,
DataLinks
Data Replication servces
DB2 Connect
FIGURA 26.1. Pamitiada productos 082.
'"
2. FUNDAMENTOS DE BASES DE DATOS
La mayor parte del diseño de base de datos y herra- terfsticas. Otra herramienta permite al administrador
mientas CASE se puede utilizar para diseñar una base obtener un conjunto completo de instrucciones LDD
de datos DB2. En particular, las herramientas de mode- pata una base de datos incluyendo espacios de tablas,
lado de datos líderes tales como ERWin y Rarional Rose tablas, índices, restricciones, disparadores y-funciones
permiten al diseñador generar sintaxis del LOO espe- que crean una réplica exacta del esquema de la base de
cífica de DB2. Por ejemplo. la herramienta UML Data datos para verificación o-réplica.
Modelér de Rational Rose puede generar instrucciones Para el análisis de datos DB2 proporciona soporte
create dlstínct type del LDD específico de DB2 para OLAP mediante el servidor DB2 üLAP. El servidor
tipos definidos por el usuario y utilizarlos posterior- DB2 OLAP puede crear un puesto de datos multidi-
mente en definiciones de columnas. La mayor parte de ménsional desde una base de datos DB2 subyacente para
herramientas de diseño también soportan una caracte- su análisis. El motor OLAP del producto Bssbase sé uti-
rística de ingeniería inversa que lec las tabl:as del cata- liza en el servidor DB2 OLAP. DB2 también soporta
logo DB2 y construye un diseño lógico para manipula- otros motores OLAP de fabricantes tales como Micro-
ciones adicionales. Las herramientas pueden generar strategy y Cognos. En particular. DB2 proporciona
restricciones e índices. soporte nativo para las instrucciones cube by y rollup
DB2 proporciona constructoras SQL para soportar para generar cubos agregados. así como agregados jun-
muchas características de bases de datos lógicas, tales to-a una o mas jerarquías en el motor-de la base de datos.
como restricciones, disparadores y recursión. De igual Iruelligent Mincr y otTOSproductos de minería de datos
forma, DB2soPQrta ciertas características de bases de se pueden utilizar para análisis más profundos y com-
datos ffsicas tales como espacios de tablas, colas de plejos en datos DR2.
memoria intermedia y división mediante el use de ins- DR2 para 05/390 tiene un conjunto muy grande de
trucciones SQL. La herramienta Control Ccntcr OUT herramientas. QMF es una herramienta ampliamente
para DB2 permite a los diseñadores o administradores utilizada para generar consultas ad hoc e integrarlas en
emitir la instrucción LOO apropiada pata estas carac- aplicaciones.
"
:ª~,~~~IACIONES
'-K eh Y~_'·A~ ,., ... _., ... .. ... .... , .
Y EX¡ENSIQNES DE SQL
DB2 soporta un amplio conjunto de características SQL Las consultas pueden utilizar el campo con este tipo en
para varios aspectos del procesamiento dc la base de los predicados como en el siguiente ejemplo:
datos. Muchas de las características y sintaxis de DB2
select Producto
han proporcionado labase de los estándares en SQL-92
from Ventas_Europa
y SQL: 1999. Este apartado resalta las características rela-
where Precio> EURO( 1000)
cionales orientadas a objetasen DB2 UDB'versión 7. El
lector puede encontrar referencias para completar la des- Los tipos de datos estructurados son objetos com-
cripción del soporte para SQL de DB2dc lBM, asf como plejos que nonnalmcnte se componen de dos o-mas atri-
extensiones al soporte XML en las notas bibliográficas. butos. El siguiente código declara un tipo de datos
estructurado denominado tdepartmento:
26.2.1. Soporte para tipos de datos create type t_departmento as
(nombredept varchar(32),
DB2 soporta tipos de datos-definidos por el usuario. Los
directordcpt varcharrjz),
usuarios pueden definirtipos de datos distintos o estruc-
número mteger)
turados. Los tipos de datos distintos se basan en los tipos
mode db2sqJ
de datos incorporados en DBl. Sin embargo, los usua-
rios pueden definir semánticas adicionales o altemati- Los tipos estructurados se pueden utilizar para definir
vas para estos nuevos tipos. Por ejemplo, el usuario pue- tablas con tipos.
de definir un tipo de datos distinto denominado EURO
create table dept of t deparrmento
como
Con el LDD un diseñador de sistema puede crear una
create distinct type EURO as decimaJ(9,2). jerarquía de tipos y tablas en la jerarquía que puede here-
dar métodos especí1icos y privilegios. Los tipos estruc-
Por consiguiente, el usuario puede crear un campo (por turados también 'se pueden utilizar para definir atribu-
ejemplo, PRECIO) en una tabla cuyo tipo sea EURO. tos' anidados dentro de una columna o tabla.
630
3. CAP!TUL026 DB2 DE IBM
26.2.2. Funciones y métodos definidos de caracteres de gran tamaño de dos bytes (Double Byte
por el usuario Characrer Large Objects, DBCLOBs). DB2 organiza
estos LOBs como objetos separados, con cada fila en la
Otra característica importante es que los usuarios pue-
tabla manteniendo punteros a sus LOBs correspon-
den definir sus propias funciones y métodos. Estas fun-
dientes. Los usuarios pueden registrar UDFs que mani-
ciones se pueden posteriormente incluir en instruccio-
pulen estos LOBs según los requisitos de la aplicación.
nes y consultas SQL. Las funciones pueden generar
escalares (único atributo) o tablas (fila multiatributo)
como resultado. Los usuarios pueden registrar funcio- 26.2.4. Soporte para XML
nes (escalares o de tablas) mediante el uso de la ins-
DB'2integra el soporte paraXML en el servidor-median-
trucción create furrctlon. Pueden escribir las funciones
te el uso de XML extendido. XML extendido puede,
en lenguajes de programación comunes tales comoC y
extraer elementos y atributos XML en columnas de datos,
Java o lenguajes de guiones tales como Rexx y Perl. Las
relacionales y mejorar SQL y él poder de' indexación de
funciones definidas por el usuario (FDU) pueden ope-
rar en los modos separado (fenceá) y compartido (unfen- DB2. De forma alternativa también puede almacenar y
recuperar documentos- XML como una única columna
cedí, En el modo separado las funciones se ejecutan
'en una tabla. Puede indexar y proporcionar capacidades
mediante una hebra separada en su propio espacio de
de búsqueda orientada a texto en esta columna XML. El
dirección. En el modo compartido se permite al agente
extensor proporciona una serie de funciones incorpora-
de procesamiento de la base de datos ejecutar la fun-
das y APls para la composición, inserción, actualización
ción en el espacio de direcciones del servidor. Las_FDU
pueden definir un área de trabajo donde pueden mante- y búsqueda en documentos XML. Es probable que se'
integren pronto nuevas características tales como Ia-expo-
ner variables locales y estéticas en invocaciones dife-
rentes. sición de los datos DB2como servicio Web mediante el
protocolo SOAP y soporte de consultas XML.
Otra característica son los métodos asociados con los
objetos, los cuales definen el comportamiento de los obje-
los. Los métodos están asociados con tipos de datos 26.2.. . Extensiones
5 de índices y restricciones
estructurados particulares y se registran mediante el uso
'de la instrucción create method. Una caracrerfstica reciente de DB2 proporciona un cons-
tructor create index extension que ayuda a crear índi-
ces sobre atributos con tipos de datos estructurados
26.2.3. Objetos de gran tamaño
mediante la generación de claves a partir de los tipos de
Las nuevas aplicaciones de las bases de daros requie- datos estructurados. Por ejemplo, un usuario puede cre-
ren la manipulación de texto, imágenes, vídeo y otros ar un índice en un atributo cuyo tipo es rdepartamen-
tipos de datos típicos que son bastante grandes. DB2 to (definido en la sección 26.2.1) mediante la genera-
soporta estos requisitos, proporcionando tres tipos de ción de claves con el nombre departamento. El extensor
objetos de gran tamaño (LOB. Large Object) distintos. espacial de DB2 utiliza el método de extensión de índi-
Cada LOB puede ser de hasta 2 gigabytes de tamaño. ce para crear índices sobre los datos espaciales. DB2
Los objetos de gran tamaño en DB2·son (1) objetos en también proporciona un rico conjunto de característi-
binario de gran tamaño (Binary Large Objetes, BLOBs), cas de verificación de restricciones para imponer la
(2) objetos de caracteres de gran tamaño de-un único semántica de los objetos tales como unicidad, validez
byte (Character Large Objects, CLOBs) y (3) objetos y herencia.
IBM DB2 proporciona una serie de características para tabla a nodos diferentes en un sistema. Por ejemplo. las
el almacenamiento e indexación de datos. tablas de gran tamaño se pueden dividir entre todos los
nodos en un sistema mientras que las tablas pequeñas
26.3.1. Arquitectura de almacenamiento pueden residir en un único nodo. Las tablas se dividen
por asociación entre los nodos en el grupo de nodos uti-
DB2 proporciona abstracciones de almacenamiento para lizando un subconjunto de sus atributos (clave de divi-
gestionar tablas de base de datos lógicas eh entornos sión).
rnultinodo (paralelo) y multidisco. Se pueden definir Dentro de un nodo, DB2 utiliza espacios de tablas
grupos de nadas para soportar la división de la tabla en para reorganizar la tabla. Un espacio de tablas consiste
conjuntos especificados de nodos en un sistema multi- en uno o más contenedores que son referencias a direc-
nodo. Esto permite flexibilidad al asignar particiones de torios, dispositivos o archivos. Un espacio de' tablas pue-
631
4. , FUNDAMENTOS DE BASES DE DATOS
de contener cero o más objetos de base de datos tales gestiona el espacio de tablas DMS. En ambos casos la
como tablas, índices o LOBs. La Figura 26.2 ilustra unidad de espacio de almacenamiento es una extensión
ji estos conceptos. -En esta figura se definen dos espacios
de tablas para un grupo de nodos; Al espacio de tablas
de páginas. El administrador puede elegir el tamaño de
la extensión para un espacio de tabla. DB2 soporta la
RECHUMANüS se asignan cuatro contenedores mien- distribución en distintos contenedores. Por ejemplo,
tras que el espacio de tablas PLAN tiene solamente un cuando se insertan los datos en una tabla recientemen-
contenedor. Las tablas EMPLEADO y DEPARTA- te-creada, DB2 asigna la primera extensión a un conte-
MENTO están en el espado de tablas RECHUMANOS nedor. Una vez que la extensión esté llena asigna los
r mientras que la tabla PROYECTO está en el espacio de
tablas PLAN. La distribución de datos asigna fragmentos
siguientes datos al siguiente contenedor por tumos rota-
torios. La distribución proporciona dos ventajas signi-
(extensiones) de las tablas EMPLEADO y DEPARTA- ficativas: E/S paralela y balance de carga. DB2'también
MENTO a los contenedores del espacio de tablas soporta la preextracción y escrituras asíncronas median-
RECHUMANDS. DBl permite al administrador crear te el uso de hebras separadas. El componente de ges-
tanto espacios de tablas gestionados por el sistema como tión de datos de DB2 desencadena la preextraccion de
por él SGBQ. Los espacios de tablas gestionados gor el páginas de datos y de índices según los patrones de acce-
sisrema (System-managed spaces, SMSs) son directo- so de las consulta". Por ejemplo, una exploración de una
rios o sistemas de archivo que mantiene el sistema ope- tabla siempre desencadena la preextracción de páginas
rativo subyacente. En un SMS, DB2 crea objetos archi- de datos. La exploración de'l índice puede desencade-
vo en los directorios y asigna datos. a cada uno de los nar la preextracción de páginas de índices así como' las
archivos, Los espacios de tablas gestionados por el páginas de datos si se está accediendo de una forma
SGBD (Data ManagedSpaces, DMSs) son dispositivos agrupada. El número de preextracciones concurrentes
en bruto o archivos preasignadós que son controlados así como el tamaño de la preextracción son parámetros
por DBl. El tamaño de estos contenedores nuncapue- configurables que se necesitan iniciar según el numero
de crecer o disminuir. DB2 crea mapas de-asignación y de discos o contenedores en el espacio de tablas.
.., Nodegroup MisDepts
T~ RECHUMANOS 'rebieseece PLAN
.
.
Departamento Empleado Proyecto
.
Contenedores
FIGURA 26.2. Espacios de tablas y contenedores en DB2.
632
5. CAPITULO 26 Df2 D~ IBM
26.~.2.Tablas. registros e índices se mantienen en un orden de agrupamiento orientado a
la página según las claves del índice.
DB2 organiza los datos relacionales como registros en
Los índices DB2 pueden almacenar columnas extra
las páginas. La Figura 26.3 muestra la vista lógica de
junto con los identificadores de registro en el nivel dc
una tabla y un índice asociado. La tabla-consiste en un
las hojas de los índices. Por ejemplo,
conjunto de páginas. Cada página consiste en un con-
junto de registros (tanto registros de datos del usuario create unique index 11 on TI (Cl) inelude (C2)
tomo registros especiales del sistema). La pagina cero
de la tabla contiene registros' del sistema especiales sobre especifica que C2 se va a incluir como una columna extra
la tabla y su estado. DB2 utiliza un registro del mapa en un índice sobre la columna Cl. Las columnas incluí-
de espacio denominado registro de control de espacio das permiten a DB2 utilizar las técnicas de procesamiento
libre (Free Space Control Record, FSCR) para, encon- de la 'consulta «sólo con el Indico» (evitando la lectura
trar el espacio libre en la tabla. El registro FSCR nor- del registro real) para consultas que utilizan las colum-
malmente contiene un mapa de espacio de 500 páginas. nas incluidas, lo que no sería posible en otro caso (el pro-
Una entrada FSCR consiste en unos pocos bits que pro- 'Cesamiento de la consulta sólo con el índice-se describi-
porcionan una indicación aproximada del porcentaje de rá ton más detalle en breve). Se pueden utilizar directrices
espacio libre en la página; por ejemplo, con dos bits, el adicionales tales como MINPCUSED y PCTFREE para
patrón de bits 1I indicaría que la mayor parte de la pági- controlar la unión de páginas de índices y su asignación
na puede estar libre mientras que 01 indicaría que alre- de espacio inicial durante fa carga masiva.
dedor del 25 por-ciento del espacio está libre. Para redu- La Figura 26.4 muestra el formato de datos típico en
cir el coste de actualización, las entradas no siempre se DB2. Cada página de datos contiene una cabecera y un
actualizan con el uso del espado real, por lo que el códi- directorio de ranuras. El directorio de ranuras es un array
go de inserción o actualización debe validar las entra- de 2.55 entradas que apuntan a los desplazamientos de
das FSCR realizando una verificación física del espa- los registros en la página, La figura muestra que el núme-
cio disponible en una, página. ro de página 473 contiene el registro cero en el despla-
Los índices se organizan como páginas que contie- zamiento 3.HOO y el registro 2 en el desplazamiento
nen registros índice y punteros a páginas hijas y herma- 3.400. La página IQ56 contiene un registro 1 en el des-
nas. DB2 proporciona soporte para los mecanismos de plazamiento 3.700, que es realmente un puntero hacia
índices de.érbol B+. El índice de árbol B' contiene pági- -delante al registro <473,2>. Por ello el registro <473, 2
nas internas y páginas hoja. Los índices tienen punteros > es un registro de desbordamiento que fue creado por
bidimensionales en el nivel hoja para soportar explora- una operación de actualización del registro < lO56~ l >
cienes hacia delante y atrés. Las páginas hoja contienen original. DB2 soporta distintos.tamaños de página tales
entradas de 'índice que apuntan a los registros de la tabla. como 4 KB, 8 KB, 16 KB Y 32 KB. Sin embargo, cada
Cada registro de una tabla tiene un identificador de regis- página puede contener solamente 255 registros de usua-
tro único (Register ID, RID) construido a partir de su no. Los tamaños de página mayores son útiles en apli-
identificador de página y deranura en la página (la estruc- caciones tales cómo almacén de datos donde la tabla
tura de páginas con ranuras se describe en breve). Se contiene muchas columnas. Los tamaños de página
puede definir un índice como los índices de agrupación menores son útiles para datos operacionales con frc-
de la tabla. Si se define este-índice, los registros de datos cuentes actualizaciones.
Vista lógica de la página Vista lóqica del índice
La página O contiene un conjunto ~
de registros internos (por ejemplo, FSCR) rr."';¡¡:;n~~l K RID __
2 r;;;;;1.-J--: R:eg¡S'ros de usuario K RID ~
}
'F = CRID ~
R
ARIO Pági~~as ~
Cada páqjna múltiplo
C 3,2 hOJ~
500 ) de 500 contiene otro FSCR
Más registros de usuario RID (Record ID, ID de registro) = página 3, ranura 2
FIGURA 26.3. Vista lógica de las labias e índices en D62.
.33
6. FUNDAMENTOS DE BASES DE DATOS
Núm.. página
"---l 1056
Núm. ranura
[1]
I
3 bytes 1 byte
Página 473 Página 1056 --
Espacio libre Cabecera de página Cabecera de página
(se puede usar
3.800 -1 3.400 .•------- 3.800 1 3.700 1,,---" -- -- -
x
sin reorganizar
la página"),
Espacio libre
incorporado
Registro 2
(se puede usar
después de Registro O - 473,.2· Registro O
reorganizar la página",)
• establecido en la creación del espacio de tablas
"Excepción: no se puede usar ningún
espacio reservado por un borrado
no comprometido
FIGURA 26.4. Diseño de las páginas de datos y de los registros en D82 ",
El compilador de consultas de DB2 transforma las con- 26.4.1. Métodos de acceso
sulras en un árbol dé operaciones. DB2 utiliza enton-
DB2 soporta un conjunto detallado de métodos de acce-
ces el árbol de operadores de la consulta en tiempo de
so sobre tablas relacionales, incluyendo.
ejecución para el procesamiento. DB2 soporta un rico
conjunto de operadores de consulta que permiten con- • Exploración de tabla. Con este método, el más
siderar mejores estrategias de procesamiento y pro- básico. se accede a todos los registros en la tabla
porcionan flexibilidad en la ejecución de consultas com- página, por página.
plejas. • Exploración de índice. DB2 utiliza un índice-para
Las Figuras 26.5 y 26.6 muestran una consulta y su seleccionar los registros especificos que 'satisfacen
plan de consulta asociado. Se trata de una consulta com- la consulta. Accede a los registros utilizando los
pleja representativa (consulta 5) de la prueba TPC-H y RIDs en el índice. DB2 detecta las posibilidades
contiene varias reuniones y agregaciones. El plan de de la preextracción de las páginas de datos cuan-
consulta en este ejemplo es bastante simple. puesto que do observa un patrón de acceso secuencial.
solamente se definen pocos índices y no están dispo-
Sólo con el índice. Este tipo dé exploración se uti-
nibles para esta consulta estructuras auxiliares como
liza cuando el índice contiene todos los atributos
las vistas materializadas. DB2 proporciona varias carac-
que requiere la consulta. Por ello es suficiente una
terísticas de explicación del plan incluyendo una poten-
exploración de las entradas de índice y no hay
tecaracterística visual en el centro de control que pue-
necesidad de extraer los registros. La técnica 'sólo
de ayudar a los usuarios a comprender los detalles del
con el índice es normalmente una buena elección
plan de ejecución de la consulta. El plan de consulta
desde el punto de vista del rendimiento.
en la figura está basado en la.explicación visual de la
consulta. La explicación visual permite al usuario com- • Lista de preextracclón, Este método de acceso es
prender los costes y otras propiedades relevantes de las una buena elección para una exploración de índi-
distintas operaciones de un plan de consulta. ces no agrupada con un número significativo de
DB2 transforma todas las consultas e instrucciones RIDs. DB2 recoge los RIDs de los registros rele-
SQL, sin importar lo complejas que sean, en un árbol vantes utilizando una exploración de índices,
de consulta. La base u operadores. hoja del árbol de entonces ordena los RIDs por el riúmero de pági-
consulta manipulan los registros en tablas. de base de na y finalmente realiza una extracción de los regis-
datos, Estas operaciones también se denominan méto- tros de forma ordenada desde las páginas de datos.
I dos de acceso. Las operaciones intermedias del árbol Bl-acceso ordenado cambia el patrón E/S de alea-
! torio a secuencial y también ofrece posibilidades
incluyen operaciones del álgebra relacional tales como
ti reuniones, operaciones de conjuntos y agregaciones. de preextracción.
La raíz del árbol produce los resultados de la consul- • Conjunción de 'índices. DB2 utilizaeste método
ta o instrucción SQL. cuando determina que se puede utilizar más de un
634
7. C}¡PiTULO 26 DB2 DEIBM
-'TPeD Local Supplier Volume Query (05)';
seise! N_NAME,
sum(l_EXTENDEDPRlce""(l-L_DISCOUNT)) as REVENUE
from TPCD.CUSrDMER, TPCO.QRDERS, TPCD.LlNEITEM,
TPCO.SUPPLlER, TPCO.NATIQN, TPeO.REGION
where C_CUSTKEY ~ O_CUSTKEY
and O_ORDERKEY = L_ORDERKEY
and L..SUPPKEY = S_SUPPKEY
and,C_NATIONKEY = S_NATIONKEY
and S_NATIDNKEY = N_NATlDNKEY
and N_REGIDNKEY = R_REGIONKEY
and R_NAME = 'MIDDLE EAST'
and O_ORDERDATE >= dater1995-01-01')
and O_ORDERDATE < date('1995-Ql-0")+ 1 year
group by N_NAME
order by REVENUE DESe;
FIGURA 26.5. Consulta SOL
índice para restringir el número de-registros satis- Disyunción de índices. Esta estrategia es una bue-
factorios en una tabla base. Procesa el índice más na elección si se pueden utilizar dos o más índices
selectivo para generar una lista de.RIDs. Entonces para satisfacer los predicados de la consulta que
procesa el siguiente índice selectivo para devolver se combinan utilizando la operación DR. DS2 eli-
los RIDs que'encucníra. Un RlD requiere más pro- mina los RlDs duplicados realizando una ordena-
cesamiento solamente si está presente en la inter- ción y entonces extrae el conjunto de registros
sección (operación ANO). de los resultados de la resultante.
exploración del 'índice. El resultado de una opera-
-cion AND del índice es una pequeña lista del RlDs DB2 normalmente envía todos los predicados' de
que se utilizan para extraer los registros corres- selección y proyección dc una consulta a los métodos
pondientes desde la tabla base. de acceso. Además DB2 envía ciertas operaciones tales
s Ordenación
1
Exploración del índice
e
1
croere
1-
s-
Exploración
os.
1
a- Supplier
es Netíon Region
do FIGURA26.6. Plan de consulta DB2 (explicaciún.qráfica).
un
6:35
8. FUNDAMENTOS DE BASES DE DATOS
como la ordenación y la agregación, siempre que es para soportar los modos SMP, MPP y SMP por agrupa-
posible, con el fin de reducir el coste. ciones del procesamiento de consultas. DB2 utiliza una
abstracción tabla-cola para el intercambio de datos entre
26.4.2. Operaciones de reunión. agregación hebras sobre distintos nodos o sobre el mismo nodo. La
y de conjuntos tabla-cola es una memoria intermedia que redirige los
datos a receptores apropiados mediante el uso de méto-
DBl soporta una serie de técnicas para las operaciones dos de difusión, uno a uno o multidifusion dirigida Las
de reunión, agregación y de conjuntos. Para la reunión operaciones de control crean hebras y coordinan la ope-
DBl puede elegir entre técnicas de bucles 'anidados, ración de distintos procesos y hebras.
ordenación-mezcla y de asociación. Para describir las En todos estos modos DBl emplea un proceso coor-
.operaciones binarias de reuniones y de conjuntos se uti- dinador para controlar las operaciones de colas y la reu-
lizarala notación de las tablas externas e internas para nión del.resultado final. Los procesos de.coordinación
distinguir los dos fiujosde entrada. La: técnica de bucles también pueden ejecutar algunas acciones globales de
anidados es util.s¡ la tabla interna es muy pequeña o se procesamiento de la base de datos si es necesario. Un
puede, acceder utilizando un índice sobre un predicado ejemplo es la operación de agregación global para com-
de reunión. Las técnicas de reunión de ordenación-mez- binar los resultados de agregación local. Los subagen-
cla y reunión por asociación son útiles para reuniones tes o hebras esclavos ejecutan las operaciones base en
que involucran tablas internas y externas grandes. DBl uno O más modos. En el modo SMPlos subagentes uti-
implementa las operaciones de conjuntos mediante el lizan memoria compartida para sincronizarse entre sí
uso de técnicas de ordenación y mezcla, La técnica de cuando comparten datos. Enun MPP, los mecanismos
mezcla elimina los duplicados en el caso de la unión de tabla-cola proporcionan memoria intermedia y con-
mientras que los no duplicados se eliminan en el caso trol de flujo para la sincronización entre distintos nodos'
de intersección. DBl también soporta operaciones de durante la ejecución.
reunión externa de todas las clases.
DBl procesa las operaciones de agregación en modo
impaciente o de envío siempre que sea posible. Por 26A.5. Optimización de consultas
ejemplo, puede realizar la agregación mientras que orde- El optimizador de consultas de DBl utiliza una repre-
na la entrada de, la agregación en el grupo por colum- sentación interna, de la consulta, denominada Query
nas. Los algoritmos de reunión y agregación aprove- Graph Model (QGM, modelo de grafos de consultas)
chan el procesamiento superescalar en CPUs modernas con el fin de ejecutar transformacíones y optimizacio-
" utilizando técnicas orientadas a bloques y conscientes nes. Después de analizar la instrucción SQL, DB2 eje-
de la caché de memoria. cuta transformaciones semánticas sobre QGM para hacer
cumplir las restricciones, integridad referencial y los
26.4.3. Soporte para el procesamiento de SQL disparadores. El resultado de estas transformaciones es
j, complejo un QGM mejorado. Seguidamente DB2 intenta ejecu-
tar transformaciones de reescritura de la consulta que
Uno de los aspectos más importantes de DB2 es que uti- se consideran beneficiosas en la mayoría de las consul-
liza la infraestructura de procesamiento de la consulta tas. Se activan las reglas de reescritura, si son aplica-
de forma extensible para soportar operaciones SQL bles, para ejecutar lasrransformacíones requeridas. Los
complejas. Las operaciones SQI,. complejas incluyen ejemplos de transformaciones de reescritura incluyen
soporte.parasubconsultas profundamente anidadas y (1) descorrelación de subconsultas correlacionadas. (2)
correlacionadas, así como restricciones, integridad refe- transformación de subconsultas en reuniones donde sea
rencial y disparadores. Las restricciones y comproba- posible, (3) trasladar las operaciones group by bajo las
ciones de integridad se construyen como operaciones reuniones si es aplicable y (4) reescritura de consultas
del árbol de consulta a partir de las instrucciones SQL para hacer uso de las vistas materializadas disponibles
de inserción, borrado o actualización. Mediante la eje- o «tablas resumen» '(vistas materializadas utilizando la
cución de la mayoría de las acciones de verificación de agregación).
restricciones y desencadenamiento como parte del plan El optimizador de consultas utiliza QGM mejorado
de consulta DBl puede proporcionar una mejor efi- y transformado como su entrada para la optimización.
ciencia y dimensionabíjídad. DB2 también soporta el El optimizador se basa en el coste y utiliza un entorno
mantenimiento de vistas materializadas mediante.el uso extensible, controlado por reglas. Se puede configurar
de disparadores incorporados. el optimizador para operar a distintos niveles de com-
plejidad. En el nivel más alto utiliza un algoritmo de
26.4.4. Procesamiento de consultas programación dinámica para considerar tedas las, opcío-
.en multiprocesadores nes del plan de consulta y elige el plan de coste óptimo.
En un nivel intermedio el optimizador no considera cier-
DB.2-extiende el conjunto base de operaciones de con- tos planes o métodos de acceso (por ejemplo, indexa-
sulta con primitivas de intercambio de datos y control ción) así corno algunas reglas de reescritura. En el nivel
••6
9. CAPITULO 25 DEZ DEIBM
inferior de complejidad el optimizador utiliza una heu- Considérese una actualización de la forma «Aurnen-
rística impaciente simple para elegir un buen, aunque tar en un 10 por ciento el -sueldo de los, empleados que
no necesariamente óptimo. plan de consulta. El opti- ganen menos que 25.000 euros». En una versión ante-
mizador utiliza modelos detallados de las operaciones rior de Sysrem R el optimizador elegía el índice del suel-
de procesamiento de la consulta (teniendo en cuenta do para el acceso y procesaba los datos de menor a
detalles tales como tamaño de la memoria y preexrrac- mayor (O a 25.000). La inserción de un nuevo valor
s ción) para obtener estimaciones adecuadas de los cos- (mayor) parad sueldo significaba que el registro actua-
tes de E/S y CPU. Depende de la estadística de los datos lizado se revisa de nuevo a no ser que el valor del suel-
para estimar la cardinalidad y selectividades de las ope- do fuera mayor que 25.000. La causa de la revisión es
r- raciones. el uso del índice del sueldo para el acceso en orden
1- DB2 permite a un usuario generar histogramas de dis- menor a mayor. Se revisaba el registro y el sueldo se
in tribuciones en el nivel de las columnas y combinaciones aumentaba un 10 por ciento repetidamente hasta que-su
le de columnas mediante el uso de la utilidad runsuüs. Los valor excedía a 25.000. Este error ocurrió el día de Hallo-
Jn histogramas contienen información sobre las aparicio- wcen, por lo que los miembros del proyecto System R
n- nes del valor más frecuente, así como sobre, las distribu- lo denominaron al error «problema Haíloween»
n- ciones de frecuencia basadas en los cuantiles de los atri- DB2 soluciona el problema Halloween reconocien-
en butos. El optimizador de consultas usa estas estadísticas. do esta. situación en el compilador de la consulta. El
Iti- El optimizador genera un plan de consulta interno que optimizador genera un plan de consulta que primero
: sí considera el mejor plan de consulta y entonces convier- materializa 19SRIDs de las filas implicadas antes de pro-
íos te el plan de consulta en hebras de operadores y estruc- cesar las actualizacione-s. Cada registro implicado se
m- turas de datos asociados de la consulta para su ejecución actualiza solamente una vez, como tenía intención la
los mediante el motor de: procesamiento de consultas. instrucción de actualización.
pre-
iery
Itas) DB2,soporta técnicas de control de concurrencias que con el que 'se quieren ejecutar. También, la mayoría de
cio- proporcionan un muy alto nivel de concurrencia, aco- las aplicaciones comerciales disponibles soportan los
eje- pladas con un mecanismo de recuperación avanzado distintos niveles de aislamiento y los usuarios pueden
iacer que.soporta una serie de características. elegir la versión correcta de.la aplicación para sus requi-
y los sitos.
es es 28.5.1.Concurrencíc y aislamiento Los distintos modos de aislamiento se implementan
jecu- mediante el uso de bloqueos. DB2 soporta bloqueos en
a que DB2· soporta una serie de modos de control de concu- el nivel de registros y de tablas. Mantiene una estruc-
msul- rrencia y aislamiento. Para el aislamiento DB2soporta tura de datos de bloqueo de tablas separado del resto de
plica- losmodos lectura repetible (Repeatable Read, RR), esta- información de bloqueo. DB2 dimensiona el bloqueo
s.Los bilidaden lectura (Read Stability, RS), estabilidad del en el nivel de registros al de tablas si el espacio dispo-
luyen cursor (Cursor Stability, eS) y lectura no comprometi- nible para posteriores bloqueos en la tabla de bloqueos
as, (2) da (Un-committed Read, UR). se hace pequeño. DB2 implementa: un bloqueo estricto
de sea La definición de lectura repetible en DB2 difiere de de das fases para todas las transacciones de actualiza-
ajo las '¡adel Apanado 16.8 y corresponde íntimamente con el ción. Mantiene bloqueos de escritura y actualización
rsultas nivel secuenciable descrito allí. Específicamente, RR hasta el momento del compromiso o retroceso.
mibles en DB2asegura que la exploración del rango encontra- DB2 soporta una serie de modos de bloqueo con el
mdo la rá el mismo conjunto de tuplas si se repiten. Si todas-las fin de maximizar la concurrencia. La Figura 26.7 mues-
transacciones siguen el protocolo RR entonces la pla- tra los distintos modos de bloqueo y proporciona una
ejorado nificación resultante será secuenciable. Los modos es breve descripción del propósito de cada modo de blo-
iadón. 'j UR son corno se describen en el Apartado 16.8'. queo. Abajo se muestran brevemente algunos de los
~ntomo El modo de aislamiento RS bloquea solamente las modos de bloqueo; véanse las referencias bibliográfi-
lfigurar filas que recupera una aplicación en una unidad de.tra- cas para mayor información sobre, los modos de, blo-
le com- bajo. En una exploración posterior la aplicación tiene queo. Los modos de bloqueo incluyen bloqueos inten-
hmo de garantizado ver todas estas filas (como RR) pero podría cionales en un nivel de tabla para proporcionar bloqueo
iSopcio- no ver nuevas filas que deberla ver. Sin-embargo, esto de granularidad múltiple. DB2 también implementa el
óptimo. podría ser un compromiso aceptable para algunas apli- bloqueo de la clave siguiente para las inserciones y
leracier- caciones con respecro-al aislamiento RR estricto. Nor- borrados que afecten a las exploraciones de índices del
, indexa- malmenre el nivel de aislamiento predeterminado es CS. nivel de aislamiento RR para eliminar el problema de
le} nivel Las aplicaciones pueden elegir el nivel de aislamiento la lectura fantasma. véanse las referencias bibliográfi-
6"
10. l.
FUNDAMENTOS DE BASES DE DATOS
l,' " Modo d6 bloqueo
l
Objetos I Intef1Jrf1l!lCi6n
IN Ilntent nene, sin intención) Espacios de tablas, tablas Lectura sin bloqueos de filas
IS [lntent sbare. intentar compartir) Espacios de tablas, tablas Lectura con bloqueos de filas
NS (next kev share, siguiente clave Filas Bloqueos de lectura para los niveles
compartido) de eielamiento RS o es
s tshare. compartido) Filas, tablas Bloqueo de lectura
IX tintent exclusive. intencinnal.exclu- Espacios de tablas, tablas Intención de actualizar filas
eivol
SIX Ishare with intent Exclusive, com- Tablas Sin bloqueos de lectura en las filas
partido intencional excluelvol pero con bloqueos X en las filas
actualizadas
U üjpdate, actualización] Filas, tablas Bloqueo de actualización pero permi-
tiendo leer a otros
NX (next key exclusive, siguiente Filas Bloqueo de la si,guiente clave para
clave exclusivo} inserciones y borrados para prevenir
las lecturas fantasma durante las
exploraciones de indice RH
X (exclusive, exclusivo) Filas, tabJas Sólo se permiten lectores no compro-
metidos
Z tsuperexclusive, superexctusfvct Espacios dé. tablas, tablas ACCeSOcompleto excluslvc
FIGURA 26.7. Modos de bloqueo de D82.
cas para mayores detalles (en el Apartado 16.9 se des- sula withhold entonces se mantienen algunos bloqueos
cribe una.forma sencilla de bloqueo de la siguiente cla- durante los compromisos.
ve que elimina el problema fantasma),
La transacción puede establecer la granularidad del 26.5.3. Registro hiatórico y recuperación
bloqueo en 'el nivel de tabla mediante el uso de una ins-
trucción de bloqueo de tabla (una extensión SQL). ESLO DB2 implementa el registro histórico y los. esquemas
¡lit es útil para aplicaciones que conocen 'que su nivel dese- de recuperación ARIES' (el esquema ARIES se descri-
ado de aislamiento está en el nivel de tabla. También be brevemente en el Apartado 17.9.6). Este registro his-
DB2 elige las granularidades de bloqueo apropiadas tórico.tíeescritura anticipada lo utiliza para enviar regis-
cuando se ejecutan utilidades tales como reorganización tros, desde este registro histórico al archivo de registro
de la base de datos y bloqueo. Las versiones sin cone- histórico persistente. antes de que las páginas de datos
xión de estas utilidades normalmente bloquean la tabla: seescriban en el compromiso. DB2 soporta dos tipos
en modo exclusivo. Las versiones en conexión de las de modos de registro: registro histórico- circular y regis-
utilidades permiten que otras transacciones se ejecuten tro de archivo. Én el registro histórico circular, DB2 uii-
concurrentemente adquiriendo bloqueos de filas. liza un conjunto predefinido de archivos de registro hís-
En cada base de datos se ejecuta un agente de detec- tórico primario y secundario. El registro histórico
ción de interbloqueos que periódicamente verifica los circular es útil para la recuperación de caídas o la recu-
interbloqueos entre-las transacciones. El intervalo para peración de un fallo de la aplicación. En el registro his-
la detección de interbloqueos es un parámetro configu- tórico de archivo, DB2 crea nuevos archivos de regis-
rable. En caso de interbloqueo, el agente elige una víc- tro histórico y guarda los archivos de registro histórico
tima y la finaliza. La víctima produce un código de error viejos con el fin de liberar espacio en el sistema de archi-
SQL, indicando que la causa del fallo fue un interblo- vos. Los registros históricos de archivo son necesarios
queo. para la recuperación hacia adelante de una copia de segu-
ridad dc archivo (se describe con más detalle más ade-
lante). En ambos caSQS DB2 permite al usuario confi-
26.5.2. Compromiso y retroceso gurar el número de archivos de registro histórico y los
Las aplicaciones pueden comprometerse o retroceder- tamaños dc los archivos de los registros históricos.
se mediante el uso de las instrucciones explícitas com- En entornos con grandes actualizaciones, DB2 pue-
mit y rollback. Las aplicaciones también pueden emi- de configurarse par,<l utilizar compromisos en grupo
tir instrucciones begin transaction y end transaction (Apartado 24.3) con el fin de combinar escrituras de;
para controlar el ámbito de las transacciones. No se registro histórico de varias transacciones y ejecutarlos
soportan las transacciones anidadas. Normalmente DB2 utilizando una única operación E/S.
libera todos los bloqueosque se mantienen por W1atran- DB2 soporta retroceso de transacciones, recupera-
sacción en cornmit o rcllback. Sin embargo, si se ha ción de caídas, así como recuperaciones por instantes
declarado una instrucción de cursor mediante la cláu- (poiru-in-time) o hacia adelante (roll-forward). En el
638
11. CAPItULO 25 SB2 DE 16M
caso de una recuperación tras una caída, DB2 ejecuta soporta tanto los niveles de bases de datos como de espa-
las fases de deshacer estándar de procesamiento y pro- cios de tablas. También se pueden emitir en nodos espe-
cesamiento rehacer hasta y desde el último punto de cíficos sobre un sistema multinodo.
revisión con el fin de recuperar el estado comprometi- Recientemente se ha hecho disponible un esquema
do adecuado de la base de datos. Para la recuperación de recuperación en paralelo para,mejorar el rendimien-
por instantes, DB2 puede restaurar la base de datos des- to en sistemas multiprocesador SMP mediante la utili-
de una copia de seguridad y avanzar a un punto especí- zación de muchas Cl'Us. DB2ejecuta la:recuperación
ñco en el tiempo utilizando los archivos históricos guar- coordinada a través de nodos MPP mediante un esque-
dados. El comando de recuperación hacia adelante ma global de puntos de revisión.
La Figura 26.8 muestra algunos de los distintos proce- limpieza de páginas de la cola de la memoria interme-
sos o hebras en un servidor DB2. Las aplicaciones dia y detección de interbloqueos. Finalmente hay un
remotas cliente se conectan al servidor de la base de conjunto de agentes en el entorno del servidor para eje-
datos a través de agentes de comunicación tales como cutar tareas tales como detección de 'caídas, creación
db2tcpcm. Se asigna un agente a cada-aplicación '(agen- de procesos. control de recursos del sistema y servicio
te coordinador en entornos MPP o SMP) denominado de licencia. DB2 proporciona parámetros de configu-
hebra dh2agent. Este agente y sus agentes subordina- ración para controlar el número de hebras y procesos
dos ejecutan las tareas relacionadas con la aplicación. en W1 servidor. Casi todos los tipos distintos de agen-
Cada base de datos tiene un conjunto de procesos o tes se pueden controlar mediante el uso de parámetros
hebras que ejecutan tareas tales como preextracción, de configuración.
Modelo de procesamiento: partición única
•
Máquina, • Máquina.
Procesos
UDF
aislados Ef€fdf~ @E~a0 P, .
Procesos de procedimientos
almacenados aislados
, cliente' • servidora
EDU -p~~ ~~~-~~::~e.:/i~~e~-
~-~----~
~-:
~
remota : I
s :_UserDB2_
: PrOC,eSP5 Procesos
-----
s
(hebras) conexión • de datos activa
·
• " db2agen
OI+=F==I==i=O db2wdQg db2gds
o Memoria €~cly db2sysc db2cart
,- AplA compartida:
(f&fC~
s-
i-
a Pruebas"
,
ApJA
00 B B
o
,o db2agen ~ db2resyn db2dart
;- ~ db2Loggi db2dlock
os db2ipccm O E
U_
e-
Apl B
"Conexión
A
~ I
ApJB
dbiagntp Base de datos
MPRUEBAS H
~g~t
Agentes en espera
fi-
o,
SQL
a Pruebas" O~' Sob,g,"" """O~~' ~clY
sin asociar
,,- - - - - - _. - --
le-
dbztcpcrn db2agen .~, ([¿~fC~ EDU
por solicitud
OI;:::::¡====c4====='~O,~
po
de
los
,
AplC
"Conexión
TCPIP :,Agente
coordinador
€ffign5P
Subagentes:
00
db210ggi db2dlock db2bm, db2med ...
Sal e en espera
a Prod" Apl : Base de datos HPRODH
.ra-
nes
1el FIGURA26.8. Modelo .de.procesos en CiB2.
639
12. FUNDAMENTOS DE BASES DE DATOS
La Figura 26.9· muestra los distintos tipos de seg- disponer de varia s cola'> de memoria intermedia por diver-
mentos de memoria en D82. La memoria privada en los sas razones, pero se deberían definir después de un cui-
agentes o hebras se utiliza principalmente para varia- dadoso análisis de los requisitos de la carga de trabajo,
bles locales y estructuras de datos que son relevantes DB2 también proporciona la capacidad de almacena-
solamente para la actividad actual. Por ejemplo. una miento extendido para aprovechar memorias grandes
ordenación privada podría asignar memoria desdee (memorias mayores de 4 gigabytes) en sistema'> que sola-
montículo privado del agente. La memoria compartida mente tienen capacidad de direccionamiento 'de 32 bits.
se divide en memoria compartida del servidor, memo- El almacenamiento extendido se utiliza como una memo-
ria compartida de la base de datos y memoria compar- ria intermedia de copia de seguridad compartida para
tida de la aplicación. El nivel de la base de datos de colas de memoria intermedia activas, Las páginas que se
memoria compartida contiene estructuras de datos úti- extraen o reemplazan de una cola de memoria interme-
les tales como las colas de memoria intermedia, las lis- dia activa se escriben en el área de almacenamiento
tas de, bloqueos, las cachés de los paquetes de aplica- extendido y se pueden 'Volver a copiar desde allí si se
ción y las áreas de ordenación compartida. Las áreas de necesita. Por dio, el almacenamiento extendido puede.
memoria compartida del servidor y de la aplicación se ayudar a evitar E/S en grandes sistemas de memoria.
utilizan principalmente para estructuras de datos comu- DB2 soporta una completa lista de configuración de
nes tales como parámetros de configuración del servi- memoria y parámetros de ajuste. Esto incluye paráme-
dor y memorias intermedias de comunicaciones. tros para todas las áreas de montículos de estructuras
DB2 soporta varias colas de memoriaintermedia para de datos grandes tales como las colas de memoria inter-
una base, de datos. La'> colas. de memoria intermedia se media.predeterminadas.el montículo de ordenación, la
pueden crear mediante el uso de la instrucción create buf- caohé de paquetes, los montículos de control de la apli-
ferpool y se puede asociar con espadas de tablas. Es útil cación, el área de lista de bloqueos y cosas similares.
Mernonacompartida del ejemplar
. incluye memoria intermedia FCM
ü-est Communication Manager, Gestor
1.
de comunicaciones rápidas)
I
I I
Memoria compartida de la base de datos Memoria compartida de la base de datos
· colas de memoriaintermedia (buffpageo ALTERBUF..)
· lista de bloqueos (Iocklistl
· caché de paquetes (pekcecheszt
• •
·
·
ordenaciones compartidas (sortheap. sheapthresh)
montículo de la base de datos Idbheápl
1... númb.d
_ memoria intermedia del registro histórico (logbufsz)
- caché del catálogo (catalogcache_sz)
· monticulo de.utilldadea ~util_heap_sz)
.
I
1 I Memoria compartida de la aplicación
- 1...máxaplic
. estructuras internas lappl_ctl_heap...:sz)
Mernoríe privada de agentes
I l ·
·
ordenaciones privadas (sortheap. sheapthreahl
montículo de la aplicación (applheapszl
· pila de agentes (agenCstack_sz)
DD
• 1... máxagentes •
·
·
·
montículo de consultas (query_heap_szl
montículo de instrucciones (stmtheap)
montículo de estadísticas (staCheap_sz)
FIGURA 26.9. Modelo de memoria 082.
640
13. CAPITULO 28 DR2 DE IBM
DB2 Data Propagatores un producto en la familia DB2 Otro miembro dela familia DB2 es el producto Data
que proporciona réplica de datos entre DBl y otros sis- Joiner, que proporciona soporte a basesde daros federa-
temas de bases de datos relacionales tales como Oracle das y distribuidas. Data Joiner puede integrar tablas en
SQL Server de, SQL Server de Sybase e Infonnix, y orí- DBl remotas u otras bases de datos relacionales en una
genes de-datos no relacionales tales como IMS de 18M. única base de datos distribuida. Data Joiner proporcio-
Data Propagator consiste en componentes capturar na un método basado en el coste' para la optimización de
y aplicar que se controlan mediante interfaces de admi- consultas entre los distintos sitios de datos. Los datos no
nistración. Les mecanismos de captura de cambios se relacionales también se pueden integrar en Dala Joiner
basan en tablas DBl basadas en registros históricos o mediante el uso de envolturas para crear datos tabulares.
basadas en disparadores en el caso de otros orígenes de DBl soporta funciones de tabla definidas por el usua-
datos. Esto es, para las tablas DB2 los cambios se detec, rio que pueden permilir el acceso de orígenes-de datos
tan examinando el registro de la base de datos mientras no relacionales y externos. DBl crea funciones de tabla
que lo-s disparadores se utilizan para detectar los cam- definidas por el usuario mediante la instrucción create
bios de otros orígenes de datos. Los cambios captura- function con la cláusula returns tableo Con estas caracte-
dos se almacenan en áreas temporales dé tablas bajo el rfsticas DBl puede participaren los protocolos OLE-DB.
control del propagador de datos DB2, que se aplican Finalmente DBl proporciona soporte completo para
después a estas tablas intermedias, con cambios, a las procesamiento de transacciones distribuidas mediante
tablas destino mediante el uso de instrucciones SQL el protocolo de compromiso en dos fases. DBl puede
(inserciones, actualizaciones y 'borrados). Las transfor- actuar como-el coordinador o agente para el soporte de
maciones basadas en SQL se pueden ejecutar sobre estas transacciones distribuidas. Como coordinador; DB2 pue-
tablas intermedias utilizando condiciones' de filtro ade- de ejecutar todos los estados del protocolo de compro-
más de agregaciones. Las filas resultantes se pueden miso en dos fases. Como participante, DEl puede inte-
aplicar a una o más tablas destino. Los rncdios de admi- ractuar con cualquiera de los administradores de
nistración controlan todas estas acciones. transacciones distribuidas comerciales.
DBl proporciona una serie de herramientas para faci- y ejecutar instrucciones SQL. El centro de.guionesper-
litar el uso y administración. Las herramientas creadas mite a los usuarios ejecutar guiones SQL construidos'
por los fabricantes han permitido-la mejora del núcleo de forma interactiva o desde un archivo. El supervisor
del conjunto de herramientas del programa. del rendimiento permite al usuario supervisar varios
El centro de control DBl es la herramienta primaria eventos en el sistema de la base de datos-y obtener ins-
para eluso y administración de bases de datos DE2. El tanténeas del rendimiento. SmartGuides proporciona
centro de control se ejecuta sobre muchas plataformas ayuda para la configuración de parámetros del sistema
del tipo estación de trabajo. Tiene interfaces para admi- DB2. Un constructor de procedimientos almacenados
nistrar objetos de distintos tipos, tales como servidores. ayuda al usuario a desarrollar e insralar estos procedi-
bases de datos, tablas e índices. Además contiene inrer- mientos. Laexplicación visual da al usuario Vistas gré-
faces orientadas en las tareas para ejecutar comandos y ficas del plan de ejecución de la consulta. Un asistente
permite a los usuarios generar secuencias de comandos 4e índices ayuda.al administrador sugiriendo índices de
SQL. rendimiento.
La Figura 26.10 es una pantalla del panel principal Aunque el centro de control es una interfaz integrada
del centro de control. Muestra una lista de tablas en la de muchas de las tareas, DBl también proporciona acce-
base de datos Sample en la instancia DBl sobre el nodo SO, directo a la mayoría de las tareas. Para los usuarios las
CranKarm. El administradorpuede utilizar el menú para herramientas tales como la carácterística de explicación.
invocar un conjunto de herramientas componentes. Los las tablas de explicación y la explicación gráfica pro-
componentes principales del centro de control son el porcionan un análisis detallado de los planes de consul-
centro de órdenes, el centro de guiones, diario, ge-stión ta. Lbs usuarios pueden utilizar el centro de control para
de licencias, centro de alertas, supervisor del reñdi- modificar las estadísticas (si se permite la modificación)
miento, explicación visual, administración de, bases de con el fin de generar los mejores planes de consulta.
datos remotas; gestión de almacenamiento y soporte Para los administradores. DBl proporciona un sopor-
pam la réplica. El centro de órdenes permite a los usua- le completo' para la carga, importación. exportación,
nos y administradores enviar órdenes de la base de datos reorganización, redistribución y otras utilidades rela-
641
14. 'FUNDAMENTOS DE BASES DE DATOS
EJ"''Il Sistemas
El 11I P(-PROV
8-6 Instancias
El !3 DB2
..@@¡i!'¡~~
FIGURA 26.10. Centro de control DB2,
cionadas con los datos. Además; DE2 soporta herra- • Supervisor de consultas para gestionar los traba-
mientas ta1es como: jos de consulra en el sistema
• Auditoría para el mantenimiento de la traza de Características de traza y diagnóstico para la depu-
auditoría de' las acciones sobre la base de datos ración
• Regulador para controlar la prioridady tiempos de Supervisión de-eventos para seguir los recursos y
ejecución en distintas aplicaciones eventos durante la ejecución del sistema.
Este capitulo proporciona una breve sinopsis de carac- sionable y relacional orientado a objetos. En las notas
terísticas disponibles' en DB2. Como resumen, DB2 es bibliográficas se citan libros y guías más completos so-
un servidor de bases de datos multi-platafonna, dimen- bre DB2.
" , __ o "
;".'-,,-':,:<;','."- .----.'.:',:<:'-"'--
Chamberlin [1996] Y Chamberlin [1998J proporcio- ha sido un participante activo en la estandarización de
nan una buena revisión de las características de SQL XQuery. Se puede encontrar detalles sobre la extensión
y programación de DB2. Los primeros-libros de Date XML dé Da2 en línea en el sitio
[1989 J y Martin er al. [19891 proporcionan un buen http://www.software.ibm.com/dala/db2/cxten-
repaso de las caractcrtsticas de DB2 para OS/390. Los ders/xrn lext.
manuales de DE2 proporcionan revisiones definitivas Para una descripción detallada de los modos de blo-
de varias versiones de DB2. La mayoría de estos queo y su uso véase DB2 Administration Guide (capí-
manuales están disponibles en línea en, el sitio tulo Application Considerations), que está disponible
htrp.Zwww.software.ibm .com/data/pubs. Libros recien- en línea en http://www.software.ibm.com/data/pubs.
tes que proporcionan un entrenamiento práctico ,para Mohan [l990al y Mohan y Levine [1992J proporcio-
el uso y administración de DB2 son Zikopoulos ~t. al. nan descripciones detalladas del control de concurren-
[20001, Sanders [20001 y Cook et al. [1999]. Final- cia de fndices en 082.
mente, Prentice Hall está publicando una serie com- Las contribuciones a la investigación de lBM, algu-
pleta de libres-sobre el enriquecimiento y-certificación nas de las cuales se listan más adelante, han mejorado
sobre varios aspectos de DE2. continuamente el producto DB2. Chamberlin et al.
La investigación de IBM sobre XML incluye Shan- [198-1) proporciona una historia y evaluación del pro-
mugasundaram et.al. [2000] y Carey et at. [2000]. IBM yecto System R, que.jugó una función crucial en el desa-
642
15. CAPiTULO 26 'JB2 DE IBM
rrollo de bases de datos relacionales y condujo al Mohan el al. [1992]. El procesamiento y optimización
desarrollo del producto DB2. El problema Halloween de consultas en Srarbrust se describen en Haas et al.
y otros aspectos de la historia de System R aparecen en [1990]. El procesamiento en paralelo en DB2 Parallel
http://www.mcjones.org/System RISQL Reunion Edition se describe en Baru el al. [1995J. El soporte de
95/index.html. bases de datos activas, incluyendo las restricciones y
Las récnícasdeorocesamíenro transacciones
de fajes Josdisnaradores, describenen Cocbrane al.) 199ªJ.
se et
como er'regrsrro fí(<;(ohé.o aéescntura an({érpadá y (os Clireyer ar: (f9'r9'[ déscnoe·e(sopone-re{ácrána( orten-
algoritmos de recuperación ARIES se describen cn tado 'a objetos en DB2.
)