Sunteți pe pagina 1din 36

1

Fundamentos de Organizacin de
Datos
Clase 6

FOD - CLASE 6

UNLP - Facultad
de Informtica

Agenda

Arboles

Binarios
AVL
Multicamino
Balanceados

Arboles
Balanceados

Caractersticas
B, B*, B+
Operaciones
Prefijos simples

FOD - CLASE 6

UNLP - Facultad
de Informtica

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
FOD - CLASE 6

UNLP - Facultad
de Informtica

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
FOD - CLASE 6

UNLP - Facultad
de Informtica

Arboles binarios

Raz 0
Clave Hijo
izq

Hijo
Der

Clave Hijo
izq

Hijo
Der

MM

PR

10

GT

OP

-1

-1

ST

11

10

RX

-1

-1

BC

11

UV

12

13

JF

14

12

TR

-1

-1

AB

-1

-1

13

ZR

-1

-1

CD

-1

-1

14

KL

-1

-1

HI

-1

-1

MM

GT

ST

BC

AB

JF

CD

HI

PR

KL

FOD - CLASE 6

OP

UV

RX

TR

ZR

UNLP - Facultad
de Informtica

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

AB

JF

CD

HI

PR

KL

OP

UV

RX

TR

ZR

NI

OC

NR
OA

FOD - CLASE 6

NZ

UNLP - Facultad
de Informtica

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:
FOD - CLASE 6

UNLP - Facultad
de Informtica

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
FOD - CLASE 6

UNLP - Facultad
de Informtica

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

FOD - CLASE 6

UNLP - Facultad
de Informtica

rboles multicamino

10

Generalizacin de rboles binarios, c/nodo tiene k punteros


y k-1 claves (o registros), disminuye la profundidad del rbol,
Orden del rbol.
E1

10

15

30

40
FOD - CLASE 6

34

95

60

76

E2

E3

E4

E5

E6

E7

99

85

90
UNLP - Facultad
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
FOD - CLASE 6

R5

P5

Nro de registros

UNLP - Facultad
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

FOD - CLASE 6

Dato 1

P1

Dato 2

P2

..

PM-2

Dato M-2

PM-1

Dato M-1

Formato Grfico del Nodo del ndice arbol B

PM

UNLP - Facultad
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?
FOD - CLASE 6

UNLP - Facultad
de Informtica

14

Arboles Balanceados
Nodo Raiz: 7
Punteros
0
1
2
3
4
5
6
7

FOD - CLASE 6

-1
-1
0
-1
-1
-1
1
2

-1
-1
5
-1
-1
-1
4
6

-1
-1
3

-1

2
57
20
49
88
24
80
53

Datos
15
60
43

75

UNLP - Facultad
de Informtica

Nro Datos
2
3
2
1
1
1
1
1

15

rboles Balanceados
Bsqueda de informacin:
Busca la llave en el
nodo raiz

localiza la
llave?

Si

Fin de
proceso

Cuando el elemento
buscado es mayor que
todas los elementos del
nodo, se sigue el ltimo
puntero.

no
toma el puntero
anterior a la llave
mayor

FOD - CLASE 6

no

Puntero nulo?

Si

No esta el
elemento

UNLP - Facultad
de Informtica

16

Arboles Balanceados

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

UNLP - Facultad
de Informtica

17

rboles Balanceados

Cota
para
h

Nivel

# mnimo de descendientes

2 * [M/2]

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
FOD - CLASE 6

N = 1000000 h <= 3.37 (4 lecturas encuentra un registro)


UNLP - Facultad
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.
FOD - CLASE 6

UNLP - Facultad
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)
FOD - CLASE 6

UNLP - Facultad
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
FOD - CLASE 6

UNLP - Facultad
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)

FOD - CLASE 6

UNLP - Facultad
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
FOD - CLASE 6

UNLP - Facultad
de Informtica

23

