Sie sind auf Seite 1von 21

Universidad Central de Venezuela Facultad de Ciencias Escuela de Computacin

ADMINISTRACIN DE BASES DE DATOS

Mara Gertrudis Lpez Lpez

Centro de investigacin en Sistemas de Informacin CISI.

ADMINISTRACIN DE BASES DE DATOS


Resumen La administracin de las capacidades de la base de datos de una manera efectiva y eficaz proporciona un producto de calidad. El resultado final de los esfuerzos ser una base de datos seria, robusta, segura, ampliable y diseada para cumplir los objetivos de las aplicaciones a las que d servicio. Existen una serie de componentes que forman parte de estos objetivos y que aqu vamos a analizar con detenimiento. Unas arquitecturas fsica y lgica de la base de datos bien diseadas ayudan a mejorar el rendimiento y facilitan la administracin, al distribuir adecuadamente sus objetos. Si se determina cual es el nmero y el tamao correcto de los objetos de la base de datos, sta podr dar servicios a todas sus transacciones. Tambin se presentan las estrategias de optimizacin, seguridad y supervisin, as como procedimientos de recuperacin y copia de seguridad ptimos, para asegurar la restauracin de la base de datos ante cualquier falla. De igual forma, es importante los mecanismos de control de concurrencia, ya que stos pueden afectar tanto a la cantidad como a la ejecucin de las transacciones que se ejecutan en un momento dado. Ninguno de los objetivos anteriores se lograra sin el concepto de diccionario de datos que es el encargado de almacenar las descripciones de los objetos de la base de datos. Palabras claves: Administrador de Bases de datos, esquema interno, transacciones, concurrencia, optimizacin, diccionario de datos, seguridad, integridad.
Centro de Informacin en Sistemas de Informacin -CISIEscuela de Computacin Facultad de Ciencias Universidad Central de Venezuela Los Chaguaramos. Apartado 47002Caracas 1041-A Venezuela

INDICE
INDICE ______________________________________________________________ 3 INTRODUCCIN ______________________________________________________ 4 1. Estructura Interna de los SMBD_______________________________________ 5 1.1. Manejo de Memoria[1] __________________________________________ 5 1.1.1. Acceso a bases de datos: Panorama General ______________________ 5 1.1.2. Clustering [5] ______________________________________________ 7 1.1.3. Organizacin de Archivos [5]__________________________________ 7 1.1.3.1. Organizacin Secuencial__________________________________ 7 1.1.3.2. Organizacin Directa ____________________________________ 8 1.1.3.3. Organizacin Indexada ___________________________________ 9 1.1.3.3.1. Organizacin aleatoria indexada _________________________ 10 1.1.3.3.2. Organizacin indexada secuencial _______________________ 11 1.1.3.3.2.1. Manejador de archivos de datos con una organizacin indexada secuencial 12 1.1.4. Estructuras de Datos ________________________________________ 14 1.1.4.1. Listas Invertidas _______________________________________ 14 1.1.4.2. Listas Enlazadas _______________________________________ 15 1.1.4.3. rboles B ____________________________________________ 16 1.1.4.4. rboles B+ ___________________________________________ 17 1.2. Casos de Estudio [12, 13] _______________________________________ 18 1.2.1. Sybase ___________________________________________________ 18 1.2.2. Oracle ___________________________________________________ 18 7. REFERENCIAS BIBLIOGRAFICAS _________________________________ 21

INTRODUCCIN
Actualmente, la informacin es una de los recursos mas importantes que posee cualquier organizacin. Es por ello, que la tecnologa ha evolucionado a sistemas que almacenan y

recuperan la informacin de manera eficiente. El campo de base de datos ha sufrido muchos cambios hasta el da de hoy.

En un principio se tenan sistemas de procesamiento de archivos, los cuales eran limitados por la fuerte dependencia entre los formatos de los archivos y los programas. A raz de estos surgen los sistemas manejadores de bases de datos, los cuales poseen muchas ventajas como son: la minimizacin de redundancia, control de concurrencia, recuperacin en caso de falla, etc. Los primeros sistemas manejadores de bases de datos estaban basados en estructuras jerrquicas y de red, pero debido a su complicacin surgen los modelos relacionales, que son usados ampliamente en la actualidad.

Todo este gran volumen de datos que almacenan las bases de datos es administrador por un grupo de personas denominadas Administrador de Bases de Datos (ABD). Es labor del ABD: Definir los esquemas de la bases de datos, por lo cual es importante conocer las diversas estructuras de almacenamiento que permiten una recuperacin eficiente. La informacin de los esquemas es almacenada en el diccionario de la base de datos. Proveer mecanismos de backup/restore que permitan la recuperacin de la base de datos ante cualquier particularidad. Garantizar que el acceso concurrente de mltiples usuarios no comprometa la integridad de la base de datos. Garantizar un tiempo razonable de respuesta ante la ejecucin de cualquier consulta, por lo que es importante la optimizacin de consultas. Proveer mecanismos de seguridad que permitan el acceso a los datos solo a personas autorizadas. Proveer mecanismos de integridad que representen restricciones que deben cumplirse sobre los datos.

En este documento estudiaremos cada una de las funciones que efecta un ABD.

1. Estructura Interna de los SMBD


1.1. Manejo de Memoria[1]
El nivel interno de un sistema de bases de datos es el que se ocupa de la forma como estn almacenados los datos. Fsicamente, las bases de datos casi siempre se almacenan en medios de acceso directo, por lo regular en discos magnticos de cabeza mvil, aunque en algunos sistemas pueden utilizarse otros medios (por ejemplo tambores, discos pticos, etc.) en vez de esos discos o adems de ellos. Daremos por sentado que se conocen los aspectos bsicos de la arquitectura de los discos y se conocen trminos tales como tiempo de bsqueda, retardo rotacional, cilindro, pista, cabeza de lectura / grabacin, etc. [2, 3] Lo fundamental en un ambiente de base de datos es que los tiempos de acceso a disco son mucho ms largos que los tiempos de acceso a memoria principal. Los tiempos de acceso a disco representativos van de cerca de 400 milisegundos o ms para un disco flexible en un micro hasta unos 30 milisegundos o menos para un disco rpido en un mainframe; el acceso a memoria principal ser con toda probabilidad por lo menos cuatro o cinco rdenes de magnitud ms rpido que el acceso a disco en un sistema dado. Por todo esto, un objetivo prioritario de desempeo en sistemas de bases de datos es reducir al mnimo el nmero de accesos a disco. Para esto se utilizan tcnicas para organizar los datos almacenados en disco de manera tal que un elemento de informacin requerido se pueda localizar con un mnimo de operaciones de E/S. Cualquier organizacin de los datos en el disco se denomina estructura de almacenamiento. Es posible desarrollar (y as se ha hecho) un gran nmero de estructuras de almacenamiento diferentes, y desde luego, tienen distintas caractersticas de desempeo que son adecuadas para ciertas aplicaciones y no lo son para otras. No existe una sola estructura ptima para todas las aplicaciones por lo que un buen sistema debe poder utilizar varias estructuras distintas, a fin de almacenar diversas porciones de la base de datos en diversas formas y deber ser posible cambiar la estructura de almacenamiento de una porcin determinada cuando varen o se comprendan mejor los requerimientos de desempeo.

