Sie sind auf Seite 1von 19

Arboles B

(introduccin)

Arboles B - introduccin
Los rboles B se usan para almacenar conjuntos y especialmente para representar archivos externos (estructura para ndices en sistemas de BD) Idea: almacenamiento de registros en archivos, donde los archivos se depositan en bloques de almacenamiento externo. La idea es pensar a los nodos como bloques fsicos. Un rbol de bsqueda m-ario es una generalizacin de los ABB, donde cada nodo tiene como mximo m hijos. Si n1 y n2 son hijos de algn nodo, y n1 est a la izquierda de n2, todos los descendientes de n1 son menores que los de n2. 2

rbol de Bsqueda m-ario


Ejemplo:
rbol de Bsqueda 4-ario 21 48 72

12 15

25 31 41

59

84 91

1,4,8,11 12,13 15,18,19 21,24 25,26

31,38 41,43,46 48,49,50 59,68 72,78 84,88 91,92,99

Arboles B - introduccin (cont)


Un nodo interior contiene apuntadores a sus m hijos y tambin contiene m-1 claves que separan los descendientes del hijo. Los nodos hojas son bloques tambin, y contienen los registros del archivo principal. Si se usa un ABB de n nodos para representar un archivo almacenado en forma externa, pueden requerirse, en promedio, log2n accesos a bloques para recuperar un registro del archivo. En cambio si se usa un m-ario, en promedio, se requerirn slo logmn accesos a bloques para recuperar un registro del archivo. Nota: no conviene hacer m 4 arbitrariamente grande.

Arboles B
Un rbol B es una clase especial de rbol m-ario balanceado que permite recuperar, eliminar e insertar registros en un archivo externo con buen rendimiento en el peor caso. Un rbol B de orden m es un rbol de bsqueda m-ario con las siguientes propiedades: La raz es una hoja o tiene entre 2 y m hijos. Cada nodo, excepto la raz y las hojas, tiene entre m/2 y m hijos. Todas las hojas estn a la misma profundidad.
5

Arboles B
Ejemplo: rbol B de orden 4 (rbol 2-3-4)
21 48 72

12 15

25 31 41

59

84 91

1,4,8,11 12,13 15,18,19 21,24 25,26

31,38 41,43,46 48,49,50 59,68 72,78 84,88 91,92,99

Arboles B
Todos los datos se almacenan en las hojas Cada nodo interior tiene la forma: (p1, k2, p2, , km, pm), donde pi es un puntero al i-simo hijo del nodo (1<=i<=m), y cada ki es la menor clave encontrada en el subrbol pi. Algunos de los punteros podran ser nulos y las claves estaran entonces indefinidas. Para cada nodo, todas las claves en el subrbol p1 son menores que las claves del subrbol p2 y as sucesivamente.
7

Arboles B
Bibliografa para Arboles B: * Estructuras de Datos y Algoritmos (M. A. Weiss), Cap 4 (Secc. 4.7) * Estructuras de Datos y Algoritmos (Aho, Hopcroft, Ullman), Cap 11 (Secc. 11.4) --Cap 5: rboles 2-3. Analizar los algoritmos de insercin, bsqueda y eliminacin (por ejemplo, en el caso de los rboles 2-3 --de orden 3-- que son uno de los ms populares para la implantacin de rboles de bsqueda equilibrada).
8

Operaciones en un rbol 2-3

22:16:41:58

8, 11, 12

16, 17

22, 23, 31

41, 52

58, 59, 61

Operaciones en un rbol 2-3

Alta: 18 22:16:41:58

8, 11, 12

16, 17, 18

22, 23, 31

41, 52

58, 59, 61

10

Operaciones en un rbol 2-3

Alta: 1 22:11:16 41:58

1, 8

11,12

16, 17, 18

22, 23, 31

41, 52

58, 59, 61

11

Operaciones en un rbol 2-3

Alta: 19 22:11:16 41:58

1, 8

11,12

16, 17

18, 19

22, 23, 31

41, 52

58, 59, 61

12

Operaciones en un rbol 2-3

Alta: 19 16: 22

11:-

18:-

41:58

1, 8

11,12

16, 17

18, 19

22, 23, 31

41, 52

58, 59, 61

13

Operaciones en un rbol 2-3

Alta: 28 16: 22

11:-

18:-

41:58

1, 8

11,12

16, 17

18, 19

22, 23

28, 31

41, 52

58, 59, 61

14

Operaciones en un rbol 2-3

Alta: 28 16: 22

11:-

18:-

28:-

58:-

1, 8

11,12

16, 17

18, 19

22, 23

28, 31

41, 52

58, 59, 61

15

Operaciones en un rbol 2-3


16: 22 16: 41:Alta: 28

11:-

18:-

28:-

58:-

1, 8

11,12

16, 17

18, 19

22, 23

28, 31

41, 52

58, 59, 61

16

Arboles B
La profundidad de un rbol B es a lo sumo log m/2n. En cada nodo del camino se realiza un trabajo O(log m) para determinar cul rama seguir (usando una bsqueda binaria), pero un insertar o eliminar puede requerir O(m) para recomponer toda la informacin en el nodo. El tiempo de ejecucin en el peor caso para un insertar o eliminar es O(m*logm n), pero un buscar tarda slo O(logm n). Conforme m crece, el tiempo de la insercin y de la eliminacin crece (m=3 o m=4 son adecuados).
17

Arboles B
El uso real de rboles B se da en los sistemas de BD, en donde los rboles se conservan en disco y no en memoria principal. El acceso a disco suele ser varios rdenes de magnitud ms lento que cualquier operacin en memoria principal. Si se usa un rbol B de orden m, el nmero de accesos a disco es O(logmn). Aunque cada acceso a disco acarrea O(log m) para determinar la direccin a seguir --este tiempo es en general mucho menor que el de leer un boque de memoria, para m razonable--.
18

Arboles B
El valor de m se escoge como el ms grande que permita a un nodo interior caber en un bloque de disco. Ej: 32 <= m <= 256. El nmero mximo de elementos que se almacenan en una hoja se escoge de manera que, si la hoja est llena, sta quepa en un bloque. Esto es para que un registro se encuentre siempre con muy pocos accesos a disco, ya que un rbol B tpico tendr una profundidad de 2 o 3, y la raz (y posiblemente el primer nivel) pueden mantenerse en memoria principal.
19

Das könnte Ihnen auch gefallen