db2

15
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 VisualAge para Java, C++ VisualAge Generatór DB2 Forms para OS/390 Lotus Approach Gestión de contenidos ContentManager Ccnteni Manager VideoCharger Herramientas de gestión de bases de datos DB2 Control center DB2 Adtnin Tools para OS/390 DB2 Buffer Pool Tcot DB2 Estlmator para 05/390 DB2. Pelformance Monitor DB2 Visual Explain DB2 Query Patroller etc. Acceso móvil a datos DB2 EveryPlace DB2 Satellite Edition Inteligencia de negocios DB2 OLAP Servar DB2 Intelligent Miner DB2 Spatial Extender DB2 werebocse Manager OMF para OS1390 Herramientas para e! negocio electrónico (E-Business) DB2 Net Search Extender DB2 XML Extender Net.Deta DB2 para Websphere IntegraciÓn de datos DB2 DataJoiner DataLinks Data Replication servces DB2 Connect FIGURA 26.1. Pamitiada productos 082. '" Multimedia DB2 ObjeetRelational Extenders Digital Lfbrerv ,

Upload: carlos-arturo

Post on 20-Jan-2015

1.996 views

Category:

Technology


5 download

DESCRIPTION

 

TRANSCRIPT

Page 1: DB2

Lafamilia de productos DB2 Universal Darabase de IBM consiste en servidores de bases de datosy un conjunto de productos relacionados. DB2 Universal Database Server está disponible enmuchas plataformas hardware y sistemas operativos, abarcando desde mainjrames (grandes

ordenadores centrales) y grandes servidores a estaciones de trabaje e incluso a pequeños dispositivosde bolsillo. Se ejecuta en una serie de sistemas operativos IBM y de otras, marca". Everyplace Bditionsoporta sistemas operativos tales como PalmOS, Wmdows CE yotros. Las aplicaciones pueden migrarfécílrnente desde las plataformas de gama baja a servidores de gama alta. Además del motor del núcleode 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 yotras 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 SanJosé de IBM; IBMSan Jose Research Laboratory). El primer producto DB2 se lanzó en 1984 sobrela plataforma mainframe de IBM. Fue seguido por otras versiones para otras plataformas. IBM hamejorado continuamente el producto DB2 en áreas tales como procesamiento de transacciones(registro histórico de escritura anticipada y los algoritmos de recuperación ARIES),'procesamientby optimización de consultas (proyecto de investigación Starbursr), procesamiento en paralelo (DB2Parallel 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 estasbases de código son interface-s externas (en concreto el lenguaje de definición de datos (LDD) ySQL) y herramientas básicas tales como administración. Sin embargo, existen diferencias comoresultado de diferentes historias de desarrollo para las bases de código. El resto de este capítulo seenfocará 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 datosDB2 UDB para Unix. Windows, OS/2, LinuxDB2 UDB para OS/390DB2 UDB para AS/400DB2 para VMNSE

Desarrollo de aplicacionesVisualAge para Java, C++VisualAge GeneratórDB2 Forms para OS/390Lotus Approach

Gestión de contenidosContentManagerCcnteni Manager VideoCharger

Herramientas de gestión de bases de datosDB2 Control centerDB2 Adtnin Tools para OS/390DB2 Buffer Pool TcotDB2 Estlmatorpara 05/390DB2.Pelformance MonitorDB2 Visual ExplainDB2 Query Patrolleretc.

Acceso móvil a datosDB2 EveryPlaceDB2 Satellite Edition

Inteligencia de negociosDB2 OLAP ServarDB2 Intelligent MinerDB2 Spatial ExtenderDB2 werebocse ManagerOMF para OS1390

Herramientas para e! negocio electrónico (E-Business)DB2 Net Search ExtenderDB2 XML ExtenderNet.DetaDB2 para Websphere

IntegraciÓn de datosDB2 DataJoinerDataLinksData Replication servcesDB2 Connect

FIGURA 26.1. Pamitiada productos 082.

'"

MultimediaDB2 ObjeetRelational ExtendersDigital Lfbrerv ,

Page 2: DB2

"

FUNDAMENTOS DE BASES DE DATOS

terfsticas. Otra herramienta permite al administradorobtener un conjunto completo de instrucciones LDDpata una base de datos incluyendo espacios de tablas,tablas, índices, restricciones, disparadores y-funcionesque crean una réplica exacta del esquema de la base dedatos para verificación o-réplica.

Para el análisis de datos DB2 proporciona soporteOLAP mediante el servidor DB2 üLAP. El servidorDB2 OLAP puede crear un puesto de datos multidi-ménsional desde una base de datos DB2 subyacente parasu análisis. El motor OLAP del producto Bssbase sé uti-liza en el servidor DB2 OLAP. DB2 también soportaotros motores OLAP de fabricantes tales como Micro-strategy y Cognos. En particular. DB2 proporcionasoporte nativo para las instrucciones cube by y rolluppara generar cubos agregados. así como agregados jun-to-a una o mas jerarquías en el motor-de la base de datos.Iruelligent Mincr y otTOSproductos de minería de datosse pueden utilizar para análisis más profundos y com-plejos en datos DR2.

DR2 para 05/390 tiene un conjunto muy grande deherramientas. QMF es una herramienta ampliamenteutilizada para generar consultas ad hoc e integrarlas enaplicaciones.

La mayor parte del diseño de base de datos y herra-mientas CASE se puede utilizar para diseñar una basede datos DB2. En particular, las herramientas de mode-lado de datos líderes tales como ERWin y Rarional Rosepermiten al diseñador generar sintaxis del LOO espe-cífica de DB2. Por ejemplo. la herramienta UML DataModelér de Rational Rose puede generar instruccionescreate dlstínct type del LDD específico de DB2 paratipos definidos por el usuario y utilizarlos posterior-mente en definiciones de columnas. La mayor parte deherramientas de diseño también soportan una caracte-rística de ingeniería inversa que lec las tabl:as del cata-logo DB2 y construye un diseño lógico para manipula-ciones adicionales. Las herramientas pueden generarrestricciones e índices.

DB2 proporciona constructoras SQL para soportarmuchas características de bases de datos lógicas, talescomo restricciones, disparadores y recursión. De igualforma, DB2soPQrta ciertas características de bases dedatos ffsicas tales como espacios de tablas, colas dememoria intermedia y división mediante el use de ins-trucciones SQL. La herramienta Control Ccntcr OUTpara DB2 permite a los diseñadores o administradoresemitir la instrucción LOO apropiada pata estas carac-

:ª~,~~~IACIONES Y EX¡ENSIQNES DE SQL'-K eh Y~_'·A~ ,., ... _., ... .. ... .... , .

DB2 soporta un amplio conjunto de características SQLpara varios aspectos del procesamiento dc la base dedatos. Muchas de las características y sintaxis de DB2han proporcionado labase de los estándares en SQL-92y SQL: 1999. Este apartado resalta las características rela-cionales orientadas a objetasen DB2 UDB'versión 7. Ellector puede encontrar referencias para completar la des-cripción del soporte para SQL de DB2dc lBM, asf comoextensiones al soporte XML en las notas bibliográficas.