1.1.1. Acceso a bases de datos: Panorama General


Localizar un elemento de informacin especfico en la base de datos y presentarlo al usuario requiere varios niveles de programas para acceso a los datos y sus principios generales pueden explicarse en base a la figura 1: 1. En primer trmino, el SMBD decide cul registro almacenado se necesita, y pide al manejador de archivos que extraiga ese registro. 2. A su vez, el manejador de archivos decide cul pgina contiene el registro deseado y pide al manejador de disco que lea esa pgina. La pgina es la unidad de E/S, es decir, la cantidad de datos transferidos entre el disco y la memoria principal en un slo acceso a disco (1K, 2K, 4Kbytes, etc.) 3. Por ltimo, el manejador de disco determina la localizacin fsica de la pgina deseada en el disco y realiza la operacin de E/S necesaria. Si la pgina ya esta en memoria principal porque ha sido leda anteriormente no es necesario volverla a leer de disco.

Figura 1 Manejador de disco: Es un componente del sistema operativo subyacente encargado de todas las operaciones fsicas de E/S. Como tal, es evidente que necesite conocer las direcciones fsicas en el disco. Por ejemplo, cuando el manejador de archivos solicita la lectura de una pgina p, el manejador de disco necesita saber con exactitud donde est situada esa pgina en el disco fsico. Para el manejador de archivos, el disco es una coleccin lgica de conjuntos de pginas, cada uno de los cuales se compone de un grupo de pginas de tamao fijo. Cada conjunto de pginas se identifica mediante un identificador de conjunto de pginas nico. Cada pgina a su vez, se identifica mediante un nmero de pgina que es nico dentro del disco; los diferentes conjuntos de pginas no se solapan, es decir, no tienen pginas en comn. El manejador de disco entiende y mantiene la correspondencia entre nmeros de pgina y direcciones fsicas en el disco. Uno de los conjuntos de pginas, el conjunto de pginas de espacio libre, sirve como reserva de pginas disponibles. El manejador de disco se encarga de la asignacin de pginas a los conjuntos y la liberacin de pginas de los mismos cuando se los solicita el manejador de archivos. Entre las operaciones que puede realizar el manejador de disco con los conjuntos de pginas (que son las operaciones que puede solicitar el manejador de archivos) se encuentran: - Leer la pgina p del conjunto C. - Reemplazar la pgina p dentro del conjunto de pgina C. - Aadir una pgina nueva al conjunto de pginas C (es decir, obtener una pgina vaca del conjunto de pginas del espacio libre y devolver el nuevo nmero de pgina p). - Eliminar la pgina p del conjunto de pginas C (es decir, volver la pgina p al conjunto de pginas del espacio libre). Manejador de archivos: Utiliza los recursos del manejador de disco de manera tal que su usuario (el SMBD) puede percibir al disco como un conjunto de archivos almacenados. Cada conjunto de pginas contendr uno o ms archivos almacenados. Cada archivo almacenado se identifica mediante un nombre de archivo o identificador de archivo nico por lo menos dentro del conjunto de pginas que lo contiene, y cada registro almacenado, a su vez, se identifica, mediante un nmero de registro o identificador de registro nico al menos dentro del archivo

almacenado que lo contiene (En la prctica, los identificadores de registro suelen ser nicos no slo dentro del archivo que los contiene sino dentro de todo el disco, ya que por lo general se componen de un valor de nmero de pgina y algn valor nico dentro de esa pgina). En alguno sistemas, el manejador de archivos es un componente del sistema operativo subyacente (que en muchos casos no resulta ideal para el SMBD), en otros casos est empacado con el SMBD [4]. Entre las operaciones que puede realizar el manejador de archivos con los archivos almacenados son: - Leer el registro almacenado r del archivo almacenado A. - Reemplazar el registro almacenado r dentro del archivo almacenado A. - Aadir al archivo almacenado A un nuevo registro y devolver el nuevo identificador del registro r. - Eliminar el registro almacenado r del archivo almacenado A. - Crear un nuevo archivo almacenado A. - Destruir el archivo almacenado A. Con estas operaciones primitivas de manejo de archivos, el SMBD es capaz de construir y manipular las estructuras de almacenamiento.

1.1.2. Clustering [5]


Clustering es un proceso de agrupacin de registros en pginas de disco basado en patrones de uso. En un ambiente de base de datos, cada pgina puede contener diferentes tipos de registros lgicos. Se puede querer colocar en una misma pgina de disco o en una pgina cercana aquellos registros que son frecuentemente usados juntos con objeto de minimizar los accesos a disco. Existen dos tipos de clustering: - Clustering intra archivos: En este caso el clustering se aplica sobre archivos individuales. Si los registros de un archivo son frecuentemente accesados segn el orden de algn campo del mismo, entonces es conveniente agrupar a los registros segn el valor de ese campo. - Clustering nter archivos: En este caso el clustering aplica sobre varios archivos. Si cada vez que se acceda un registro de tipo 1 se accedan todos los registros tipo 2 asociados con l entonces es recomendable agrupar cada registro tipo 1 con todos los registros tipo 2 asociados a l.

1.1.3. Organizacin de Archivos [5]


La organizacin de archivos se refiere a la estructura fsica de un archivo sobre el disco. Los tres mtodos de organizacin de archivos disponibles son: secuencial, directo e indexado. Cada una de estas organizaciones es usada por el SMBD en alguna forma. La organizacin secuencial es usada para archivos journal; para copias de backup de la BD; para ciertos archivos que sirven como entrada a aplicaciones batch; para archivos de transacciones batch, etc. Las organizaciones directas e indexadas son tcnicas usadas por el SMBD para el almacenamiento de data dentro de la base de datos. Una organizacin de archivos, junto con las posibles tcnicas de acceso para esa organizacin constituye un mtodo de acceso. Una tcnica de acceso define los pasos involucrados en el almacenamiento y la recuperacin de registros especficos a travs de acceso secuencial o aleatorio a dicho registro.

1.1.3.1.

Organizacin Secuencial

