Anda di halaman 1dari 24

Universidad de Carabobo

Facultad Experimental de Ciencias y Tecnología


Departamento de Computación
Bases de Datos

Integrantes:
Herrera, Manuel C.I. 17.171.090
Balladares, Edgar C.I. 17.631.176

ESTRUCTURAS DE ARBOLES
Y HASHING

Agenda:
AGENDA
1.Estructuras de Árboles
ARBOLES

HASHING
1.1 Idea Intuitiva de Índices
Multinivel
1.2 Método de Acceso Secuencial
Indexado (ISAM)
1.3 Arboles B+: Una estructura
dinámica de datos
1.4 Búsqueda en Arboles
1.5 Inserción en Arboles
1.6 Eliminación en Arboles
1.7 Duplicados en Arboles
18 Arboles B+ en Práctica
ESTRUCTURAS DE ARBOLES
Y HASHING

AGENDA Agenda:

ARBOLES 2.Hashing
HASHING
2.1 Hashing Estático
2.2 Hashing Extensible
2.3 Hashing Lineal
2.4 Hashing Lineal vs. Hashing
Extensible

ESTRUCTURAS DE ARBOLES
Y HASHING

ARBOLES

• Idea Intuitiva
• Método ISAM
• Árboles B+
• Búsqueda
• Inserción
• Eliminación
• Duplicados
• Árboles B+ en
Práctica
ESTRUCTURAS DE ARBOLES
Y HASHING

ÍNDICES MULTINIVEL

ARBOLES ‰ ¿En qué consiste la estructura de


índices multinivel?
• Idea Intuitiva
• Método ISAM
P0 K1 P1 K2 P2 ……… Km Pm
• Árboles B+
• Búsqueda Formato de una página de índices
• Inserción
• Eliminación k1 k2 kN
• Duplicados
• Árboles B+ en
Práctica Pág 1 Pág 2 Pág 3 Pág N

Estructura de un solo nivel

ESTRUCTURAS DE ARBOLES
Y HASHING

ÍNDICES MULTINIVEL

ARBOLES ‰ ¿En qué consiste la estructura de


índices multinivel?
• Idea Intuitiva
• Método ISAM 9 Separar los índices de referencia en un
• Árboles B+ archivo y los datos en otro
• Búsqueda
9 Repetir hasta lograr que los índices
• Inserción
ocupen una sola página
• Eliminación
• Duplicados 9 Reducir los tiempos de búsqueda
• Árboles B+ en
¾ ¿Qué pasa con la inserción y
Práctica
eliminación de datos?
ESTRUCTURAS DE ARBOLES
Y HASHING

ÍNDICES MULTINIVEL

ARBOLES ‰ Índices Tipo Árbol


• Idea Intuitiva
• Método ISAM • Estático
• Árboles B+
+ Acceso Secuencial Indexado
• Búsqueda
(ISAM)
• Inserción
• Eliminación
• Duplicados • Dinámico
• Árboles B+ en + Árboles B+
Práctica

ESTRUCTURAS DE ARBOLES
Y HASHING

MÉTODO DE ACCESO SECUENCIAL


INDEXADO (ISAM)
ARBOLES
‰ Organización de la estructura de
• Idea Intuitiva datos (ISAM)
• Método ISAM Non-leaf
• Árboles B+ pages
• Búsqueda …...
• Inserción
…... …...
• Eliminación
• Duplicados
• Árboles B+ en
Práctica
Primary pages
Overflow
ESTRUCTURAS DE ARBOLES
Y HASHING

MÉTODO DE ACCESO SECUENCIAL


INDEXADO (ISAM)
ARBOLES
‰ Organización de la estructura de
• Idea Intuitiva datos (ISAM)
• Método ISAM
o Cada nodo del árbol es una página de
• Árboles B+
referencia a disco, y todos los datos
• Búsqueda
residen en los nodos hoja.
• Inserción
• Eliminación o Cuando se crea el archivo, todos los datos
• Duplicados ubicados en los nodos hoja son ordenados
• Árboles B+ en secuencialmente de acuerdo al valor clave
Práctica de búsqueda. Luego, se asignan las páginas
del nivel de nodos no-hoja.

ESTRUCTURAS DE ARBOLES
Y HASHING