26.2.1. Soporte para tipos de datos

DB2 soporta tipos de datos-definidos por el usuario. Losusuarios pueden definirtipos de datos distintos o estruc-turados. Los tipos de datos distintos se basan en los tiposde datos incorporados en DBl. Sin embargo, los usua-rios pueden definir semánticas adicionales o altemati-vas para estos nuevos tipos. Por ejemplo, el usuario pue-de definir un tipo de datos distinto denominado EUROcomo

create distinct type EURO as decimaJ(9,2).

Por consiguiente, el usuario puede crear un campo (porejemplo, PRECIO) en una tabla cuyo tipo sea EURO.

Las consultas pueden utilizar el campo con este tipo enlos predicados como en el siguiente ejemplo:

select Productofrom Ventas_Europawhere Precio> EURO( 1000)

Los tipos de datos estructurados son objetos com-plejos que nonnalmcnte se componen de dos o-mas atri-butos. El siguiente código declara un tipo de datosestructurado denominado tdepartmento:

create type t_departmento as(nombredept varchar(32),directordcpt varcharrjz),número mteger)

mode db2sqJ

Los tipos estructurados se pueden utilizar para definirtablas con tipos.

create table dept of t deparrmento

Con el LDD un diseñador de sistema puede crear unajerarquía de tipos y tablas en la jerarquía que puede here-dar métodos especí1icos y privilegios. Los tipos estruc-turados también 'se pueden utilizar para definir atribu-tos' anidados dentro de una columna o tabla.

630

Page 3: DB2

26.2.2. Funciones y métodos definidospor el usuario

Otra característica importante es que los usuarios pue-den definir sus propias funciones y métodos. Estas fun-ciones se pueden posteriormente incluir en instruccio-nes y consultas SQL. Las funciones pueden generarescalares (único atributo) o tablas (fila multiatributo)como resultado. Los usuarios pueden registrar funcio-nes (escalares o de tablas) mediante el uso de la ins-trucción create furrctlon. Pueden escribir las funcionesen lenguajes de programación comunes tales comoC yJava o lenguajes de guiones tales como Rexx y Perl. Lasfunciones definidas por el usuario (FDU) pueden ope-rar en los modos separado (fenceá) y compartido (unfen-cedí, En el modo separado las funciones se ejecutanmediante una hebra separada en su propio espacio dedirección. En el modo compartido se permite al agentede procesamiento de la base de datos ejecutar la fun-ción en el espacio de direcciones del servidor. Las_FDUpueden definir un área de trabajo donde pueden mante-ner variables locales y estéticas en invocaciones dife-rentes.

Otra característica son los métodos asociados con losobjetos, los cuales definen el comportamiento de los obje-los. Los métodos están asociados con tipos de datosestructurados particulares y se registran mediante el uso'de la instrucción create method.

26.2.3. Objetos de gran tamaño

Las nuevas aplicaciones de las bases de daros requie-ren la manipulación de texto, imágenes, vídeo y otrostipos de datos típicos que son bastante grandes. DB2soporta estos requisitos, proporcionando tres tipos deobjetos de gran tamaño (LOB. Large Object) distintos.Cada LOB puede ser de hasta 2 gigabytes de tamaño.Los objetos de gran tamaño en DB2·son (1) objetos enbinario de gran tamaño (Binary Large Objetes, BLOBs),(2) objetos de caracteres de gran tamaño de-un únicobyte (Character Large Objects, CLOBs) y (3) objetos

CAP!TUL026 DB2 DE IBM

de caracteres de gran tamaño de dos bytes (Double ByteCharacrer Large Objects, DBCLOBs). DB2 organizaestos LOBs como objetos separados, con cada fila en latabla manteniendo punteros a sus LOBs correspon-dientes. Los usuarios pueden registrar UDFs que mani-pulen estos LOBs según los requisitos de la aplicación.

26.2.4. Soporte para XML

DB'2integra el soporte paraXML en el servidor-median-te el uso de XML extendido. XML extendido puede,extraer elementos y atributos XML en columnas de datos,relacionales y mejorar SQL y él poder de' indexación deDB2. De forma alternativa también puede almacenar yrecuperar documentos- XML como una única columna'en una tabla. Puede indexar y proporcionar capacidadesde búsqueda orientada a texto en esta columna XML. Elextensor proporciona una serie de funciones incorpora-das y APls para la composición, inserción, actualizacióny búsqueda en documentos XML. Es probable que se'integren pronto nuevas características tales como Ia-expo-sición de los datos DB2como servicio Web mediante elprotocolo SOAP y soporte de consultas XML.

26.2..5. Extensiones de índices y restricciones

Una caracrerfstica reciente de DB2 proporciona un cons-tructor create index extension que ayuda a crear índi-ces sobre atributos con tipos de datos estructuradosmediante la generación de claves a partir de los tipos dedatos estructurados. Por ejemplo, un usuario puede cre-ar un índice en un atributo cuyo tipo es rdepartamen-to (definido en la sección 26.2.1) mediante la genera-ción de claves con el nombre departamento. El extensorespacial de DB2 utiliza el método de extensión de índi-ce para crear índices sobre los datos espaciales. DB2también proporciona un rico conjunto de característi-cas de verificación de restricciones para imponer lasemántica de los objetos tales como unicidad, validezy herencia.

IBM DB2 proporciona una serie de características parael almacenamiento e indexación de datos.

26.3.1.Arquitectura de almacenamiento

DB2 proporciona abstracciones de almacenamiento paragestionar tablas de base de datos lógicas eh entornosrnultinodo (paralelo) y multidisco. Se pueden definirgrupos de nadas para soportar la división de la tabla enconjuntos especificados de nodos en un sistema multi-nodo. Esto permite flexibilidad al asignar particiones de

tabla a nodos diferentes en un sistema. Por ejemplo. lastablas de gran tamaño se pueden dividir entre todos losnodos en un sistema mientras que las tablas pequeñaspueden residir en un único nodo. Las tablas se dividenpor asociación entre los nodos en el grupo de nodos uti-lizando un subconjunto de sus atributos (clave de divi-sión).

Dentro de un nodo, DB2 utiliza espacios de tablaspara reorganizar la tabla. Un espacio de tablas consisteen uno o más contenedores que son referencias a direc-torios, dispositivos o archivos. Un espacio de' tablas pue-

631

Page 4: DB2

,

ji

\r

..,

FUNDAMENTOS DE BASES DE DATOS

de contener cero o más objetos de base de datos talescomo tablas, índices o LOBs. La Figura 26.2 ilustraestos conceptos. -En esta figura se definen dos espaciosde tablas para un grupo de nodos; Al espacio de tablasRECHUMANüS se asignan cuatro contenedores mien-tras que el espacio de tablas PLAN tiene solamente uncontenedor. Las tablas EMPLEADO y DEPARTA-MENTO están en el espado de tablas RECHUMANOSmientras que la tabla PROYECTO está en el espacio detablas PLAN. La distribución de datos asigna fragmentos(extensiones) de las tablas EMPLEADO y DEPARTA-MENTO a los contenedores del espacio de tablasRECHUMANDS. DBl permite al administrador creartanto espacios de tablas gestionados por el sistema comopor él SGBQ. Los espacios de tablas gestionados gor elsisrema (System-managed spaces, SMSs) son directo-rios o sistemas de archivo que mantiene el sistema ope-rativo subyacente. En un SMS, DB2 crea objetos archi-vo en los directorios y asigna datos. a cada uno de losarchivos, Los espacios de tablas gestionados por elSGBD (Data ManagedSpaces, DMSs) son dispositivosen bruto o archivos preasignadós que son controladospor DBl. El tamaño de estos contenedores nuncapue-de crecer o disminuir. DB2 crea mapas de-asignación y

gestiona el espacio de tablas DMS. En ambos casos launidad de espacio de almacenamiento es una extensiónde páginas. El administrador puede elegir el tamaño dela extensión para un espacio de tabla. DB2 soporta ladistribución en distintos contenedores. Por ejemplo,cuando se insertan los datos en una tabla recientemen-te-creada, DB2 asigna la primera extensión a un conte-nedor. Una vez que la extensión esté llena asigna lossiguientes datos al siguiente contenedor por tumos rota-torios. La distribución proporciona dos ventajas signi-ficativas: E/S paralela y balance de carga. DB2'tambiénsoporta la preextracción y escrituras asíncronas median-te el uso de hebras separadas. El componente de ges-tión de datos de DB2 desencadena la preextraccion depáginas de datos y de índices según los patrones de acce-so de las consulta". Por ejemplo, una exploración de unatabla siempre desencadena la preextracción de páginasde datos. La exploración de'l índice puede desencade-nar la preextracción de páginas de índices así como' laspáginas de datos si se está accediendo de una formaagrupada. El número de preextracciones concurrentesasí como el tamaño de la preextracción son parámetrosconfigurables que se necesitan iniciar según el numerode discos o contenedores en el espacio de tablas.

Nodegroup MisDepts

T~ RECHUMANOS

Empleado

.Departamento

.

Contenedores

FIGURA 26.2. Espacios de tablas y contenedores en DB2.

'rebieseece PLAN

Proyecto

.

632

Page 5: DB2

La página O contiene un conjunto ~

de registros internos (por ejemplo, FSCR) rr."';¡¡:;n~~lK RID __

2 r;;;;;1.-J--:R:eg¡S'ros de usuario K RID ~

'F = CRID ~

Pági~~as~hOJ~

26.~.2.Tablas. registros e índices

DB2organiza los datos relacionales como registros enlas páginas. La Figura 26.3 muestra la vista lógica deuna tabla y un índice asociado. La tabla-consiste en unconjunto de páginas. Cada página consiste en un con-junto de registros (tanto registros de datos del usuariotomo registros especiales del sistema). La pagina cerode la tabla contiene registros' del sistema especiales sobrela tabla y su estado. DB2 utiliza un registro del mapade espacio denominado registro de control de espaciolibre (Free Space Control Record, FSCR) para, encon-trar el espacio libre en la tabla. El registro FSCR nor-malmente contiene un mapa de espacio de 500 páginas.Una entrada FSCR consiste en unos pocos bits que pro-porcionan una indicación aproximada del porcentaje deespacio libre en la página; por ejemplo, con dos bits, elpatrón de bits 1I indicaría que la mayor parte de la pági-na puede estar libre mientras que 01 indicaría que alre-dedor del 25 por-ciento del espacio está libre. Para redu-cir el coste de actualización, las entradas no siempre seactualizan con el uso del espado real, por lo que el códi-go de inserción o actualización debe validar las entra-das FSCR realizando una verificación física del espa-cio disponible en una, página.

Los índices se organizan como páginas que contie-nen registros índice y punteros a páginas hijas y herma-nas. DB2 proporciona soporte para los mecanismos deíndices de.érbol B+. El índice de árbol B' contiene pági-nas internas y páginas hoja. Los índices tienen punterosbidimensionales en el nivel hoja para soportar explora-cienes hacia delante y atrés. Las páginas hoja contienenentradas de 'índice que apuntan a los registros de la tabla.Cada registro de una tabla tiene un identificador de regis-tro único (Register ID, RID) construido a partir de suidentificador de página y deranura en la página (la estruc-tura de páginas con ranuras se describe en breve). Sepuede definir un índice como los índices de agrupaciónde la tabla. Si se define este-índice, los registros de datos

Vista lógica de la página

R}Cada páqjna múltiplo500 ) de 500 contiene otro FSCR