En este tipo de organizacin, los registros son almacenados en la secuencia fsica en la que ellos van a ser procesados. Existen dos tipos posibles de organizacin secuencial. Si los registros son almacenados sin ningn orden especfico sino slo por su orden cronolgico de llegada el archivo correspondiente es una pila. Los archivos journal, los backups, los archivos de transacciones batch son del tipo pila. El segundo tipo de organizacin secuencial es aplicable en un ambiente de procesamiento de archivos, donde un gran porcentaje de los registros necesitan ser accesados frecuentemente. Un archivo con este tipo de organizacin secuencial tiene todos sus registros almacenados segn el valor de una clave que es normalmente la clave primaria.

Con un archivo organizado secuencialmente slo se puede usar acceso secuencial. El acceso aleatorio no es posible. Si un registro especfico va a ser consultado desde el archivo, todos los registros que lo preceden fsicamente deben ser recuperados antes de obtenerlo a l. Por esto, la organizacin secuencial no es recomendable para un ambiente en lnea donde se requiere un acceso rpido. En un archivo con este tipo de organizacin, los registros pueden ser aadidos slo al final del archivo. Cuando se actualiza la informacin de un registro existente, puede ser actualizado y reescrito en el mismo lugar fsico en el que se encontraba. Pero si se debe insertar un nuevo registro que va en la mitad del archivo, el archivo completo debe ser recopiado a una nueva localizacin fsica donde se coloca adecuadamente el nuevo registro. El borrado fsico de un registro existente tambin requiere que el archivo sea recopiado a una nueva localizacin fsica donde no se encuentra el registro borrado. Comparada con la organizacin directa e indexada, la organizacin secuencial hace un uso ms econmico del disco ya que no se requieren almacenar estructuras fsicas adicionales para acceder los registros y el archivo se mantiene tan compacto como se puede.

1.1.3.2.

Organizacin Directa

La organizacin directa da un performance excepcional en un ambiente on-line, donde se requiere acceso aleatorio. En la organizacin directa, cada registro es almacenado y recuperado en una direccin de disco sobre la base de una frmula que es aplicada a un valor de un campo del registro. Son posibles dos tipos de organizacin directa, una usando tcnicas de direccionamiento en base a una clave y la otra usando tcnicas hashing. Tcnicas de direccionamiento por clave: Con estas tcnicas una frmula es aplicada al valor del campo que es la clave primaria del registro y se obtiene un nmero relativo de registro nico. Por ejemplo, se tienen las siguientes ocurrencias del tipo registro EMPLEADO donde la clave primaria es el nmero de empleado: Emp 5 Emp 7 Emp 9 Emp 11 Emp 13 Emp 15 Emp 17 Emp 19 Emp 21 La frmula a aplicar sobre cada valor de nmero de empleado es: (NUMEMP - 3) / 2. Por ejemplo para el empleado 19 el resultado de la frmula sera 8. Entonces, cada valor de clave primaria da como resultado un nmero relativo de registro nico a ser usado. Slo se necesita un acceso al archivo para almacenar o recuperar un registro especfico. La rapidez provista por esta tcnica constituye una ventaja con respecto a la organizacin secuencial. En la mayora de los casos donde se aplica esta tcnica, se observa una gran dispersin entre las direcciones relativas generadas y las posiciones de memoria deben ser reservadas aunque no sean usadas. Usualmente se debe hacer un estudio comparativo entre velocidad de acceso y espacio de almacenamiento en disco necesario cuando se usa esta tcnica y a menos que se tenga una clave primaria que pueda ser convertida en un conjunto compacto de nmeros relativos, la tcnica de direccionamiento por clave no es una buena seleccin para una organizacin directa ya que aunque es un mtodo de acceso rpido, puede dejar muchos huecos, lo que desperdicia espacio en disco. Tcnicas Hashing: Son similares a las de direccionamiento por clave en que la frmula es aplicada a un campo del registro (usualmente la clave primaria) teniendo como resultado un valor usado como la direccin en disco para almacenar ese registro. La diferencia es que las tcnicas hashing no garantizan una direccin de almacenamiento nica. La frmula puede producir dos o ms registros con el mismo valor resultante. Esta tcnica permite utilizar el disco eficientemente mientras intenta retener la rapidez del acceso aleatorio (no ms de un acceso a disco para obtener un registro especfico) si se pueden minimizar los efectos de los resultados duplicados de la frmula. La funcin hashing es seleccionada de manera tal que los registros sean esparcidos lo ms uniformemente posible a lo

largo de todo el archivo, pero no quedan almacenados en una secuencia en particular. Cuando para dos o ms registros se obtiene como resultado el mismo valor de la funcin hashing se dice que se produce una colisin y los dos registros son llamados sinnimos. Dentro de las tcnicas hashing ms usadas se tienen: Tcnica hashing plegable (folding): Consiste en tomar el valor de la clave primaria, dividir sus dgitos en dos o ms grupos y sumar estos grupos de dgitos. El resultado de la suma es usado como la direccin en disco. La idea es tomar un valor de clave primaria que puede ser grande (C.I., por ejemplo) y transformarlo en nmeros pequeos que son direcciones en disco minimizando el nmero de colisiones a obtener. Tcnica hashing divisin-cociente: Consiste en dividir el valor de la clave primaria entre un nmero fijo, preseleccionado y el cociente de la divisin se usa como direccin en disco. Las investigaciones demuestran que el nmero seleccionado para hacer la divisin debe ser un nmero primo para disminuir el nmero de colisiones posibles. Manejo de colisiones: No importa lo bien seleccionado que est nuestra funcin hashing, siempre habr que enfrentar el problema de las colisiones y se debe buscar la mejor forma de manejarlo. Se sabe que el SMBD almacena registros en pginas que tienen capacidad para varios registros y que cada pgina tiene un nmero nico o direccin. Mas que usar un nmero relativo para almacenar y recuperar registros, la tcnica hashing usa el nmero de pgina para localizar los registros. Entre las formas de manejar las colisiones se tienen: Bsqueda lineal: Si la pgina en donde se debe almacenar un registro nuevo, segn la funcin hashing, no tiene espacio disponible, este se almacena en la prxima pgina que tenga espacio disponible. La ventaja de este mtodo es que los registros que tengan la misma pgina estarn almacenados en la misma pgina o en pginas cercanas pero si existen muchos registros que deben estar en una misma pgina y no caben all se necesitarn varios accesos a disco para obtenerlos y el problema puede empeorarse para archivos de gran tamao con altas densidades de ocupacin. reas de overflow: Este mtodo usa un rea de overflow separada para almacenar los registros que no pueden ser almacenados en la pgina especificada por la funcin hashing. Al momento de ubicar un registro que est en al rea de overflow, el sistema obtiene primero la pgina en donde debera estar almacenado. Al no ser encontrado all se comienza a obtener las pginas del rea de overflow hasta que el registro es encontrado. El mtodo de bsqueda lineal tiende a causar colisiones a futuros registros que tengan que ser ubicados en la pgina en la que ubico el registro sinnimo y si se mantienen el nmero de colisiones al mnimo, es ms rpido buscar en una rea de overflow pequea que buscar en el rea primaria. La eficiencia de ambos mtodos puede ser mejorada a travs del uso de una cadena de apuntadores (cadena de sinnimos o colisiones). Para esto cada pgina tiene un campo, llamado apuntador, que sirve como indicador de que una colisin ha ocurrido en esa pgina. En este campo se almacena el nmero de pgina en donde se encuentra almacenado el sinnimo. De este forma no es necesario hacer una bsqueda secuencial en el rea primaria para el mtodo de bsqueda lineal o no es necesario buscar en todas las pginas del rea de overflow para el mtodo de reas de overflow. En general, el rendimiento de una tcnica hashing especfica en una aplicacin dada depende de ciertos factores tales como: - Las caractersticas de la clave primaria usada como base de la funcin hashing. - La funcin hashing seleccionada - La tcnica de manejo de colisiones seleccionada. - El tamao de la pgina. Las pginas grandes tienden a disminuir el nmero de colisiones. - La densidad de ocupacin de la pgina. Si es muy alta (>80%) aumenta la probabilidad de colisiones. Si es muy baja (< 40%) se desperdicia espacio en disco.