MÉTODO DE ACCESO SECUENCIAL


INDEXADO (ISAM)
ARBOLES
‰ Organización de la estructura de
• Idea Intuitiva datos (ISAM)
• Método ISAM
o Luego de creada la estructura, si se realizan
• Árboles B+
muchas inserciones y se sobrepasa la
• Búsqueda
capacidad del árbol, será necesaria la
• Inserción
creación de páginas adicionales en un área
• Eliminación
de sobrecarga (overflow). [Esto se debe a
• Duplicados
que la estructura de índices en el método
• Árboles B+ en
ISAM es estática]
Práctica
ESTRUCTURAS DE ARBOLES
Y HASHING

MÉTODO DE ACCESO SECUENCIAL


INDEXADO (ISAM)
ARBOLES
‰ Organización de la estructura de
• Idea Intuitiva datos (ISAM)
• Método ISAM
o Operaciones básicas en la estructura ISAM
• Árboles B+
• Búsqueda
ƒ Inserción
• Inserción
ƒ Eliminación
• Eliminación
ƒ Búsqueda
• Duplicados
• Árboles B+ en
Práctica

ESTRUCTURAS DE ARBOLES
Y HASHING

MÉTODO DE ACCESO SECUENCIAL


INDEXADO (ISAM)
ARBOLES
‰ Veamos un ejemplo…
• Idea Intuitiva
• Método ISAM
• Árboles B+
• Búsqueda
• Inserción
• Eliminación
• Duplicados
• Árboles B+ en
Práctica
ESTRUCTURAS DE ARBOLES
Y HASHING

MÉTODO DE ACCESO SECUENCIAL


INDEXADO (ISAM)
ARBOLES
‰ Veamos un ejemplo…
• Idea Intuitiva
• Método ISAM
• Árboles B+
• Búsqueda
• Inserción
• Eliminación
• Duplicados
• Árboles B+ en
Práctica

ESTRUCTURAS DE ARBOLES
Y HASHING

MÉTODO DE ACCESO SECUENCIAL


INDEXADO (ISAM)
ARBOLES
‰ Consideraciones del Método ISAM
• Idea Intuitiva o Una vez se ha creado el archivo ISAM, las
• Método ISAM inserciones y eliminaciones solo afectan el
• Árboles B+ contenido de los nodos hoja.
• Búsqueda
• Inserción Desventajas:
• Eliminación Cadenas de sobrecarga muy largas
• Duplicados
• Árboles B+ en Ventajas:
Práctica 9 Control de concurrecncia
ESTRUCTURAS DE ARBOLES
Y HASHING

ESTRUCTURA DINÁMICA:
ÁRBOLES B+
ARBOLES
‰ ¿Qué es un Árbol B+?
• Idea Intuitiva o Árbol balanceado en el cual los nodos
• Método ISAM internos dirigen la búsqueda, y los nodos
• Árboles B+ “hoja” contienen las entradas de datos.
• Búsqueda o Para acceder a todos los nodos hoja de
• Inserción manera eficiente, se enlazan utilizando
• Eliminación apuntadores.
• Duplicados
• Árboles B+ en o Se organizan los datos en una lista
Práctica doblemente enlazada, de manera que se
mantenga el acceso secuencial en cualquier
dirección

ESTRUCTURAS DE ARBOLES
Y HASHING

ESTRUCTURA DINÁMICA:
ÁRBOLES B+
ARBOLES
‰ Estructura de un Árbol B+
• Idea Intuitiva
• Método ISAM Entradas de
• Árboles B+ índices
(para dirigir la
• Búsqueda búsqueda)
• Inserción
• Eliminación
• Duplicados
• Árboles B+ en
Práctica Entradas de
Datos
(“Conjunto de
secuencias”)
ESTRUCTURAS DE ARBOLES
Y HASHING

ESTRUCTURA DINÁMICA:
ÁRBOLES B+
ARBOLES
‰ Principales Características de un
• Idea Intuitiva Árbol B+
• Método ISAM o Operaciones básicas (inserción, eliminación),
• Árboles B+ mantienen el árbol balanceado.
• Búsqueda
• Inserción o La búsqueda de un registro requiere solo un
• Eliminación recorrido trasversal desde la raíz a el nodo
• Duplicados hoja apropiado.
• Árboles B+ en
Práctica o Cada nodo (a excepción de la raíz) tendrá
una ocupación mínima del 50% (en espacio).