Más registros de usuario

FIGURA 26.3. Vista lógica de las labias e índices en D62.

CAPITULO 26 Df2 D~ IBM

se mantienen en un orden de agrupamiento orientado ala página según las claves del índice.

Los índices DB2 pueden almacenar columnas extrajunto con los identificadores de registro en el nivel dclas hojas de los índices. Por ejemplo,

create unique index 11 on TI (Cl) inelude (C2)

especifica que C2 se va a incluir como una columna extraen un índice sobre la columna Cl. Las columnas incluí-das permiten a DB2 utilizar las técnicas de procesamientode la 'consulta «sólo con el Indico» (evitando la lecturadel registro real) para consultas que utilizan las colum-nas incluidas, lo que no sería posible en otro caso (el pro-'Cesamiento de la consulta sólo con el índice-se describi-rá ton más detalle en breve). Se pueden utilizar directricesadicionales tales como MINPCUSED y PCTFREE paracontrolar la unión de páginas de índices y su asignaciónde espacio inicial durante fa carga masiva.

La Figura 26.4 muestra el formato de datos típico enDB2. Cada página de datos contiene una cabecera y undirectorio de ranuras. El directorio de ranuras es un arrayde 2.55 entradas que apuntan a los desplazamientos delos registros en la página, La figura muestra que el núme-ro de página 473 contiene el registro cero en el despla-zamiento 3.HOO y el registro 2 en el desplazamiento3.400. La página IQ56 contiene un registro 1 en el des-plazamiento 3.700, que es realmente un puntero hacia

-delante al registro <473,2>. Por ello el registro <473, 2> es un registro de desbordamiento que fue creado poruna operación de actualización del registro < lO56~ l >original. DB2 soporta distintos.tamaños de página talescomo 4 KB, 8 KB, 16 KB Y32 KB. Sin embargo, cadapágina puede contener solamente 255 registros de usua-no. Los tamaños de página mayores son útiles en apli-caciones tales cómo almacén de datos donde la tablacontiene muchas columnas. Los tamaños de páginamenores son útiles para datos operacionales con frc-cuentes actualizaciones.

Vista lóqica del índice

ARIOC 3,2

RID (Record ID, ID de registro) = página 3, ranura 2

.33

"

Page 6: DB2

FUNDAMENTOS DE BASES DE DATOS

Página 473