1.1.3.3.

Organizacin Indexada

La organizacin indexada provee acceso eficiente a los registros de ambas formas, tanto secuencialmente como aleatoriamente; los registros lgicos son almacenados en un archivo llamado archivo de datos y existe un archivo separado llamado archivo ndice que contiene registros formados por el valor clave y la direccin del registro lgico que tiene ese valor de

clave. Se dice entonces que el archivo de datos est indexado por el archivo ndice. Muchos S.O. restringen el tipo de archivos ndices permitidos a aquellos definidos sobre valores nicos o claves primarias, estos son llamados ndices primarios, sin embargo tambin pueden permitir definir ndices sobre una clave secundaria no nica. Estos son llamados ndices secundarios. En general existen dos tipos de organizacin indexada posibles: Organizacin aleatoria indexada y organizacin secuencial indexada.

1.1.3.3.1. Organizacin aleatoria indexada


En este tipo de organizacin los registros en el archivo de datos estn almacenados de manera aleatoria y en el archivo ndice existe una entrada por cada registro lgico existente en el archivo de datos (este tipo de archivo ndice se conoce como archivo denso) almacenados segn el orden de la clave primaria. Un ejemplo de este tipo de organizacin es mostrado en la siguiente figura: Archivo ndice Archivo de Datos Clave Direccin (Nro. De Pg.) Registro Pgina 124 2 Empleado 405 Empleado 256 Pgina 1 256 1 Empleado 311 311 1 Empleado 611 315 3 Empleado 124 Pgina 2 405 1 Empleado 567 412 3 522 3 Empleado 522 567 2 Empleado 412 Pgina 3 611 2 Empleado 315 Los nueve registros del archivo empleado estn almacenados en el archivo de datos y el archivo ndice tiene una entrada por cada una de las entradas en el archivo de datos. Cada registro en el archivo ndice contiene un NUM-EMP, que es la clave primaria del registro Empleado, y un nmero de pgina, que indica donde est almacenado ese registro en el archivo de datos. El tener un archivo ndice implica requerimientos de espacio adicionales para poder almacenar un registro. Por qu es necesario este overhead? Una razn es para permitir el acceso secuencial de los registros lgicos. Los registros lgicos en el archivo de datos no estn almacenados segn el orden de la clave primaria, pero los registros del archivo ndice si lo estn. Entonces, al buscar los registros Empleado segn el orden del archivo ndice, se estn accediendo los registros Empleado segn el orden de la clave primaria. Un segundo beneficio de la organizacin indexada es que se pueden acceder aleatoriamente los registros mucho ms rpido que sin usar el archivo ndice. Sin el archivo ndice se tendra que buscar directamente en el archivo de datos de manera secuencial el registro deseado. Como los registros de este archivo son mucho ms grandes que los registros del archivo ndice, el hacer la bsqueda directa en el archivo de datos es mucho ms lento que hacerla en el archivo ndice. Adems, si una gran porcin del archivo ndice cabe en memoria principal, la bsqueda secuencial se puede hacer en memoria principal y se requerirn un nmero mnimo de accesos a disco (en caso de que el archivo ndice no quepa completo en memoria principal) para tal fin y se pueden usar mtodos de bsqueda ms rpidos sobre el archivo ndice como la bsqueda binaria, para as reducir an ms el tiempo de bsqueda de un registro especfico. Una ventaja adicional de este tipo de organizacin es que no se necesita acceder el archivo de datos para saber si existe un registro con una clave primaria dada ya que esto lo podemos saber buscando en el ndice nicamente. Una ventaja final de usar un archivo ndice de este tipo para realizar acceso aleatorio se obtiene cuando los archivos de datos contienen una gran cantidad de registros lgicos. El archivo ndice crece a la misma rata que la del archivo de datos porque existe una entrada en el archivo ndice por cada entrada en el archivo de datos. El tiempo de bsqueda se incrementa pero no es comparable con el tiempo de bsqueda que se empleara si esta actividad se realizar directamente sobre el archivo de datos. Adicionalmente, una vez que el archivo ndice

10

ha crecido hasta un punto tal que no cabe completo en memoria principal, se puede tratar como se trata al archivo de datos y se crea un ndice al ndice tenindose as un archivo ndice con varios niveles de indexacin o ndice multinivel. Un ejemplo de este caso se muestra en la siguiente figura: Nivel 2 del ndice Clave Direccin 124 2 256 1 311 1 315 3 405 1 412 3 522 3 567 2 611 2 Pgina Pgina 7 Archivo de Datos Registro Pgina Empleado 405 Empleado 256 Pgina 1 Empleado 311 Empleado 611 Empleado 124 Pgina 2 Empleado 567 Empleado 522 Empleado 412 Pgina 3 Empleado 315

Nivel 1 del ndice Clave Direccin 315 7 567 8 611 9

Pgina 8

Pgina 9

El nivel 2 (ndice de bajo nivel) es igual al ndice original y el nivel 1 (ndice de alto nivel) es el nuevo ndice del ndice original. Los valores en el nivel 2 del ndice estn en secuencia y en el nivel 1 del ndice se tiene un registro para cada pgina del nivel 2 que contiene el mayor valor de clave almacenado en esa pgina y la pgina correspondiente (ndice no denso o sparse). El ndice de alto nivel se puede tener en memoria principal, buscar en l, devolver la pgina exacta del ndice de bajo nivel donde se encuentra almacenado ese registro, buscar en memoria principal el registro exacto en esa pgina de bajo nivel y finalmente devolver la pgina del archivo de datos que contiene el registro que se quiere acceder aleatoriamente. Solo dos accesos son necesarios para obtener de manera aleatoria un registro lgico. A medida que crezca el archivo de datos se pueden ir expandiendo los niveles de ndices tanto como sea necesario. Una ventaja adicional de este tipo de organizacin es que los registros en el archivo de datos no necesitan estar en secuencia. Esto simplifica en gran manera el hecho de insertar y borrar registros en el archivo de datos, ya que no se tienen que hacer reorganizaciones fsicas. Sin embargo, la programacin para realizar el manejo de ndices puede ser complicada. Afortunadamente la organizacin indexada es un estndar y el manejo de ndices es responsabilidad de las rutinas de acceso del S.O. o del SMBD.