ESTRUCTURAS DE ARBOLES
Y HASHING

ESTRUCTURA DINÁMICA:
ÁRBOLES B+
ARBOLES
‰ Formato de un Nodo
• Idea Intuitiva ™ Generalmente, un árbol B+ contiene m
• Método ISAM entradas, en donde d ≤ m ≤ 2d. Siendo d el
• Árboles B+ “orden del árbol”, lo que es una medida de
• Búsqueda capacidad de los nodos.
• Inserción
• Eliminación ™ El formato de un nodo es el mismo que el
• Duplicados usado en el método ISAM. Los nodos no-hoja
• Árboles B+ en con m entradas de índices contienen m+1
Práctica punteros a sus hijos.
ESTRUCTURAS DE ARBOLES
Y HASHING

ESTRUCTURA DINÁMICA:
ÁRBOLES B+
ARBOLES
‰ Formato de un Nodo
• Idea Intuitiva
• Método ISAM P0 K1 P1 K2 P2 ……… Km Pm
• Árboles B+
• Búsqueda
• Inserción Ki son los valores de claves de búsqueda
• Eliminación
• Duplicados Pi son punteros a los hijos para nodos no
• Árboles B+ en hoja o punteros a registros, o cajones de
Práctica punteros a registros para nodos hojas.

ESTRUCTURAS DE ARBOLES
Y HASHING

ESTRUCTURA DINÁMICA:
ÁRBOLES B+
ARBOLES
‰ Ahora, un ejemplo…
• Idea Intuitiva
• Método ISAM
• Árboles B+
• Búsqueda
• Inserción
• Eliminación
• Duplicados
• Árboles B+ en
Práctica
ESTRUCTURAS DE ARBOLES
Y HASHING

ESTRUCTURA DINÁMICA:
ÁRBOLES B+
ARBOLES
‰ Algoritmo de Búsqueda
• Idea Intuitiva
• Método ISAM
• Árboles B+
• Búsqueda
• Inserción
• Eliminación
• Duplicados
• Árboles B+ en
Práctica

ESTRUCTURAS DE ARBOLES
Y HASHING

ESTRUCTURA DINÁMICA:
ÁRBOLES B+
ARBOLES
‰ Inserción en Árboles B+
• Idea Intuitiva ™ El algoritmo de inserción toma una entrada,
• Método ISAM encuentra el nodo hoja al cual pertenece y lo
• Árboles B+ inserta allí.
• Búsqueda
• Inserció
Inserción ™ Usualmente, este proceso resulta en bajar
• Eliminación (de manera recursiva) hasta el nodo hoja al
• Duplicados cual pertenece la nueva entrada, ubicar la
• Árboles B+ en entrada, y luego retornar hasta la raíz.
Práctica
™ ¿Qué pasa cuando un nodo está lleno?
ESTRUCTURAS DE ARBOLES
Y HASHING

ESTRUCTURA DINÁMICA:
ÁRBOLES B+
ARBOLES
‰ Inserción en Árboles B+
• Idea Intuitiva
• Método ISAM
• Árboles B+
• Búsqueda ™ Veamos el Algoritmo!
• Inserció
Inserción
• Eliminación
• Duplicados
• Árboles B+ en
Práctica

ESTRUCTURAS DE ARBOLES
Y HASHING

ESTRUCTURA DINÁMICA:
ÁRBOLES B+
ARBOLES
‰ Inserción en Árboles B+
• Idea Intuitiva ™ Un ejemplo… Volvamos al árbol de ejemplo
• Método ISAM anterior
• Árboles B+
• Búsqueda
• Inserció
Inserción
• Eliminación
• Duplicados
• Árboles B+ en
Práctica
ESTRUCTURAS DE ARBOLES
Y HASHING

ESTRUCTURA DINÁMICA:
ÁRBOLES B+
ARBOLES
‰ Eliminación en Árboles B+
• Idea Intuitiva ™ Se inicia en la raíz, se busca la hoja en
• Método ISAM donde se encuentra la entrada a borrar.
• Árboles B+
• Búsqueda ™ Se elimina la entrada
• Inserción
• Eliminació
Eliminación ™ Si al eliminar una entrada el nodo queda por
• Duplicados debajo del nº mínimo de elementos, se
• Árboles B+ en redistribuyen los elementos restantes, de
Práctica manera que el árbol se mantenga
balanceado.