Espacio libre(se puede usarsin reorganizarla página"),

Espacio libreincorporado(se puede usardespués dereorganizar la página",)

Cabecera de página

3.800 -1 3.400 .•-------

Registro 2

Registro O

Página 1056

Núm.. página

"---l 1056

3 bytes

Núm. ranura

[1]1 byte

- -Cabecera de página

3.800 1 3.700 1,,---" -- -- -

x- 473,.2· Registro O

• establecido en la creación del espacio de tablas"Excepción: no se puede usar ningúnespacio reservado por un borradono 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-sulras en un árbol dé operaciones. DB2 utiliza enton-ces el árbol de operadores de la consulta en tiempo deejecución para el procesamiento. DB2 soporta un ricoconjunto de operadores de consulta que permiten con-siderar mejores estrategias de procesamiento y pro-porcionan flexibilidad en la ejecución de consultas com-plejas.

Las Figuras 26.5 y 26.6 muestran una consulta y suplan de consulta asociado. Se trata de una consulta com-pleja representativa (consulta 5) de la prueba TPC-H ycontiene varias reuniones y agregaciones. El plan deconsulta en este ejemplo es bastante simple. puesto quesolamente se definen pocos índices y no están dispo-nibles para esta consulta estructuras auxiliares comolas vistas materializadas. DB2 proporciona varias carac-terísticas de explicación del plan incluyendo una poten-tecaracterística visual en el centro de control que pue-de ayudar a los usuarios a comprender los detalles delplan de ejecución de la consulta. El plan de consultaen la figura está basado en la.explicación visual de laconsulta. La explicación visual permite al usuario com-prender los costes y otras propiedades relevantes de lasdistintas operaciones de un plan de consulta.

DB2 transforma todas las consultas e instruccionesSQL, sin importar lo complejas que sean, en un árbolde consulta. La base u operadores. hoja del árbol deconsulta manipulan los registros en tablas. de base dedatos, Estas operaciones también se denominan méto-dos de acceso. Las operaciones intermedias del árbolincluyen operaciones del álgebra relacional tales comoreuniones, operaciones de conjuntos y agregaciones.La raíz del árbol produce los resultados de la consul-ta o instrucción SQL.

I!ti

26.4.1. Métodos de acceso

DB2 soporta un conjunto detallado de métodos de acce-so sobre tablas relacionales, incluyendo.

• Exploración de tabla. Con este método, el másbásico. se accede a todos los registros en la tablapágina, por página.

• Exploración de índice. DB2 utiliza un índice-paraseleccionar los registros especificos que 'satisfacenla consulta. Accede a los registros utilizando losRIDs en el índice. DB2 detecta las posibilidadesde la preextracción de las páginas de datos cuan-do observa un patrón de acceso secuencial.Sólo con el índice. Este tipo dé exploración se uti-liza cuando el índice contiene todos los atributosque requiere la consulta. Por ello es suficiente unaexploración de las entradas de índice y no haynecesidad de extraer los registros. La técnica 'sólocon el índice es normalmente una buena eleccióndesde el punto de vista del rendimiento.

• Lista de preextracclón, Este método de acceso esuna buena elección para una exploración de índi-ces no agrupada con un número significativo deRIDs. DB2 recoge los RIDs de los registros rele-vantes utilizando una exploración de índices,entonces ordena los RIDs por el riúmero de pági-na y finalmente realiza una extracción de los regis-tros de forma ordenada desde las páginas de datos.Bl-acceso ordenado cambia el patrón E/S de alea-torio a secuencial y también ofrece posibilidadesde preextracción.

• Conjunción de 'índices. DB2 utilizaeste métodocuando determina que se puede utilizar más de un

634

I

Page 7: DB2

s

e

1-s-os.a-es

doun

C}¡PiTULO 26 DB2 DEIBM

-'TPeD Local Supplier Volume Query (05)';seise! N_NAME,

sum(l_EXTENDEDPRlce""(l-L_DISCOUNT)) as REVENUEfrom TPCD.CUSrDMER, TPCO.QRDERS, TPCD.LlNEITEM,

TPCO.SUPPLlER, TPCO.NATIQN, TPeO.REGIONwhere C_CUSTKEY ~ O_CUSTKEY

and O_ORDERKEY = L_ORDERKEYand L..SUPPKEY = S_SUPPKEYand,C_NATIONKEY = S_NATIONKEYand S_NATIDNKEY = N_NATlDNKEYand N_REGIDNKEY = R_REGIONKEYand R_NAME = 'MIDDLE EAST'and O_ORDERDATE >= dater1995-01-01')and O_ORDERDATE < date('1995-Ql-0")+ 1 year

group by N_NAMEorder by REVENUE DESe;

FIGURA 26.5. Consulta SOL

índice para restringir el número de-registros satis-factorios en una tabla base. Procesa el índice másselectivo para generar una lista de.RIDs. Entoncesprocesa el siguiente índice selectivo para devolverlos RIDs que'encucníra. Un RlD requiere más pro-cesamiento solamente si está presente en la inter-sección (operación ANO). de los resultados de laexploración del 'índice. El resultado de una opera--cion AND del índice es una pequeña lista del RlDsque se utilizan para extraer los registros corres-pondientes desde la tabla base.

Disyunción de índices. Esta estrategia es una bue-na elección si se pueden utilizar dos o más índicespara satisfacer los predicados de la consulta quese combinan utilizando la operación DR. DS2 eli-mina los RlDs duplicados realizando una ordena-ción y entonces extrae el conjunto de registrosresultante.

DB2 normalmente envía todos los predicados' deselección y proyección dc una consulta a los métodosde acceso. Además DB2 envía ciertas operaciones tales

Ordenación1

Exploración del índice1

croere

Exploración1

SupplierNetíon Region

FIGURA26.6. Plan de consulta DB2 (explicaciún.qráfica).

6:35

Page 8: DB2

FUNDAMENTOS DE BASES DE DATOS

como la ordenación y la agregación, siempre que esposible, con el fin de reducir el coste.

26.4.2. Operaciones de reunión. agregacióny de conjuntos

DBl soporta una serie de técnicas para las operacionesde reunión, agregación y de conjuntos. Para la reuniónDBl puede elegir entre técnicas de bucles 'anidados,ordenación-mezcla y de asociación. Para describir las.operaciones binarias de reuniones y de conjuntos se uti-lizarala notación de las tablas externas e internas paradistinguir los dos fiujosde entrada. La: técnica de buclesanidados es util.s¡ la tabla interna es muy pequeña o sepuede, acceder utilizando un índice sobre un predicadode reunión. Las técnicas de reunión de ordenación-mez-cla y reunión por asociación son útiles para reunionesque involucran tablas internas y externas grandes. DBlimplementa las operaciones de conjuntos mediante eluso de técnicas de ordenación y mezcla, La técnica demezcla elimina los duplicados en el caso de la uniónmientras que los no duplicados se eliminan en el casode intersección. DBl también soporta operaciones dereunión externa de todas las clases.

DBl procesa las operaciones de agregación en modoimpaciente o de envío siempre que sea posible. Porejemplo, puede realizar la agregación mientras que orde-na la entrada de, la agregación en el grupo por colum-nas. Los algoritmos de reunión y agregación aprove-chan el procesamiento superescalar en CPUs modernasutilizando técnicas orientadas a bloques y conscientesde la caché de memoria.

"

26.4.3. Soporte para el procesamiento de SQLcomplejo

Uno de los aspectos más importantes de DB2 es que uti-liza la infraestructura de procesamiento de la consultade forma extensible para soportar operaciones SQLcomplejas. Las operaciones SQI,. complejas incluyensoporte.parasubconsultas profundamente anidadas ycorrelacionadas, así como restricciones, integridad refe-rencial y disparadores. Las restricciones y comproba-ciones de integridad se construyen como operacionesdel árbol de consulta a partir de las instrucciones SQLde inserción, borrado o actualización. Mediante la eje-cución de la mayoría de las acciones de verificación derestricciones y desencadenamiento como parte del plande consulta DBl puede proporcionar una mejor efi-ciencia y dimensionabíjídad. DB2 también soporta elmantenimiento de vistas materializadas mediante.el usode disparadores incorporados.

j,

26.4.4. Procesamiento de consultas.en multiprocesadores

DB.2-extiende el conjunto base de operaciones de con-sulta con primitivas de intercambio de datos y control

para soportar los modos SMP, MPP y SMP por agrupa-ciones del procesamiento de consultas. DB2 utiliza unaabstracción tabla-cola para el intercambio de datos entrehebras sobre distintos nodos o sobre el mismo nodo. Latabla-cola es una memoria intermedia que redirige losdatos a receptores apropiados mediante el uso de méto-dos de difusión, uno a uno o multidifusion dirigida Lasoperaciones de control crean hebras y coordinan la ope-ración de distintos procesos y hebras.

En todos estos modos DBl emplea un proceso coor-dinador para controlar las operaciones de colas y la reu-nión del.resultado final. Los procesos de.coordinacióntambién pueden ejecutar algunas acciones globales deprocesamiento de la base de datos si es necesario. Unejemplo es la operación de agregación global para com-binar los resultados de agregación local. Los subagen-tes o hebras esclavos ejecutan las operaciones base enuno Omás modos. En el modo SMPlos subagentes uti-lizan memoria compartida para sincronizarse entre sícuando comparten datos. Enun MPP, los mecanismosde tabla-cola proporcionan memoria intermedia y con-trol de flujo para la sincronización entre distintos nodos'durante la ejecución.

26A.5. Optimización de consultas

El optimizador de consultas de DBl utiliza una repre-sentación interna, de la consulta, denominada QueryGraph Model (QGM, modelo de grafos de consultas)con el fin de ejecutar transformacíones y optimizacio-nes. Después de analizar la instrucción SQL, DB2 eje-cuta transformaciones semánticas sobre QGM para hacercumplir las restricciones, integridad referencial y losdisparadores. El resultado de estas transformaciones esun QGM mejorado. Seguidamente DB2 intenta ejecu-tar transformaciones de reescritura de la consulta quese consideran beneficiosas en la mayoría de las consul-tas. Se activan las reglas de reescritura, si son aplica-bles, para ejecutar lasrransformacíones requeridas. Losejemplos de transformaciones de reescritura incluyen(1) descorrelación de subconsultas correlacionadas. (2)transformación de subconsultas en reuniones donde seaposible, (3) trasladar las operaciones group by bajo lasreuniones si es aplicable y (4) reescritura de consultaspara hacer uso de las vistas materializadas disponibleso «tablas resumen» '(vistas materializadas utilizando laagregación).

El optimizador de consultas utiliza QGM mejoradoy transformado como su entrada para la optimización.El optimizador se basa en el coste y utiliza un entornoextensible, controlado por reglas. Se puede configurarel optimizador para operar a distintos niveles de com-plejidad. En el nivel más alto utiliza un algoritmo deprogramación dinámica para considerar tedas las, opcío-nes del plan de consulta y elige el plan de coste óptimo.En un nivel intermedio el optimizador no considera cier-tos planes o métodos de acceso (por ejemplo, indexa-ción) así corno algunas reglas de reescritura. En el nivel

••6

Page 9: DB2

s

r-1-

inleJnn-n-enIti-: sííosm-los

pre-ieryItas)cio-eje-