1.1.3.3.2. Organizacin indexada secuencial


En este tipo de organizacin los registros en el archivo de datos estn almacenados segn la secuencia de la clave primaria. Siendo as a nivel del archivo ndice slo se necesita una entrada o un registro por cada pgina del archivo de datos (ndice no denso) correspondiente al registro que tenga el mayor o el menor valor de clave primaria en la pgina del archivo de datos. Un ejemplo de este caso se muestra en la siguiente figura: Archivo ndice Clave Direccin 311 1 412 2 611 3 Archivo de Datos Registro Pgina Empleado 124 Empleado 256 Pgina 1 Empleado 311 Empleado 315 Empleado 405 Pgina 2 Empleado 412 Empleado 522 Empleado 567 Pgina 3 Empleado 611

11

El tener menos registros ndices implica tener archivos ndices de menor tamao, tiempos de bsqueda ms rpidos y pocos niveles de ndices a medida que crece el archivo de datos. Por otro lado, no se puede determinar la existencia de un registro con una clave especfica buscando slo en el archivo ndice ya que no es denso y para esto se debe acceder el archivo de datos, lo que implica un acceso a disco adicional en comparacin con la organizacin aleatoria indexada, pero al final, como existen menos pginas de ndices que en la organizacin aleatoria indexada y por esto se requieren menos accesos a disco, la organizacin secuencial indexada resulta ms eficiente. Con una organizacin indexada secuencial, si se quiere hacer un recorrido secuencial de los registros por su clave primaria no es necesario usar el ndice, ya que recorriendo el archivo de datos de forma secuencial se obtienen los registros en el orden deseado. El ndice se usa cuando se quiere realizar un acceso aleatorio. Si la organizacin indexada secuencial consume menos espacio y tiene un mejor rendimiento que la organizacin indexada aleatoria Por qu se usa esta ltima?. La organizacin aleatoria indexada permite ordenar el archivo de datos por los campos que sean necesarios, es decir, se pueden definir muchos ndices secundarios por diferentes claves usando esta organizacin. La organizacin indexada secuencial slo permite una nica secuencia, porque los registros en el archivo de datos slo pueden estar almacenados segn una sola secuencia (generalmente la de la clave primaria). As que todos los archivos secundarios tienen una organizacin aleatoria indexada o alguna otra estructura que permita relacionar el valor de una clave secundaria a los registros que contienen ese valor en el archivo de datos.

1.1.3.3.2.1. Manejador de archivos de organizacin indexada secuencial

datos

con

una

Qu sucede cuando se quiere insertar un nuevo registro en un archivo de datos con una organizacin indexada secuencial cuando la pgina a utilizar ya est llena? Un mtodo para manejar inserciones en archivos bajo una organizacin indexada secuencial es el uso de un rea de overflow y una cadena de apuntadores. Si la pgina en donde se va a insertar el registro est llena, el registro se coloca en una pgina del rea de overflow y se establece una conexin con el rea de overflow mediante un apuntador para poder ubicarlo al momento de accederlo. En la siguiente figura se muestra un ejemplo: Archivo ndice Clave Direccin 311 1 412 2 611 3 Archivo de Datos Registro Pgina Apuntador de Localizacin Overflow Valor

Empleado 124 Empleado 256 Pgina 1 Empleado 311 Empleado 315 Empleado 405 Pgina 2 Empleado 412 Empleado 522 Empleado 567 Pgina 3 Empleado 611 Area de Overflow Registro Pgina

42

410

Apuntador de Localizacin Overflow 41

Valor

Empleado 412 Empleado 410 Pgina 4

412

12

Como se ve en el ejemplo anterior se tiene un rea de overflow separada y dos nuevos campos en cada pgina de datos han sido aadidos. Uno de los nuevos campos es un apuntador de localizacin de overflow el cual enlaza la pgina del archivo de datos al prximo registro lgico en secuencia localizado en el rea de overflow. Este consiste de un nmero de pgina y un nmero de registro relativo dentro del rea de overflow. El otro nuevo campo representa el valor de la clave primaria que posee el registro apuntado en el rea de overflow. Los registros en el rea de overflow son almacenados segn la secuencia de llegada no segn la secuencia de la clave y por esto se requiere la cadena de apuntadores para el rea de overflow. Como es de suponerse, el rendimiento se degrada cada vez ms cuando se aaden ms registros al rea de overflow y comienza a crecer la cadena de apuntadores. Debido a esto, los archivos indexados secuenciales tienen que ser reorganizados peridicamente para que todos los registros sean colocados en el archivo de datos en la secuencia lgica correcta y en este momento se reconstruye el archivo ndice. El mtodo de acceso secuencial indexado de IBM (ISAM) usa la tcnica de rea de overflow sobre una base ms complicada, la cual toma en cuenta las caractersticas fsicas del disco. Un segundo mtodo para manejar las inserciones bajo una organizacin secuencial indexada es el uso de la tcnica de divisin de bloques. Con esta tcnica cuando se va a aadir un registro en una pgina que no tiene ms espacio disponible se usa la siguiente pgina disponible y los registros contenidos en la pgina llena ms el nuevo registro son divididos entre las dos pginas. Por ejemplo, dado el siguiente archivo de datos: Archivo de Datos Registro Pgina Empleado 124 Empleado 256 Pgina 1 Archivo ndice Empleado 311 Clave Direccin Empleado 315 311 1 Empleado 405 Pgina 2 412 2 Empleado 412 611 3 Empleado 522 Empleado 567 Pgina 3 Empleado 611 Se quiere insertar el registro del Empleado 350. Este registro debera ir en la pgina 2, pero como no hay ms espacio disponible en esa pgina se usa la pgina 4, que es la prxima disponible, y se divide el contenido de la pgina 2 entre la pgina2 y la pgina 4 quedando de la siguiente manera: Archivo de Datos Registro Pgina Empleado 124 Empleado 256 Pgina 1 Empleado 311 Empleado 315 Empleado 350 Pgina 2 Empleado 522 Empleado 567 Pgina 3 Empleado 611 Empleado 405 Empleado 412 Pgina 4 El archivo ndice tiene que cambiar para reflejar la pgina aadida en la secuencia apropiada y ste puede ser usado para acceder en forma secuencial el contenido del archivo de datos ya que ahora, segn esta tcnica, los registros lgicos no estn en secuencia por nmero