ESTRUCTURAS DE ARBOLES
Y HASHING

ESTRUCTURA DINÁMICA:
ÁRBOLES B+
ARBOLES
‰ Eliminación en Árboles B+
• Idea Intuitiva
• Método ISAM
• Árboles B+
• Búsqueda ™ Algoritmo de eliminación…
• Inserción
• Eliminació
Eliminación
• Duplicados
• Árboles B+ en
Práctica
ESTRUCTURAS DE ARBOLES
Y HASHING

ESTRUCTURA DINÁMICA:
ÁRBOLES B+
ARBOLES
‰ Eliminación en Árboles B+
• Idea Intuitiva ™ Ejemplo…
• Método ISAM
• Árboles B+
• Búsqueda
• Inserción
• Eliminació
Eliminación
• Duplicados
• Árboles B+ en
Práctica

ESTRUCTURAS DE ARBOLES
Y HASHING

ESTRUCTURA DINÁMICA:
ÁRBOLES B+
ARBOLES
‰ Elementos Duplicados
• Idea Intuitiva ™ ¿Qué ocurre si tenemos elementos
• Método ISAM duplicados en el árbol?
• Árboles B+
• Búsqueda ™ Una alternativa sería usar nodos de
• Inserción sobrecarga (como en el método ISAM).
• Eliminación
• Duplicados ™ Otra alternativa resulta tratar los duplicados
• Árboles B+ en como cualquier otro elemento. De tal modo
Práctica que pueden haber páginas que contengan
más de una vez a algún elemento que esté
repetido
ESTRUCTURAS DE ARBOLES
Y HASHING

ESTRUCTURA DINÁMICA:
ÁRBOLES B+
ARBOLES
‰ Bulk Loading
• Idea Intuitiva ™ La aplicación de Árboles B+ para manejar los
• Método ISAM registros de una base de datos incluye otros
• Árboles B+ conceptos, uno de ellos es el Bulk Loading…
• Búsqueda
• Inserción ™ El Bulk Loading es un método para crear
• Eliminación árboles de datos cuando la colección de
• Duplicados registros es bastante grande, ya que insertar
• Árboles B+ uno a uno los registros usando el algoritmo
en Prá
Práctica de inserción resultaría ser muy costoso.

ESTRUCTURAS DE ARBOLES
Y HASHING

ESTRUCTURA DINÁMICA:
ÁRBOLES B+
ARBOLES
‰ Bulk Loading
• Idea Intuitiva ™ El primer paso de la aplicación del Bulk
• Método ISAM Loading es ordenar los registros a ser insertados
• Árboles B+ en el árbol que será creado. Un ejemplo:
• Búsqueda
• Inserción
• Eliminación
• Duplicados
• Árboles B+
en Prá
Práctica
ESTRUCTURAS DE ARBOLES
Y HASHING

ESTRUCTURA DINÁMICA:
ÁRBOLES B+
ARBOLES
‰ Bulk Loading
• Idea Intuitiva ™ Ejemplo de Bulk Loading…
• Método ISAM
• Árboles B+
• Búsqueda
• Inserción
• Eliminación
• Duplicados
• Árboles B+
en Prá
Práctica

ESTRUCTURAS DE ARBOLES
Y HASHING

ESTRUCTURA DINÁMICA:
ÁRBOLES B+
ARBOLES
‰ Bulk Loading
• Idea Intuitiva ™ Bulk Loading vs. Inserción Múltiple
• Método ISAM ¾ Inserción Múltiple
• Árboles B+ • Lento
• Búsqueda • No permite almacenamiento secuencial de
hojas
• Inserción
• Eliminación
¾ Bulk Loading
• Duplicados • Ventajas sobre el control de concurrencia
• Árboles B+ • Pocas operaciones de I/O durante la
en Prá
Práctica construcción
• Las hojas se almacenan de manera
secuencial
ESTRUCTURAS DE ARBOLES
Y HASHING

