Está en la página 1de 36

Fundamentos de Organizacin de

1
Datos
Clase 6

UNLP - Facultad
FOD - CLASE 6
de Informtica
2 Agenda

Binarios
AVL
Arboles
Multicamino
Balanceados
Caractersticas
Arboles B, B*, B+
Balanceados Operaciones
Prefijos simples
UNLP - Facultad
FOD - CLASE 6
de Informtica
3 Arboles introduccin

Problemas con los ndices?


La bsqueda binaria aun es costosa
Mantener los ndices ordenados es costoso
Solucin RAM
Objetivo persistencia de datos

rboles
Estructuras de datos que permiten localizar en forma ms
rpida informacin de un archivo, tienen intrnsecamente
bsqueda binaria
UNLP - Facultad
FOD - CLASE 6
de Informtica
4 Arboles binarios

Que es un rbol binario?


Estructuras de datos donde cada nodo tiene dos
sucesores, a izquierda y a derecha
Un rbol binario, puede implantarse en disco?
Como lograr la persistencia?

Ejemplo supongamos estas claves


MM ST GT PR JF BC UV CD HI AB KL TR OP RX ZR
UNLP - Facultad
FOD - CLASE 6
de Informtica
5 Arboles binarios
Raz 0
Hijo Hijo
Clave Hijo Clave Hijo
izq Der izq Der

0 MM 1 2 8 PR 9 10
MM

1 GT 3 4 9 OP -1 -1

GT ST
2 ST 8 11 10 RX -1 -1

BC JF PR UV
3 BC 5 6 11 UV 12 13

AB CD HI KL OP RX TR ZR 4 JF 7 14 12 TR -1 -1

5 AB -1 -1 13 ZR -1 -1

6 CD -1 -1 14 KL -1 -1

7 HI -1 -1

UNLP - Facultad
FOD - CLASE 6
de Informtica
6 Arboles binarios
rbol balanceado: un rbol est balanceado cuando la altura de la trayectoria
ms corta hacia una hoja no difiere de la altura de la trayectoria ms grande.

Inconveniente de los binarios: se desbalancean fcilmente.

Supongamos que llegan las claves : NI OC NR OA NZ

MM

GT ST

BC JF PR UV

AB CD HI KL OP RX TR ZR

NI

OC

NR

OA

NZ
UNLP - Facultad
FOD - CLASE 6
de Informtica
7 rboles AVL

rboles AVL
rbol binario balanceado en altura (BA(1)) en el que las
inserciones y eliminaciones se efectan con un mnimo de
accesos.
rbol balanceado en altura:
Para cada nodo existe un lmite en la diferencia que se
permite entre las alturas de cualquiera de los subrboles
del nodo (BA(k)), donde k es el nivel de balance)
Ejemplos:

UNLP - Facultad
FOD - CLASE 6
de Informtica
8 Arboles AVL y Binarios

Caractersticas/Conclusiones
Estructura que debe ser respetada
Mantener rbol, rotaciones restringidas a un
rea local del rbol
Binario: Bsqueda: Log2(N+1)
AVL: Bsqueda: 1.44 log2(N+2)
Ambas performance por el peor caso posible
UNLP - Facultad
FOD - CLASE 6
de Informtica
9 rboles Binarios Paginados
rboles binarios paginados
Problemas de almacenamiento secundario,
buffering, pginas de memoria, varios registros
individuales, minimiza el nmero de accesos
Problema: construccin descendente, como se
elige la raz?, cmo va construyendo balanceado?
8

8 8

8 8 8 8

8 8 8 8 8 8 8 8

8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
UNLP - Facultad
FOD - CLASE 6
de Informtica
8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
10 rboles multicamino
Generalizacin de rboles binarios, c/nodo tiene k punteros
y k-1 claves (o registros), disminuye la profundidad del rbol,
Orden del rbol.

E1 E2 E3 E4 E5 E6 E7

34 95

10 30 60 76 99

15 40 85 90

UNLP - Facultad
FOD - CLASE 6
de Informtica
11 Arboles balanceados B

Son rboles multicamino con una construccin especial en forma


ascendente que permite mantenerlo balanceado a bajo costo.

Propiedades de un rbol B de orden M:

Ningn nodo tiene ms de M hijos


C/nodo (menos raz y los terminales) tienen como mnimo [M/2] hijos
La raz tiene como mnimo 2 hijos (o sino ninguno)
Todos los nodos terminales a igual nivel
Nodos no terminales con K hijos contienen K-1 registros. Los nodos terminales tienen:
Mnimo [M/2] 1 registros
Mximo M 1 registros

PO R1 P1 R2 P2 R3 P3 R4 P4 R5 P5 Nro de registros
UNLP - Facultad
FOD - CLASE 6
de Informtica
12 Arboles Balanceados
Formato del nodo

... ...

Hijos (M celdas) Datos ( M -1 celdas) Nro de Registros

Formato del Nodo para archivo del ndice arbol b

P0 Dato 1 P1 Dato 2 P2 .. PM-2 Dato M-2 PM-1 Dato M-1 PM