Archivo de ndice Clave Direccin 311 1 350 2 412 4 611 3

13

de pgina. Para poder recorrer el archivo de datos directamente cuando se quiere hacer un barrido secuencial del archivo de datos se puede aadir un campo adicional a cada pgina de datos que sirva como apuntador a la prxima pgina segn la secuencia lgica a seguir segn la clave primaria. El mtodo de acceso de almacenamiento virtual de IBM (VSAM) usa esta tcnica para manejar la organizacin secuencial indexada.

1.1.4. Estructuras de Datos


Las estructuras de archivos discutidas anteriormente ambientes de procesamiento de archivos pero se quedan ambientes completos de SMBD los cuales manejan una gran entre ellos. Para esto necesitan estructuras de datos ms encuentran: son suficientes para soportar los cortos para soportar totalmente cantidad de archivos y relaciones sofisticadas entre las cuales se

1.1.4.1.

Listas Invertidas

Anteriormente se dijo que una estructura de archivo que puede ser usada para representar claves secundarias es una organizacin aleatoria indexada y estos archivos son llamados ndices secundarios. Cuando se usa un ndice sobre un campo secundario se dice que se tiene una lista invertida o archivo invertido ya que se ha invertido el rol normal de un campo en el registro porque se encuentra el registro basndose en el valor del campo en vez de encontrar el valor del campo despus de haber localizado al registro. En el caso en que se definan listas invertidas sobre campos que pueden tener el mismo valor para diferentes registros en el archivo de datos la estructura de la lista consiste de un primer nivel de ndice que tiene una entrada por cada valor diferente del campo de ndice existente en el archivo de datos. Para cada una de estas entradas se tienen un apuntador al nivel 2 del ndice donde comienza la lista de nmeros de registros relativos con ese valor de campo ndice. Por ejemplo, para el siguiente archivo de datos se quiere construir una lista invertida por el campo PCCOST, entonces se tiene lo siguiente: Archivo Empleado NUMEMP COSTO 124 4500 256 0 311 2175 315 2175 405 0 412 0 522 567 611 0 4500 1429 # relativo de registro 1 2 3 4 5 6 7 8 9

La estructura de lista invertida sobre el campo COSTO sera: Nivel 2 del ndice # relativo de registro 2 5 6 7 9 3 4 1 8

Nivel 1 del ndice Campo Localizacin ndice 0 1 1429 5 2175 6 4500 8

14

Si se tienen listas invertidas para todos los campos del archivo se dice que se tiene un archivo invertido completamente. Si slo algunos campos tienen asociados listas invertidas se dice entonces que se tiene un archivo invertido parcialmente. Las listas invertidas pueden usarse para responder ciertas consultas sin tener que acceder el archivo de datos, como por ejemplo: - Cuntos empleados tienen costos 0? - Cuntos registros tienen costos mayores que 5000? ... Con la utilizacin de listas invertidas la recuperacin de registros es muy eficiente pero entre las desventajas que tienen se cuenta el espacio requerido para almacenar los ndices multinivel y el tiempo extra requerido para actualizar las listas invertidas por lo que las listas invertidas son creadas slo para los campos sobre los cuales se necesita tener un acceso rpido. El SMBD ADABAS utiliza este esquema de indexacin.

1.1.4.2.

Listas Enlazadas

Una lista enlazada consiste de un campo aadido al final de cada registro lgico en el archivo de datos que tiene un valor de localizacin del prximo registro lgico en la secuencia. Esta es otra estructura usada para representar claves secundarias. Por ejemplo, la lista enlazada asociada al archivo anterior sobre el campo COSTO sera de la siguiente forma: Head Pointer COSTO: 2 Archivo Empleado NUMEMP COSTO 124 4500 256 0 311 2175 315 2175 405 0 412 0 522 567 611 0 4500 1429 Apuntador sobre COSTO 8 5 4 1 6 7 9 3 # relativo de registro 1 2 3 4 5 6 7 8 9

Externo a los registros del archivo EMPLEADO se tiene un campo adicional que sirve como ancla o apuntador al comienzo de la lista que apunta al primer registro de la secuencia segn el campo COSTO. En el ejemplo anterior el ltimo registro de la cadena apunta a NILL, pero otro enfoque es que el ltimo registro apunte al primer registro de la cadena. Este refinamiento se llama lista enlazada circular o anillo. Se pueden tener tantas listas enlazadas como sean necesarias y cada una de ellas requiere espacio adicional y tiempo extra para actualizarlas. Una lista enlazada puede ser usada como una alternativa a las listas invertidas para representar claves secundarias a travs de una estructura llamada Multilista. Esta es un ndice similar al nivel 1 de ndices de la estructura de lista invertida. El ndice multilista tienen un registro por cada valor diferente de la clave secundaria y est ordenado por estos valores pero en vez de apuntar al nivel 2 de ndices, cada registro multilista tiene un apuntador ancla que comienza la cadena de registros que tienen un valor de la clave secundaria particular. Por ejemplo, una multilista sobre el campo COSTO para el archivo EMPLEADO quedara de la siguiente manera:

15

Archivo Empleado NUMEMP COSTO 124 4500 256 0 311 2175 315 2175 405 0 412 0 522 567 611 0 4500 1429

Apuntador sobre COSTO 8 5 4 6 7 -

# relativo de registro 1 2 3 4 5 6 7 8 9

ndice Multilista sobre el campo COSTO Clave # relativo de reg. 0 2 1429 9 2175 3 4500 1

Si se tienen mltiples claves secundarias se pueden usar estructuras multilistas para cada una. Comparando las multilistas con las listas invertidas, los ndices multilistas son ms fciles de crear y mantener ya que el nivel 2 de ndices de las listas invertidas tiene un nmero variable de entradas. Por otro lado, los apuntadores de las multilistas deben ser mantenidos mientras que con las listas invertidas no hay apuntadores que mantener, pero el mantenimiento a nivel de multilistas en el archivo de datos no implica una reorganizacin fsica a nivel de pginas sino un mantenimiento a nivel de apuntadores, por los que son ms fciles de mantener que las listas invertidas. Una de las principales desventajas de las multilistas con respecto a las listas invertidas es que es ms difcil y toma ms tiempo responder ciertas consultas que se pueden hacer con las listas invertidas sin tener que acceder el archivo de datos.

1.1.4.3.

rboles B