ESTRUCTURA DINÁMICA:
ÁRBOLES B+
ARBOLES
‰ Árboles B+ en DBMS Reales
• Idea Intuitiva ™ IBM DB2, Informix, Microsoft SQL Server,
• Método ISAM Oracle 8 y Sybase ASE, entre otros, soportan la
• Árboles B+ creación de árboles B+ para el manejo de
• Búsqueda índices.
• Inserción
• Eliminación ™ La diferencia entre los mismos radica en la
• Duplicados manera de manejar las eliminaciones y los
• Árboles B+ duplicados.
en Prá
Práctica

ESTRUCTURAS DE ARBOLES
Y HASHING

ESTRUCTURA DINÁMICA:
ÁRBOLES B+
ARBOLES
‰ Árboles B+ en DBMS Reales
• Idea Intuitiva ™ Por ejemplo, en Oracle 8 las eliminaciones se
• Método ISAM realizan marcando la fila como borrada, para
• Árboles B+ reutilizar el espacio liberado se pueden
• Búsqueda reconstruir los índices.
• Inserción
• Eliminación DB2 y SQL Server eliminan los registros y
• Duplicados reubican los índices restantes cuando se
• Árboles B+ desbalancea el árbol.
en Prá
Práctica
ESTRUCTURAS DE ARBOLES
Y HASHING

HASHING

• Estático
• Extensible
• Lineal
• Extensible vs.
Lineal

ESTRUCTURAS DE ARBOLES
Y HASHING

Hashing
• Los índices tipo Hash son mejores para búsquedas por
HASHING igualdad y no soportan búsquedas por rango.

• Existen técnicas hash estáticas y dinámicas como en


• Está
Estático los árboles ISAM y B+.
• Extensible
• Lineal • El hashing se puede usar no solo para la organización de
• Extensible vs. archivos, sino también para la creación de la estructura de
Lineal índices.

• Un índice hash organiza claves de búsqueda, con sus punteros


a registros asociados, dentro de una estructura de archivo de
hash.

•Las inserciones y borrados requieren más de una operación.


ESTRUCTURAS DE ARBOLES
Y HASHING

h(k) mod M = cubo al que pertenece una entrada