Formato Grfico del Nodo del ndice arbol B UNLP - Facultad


FOD - CLASE 6
de Informtica
13 Arboles balanceados

rbol B Orden 4 - Creacin:


Dadas las claves: 43 2 53 88
75 80 15 49 60 20 57 24
Como se construye el rbol?
UNLP - Facultad
FOD - CLASE 6
de Informtica
14 Arboles Balanceados
Nodo Raiz: 7
Punteros Datos Nro Datos
0 -1 -1 -1 2 15 2
1 -1 -1 -1 -1 57 60 75 3
2 0 5 3 20 43 2
3 -1 -1 49 1
4 -1 -1 88 1
5 -1 -1 24 1
6 1 4 80 1
7 2 6 53 1

UNLP - Facultad
FOD - CLASE 6
de Informtica
15 rboles Balanceados
Bsqueda de informacin:
Busca la llave en el
nodo raiz

localiza la Fin de
Si
llave? proceso

Cuando el elemento
no buscado es mayor que
todas los elementos del
toma el puntero nodo, se sigue el ltimo
anterior a la llave puntero.
mayor

No esta el
no Puntero nulo? Si UNLP - Facultad
FOD - CLASE 6 elemento de Informtica
16 Arboles Balanceados

Performance de bsqueda
Mejor caso: 1 lectura.
Pero caso: h lecturas (con h altura
del rbol).

UNLP - Facultad
FOD - CLASE 6
de Informtica
17 rboles Balanceados

Cota Nivel # mnimo de descendientes

para
1 2
2 2 * [M/2]

h
3 2 * [M/2] * [M/2]
.
h 2 * [M/2]h-1
Relacin entre h y # de nodos
N+1 >= 2 * [M/2]h-1
h <= [ 1 + log[M/2] ((N+1)/2) ]
Si M = 512 y N = 1000000 h <= 3.37 (4 lecturas encuentra un registro)

UNLP - Facultad
FOD - CLASE 6
de Informtica
18 rboles Balanceados

Insercin (creacin)
Los registros se insertan en un nodo Terminal
Casos posibles
El registro tiene lugar en el nodo Terminal (no se produce
overflow): solo se hacen reacomodaminetos internos en
el nodo
El registro no tiene lugar en el nodo Terminal (se produce
overflow): el nodo se divide y los elementos se reparten
entre los nodos, hay una promocin al nivel superior, y
esta puede propagarse y generar una nueva raz.
UNLP - Facultad
FOD - CLASE 6
de Informtica
19 rboles Balanceados

Performance de la insercin
Mejor caso (sin overflow)
H lecturas
1 escritura
Peor caso (overflow hasta la raz, aumenta en uno el
nivel del rbol)
H lecturas
2H+1 escrituras (dos por nivel ms la raz)
UNLP - Facultad
FOD - CLASE 6
de Informtica
20 rboles Balanceados

Eliminacin
Siempre eliminar de nodos terminales (trabajamos con rboles)
Si se va a eliminar un elemento que no esta en nodo terminal llevarlo
primero a nodo terminal
Posibilidades ante eliminacin
Mejor caso: borra un elemento del nodo y no produce underflow, solo
reacomodos ( cantidad de elementos >= [M/2]-1).
Peor caso: se produce underflow (cantidad de elementos < [M/2] 1)
Dos soluciones
Redistribuir
concatenar

UNLP - Facultad
FOD - CLASE 6
de Informtica
21 rboles Balanceados

Definicin: nodo adyacente hermano


Dos nodos son adyacentes hermanos si tienen el mismo padre y son
apuntados por punteros adyacentes en el padre.

Redistribuir
Cuando un nodo tiene underflow puede trasladarse llaves de un nodo
adyacente hermano (en caso que este tenga suficientes elementos)

Concatenacin:
Si los nodos adyacentes hermanos estn al mnimo (no les sobra ningn
elemento) no se puede redistribuir, se concatena con un nodo adyacente
disminuyendo el nmero de nodos (y en algunos casos la altura del rbol)

UNLP - Facultad
FOD - CLASE 6
de Informtica
22 rboles Balanceados

Performance de la eliminacin
Mejor caso (borra de un nodo Terminal)
H lecturas
1 escritura
Peor caso (concatenacin lleva a decrementar el
nivel del rbol en 1)
2H 1 lecturas / (3H 1 lecturas)
H + 1 escrituras
UNLP - Facultad
FOD - CLASE 6
de Informtica
23 rboles Balanceados B+

Archivos Permiten una mejor


Indizado (ordenado por una llave)

secuenciales
indizados
recorrida por algn Secuencial (acceder por orden fsico,
tipo de orden devolviendo el registro en orden de llave)

rpida recuperacin (rbol)


Hasta ahora mtodos
disjuntos, se opta: Recuperacin ordenada (secuencial)

Debemos encontrar
una solucin que
agrupe ambos casos

UNLP - Facultad
FOD - CLASE 7
de Informtica
24 rboles Balanceados