Los rboles B [6] son una de las estructuras de datos ms ampliamente usadas en el procesamiento de base de datos hoy en da. Se usan principalmente para el almacenamiento y manipulacin de ndices. El rbol B es una forma especial de una estructura general de rbol. Un rbol est formado por nodos conectados por arcos. En el tope del rbol existe un nico nodo raz y sus descendientes lo siguen. Un nodo que no sea la raz junto con todos sus descendientes comprenden un subrbol del rbol original. Cada nodo tiene exactamente un padre excepto el nodo raz que no tiene padre. Los ancestros de un nodo son todos los nodos, incluyendo la raz, que conectan al nodo a la raz. Un nodo hoja no tiene hijos. Un nodo gemelo es un nodo relacionado con otros nodos por el hecho de que tienen el mismo padre. La raz se define como el nivel 0 del rbol, los hijos de la raz son el nivel 1 y as sucesivamente. La altura del rbol es el mximo nmero de niveles en el rbol. Un rbol balanceado es aquel en donde la profundidad de cada subrbol de nodos difiere a lo ms en uno. El orden o grado de un rbol es el nmero mximo de hijos que puede tener un nodo del rbol. Cuando se usa este tipo de estructura de datos para los archivos ndices, el objetivo es minimizar los accesos a disco cuando se quiere hacer un acceso aleatorio a un registro especfico. Si se usa una estructura de rbol y cada nodo es una pgina de disco lo que se quiere alcanzar para lograr el objetivo anterior es un rbol balanceado con la menor cantidad de niveles que sean posibles. Una estructura de rbol que satisface bien esta condicin es el rbol B. En el ambiente de base de datos un rbol B es un ndice multinivel donde cada uno de sus nodos es una pgina ndice y tienen el siguiente formato general: Apun 1 Clave 1 Apun 2 Clave 2 Apun 3..... Cada apuntador apunta a la pgina ndice en el nivel inferior siguiente, cada clave es el valor de la clave de un registro lgico en el archivo de datos. Cada valor de clave (combinacin de valor clave y direccin) que exista en el archivo de datos va a aparecer solo una vez en la estructura de rbol. El nmero mximo de apuntadores en la pgina es el orden del rbol B, de aqu que el nmero mximo de apuntadores determine el nmero mximo de hijos que puede tener el nodo. En cada nodo del rbol B los valores claves que contienen estn en secuencia Un rbol B de orden n tiene las siguientes propiedades:

16

La raz es una hoja o tiene al menos dos hijos. Cada nodo, excepto la raz y las hojas, tienen entre n/2 y n hijos. Todas las hojas aparecen al mismo nivel. Un nodo no hoja con k hijos tiene k-1 claves. Por ejemplo, vase el siguiente rbol de orden 5: * 425 * 0 - 0 - 0 -

* 140 * 325 * 0 - 0 -

* 532 * 600 * 710 * 0 -

* 123 * 125 * 130 * 138 *

* 256 * 311 * 315 * 0 -

* 405 * 412 * 0 - 0 -

* 450 * 522 * 0 - 0 -

* 567 * 575 * 0 - 0 * 622 * 0 - 0 - 0 * 750 * 800 * 803 * 839 *

Las ventajas de los rboles B son: Permiten un rpido acceso aleatorio a los registros de datos, el cual implica en el peor de los casos, tantos accesos a disco como niveles tenga el rbol B. Las inserciones y eliminaciones son razonablemente eficientes. La utilizacin del disco es aceptable ya que por cada nodo se va a tener ocupado mnimo el 50 % de su capacidad. El archivo de datos es mantenido en secuencia por la clave primaria por lo que el acceso secuencial es posible y eficiente.

1.1.4.4.

rboles B+

El rbol B+ [7] es una variacin del rbol B. La diferencia esta en que en un rbol B+, los apuntadores de datos se almacenan slo en los nodos hojas del rbol, por lo cual la estructura de los nodos hoja difiere de la de los nodos internos. Los nodos hoja del rbol B+ suelen estar enlazados para ofrecer un acceso ordenado a los registros segn el campo de bsqueda. Los nodos internos del rbol B+ corresponden a los dems niveles del ndice. Algunos valores del campo de bsqueda de los nodos hoja se repiten en los nodos internos del rbol B+ con el fin de guiar la bsqueda. La estructura de los nodos internos de un rbol B+ de orden p se define como sigue: 1. Todo nodo interno tiene la forma: <Apun 1, Clave 1, ..., Apun q-1 Clave q -1> donde q <= p, cada Apun i es un apuntador de rbol y cada Clave i es un valor de la clave. 2. Dentro de cada nodo interno, Clave 1 < Clave 2 < ... < Clave q - 1. 3. Para todos los valores X del campo de bsqueda del subrbol al que apunta Apun i, tenemos Clave i 1 < X <= Clave i, para 1 < i < q, X <= Clave i, para i = 1, y Clave i - 1 < X, para i = q 4. Cada nodo interno tiene cuando ms p apuntadores de rbol. 5. Cada nodo interno, con excepcin de la raz, tiene por lo menos (p/2) apuntadores de rbol. El nodo raz tiene por lo menos dos apuntadores de rbol si es un nodo interno.

17

6. Un nodo interno con q apuntadores, donde q <= p, tiene q 1 valores de campo de bsqueda. La estructura de los nodos hojas de un rbol B+ de orden p es como sigue: 1. Todo nodo interno tiene la forma: <Clave 1, Apun 1, ..., Clave q -1, Apun q-1, Apun siguiente> donde q <= p, cada Apun i es un apuntador de datos, cada Clave i es un valor de la clave y Apun siguiente apunta al siguiente nodo hoja del rbol B+. 2. Dentro de cada nodo hoja, Clave 1 < Clave 2 < ... < Clave q 1, donde q <= p. 3. Cada Apun i es un apuntador de datos que apunta al registro cuyo valor de clave de bsqueda es Clave i, o a un bloque de archivo que contiene dicho registro (o a un bloque de apuntadores que apuntan a registros cuyo valor del campo de bsqueda es Clave i, si el campo de bsqueda no es clave). 4. Cada nodo hoja tiene por lo menos (p/2) valores. 5. Todos los nodos hoja estn en el mismo nivel.

1.2. Casos de Estudio [12, 13]