rboles Balanceados B+
Archivos
secuenciales
indizados

Permiten una mejor


recorrida por algn
tipo de orden

Indizado (ordenado por una llave)

Hasta ahora mtodos


disjuntos, se opta:

rpida recuperacin (rbol)

Secuencial (acceder por orden fsico,


devolviendo el registro en orden de llave)

Recuperacin ordenada (secuencial)

Debemos encontrar
una solucin que
agrupe ambos casos
FOD - CLASE 7

UNLP - Facultad
de Informtica

rboles Balanceados

24

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

Alonso

Barca

Carli

Barca

Carli

Detomaso Fernandez

Detomaso Fernandez

Hernandez Gutierrez Mourio Roncaglia Sanchez

FOD - CLASE 7

UNLP - Facultad
de Informtica

26

rboles Balanceados B+
Propiedades
Consiste en un conjunto de grupos de
registros ordenados por clave en
forma secuencial, junto con un
conjunto de ndices, que proporciona
acceso rpido a los registros.

Cada pgina tiene mximo M descendientes


Cada pgina, menos la raz y las hojas, tienen
entre [M/2] y M hijos
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
Los nodos terminales representan un conjunto
de datos y son linkeados juntos.

Los nodos no terminales no tienen


datos sino punteros a los datos.
FOD - CLASE 7

UNLP - Facultad
de Informtica

27

rboles Balanceados B+
Nodo Raz

Nodo Inicial

Alfa Beta Kappa Phi

Nodo Raz

Se inserta Gamma

Gamma

Nodo Inicial

FOD - CLASE 7

Alfa Beta

Gamma

Kappa

Phi

UNLP - Facultad
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
FOD - CLASE 7

UNLP - Facultad
de Informtica

29

rboles Balanceados B+
Nodo Raz

Nodo Raz
Nodo Inicial

Alfa Beta

Gamma

Kappa

Phi

Gon

Nodo Inicial

FOD - CLASE 6

Garcia Gomez

Gonzalez Gutierrez Hernandes

UNLP - Facultad
de Informtica

30

rboles Balanceados conclusiones

Ubicacin de datos
Tiempo de bsqueda
Procesamiento
secuencial
Insercin eliminacin

FOD - CLASE 6

rbol B

rbol B+

Nodos (cualquiera)

Nodo Terminal

Lento (complejo)

Rpido (con punteros)

Ya discutida

Puede requerir +
tiempo

UNLP - Facultad
de Informtica

31

rboles
Operaciones clsicas
Comparaciones

Ubicacin de datos
Tiempo de bsqueda
Procesamiento secuencial
Insercin eliminacin
FOD - CLASE 7

rbol B

rbol B+

Nodos (cualquiera)

Nodo Terminal

Lento (complejo)

Rpido (con
punteros)

Ya discutida

Puede requerir
+ tiempo
UNLP - Facultad
de Informtica

32

rboles Balanceados B*

Eliminacin
Redistribucin
Concatenacin

FOD - CLASE 7

Insercin
Redistribucin como forma
de mejorar las inserciones.
Divisin

UNLP - Facultad
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
FOD - CLASE 6

UNLP - Facultad
de Informtica

34

rboles Balanceados B*
rbol B especial en que cada nodo est lleno por lo menos en 2/3 partes
Propiedades
(orden M)

Cada pgina tiene mximo M descendientes


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.

FOD - CLASE 7

UNLP - Facultad
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
IBD - CLASE 7

UNLP - Facultad
de Informtica

36

rboles Balanceados B*
Costo de la redistribucin

FOD - CLASE 6

Mejor

Peor

Derecha

RRWW

RRWWW

Izq o der

RRWW

RRRWWW

Izq y der

RRWW

(divido solo dos)

RRRWWWW

UNLP - Facultad
de Informtica

38

CONSULTAS

FOD - CLASE 6

UNLP - Facultad
de Informtica