Академический Документы
Профессиональный Документы
Культура Документы
Facultad de Ciencias
Escuela de Computacin
INDICE
INDICE________________________________________________________________ 3
INTRODUCCIN
4
1. Estructura Interna de los SMBD
5
1.1.
Manejo de Memoria[l]__________________________________________ 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.44.
rboles B+
17
1.2.
1.2.1.
1.2.2.
7. REFERENCIAS BIBLIOGRAFICAS
21
INTRODUCCION
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.
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.
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.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 declave. 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:
Registro
Pgina
Direccin
(Nro. De
Clave
Pgina
1
Empleado
Pg.)
124
405 2
256
1
Empleado
311
Pgina 2
256 1
Empleado
315
611 3
405
1
Empleado
412
3
124
Pgina 3
Empleado
522
3
522
567
2
Empleado
611
412 2
Archivo ndice
Archivo de Datos
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
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:
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.
Nivel 2 del ndice
Nivel 1 del ndice
Clave Direccin
315 7
567 8
611 9
Clave Direcci
124 n
2
256 1
311 1
315 3
405 1
412 3
522 3
567 2
611 2
Archivo de Datos
Pgina
Pgina 7
Pgina 8
Pgina 9
Registro
Empleado
405
Empleado
256
Empleado
611
Empleado
124
Empleado
522
Empleado
412
Pgina
Pgina 1
Pgina 2
Pgina 3
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:
Registro
Empleado
124
Empleado
256
Empleado
315
Empleado
405
Empleado
522
Empleado
567
Archivo ndice
Pgina
Pgina 1
Pgina 2
Pgina 3
Archivo de Datos
Clave Direccin
311 1
412 2
611 3
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.
Clave Direccin
311 1
412 2
611 3
Archivo de Datos
Registro
Empleado
124
Empleado
256
Empleado
315
Empleado
405
Empleado
522
Empleado
567
410
Area de Overflow
Registro
Empleado
412
Empleado
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
Archivo ndice
Clave Direccin
311 1
412 2
611 3
Registro
Empleado
124
Empleado
256
Empleado
315
Empleado
405
Empleado
522
Empleado
567
Pgina
Pgina 1
Pgina 2
Pgina 3
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
Archivo de ndice
Clave Direccin
311 1
350 2
412 4
611 3
Registro
Empleado
124
Empleado
256
Empleado
315
Empleado
522
Empleado
567
Empleado
405
Empleado
Pgina
Pgina 1
Pgina 2
Pgina 3
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
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 son suficientes para soportar los ambientes de procesamiento de archivos
pero se quedan cortos para soportar totalmente ambientes completos de SMBD los cuales manejan una gran cantidad de archivos y
relaciones entre ellos. Para esto necesitan estructuras de datos ms sofisticadas entre las cuales se encuentran:
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 COST
O
124
4500
256
0
311
2175
315
2175
405
0
412
0
522
0
567
4500
1429
611
# relativo de
registro
1
2
3
4
5
6
7
8
9
Campo
ndice
0
1429
2175
4500
Localizaci
n
1
5
6
8
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.
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
# relativo de
registro
1
2
3
4
5
6
7
8
9
# relativo de
registro
1
2
3
4
5
6
7
8
9
Clave
0
1429
2175
4500
# relativo
de reg.
2
9
3
1
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:
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:
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)l apuntadores de
rbol. El nodo raz tiene por lo menos dos apuntadores de rbol si es un nodo interno.
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.
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] Oszu, 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.