1.2.1. Sybase
Los ndices son objetos de la base de datos que pueden crearse para una tabla para acelerar el acceso directo a las filas de los datos especficas. Los ndices guardan los valores de la clave y apuntadores lgicos a las pginas de los datos a otras pginas del ndice. El Servidor de SQL proporciona dos tipos de ndices: - Indices clustered (arracimados) donde los datos de la tabla se guarda fsicamente en el orden de las claves en el ndice. - Indices Nonclustered donde el ndice esta ordenado, pero la tabla no. Las filas en la tabla no tienen ningn orden particular, y se agregan nuevas filas en el extremo de la tabla. Los ndices pueden tener mltiples niveles: El Nivel raz es el nivel ms alto del ndice. Si la tabla es muy pequea, no hay ningn nivel intermedio y la raz guarda los apuntadores a las pginas de los datos. Para las tablas ms grandes, la pgina de la raz guarda los apuntadores al nivel intermedio de las pginas del ndice. El Nivel hoja es el nivel ms bajo del ndice. A nivel de la hoja, el ndice contiene un valor importante por cada fila en la tabla, y las filas se guardan segn el orden de la clave del ndice. Para los ndices del nonclustered, el nivel de la hoja contiene el ndice a los valores importantes, es decir, un indicador a la pgina dnde las filas se guardan, y un apuntador a las filas en la pgina donde estn los datos. El nivel de la hoja simplemente es el nivel anterior los datos. El Nivel del intermedio: Todos niveles entre la raz y las hojas son los niveles intermedios. Un ndice sobre una tabla grande o un ndice que usa las claves largas puede tener muchos niveles intermedios. Una tabla muy pequea no puede tener un nivel intermedio; la raz apunta directamente al nivel de la hoja. Cada nivel (excepto el nivel de la raz) contiene: las claves de la pgina y los apuntadores de la pgina anteriores luego a otras pginas al mismo nivel del ndice.

1.2.2. Oracle
Oracle se conoce como un sistema de gestin de base de datos relacional, que adems admite estructuras O.O. (Orientadas a Objetos), como mtodos y tipos de datos abstractos. Tanto si se utiliza estructuras relacionales como estructuras OO la base de datos Oracle almacena los datos en archivos. Internamente, existen estructuras en la base de datos que realizan una asignacin lgica entre los datos y los archivos, lo que permite almacenar por separado diferentes tipos de datos. Estas divisiones lgicas se denominan espacios de tablas. Cada espacio de tablas consta de uno ms archivos, llamados archivos de datos, que se almacenan en un disco. Un archivo de datos solo puede pertenecer a un nico espacio de tablas.

18

Una instancia de base de datos (tambin conocida como servidor) es un conjunto de estructuras de memoria y procesos de segundo plano que acceden a un conjunto de archivos de la base de datos. Las estructuras de datos de la base de datos de Oracle pueden dividirse en 3 categoras: 1. Interna de la Base de Datos. 2. Interna a la rea de Memoria. 3. Los externos a la Base de Datos. Entre los internos a la base de datos podemos nombrar: tablas, columnas, restricciones, tipos de datos, ndices, agrupaciones, agrupaciones hash, procedimientos, funciones, vistas, etc. Un ndice es una estructura de base de datos que utiliza el servidor para localizar rpidamente una fila de una tabla. Existen 3 tipos de ndices: ndice de agrupacin. ndice de tabla. ndice de mapa de bits. Los elementos de los ndices de tabla y de agrupacin de una base de datos Oracle se almacena mediante un mecanismo de rbol binario. Las operaciones de E/S necesarias para localizar un valor clave son mnimas y, una vez encontrado, se utiliza el identificador de fila para acceder directamente a una fila. Las agrupaciones hash utilizan funciones hash sobre la clave de agrupacin de fila para determinar la ubicacin fsica en la que debe almacenarse una fila. Los internos a la rea de memoria constan de los siguientes elementos: rea Global del Sistema (SGA). Cach del buffer del bloque de datos. Cache del diccionario. Buffer del registro de rehacer. rea de SQL compartida. rea de contexto. rea global del sistema (PGA). Los externos a la Base de Datos constan de los siguientes elementos: Los registros de rehacer. Los archivos de control. Los archivos de traza. Los archivos de alertas. En Oracle versin 8 el manejo de memoria se hace por rboles Balanceados, las tablas organizadas mediante ndices almacenan las columnas de una tabla en los nodos de hoja de la estructura de ndice B-tree de Oracle8. De esta manera se reducen los requisitos globales de almacenamiento cuando la mayora de las columnas se indexan almacenndolas una sola vez, no en un ndice y en una tabla aparte. Las tablas organizadas mediante ndices tambin reducen el tiempo de acceso al recuperar todas las columnas desde una ubicacin, en lugar de hacerlo desde dos. El rendimiento de PL/SQL aumenta, al igual que el rendimiento al realizar llamadas a SQL desde PL/SQL, y viceversa. Para facilitar la administracin, mejorar la disponibilidad de los datos crticos y aumentar el rendimiento de consultas y DML, Oracle8 permite dividir las tablas y los ndices en particiones, o partes ms pequeas, en funcin de un rango de claves. La divisin en particiones es una estrategia del tipo divide y vencers que mejora la administracin y el rendimiento en sistemas de data warehouse y de procesamiento de transacciones on line. Puesto que las particiones funcionan independientemente las unas de las otras, los datos contenidos en una tabla dividida de esta manera estn disponibles aunque una o ms particiones no estn disponibles. Las particiones tambin facilitan la gestin de tablas grandes al desglosar las tareas administrativas en otras ms pequeas, que a su vez pueden realizarse en paralelo. Por ltimo, la divisin de una tabla o un ndice en particiones puede mejorar el rendimiento de las operaciones realizadas con los datos, al eliminar las particiones no utilizadas del plan de ejecucin de la operacin.

19

20

7. REFERENCIAS BIBLIOGRAFICAS
[1] Date C.J. An Introduction to Database Systems. 7th edition, Addison-Wesley, 2000. [2] Gio Wiederhold. Database Design. 2a edicin. Nueva York, N.Y.; McGraw-Hill (1983). [3] T.H. Merret. Relational Information Systems. Reston, Va: Reston Publishing Company Inc. (1984). [4] Michael Stonebraker. Operating System Support for Database Management. CACM 24, nm 7. Julio 1981. [5] Pratt P. and Adamski J. Database Systems Management and Design. Third Edition. Boyd & Fraser publishing company. 1994. [6] R. Bayer y C. McCreight. Organization and maintenance of Large Ordered Indexes. Acta Informtica 1, nm 3 (1972). [7] Elmasri / Navathe. Sistemas de Bases de Datos. Conceptos fundamentales. Addison Wesley. Segunda Edicin 1997. [8] szu, Tamar and Valduriez, P. Principles of Distributed Database Systems. 2nd Ed. Prentice Hall, 1998. [9] Korth H., Silberschatz A, Sudarshan, S. Fundamentos de bases de datos. Tercera edicin. McGraw-Hill. 1998. ISBN 84-481-2021-3 [10] Leon-Hong B., Plagman B., Data Dictionary Directory Systems. J. Wiley, 1982. [11] Fernandez E., Summers R., Wood C. Database Security and Integrity. Addison Wesley, 1981. [12] Loney, Kevin. ORACLE 8. Manual del administrador. McGrawHill. Primera Edicin 2000.

FUENTES ELECTRNICAS
[13] Sybase. Fast Track to Adaptive Server Enterprise 11.9.2. 2001. URL: www.sybase.com.

21