iacery loses esjecu-a quemsul-plica-s.Losluyenas, (2)de seaajo lasrsultasmiblesmdo la

ejoradoiadón.~ntomolfigurarle com-hmo deiSopcio-óptimo.leracier-, indexa-le} nivel

inferior de complejidad el optimizador utiliza una heu-rística impaciente simple para elegir un buen, aunqueno necesariamente óptimo. plan de consulta. El opti-mizador utiliza modelos detallados de las operacionesde procesamiento de la consulta (teniendo en cuentadetalles tales como tamaño de la memoria y preexrrac-ción) para obtener estimaciones adecuadas de los cos-tes de E/S y CPU. Depende de la estadística de los datospara estimar la cardinalidad y selectividades de las ope-raciones.

DB2 permite a un usuario generar histogramas de dis-tribuciones en el nivel de las columnas y combinacionesde columnas mediante el uso de la utilidad runsuüs. Loshistogramas contienen información sobre las aparicio-nes del valor más frecuente, así como sobre, las distribu-ciones de frecuencia basadas en los cuantiles de los atri-butos. El optimizador de consultas usa estas estadísticas.El optimizador genera un plan de consulta interno queconsidera el mejor plan de consulta y entonces convier-te el plan de consulta en hebras de operadores y estruc-turas de datos asociados de la consulta para su ejecuciónmediante el motor de: procesamiento de consultas.

CAPITULO 25 DEZ DEIBM

Considérese una actualización de la forma «Aurnen-tar en un 10 por ciento el -sueldo de los, empleados queganen menos que 25.000 euros». En una versión ante-rior de Sysrem R el optimizador elegía el índice del suel-do para el acceso y procesaba los datos de menor amayor (O a 25.000). La inserción de un nuevo valor(mayor) parad sueldo significaba que el registro actua-lizado se revisa de nuevo a no ser que el valor del suel-do fuera mayor que 25.000. La causa de la revisión esel uso del índice del sueldo para el acceso en ordenmenor a mayor. Se revisaba el registro y el sueldo seaumentaba un 10 por ciento repetidamente hasta que-suvalor excedía a 25.000. Este error ocurrió el día de Hallo-wcen, por lo que los miembros del proyecto System Rlo denominaron al error «problema Haíloween»

DB2 soluciona el problema Halloween reconocien-do esta. situación en el compilador de la consulta. Eloptimizador genera un plan de consulta que primeromaterializa 19SRIDs de las filas implicadas antes de pro-cesar las actualizacione-s. Cada registro implicado seactualiza solamente una vez, como tenía intención lainstrucción de actualización.

DB2,soporta técnicas de control de concurrencias queproporcionan un muy alto nivel de concurrencia, aco-pladas con un mecanismo de recuperación avanzadoque.soporta una serie de características.

28.5.1.Concurrencíc y aislamiento

DB2·soporta una serie de modos de control de concu-rrencia y aislamiento. Para el aislamiento DB2soportalosmodos lectura repetible (Repeatable Read, RR), esta-bilidaden lectura (Read Stability, RS), estabilidad delcursor (Cursor Stability, eS) y lectura no comprometi-da (Un-committed Read, UR).

