Este documento presenta una clase sobre administración de bases de datos. Incluye objetivos, una revisión de conceptos clave de la clase anterior, una agenda con temas a cubrir e información sobre organizaciones de archivos, índices y árboles B y B+. También contiene ejercicios para practicar los conceptos.
1. Administración de Base de Datos
Manejo de Memoria III
Profesora: Mercy Ospina
Mercy.ospinat@gmail.com
UNIVERSIDAD CENTRAL DE VENEZUELA
FACULTAD DE CIENCIAS
ESCUELA DE COMPUTACIÓN
3. Repaso clase pasada
• ¿Qué es un archivo de Índices?
• ¿Cuál es la diferencia entre un índice primario y uno agrupado?
• ¿Cuántos índices primarios puede tener un archivo de datos
asociado a una tabla?
• ¿Si una tabla tiene un índice agrupado podría tener uno primario?
(V, F) ¿en qué condiciones?
• ¿Por qué se requiere que un índice quepa en memoria principal?
(V, F)
• ¿Qué es un índice secundario?
• ¿Qué es un índice multinivel y su función?
• ¿Diferencia entre un índice denso y uno disperso y en que casos se
pueden usar estos últimos?
5. • Ejercicio
• Dado un archivo de datos para Proveedor con los
siguientes campos
+ un byte para marcado de borrado
1.Si el tamaño del bloque es 2048 bytes, hay 500.000
registros, y los registros son de tamaño fijo no
extensibles
• Calcular fb y TA de Proveedores.
• El tamaño de los apuntadores es 6 bytes
Marzo 2012 Administración de Base de Datos 5
Organización de Archivos
RIF Nombre Región Ciudad Dirección telefono email
9 80 20 30 250 50 50
6. • Ejercicio (continuación)
2. Si el archivo Proveedor está ordenado por RIF
3. Calcule el tamaño en bloques de un índice sobre RIF.
a) Denso
b) Disperso
c) Disperso de 2 niveles
2. Si el archivo está ordenado por ciudades indique que
tipo de índices se pueden crear sobre este, para
cualquier atributo. (primario, agrupado o secundario)
Marzo 2012 Administración de Base de Datos 6
Organización de Archivos
7. • El costo de buscar una clave en un índice secuencial
ordenado es una búsqueda binaria
• Log2(TA(Indice))
9. • Son arboles de búsqueda balanceados
• La profundidad de cada subarbol difiere en +-1
• Un recorrido en profundidad inorden da los elementos
ordenados.
Marzo 2012 Administración de Base de Datos 9
Organización indexada
Arboles B y B+
10. • Cada nodo ocupa una página de disco y tiene la
siguiente estructura.
K1<K2< ….Km-1
• Se puede ver como un índice multinivel, donde cada
nodo es un subíndice
• El orden del árbol será el numero de apuntadores
que pueda tener cada nodo
• Si tenemos m apuntadores P y (m-1) claves K las cuales
ocupan un bloque de tamaño B entonces
Marzo 2012 Administración de Base de Datos 10
Organización indexada
Arboles B y B+
P1 K1 P2 K2 ……. Km-
1
Pm
P.m + K(m-1) = B m = (B+K)
(P+K)
11. • Cada nodo, excepto la raiz debe estar lleno al menos
hasta la mitad (m/2).
• La altura del árbol depende de su orden
• Altura mínima:
• Altura máxima:
• n es el numero total de valores distintos de K
Marzo 2012 Administración de Base de Datos 11
Organización indexada
Arboles B y B+
12. • Árbol B+
• Variación del Árbol B
• Solo las hojas apuntan a los datos
Marzo 2012 Administración de Base de Datos 12
Organización indexada
Arboles B y B+
13. • Árbol B
• Cada celda apunta al archivo de datos.
• La cantidad de accesos para localizar un valor de K es al
menos uno y a lo sumo la altura del árbol.
Marzo 2012 Administración de Base de Datos 13
Organización indexada
Arboles B y B+
14. • Árbol B
Marzo 2012 Administración de Base de Datos 14
Organización indexada
Arboles B y B+
P1 K1 P2 K2 ……. Km-
1
Pm
……. …….
K<K1
…….
K1<K<K2 K>Km-1
Apuntador al archivo de datos
15. • Árbol B+
Marzo 2012 Administración de Base de Datos 15
Organización indexada
Arboles B y B+
P1 K1 P2 K2 ……. Km-
1
Pm
1 2 ……. 5 6 7 ……. 10
K<K1
11 12 ……. 15
K1<=K<K2 K>Km-1
Apuntador al archivo de datos
16. • Los árboles B+ son más fáciles de mantener que los
árboles B.
• Son los tipos de índice por defecto en las BD
• Los árboles B son usados para almacenar datos tipo
CLOB o BLOB
Marzo 2012 Administración de Base de Datos 16
Organización indexada
Arboles B y B+
17. • Ejercicio
• Dado el mismo archivo de datos para Proveedor del
ejercicio anterior
1. Calcule la altura máxima de un índice B+ sobre RIF.
2. Calcule la altura media de un índice sobre nombre.
El costo de buscar con un índice B+ es la altura del árbol +
el acceso a los datos
Marzo 2012 Administración de Base de Datos 17
Organización de Archivos
18. • Índices Bitmap
• Índice especial que usa arreglos de bits
• 01000111101011
• Para crear un índice bitmap sobre un campo se crean
arreglos de bits por cada valor diferente y se coloca 1
en la posición del registro que cumple dicho valor
• Cada bit corresponde a un row id.
Marzo 2012 Administración de Base de Datos 18
Organización indexada
19. • Índice Bitmap
• Índice bitmap sobre sexo
Marzo 2012 Administración de Base de Datos 19
Organización indexada
Id Apellido Región Género Bitmaps
F M
1 PEREZ NORTE F 1 0
2 GARCIA CENTRO M 0 1
3 LOPEZ SUR M 0 1
4 MARTIN SUR Null 0 0
5 BROWN CENTRO F 1 0
6 CANEPA NORTE M 0 1
20. • Índices Bitmap
• Índice bitmap sobre región
Marzo 2012 Administración de Base de Datos 20
Organización indexada
Id Apellido Región Géne-
ro
Bitmap
NORTE CENTRO SUR
1 PEREZ NORTE F 1 0 0
2 GARCIA CENTRO M 0 1 0
3 LOPEZ SUR M 0 0 1
4 MARTIN SUR Null 0 0 1
5 BROWN CENTRO F 0 1 0
6 CANEPA NORTE M 1 0 0
21. • Índices Bitmap (búsquedas)
• Clientes femeninos de región centro
• AND entre los bitmaps F y Centro
• Clientes masculinos de la región norte o sur
• (M AND Norte) OR (M AND Sur)
Marzo 2012 Administración de Base de Datos 21
Organización indexada
Id Apellido Región Géne-
ro
Bitmaps
F M NORTE CENTRO SUR
1 PEREZ NORTE F 1 0 1 0 0
2 GARCIA CENTRO M 0 1 0 1 0
3 LOPEZ SUR M 0 1 0 0 1
4 MARTIN SUR Null 0 0 0 0 1
5 BROWN CENTRO F 1 0 0 1 0
6 CANEPA NORTE M 0 1 1 0 0
22. • Cuando usar índices bitmaps
• Tablas muy grandes (millones de registros)
• Con columnas que tienen baja cardinalidad (pocos
valores diferentes)
• Consulta con combinaciones de AND y OR en la clausula
WHERE
• Las columnas clave de los índices son de solo lectura o se
actualizan muy poco
Marzo 2012 Administración de Base de Datos 22
Organización indexada
23. Organización indexada
Marzo 2012 Administración de Base de Datos 23
• Creación de índices en SQL
• create [<tipo_indice>] index <nombre_indice> on <nombre_tabla>
(<lista-atributos>)
• El tipo_indice depende del SMBD los más comunes son
• Hash
• Bitmap
• Unique
• Si no se indica, el tipo del índice creado es del tipo árbol B+
24. Organización indexada
Marzo 2012 Administración de Base de Datos 24
• Vías de acceso
• Exploración: leer todos los registros del archivo.
• Búsqueda con selección de igualdad: Localizar las páginas donde están los
registros y cargarlas en memoria principal
• Búsqueda por selección de rango: Igual al anterior
• Insertar un registro: Identificar la página donde se va a insertar el registro, leerla,
modificarla y guardarla de nuevo.
• Borrar un registro: Buscar el registro a borrar y marcarlo como borrado.
• Actualizar un registro: Buscar el registro a actualizar, leer la página, modificarla y
guardarla de nuevo
25. Organización indexada
• Vías de acceso
• Exploración: No hace falta usar el índice a menos que se pida ordenado.
• Búsqueda con selección de igualdad: Se busca sobre el índice y se va al
archivo de datos
• Búsqueda por selección de rango: Igual al anterior
• Insertar un registro: Actualizar el archivo de datos y el índice.
• Borrar un registro: Buscar la clave a borrar y operar sobre el registro
• Actualizar un registro: Buscar la clave en el índice y operar sobre el
registro
Marzo 2012 Administración de Base de Datos 25
27. Administración de Base de datos
Manejo de memoria III
Profesora: Mercy Ospina
Mercy.ospinat@gmail.com
UNIVERSIDAD CENTRAL DE VENEZUELA
FACULTAD DE CIENCIAS
ESCUELA DE COMPUTACIÓN