Conjunto de secuencias
Conjunto de registros que mantienen un orden fsico por llave mientras que se
agregan o quitan datos, si podemos mantenerlo podemos indizarlos

Posible solucin
Mantener bloques de datos
Cada bloque con registros y puntero al siguiente

Alonso Barca Carli Detomaso Fernandez


Alonso Barca Carli Detomaso Fernandez

Hernandez Gutierrez Mourio Roncaglia Sanchez

UNLP - Facultad
FOD - CLASE 7
de Informtica
26 rboles Balanceados B+

Propiedades
Cada pgina tiene mximo M descendientes
Cada pgina, menos la raz y las hojas, tienen
Consiste en un conjunto de grupos de entre [M/2] y M hijos
registros ordenados por clave en La raz tiene al menos dos descendientes (o
forma secuencial, junto con un ninguno)
conjunto de ndices, que proporciona Todas las hojas aparecen en igual nivel
acceso rpido a los registros. Una pgina que no sea hoja si tiene K
descendientes contiene K-1 llaves
Los nodos terminales representan un conjunto
de datos y son linkeados juntos.

Los nodos no terminales no tienen


datos sino punteros a los datos.
UNLP - Facultad
FOD - CLASE 7
de Informtica
27 rboles Balanceados B+
Nodo Raz

Nodo Inicial Alfa Beta Kappa Phi Nodo Raz

Se inserta Gamma

Gamma

Nodo Inicial Alfa Beta Gamma Kappa Phi

UNLP - Facultad
FOD - CLASE 7
de Informtica
28 rboles Balanceados B+

Separadores
Derivados de las llaves de los registros que limitan
un bloque en el conjunto de secuencia
Separadores ms cortos, ocupan espacio mnimo
rbol B+ de prefijos simples
rbol B+ en el cual el conjunto ndice est
constituido por separadores ms cortos
UNLP - Facultad
FOD - CLASE 7
de Informtica
29 rboles Balanceados B+
Nodo Raz

Nodo Raz
Nodo Inicial Alfa Beta Gamma Kappa Phi

Gon

Nodo Inicial Garcia Gomez Gonzalez Gutierrez Hernandes

UNLP - Facultad
FOD - CLASE 6
de Informtica
30 rboles Balanceados conclusiones

rbol B rbol B+
Ubicacin de datos Nodos (cualquiera) Nodo Terminal
Tiempo de bsqueda = =
Procesamiento
Lento (complejo) Rpido (con punteros)
secuencial
Puede requerir +
Insercin eliminacin Ya discutida
tiempo

UNLP - Facultad
FOD - CLASE 6
de Informtica
31 rboles

Operaciones clsicas
Comparaciones

rbol B rbol B+

Ubicacin de datos Nodos (cualquiera) Nodo Terminal

Tiempo de bsqueda = =
Rpido (con
Procesamiento secuencial Lento (complejo)
punteros)
Puede requerir
Insercin eliminacin Ya discutida
+ tiempo
UNLP - Facultad
FOD - CLASE 7
de Informtica
32 rboles Balanceados B*

Eliminacin
Redistribucin Insercin
Concatenacin
Redistribucin como forma
de mejorar las inserciones.
Divisin

UNLP - Facultad
FOD - CLASE 7
de Informtica
33 rboles Balanceados B*

La redistribucin podra posponer la


creacin de pginas nuevas

Se pueden generar rboles B ms


eficientes en trminos de utilizacin de
espacio
UNLP - Facultad
FOD - CLASE 6
de Informtica
34 rboles Balanceados B*

rbol B especial en que cada nodo est lleno por lo menos en 2/3 partes

Propiedades Cada pgina tiene mximo M descendientes

(orden M)
Cada pgina, menos la raz y las hojas, tienen al menos [(2M 1) / 3] descendientes

La raz tiene al menos dos descendientes (o ninguno)

Todas las hojas aparecen en igual nivel

Una pgina que no sea hoja si tiene K descendientes contiene K-1 llaves

Una pgina hoja contiene por lo menos [(2M 1) / 3] 1 llaves, y no ms de M-1.

UNLP - Facultad
FOD - CLASE 7
de Informtica
35 rboles Balanceados B*

Operaciones de Bsqueda
Igual que el rbol B comn

Operaciones de Insercin
Tres casos posible
Derecha: redistribuir con nodo adyacente hermano de la derecha (o
izq. si es el ltimo)
Izquierda o derecha: si el nodo de la derecha est lleno y no se puede
redistribuir, se busca el de la izquierda.
Izquierda y derecha: busca llenar los tres nodos, estos tendrn un
parte llena.

Ejemplos

UNLP - Facultad
IBD - CLASE 7
de Informtica
36 rboles Balanceados B*

Costo de la redistribucin

Mejor Peor
Derecha RRWW RRWWW
Izq o der RRWW RRRWWW
(divido solo dos)
Izq y der RRWW RRRWWWW

UNLP - Facultad
FOD - CLASE 6
de Informtica
38

CONSULTAS

UNLP - Facultad
FOD - CLASE 6
de Informtica

También podría gustarte