La definición de lectura repetible en DB2 difiere de'¡adel Apanado 16.8 y corresponde íntimamente con elnivel secuenciable descrito allí. Específicamente, RRenDB2asegura que la exploración del rango encontra-rá el mismo conjunto de tuplas si se repiten. Si todas-lastransacciones siguen el protocolo RR entonces la pla-nificación resultante será secuenciable. Los modos es'j UR son corno se describen en el Apartado 16.8'.

El modo de aislamiento RS bloquea solamente lasfilasque recupera una aplicación en una unidad de.tra-bajo. En una exploración posterior la aplicación tienegarantizado ver todas estas filas (como RR) pero podríano ver nuevas filas que deberla ver. Sin-embargo, estopodría ser un compromiso aceptable para algunas apli-caciones con respecro-al aislamiento RR estricto. Nor-malmenre el nivel de aislamiento predeterminado es CS.Las aplicaciones pueden elegir el nivel de aislamiento

con el que 'se quieren ejecutar. También, la mayoría delas aplicaciones comerciales disponibles soportan losdistintos niveles de aislamiento y los usuarios puedenelegir la versión correcta de.la aplicación para sus requi-sitos.

Los distintos modos de aislamiento se implementanmediante el uso de bloqueos. DB2 soporta bloqueos enel nivel de registros y de tablas. Mantiene una estruc-tura de datos de bloqueo de tablas separado del resto deinformación de bloqueo. DB2 dimensiona el bloqueoen el nivel de registros al de tablas si el espacio dispo-nible para posteriores bloqueos en la tabla de bloqueosse hace pequeño. DB2 implementa: un bloqueo estrictode das fases para todas las transacciones de actualiza-ción. Mantiene bloqueos de escritura y actualizaciónhasta el momento del compromiso o retroceso.

DB2 soporta una serie de modos de bloqueo con elfin de maximizar la concurrencia. La Figura 26.7 mues-tra los distintos modos de bloqueo y proporciona unabreve descripción del propósito de cada modo de blo-queo. Abajo se muestran brevemente algunos de losmodos de bloqueo; véanse las referencias bibliográfi-cas para mayor información sobre, los modos de, blo-queo. Los modos de bloqueo incluyen bloqueos inten-cionales en un nivel de tabla para proporcionar bloqueode granularidad múltiple. DB2 también implementa elbloqueo de la clave siguiente para las inserciones yborrados que afecten a las exploraciones de índices delnivel de aislamiento RR para eliminar el problema dela lectura fantasma. véanse las referencias bibliográfi-

6"

Page 10: DB2

l.

l

¡lit

FUNDAMENTOS DE BASES DE DATOS

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 nivelescompartido) de eielamiento RS o ess tshare. compartido) Filas, tablas Bloqueo de lectura

IX tintent exclusive. intencinnal.exclu- Espacios de tablas, tablas Intención de actualizar filaseivolSIX Ishare with intent Exclusive, com- Tablas Sin bloqueos de lectura en las filaspartido 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 paraclave exclusivo} inserciones y borrados para prevenir

las lecturas fantasma durante lasexploraciones 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

l,' "Modo d6 bloqueo

FIGURA 26.7. Modos de bloqueo de D82.

cas para mayores detalles (en el Apartado 16.9 se des-cribe una.forma sencilla de bloqueo de la siguiente cla-ve que elimina el problema fantasma),

La transacción puede establecer la granularidad delbloqueo en 'el nivel de tabla mediante el uso de una ins-trucción de bloqueo de tabla (una extensión SQL). ESLOes útil para aplicaciones que conocen 'que su nivel dese-ado de aislamiento está en el nivel de tabla. TambiénDB2 elige las granularidades de bloqueo apropiadascuando se ejecutan utilidades tales como reorganizaciónde la base de datos y bloqueo. Las versiones sin cone-xión de estas utilidades normalmente bloquean la tabla:en modo exclusivo. Las versiones en conexión de lasutilidades permiten que otras transacciones se ejecutenconcurrentemente adquiriendo bloqueos de filas.

En cada base de datos se ejecuta un agente de detec-ción de interbloqueos que periódicamente verifica losinterbloqueos entre-las transacciones. El intervalo parala detección de interbloqueos es un parámetro configu-rable. En caso de interbloqueo, el agente elige una víc-tima y la finaliza. La víctima produce un código de errorSQL, indicando que la causa del fallo fue un interblo-queo.

26.5.2. Compromiso y retrocesoLas aplicaciones pueden comprometerse o retroceder-se mediante el uso de las instrucciones explícitas com-mit y rollback. Las aplicaciones también pueden emi-tir instrucciones begin transaction y end transactionpara controlar el ámbito de las transacciones. No sesoportan las transacciones anidadas. Normalmente DB2libera todos los bloqueosque se mantienen por W1atran-sacción en cornmit o rcllback. Sin embargo, si se hadeclarado una instrucción de cursor mediante la cláu-

Objetos I

sula withhold entonces se mantienen algunos bloqueosdurante los compromisos.

26.5.3. Registro hiatórico y recuperación

DB2 implementa el registro histórico y los. esquemasde recuperación ARIES' (el esquema ARIES se descri-be brevemente en el Apartado 17.9.6). Este registro his-tórico.tíeescritura anticipada lo utiliza para enviar regis-tros, desde este registro histórico al archivo de registrohistórico persistente. antes de que las páginas de datosseescriban en el compromiso. DB2 soporta dos tiposde modos de registro: registro histórico- circular y regis-tro de archivo. Én el registro histórico circular, DB2 uii-liza un conjunto predefinido de archivos de registro hís-tórico primario y secundario. El registro históricocircular es útil para la recuperación de caídas o la recu-peración de un fallo de la aplicación. En el registro his-tórico de archivo, DB2 crea nuevos archivos de regis-tro histórico y guarda los archivos de registro históricoviejos con el fin de liberar espacio en el sistema de archi-vos. Los registros históricos de archivo son necesariospara 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-gurar el número de archivos de registro histórico y lostamaños dc los archivos de los registros históricos.

En entornos con grandes actualizaciones, DB2 pue-de configurarse par,<l utilizar compromisos en grupo(Apartado 24.3) con el fin de combinar escrituras de;registro histórico de varias transacciones y ejecutarlosutilizando una única operación E/S.

DB2 soporta retroceso de transacciones, recupera-ción de caídas, así como recuperaciones por instantes(poiru-in-time) o hacia adelante (roll-forward). En el

638

Page 11: DB2

,ss

o,-s-i-

,o;-osU_

e-fi-o,

le-podelos

.ra-nes1el

caso de una recuperación tras una caída, DB2 ejecutalas fases de deshacer estándar de procesamiento y pro-cesamiento rehacer hasta y desde el último punto derevisión con el fin de recuperar el estado comprometi-do adecuado de la base de datos. Para la recuperaciónpor instantes, DB2 puede restaurar la base de datos des-de una copia de seguridad y avanzar a un punto especí-ñco en el tiempo utilizando los archivos históricos guar-dados. El comando de recuperación hacia adelante

CAPItULO 25 SB2 DE 16M