de dato con llave k. (M= # de cubos)
HASHING

• Está
Estático
• Extensible
• Lineal
• Extensible vs.
Lineal

ESTRUCTURAS DE ARBOLES
Y HASHING

• Los cubos contienen entradas de datos.

HASHING •La función hash se aplica al valor de la llave de búsqueda del


campo de un registro r.
• Está
Estático
• Extensible • Muchas páginas overflow encadenadas pueden degradar el
• Lineal rendimiento. Para corregir este problema se usa el hashing
• Extensible vs. extensible y el hashing lineal.
Lineal
• La función de hash es utilizada para localizar registros para su
acceso, inserción y borrado.

• Registros con diferentes valores de claves de búsqueda


pueden ser mapeados al mismo cajón, de esta forma una vez
accedido el cajón se debe hacer una búsqueda secuencial
para encontrar el registro.
ESTRUCTURAS DE ARBOLES
Y HASHING

Deficiencias

• En el hashing estático, la función h mapea los valores de clave


HASHING de búsqueda a un conjunto fijo B de cajones.

• Está
Estático • Las bases de datos crecen con el tiempo. Si el número inicial
• Extensible de cajones es demasiado chico, la performance se degradará
• Lineal porque abra demasiados cajones de desbordamiento.
• Extensible vs.
• Si el tamaño del archivo va ser grande en un futuro, se pueden
Lineal
tener un gran numero de cajones, pero así se estará
desperdiciando espacio al principio.

ESTRUCTURAS DE ARBOLES
Y HASHING

Deficiencias

• Si la base de datos se achica, nuevamente se estará


HASHING gastando espacio.

• Está
Estático • Una opción es reorganizar periódicamente el archivo con
• Extensible una nueva función de hash, pero esto es muy caro.
• Lineal
• Extensible vs. • Este problema puede ser evitado utilizando técnicas que
permitan que el numero de cajones sean modificados
Lineal
dinámicamente.
ESTRUCTURAS DE ARBOLES
Y HASHING

Hashing Extensible

• Técnica de indexación que evita los recorridos secuenciales


HASHING y las áreas de saturación separadas.

• Estático • Utiliza un directorio de punteros a los buckets y aumenta el


• Extensible tamaño del bucket a través de doblar el directorio y dividiendo
• Lineal solamente el bucket al que se le presenta el overflow
• Extensible vs.
• Una entrada de datos se puede localizar al computar su valor
Lineal
de hash tomando los ultimos D bits y buscando el bucket al q
pertenece .

ESTRUCTURAS DE ARBOLES
Y HASHING

Hashing Extensible

• El bucket se divide si es necesario tener mas espacio para


HASHING insertar data.

• Estático • El valor D depende del tamaño del directorio , ese numero


• Extensible D es llamado “la profundidad global del archivo hasheado”.
• Lineal
• Extensible vs. •D es mantenido como la parte de la cabecera del archivo y
Lineal es usado siempre que tenemos que localizar una entrada
de datos.
ESTRUCTURAS DE ARBOLES
Y HASHING

Hashing Lineal

• Esquema de índices asociativos dinámicos inventado por


HASHING Witold Litwin y publicado en una convención mundial de bases
de datos en 1980.
• Estático
• Extensible • Este representa una alternativa mejor al hash extensible.
• Lineal
• De hecho no existe un algoritmo que supere su desempeño.
• Extensible vs.
Lineal

ESTRUCTURAS DE ARBOLES
Y HASHING

Elementos del Hashing Lineal

HASHING • M es el número de buckets primarios en el archivo.

• Estático •Split pointer (n) controla cuál bucket es el siguiente en


desdoblarse.
• Extensible
• Lineal •Política de desdoblamiento que especifica la condición
• Extensible vs. que dispara el desdoblamiento del bucket señalado por el
Lineal split pointer (generalmente un porcentaje de carga de los
buckets).
ESTRUCTURAS DE ARBOLES
Y HASHING

Elementos del Hashing Lineal

HASHING • Cada vez que el archivo que almacena la tabla de hash


duplica su tamaño se dice que ocurre una expansión
• Estático completa, en cuyo caso el split pointer se retorna
• Extensible a su condición inicial (0).
• Lineal
• Extensible vs. •También se debe definir una política de resolución de
colisiones (CHP), que puede ser de encadenamiento
Lineal
(trabajando con overflows), o no permitir el
encadenamiento y aumentar el directorio cada vez que
ocurre una colisión

ESTRUCTURAS DE ARBOLES
Y HASHING

Características del Hashing Lineal

HASHING • Éste enfoque maneja el problema de muchas páginas


de overflow encadenadas sin usar un directorio.
• Estático • Maneja bien valores duplicados.
• Extensible
• Lineal • En éste modelo el espacio de direcciones crece y decrece
• Extensible vs. dinámicamente según sea necesario.
Lineal
• Puede soportar cualquier número de inserciones y eliminaciones
sin sufrir deterioro en su desempeño de acceso o espacio en
memoria.
ESTRUCTURAS DE ARBOLES
Y HASHING

Características del Hashing Lineal

HASHING • En general, un registro puede ser encontrado con un solo


acceso con una política de carga >0.9. para una política
>0.8 la media es de 1.7 accesos.
• Estático
• Extensible • Debe haber un equilibrio entre la cantidad de accesos y la
• Lineal política de carga porque una política muy estricta con una
• Extensible vs. función hash regular puede producir un exceso de
Lineal overflows y aumentar la cantidad de accesos para
encontrar un registro.

ESTRUCTURAS DE ARBOLES
Y HASHING

Hashing Extensible Vs Hashing Lineal

• La idea del hashing lineal es q se pueda evitar el uso de un


HASHING directorio por medio de una opción inteligente para la división del
bucket. Pero por otro lado, para siempre dividir el bucket
• Estático apropiado el Hashing extensible puede generar un numero de
• Extensible divisiones reducido y una ocupación de bucket mas alta.
• Lineal
• Extensible •El Hashing lineal trabaja naturalmente con colisiones y ofrece
mucha flexibilidad con respecto a la división de los bucket.
vs. Lineal
•Si la distribución de la data esta muy sesgada las cadenas de
overflow puede causar q la performance del hashing lineal sea
peor que la del hashing extensible.

Anda mungkin juga menyukai