soporta tanto los niveles de bases de datos como de espa-cios de tablas. También se pueden emitir en nodos espe-cíficos sobre un sistema multinodo.

Recientemente se ha hecho disponible un esquemade recuperación en paralelo para,mejorar el rendimien-to en sistemas multiprocesador SMP mediante la utili-zación de muchas Cl'Us. DB2ejecuta la:recuperacióncoordinada a través de nodos MPP mediante un esque-ma global de puntos de revisión.

La Figura 26.8 muestra algunos de los distintos proce-sos o hebras en un servidor DB2. Las aplicacionesremotas cliente se conectan al servidor de la base dedatos a través de agentes de comunicación tales comodb2tcpcm. Se asigna un agente a cada-aplicación '(agen-te coordinador en entornos MPP o SMP) denominadohebra dh2agent. Este agente y sus agentes subordina-dos ejecutan las tareas relacionadas con la aplicación.Cada base de datos tiene un conjunto de procesos ohebras que ejecutan tareas tales como preextracción,

limpieza de páginas de la cola de la memoria interme-dia y detección de interbloqueos. Finalmente hay unconjunto de agentes en el entorno del servidor para eje-cutar tareas tales como detección de 'caídas, creaciónde procesos. control de recursos del sistema y serviciode licencia. DB2 proporciona parámetros de configu-ración para controlar el número de hebras y procesosen W1 servidor. Casi todos los tipos distintos de agen-tes se pueden controlar mediante el uso de parámetrosde configuración.

Modelo de procesamiento: partición única

EDU -p~~-----~~~-~~::~e.:/i~~e~-~-~----~~-:~conexión • de datos activa

" db2agen

OI+=F==I==i=OMemoria

compartida:,

db2agen ~

O~db2ipccm E~ I dbiagntpA ApJB

O~'Sob,g,"" """O~~'dbztcpcrn db2agen .~,

OI;:::::¡====c4====='~O,~, TCPIP :,Agente €ffign5PAplC

coordinador"Conexión Subagentes:

Sal e en esperaa Prod" Apl

•Procesos

UDF Ef€fdf~aislados P,Máquina,cliente'remota

• Máquina.• servidora: I:_UserDB2_: PrOC,eSP5 Procesos

(hebras)··•AplA

ApJAa Pruebas"

oApl B

"ConexiónSQL

a Pruebas"

FIGURA26.8. Modelo .de.procesos en CiB2.

639

@E~a0 Procesos de procedimientos. almacenados aislados

€~cly

(f&fC~00

db2wdQg db2gds

db2sysc db2cart

B Bdb2Loggi db2dlock

db2resyn db2dart

Base de datosMPRUEBASH

~clY

([¿~fC~

~g~t

Agentes en esperasin asociar,,- - - - - - _. - --

EDUpor solicitud

00db210ggi db2dlock db2bm, db2med ...

: Base de datos HPRODH

Page 12: DB2

Mernonacompartida del ejemplar

. incluye memoria intermedia FCMü-est Communication Manager, Gestorde 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) 1...númb.d

· montículo de la base de datos Idbheápl_ memoria intermedia del registro histórico (logbufsz)- caché del catálogo (catalogcache_sz)

· monticulo de.utilldadea ~util_heap_sz) .

I

1 IMemoria compartida de la aplicación. estructuras internas lappl_ctl_heap...:sz)

- 1...máxaplic

Mernoríe privada de agentes

I l · ordenaciones privadas (sortheap. sheapthreahl

· montículo de la aplicación (applheapszl

DD · pila de agentes (agenCstack_sz)

· montículo de consultas (query_heap_szl

· montículo de instrucciones (stmtheap)

· montículo de estadísticas (staCheap_sz)

• 1...máxagentes •

FUNDAMENTOS DE BASES DE DATOS

La Figura 26.9· muestra los distintos tipos de seg-mentos de memoria en D82. La memoria privada en losagentes o hebras se utiliza principalmente para varia-bles locales y estructuras de datos que son relevantessolamente para la actividad actual. Por ejemplo. unaordenación privada podría asignar memoria desdee\montículo privado del agente. La memoria compartidase divide en memoria compartida del servidor, memo-ria compartida de la base de datos y memoria compar-tida de la aplicación. El nivel de la base de datos dememoria compartida contiene estructuras de datos úti-les tales como las colas de memoria intermedia, las lis-tas de, bloqueos, las cachés de los paquetes de aplica-ción y las áreas de ordenación compartida. Las áreas dememoria compartida del servidor y de la aplicación seutilizan principalmente para estructuras de datos comu-nes tales como parámetros de configuración del servi-dor y memorias intermedias de comunicaciones.

DB2 soporta varias colas de memoriaintermedia parauna base, de datos. La'> colas. de memoria intermedia sepueden crear mediante el uso de la instrucción create buf-ferpool y se puede asociar con espadas de tablas. Es útil

1.

FIGURA 26.9. Modelo de memoria 082.

disponer de varia s cola'> de memoria intermedia por diver-sas razones, pero se deberían definir después de un cui-dadoso análisis de los requisitos de la carga de trabajo,DB2 también proporciona la capacidad de almacena-miento extendido para aprovechar memorias grandes(memorias mayores de 4 gigabytes) en sistema'> que sola-mente tienen capacidad de direccionamiento 'de 32 bits.El almacenamiento extendido se utiliza como una memo-ria intermedia de copia de seguridad compartida paracolas de memoria intermedia activas, Las páginas que seextraen o reemplazan de una cola de memoria interme-dia activa se escriben en el área de almacenamientoextendido y se pueden 'Volver a copiar desde allí si senecesita. Por dio, el almacenamiento extendido puede.ayudar a evitar E/S en grandes sistemas de memoria.

DB2 soporta una completa lista de configuración dememoria y parámetros de ajuste. Esto incluye paráme-tros para todas las áreas de montículos de estructurasde datos grandes tales como las colas de memoria inter-media.predeterminadas.el montículo de ordenación, lacaohé de paquetes, los montículos de control de la apli-cación, el área de lista de bloqueos y cosas similares.

640

Page 13: DB2

CAPITULO 28 DR2 DE IBM

DB2 Data Propagatores un producto en la familia DB2que proporciona réplica de datos entre DBl y otros sis-temas de bases de datos relacionales tales como OracleSQL Server de, SQL Server de Sybase e Infonnix, y orí-genes de-datos no relacionales tales como IMS de 18M.

Data Propagator consiste en componentes capturary aplicar que se controlan mediante interfaces de admi-nistración. Les mecanismos de captura de cambios sebasan en tablas DBl basadas en registros históricos obasadas en disparadores en el caso de otros orígenes dedatos. Esto es, para las tablas DB2 los cambios se detec,tan examinando el registro de la base de datos mientrasque lo-s disparadores se utilizan para detectar los cam-bios de otros orígenes de datos. Los cambios captura-dos se almacenan en áreas temporales dé tablas bajo elcontrol del propagador de datos DB2, que se aplicandespués a estas tablas intermedias, con cambios, a lastablas destino mediante el uso de instrucciones SQL(inserciones, actualizaciones y 'borrados). Las transfor-maciones basadas en SQL se pueden ejecutar sobre estastablas intermedias utilizando condiciones' de filtro ade-más de agregaciones. Las filas resultantes se puedenaplicar a una o más tablas destino. Los rncdios de admi-nistración controlan todas estas acciones.

Otro miembro dela familia DB2 es el producto DataJoiner, que proporciona soporte a basesde daros federa-das y distribuidas. Data Joiner puede integrar tablas enDBl remotas u otras bases de datos relacionales en unaúnica base de datos distribuida. Data Joiner proporcio-na un método basado en el coste' para la optimización deconsultas entre los distintos sitios de datos. Los datos norelacionales también se pueden integrar en Dala Joinermediante el uso de envolturas para crear datos tabulares.

DBl soporta funciones de tabla definidas por el usua-rio que pueden permilir el acceso de orígenes-de datosno relacionales y externos. DBl crea funciones de tabladefinidas por el usuario mediante la instrucción createfunction con la cláusula returns tableo Con estas caracte-rfsticas DBl puede participaren los protocolos OLE-DB.

Finalmente DBl proporciona soporte completo paraprocesamiento de transacciones distribuidas medianteel protocolo de compromiso en dos fases. DBl puedeactuar como-el coordinador o agente para el soporte detransacciones distribuidas. Como coordinador; DB2 pue-de ejecutar todos los estados del protocolo de compro-miso en dos fases. Como participante, DEl puede inte-ractuar con cualquiera de los administradores detransacciones distribuidas comerciales.

DBl proporciona una serie de herramientas para faci-litar el uso y administración. Las herramientas creadaspor los fabricantes han permitido-la mejora del núcleodel conjunto de herramientas del programa.

El centro de control DBl es la herramienta primariapara eluso y administración de bases de datos DE2. Elcentro de control se ejecuta sobre muchas plataformasdel tipo estación de trabajo. Tiene interfaces para admi-nistrar objetos de distintos tipos, tales como servidores.bases de datos, tablas e índices. Además contiene inrer-faces orientadas en las tareas para ejecutar comandos ypermite a los usuarios generar secuencias de comandosSQL.

La Figura 26.10 es una pantalla del panel principaldel centro de control. Muestra una lista de tablas en labase de datos Sample en la instancia DBl sobre el nodoCranKarm. El administradorpuede utilizar el menú parainvocar un conjunto de herramientas componentes. Loscomponentes principales del centro de control son elcentro de órdenes, el centro de guiones, diario, ge-stiónde licencias, centro de alertas, supervisor del reñdi-miento, explicación visual, administración de, bases dedatos remotas; gestión de almacenamiento y soportepam la réplica. El centro de órdenes permite a los usua-nos y administradores enviar órdenes de la base de datos

y ejecutar instrucciones SQL. El centro de.guionesper-mite a los usuarios ejecutar guiones SQL construidos'de forma interactiva o desde un archivo. El supervisordel rendimiento permite al usuario supervisar varioseventos en el sistema de la base de datos-y obtener ins-tanténeas del rendimiento. SmartGuides proporcionaayuda para la configuración de parámetros del sistemaDB2. Un constructor de procedimientos almacenadosayuda al usuario a desarrollar e insralar estos procedi-mientos. Laexplicación visual da al usuario Vistas gré-ficas del plan de ejecución de la consulta. Un asistente4e índices ayuda.al administrador sugiriendo índices derendimiento.

Aunque el centro de control es una interfaz integradade muchas de las tareas, DBl también proporciona acce-SO, directo a la mayoría de las tareas. Para los usuarios lasherramientas tales como la carácterística de explicación.las tablas de explicación y la explicación gráfica pro-porcionan un análisis detallado de los planes de consul-ta. Lbs usuarios pueden utilizar el centro de control paramodificar las estadísticas (si se permite la modificación)con el fin de generar los mejores planes de consulta.

Para los administradores. DBl proporciona un sopor-le completo' para la carga, importación. exportación,reorganización, redistribución y otras utilidades rela-

641

Page 14: DB2

'FUNDAMENTOS DE BASES DE DATOS

EJ"''Il SistemasEl 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-mientas ta1es como:

• Auditoría para el mantenimiento de la traza deauditoría de' las acciones sobre la base de datos

• Regulador para controlar la prioridady tiempos deejecución en distintas aplicaciones

Este capitulo proporciona una breve sinopsis de carac-terísticas disponibles' en DB2. Como resumen, DB2 esun servidor de bases de datos multi-platafonna, dimen-

• Supervisor de consultas para gestionar los traba-jos de consulra en el sistema

Características de traza y diagnóstico para la depu-ración

Supervisión de-eventos para seguir los recursos yeventos durante la ejecución del sistema.

sionable y relacional orientado a objetos. En las notasbibliográficas se citan libros y guías más completos so-bre DB2.

" , __ o "

;".'-,,-':,:<;','."- .----.'.:',:<:'-"'--

Chamberlin [1996] Y Chamberlin [1998J proporcio-nan una buena revisión de las características de SQLy programación de DB2. Los primeros-libros de Date[1989 J y Martin er al. [19891 proporcionan un buenrepaso de las caractcrtsticas de DB2 para OS/390. Losmanuales de DE2 proporcionan revisiones definitivasde varias versiones de DB2. La mayoría de estosmanuales están disponibles en línea en, el sitiohtrp.Zwww.software.ibm .com/data/pubs. Libros recien-tes que proporcionan un entrenamiento práctico ,parael uso y administración de DB2 son Zikopoulos ~t. al.[20001, Sanders [20001 y Cook et al. [1999]. Final-mente, Prentice Hall está publicando una serie com-pleta de libres-sobre el enriquecimiento y-certificaciónsobre varios aspectos de DE2.

La investigación de IBM sobre XML incluye Shan-mugasundaram et.al. [2000] y Carey et at. [2000]. IBM

642

ha sido un participante activo en la estandarización deXQuery. Se puede encontrar detalles sobre la extensiónXML dé Da2 en línea en el sitio

http://www.software.ibm.com/dala/db2/cxten-ders/xrn lext.

Para una descripción detallada de los modos de blo-queo y su uso véase DB2 Administration Guide (capí-tulo Application Considerations), que está disponibleen línea en http://www.software.ibm.com/data/pubs.Mohan [l990al y Mohan y Levine [1992J proporcio-nan descripciones detalladas del control de concurren-cia de fndices en 082.

Las contribuciones a la investigación de lBM, algu-nas de las cuales se listan más adelante, han mejoradocontinuamente el producto DB2. Chamberlin et al.[198-1) proporciona una historia y evaluación del pro-yecto System R, que.jugó una función crucial en el desa-

Page 15: DB2

)

CAPiTULO 26 'JB2 DE IBM

rrollo de bases de datos relacionales y condujo al Mohan el al. [1992]. El procesamiento y optimizacióndesarrollo 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 de95/index.html. bases de datos activas, incluyendo las restricciones y

Lasrécnícasdeorocesamíenrodetransaccionesfajes Josdisnaradores,sedescribenen Cocbraneetal.)199ªJ.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.