Arboles B

3
Un árbol B es esencialmente un árbol de búsqueda multicamino (n-ario) balanceado, almacenado en disco, y usado como soporte muy eficiente para índices de grandes archivos. Garantiza un tiempo de búsqueda de orden logarítmico, al mismo tiempo que logra un muy buen balance en cuanto al uso del espacio de almacenamiento del índice Como se dijo, un árbol B es un árbol de búsqueda de caminos múltiples. Esto implica que cada nodo del árbol puede tener varios hijos, y a su vez implica que cada nodo puede tener varias claves o valores (de hecho, la forma típica de implementar el conjunto de claves de un nodo es a través de un arreglo ordenado). En el léxico propio de los árboles B, un nodo se designa como página. La idea central es que un árbol B se graba en un archivo (el archivo índice) página por página. Cuando el índice se abre, se carga en memoria la página raíz del árbol, y sólo la página raíz. La clave deseada se busca en esa página, y si está en ella se detiene el proceso (que en este caso sólo llevó una operación de acceso a disco). Si la clave no está, se determina en cuál de las hijas de la raíz debería estar, y se carga esa página. Otra vez, se busca la clave, y así se prosigue, de forma que la raíz siempre esté en memoria y cada nueva página que se carga reemplace a la última cargada. Si la cantidad de claves que se almacena en cada página es adecuada, veremos que se puede garantizar que un árbol B encontrará la clave (o verá que no existe) en no más de dos accesos directos (seeking) a disco incluso si el

description

Introduccion a los Arboles B

Transcript of Arboles B

Un rbol B es esencialmente un rbol de bsqueda multicamino (n-ario) balanceado, almacenado en disco, y usado como soporte muy eficiente para ndices de grandes archivos. Garantiza un tiempo de bsqueda de orden logartmico, al mismo tiempo que logra un muy buen balance en cuanto al uso del espacio de almacenamiento del ndiceComo se dijo, un rbol B es un rbol de bsqueda de caminos mltiples. Esto implica que cada nodo del rbol puede tener varios hijos, y a su vez implica que cada nodo puede tener varias claves o valores (de hecho, la forma tpica de implementar el conjunto de claves de un nodo es a travs de un arreglo ordenado). En el lxico propio de los rboles B, un nodo se designa como pgina. La idea central es que un rbol B se graba en un archivo (el archivo ndice) pgina por pgina. Cuando el ndice se abre, se carga en memoria la pgina raz del rbol, y slo la pgina raz. La clave deseada se busca en esa pgina, y si est en ella se detiene el proceso (que en este caso slo llev una operacin de acceso a disco). Si la clave no est, se determina en cul de las hijas de la raz debera estar, y se carga esa pgina. Otra vez, se busca la clave, y as se prosigue, de forma que la raz siempre est en memoria y cada nueva pgina que se carga reemplace a la ltima cargada. Si la cantidad de claves que se almacena en cada pgina es adecuada, veremos que se puede garantizar que un rbol B encontrar la clave (o ver que no existe) en no ms de dos accesos directos (seeking) a disco incluso si el archivo tiene un nmero tan desopilante como un milln de registros...

Las caractersticas estructurales de un rbol B se resumen en cuatro reglas, que enunciamos:

1. Sea n un parmetro que designaremos como el orden del rbol. Entonces cada pgina del rbol (salvo eventualmente la pgina raz) debe tener un mnimo de n claves en todo momento.

2. El nmero mximo de claves que una pgina puede tener es 2*n.

3. Hay slo dos tipos de pginas: las hojas (que no tienen hijos) y las pginas que tienen exactamente m + 1 pginas hijas, siendo m el nmero de claves que efectivamente hay en esa pgina.

4. Todas las pginas hoja deben aparecer juntas en el mismo nivel (que no puede ser otro que el ltimo nivel... como es obvio...)

Estas cuatro reglas indican en forma taxativa lo que se puede y no se puede hacer al ir formando un rbol B. Cada una de ellas cumple un papel importante en cuanto al proceso de auto-balanceo del rbol: al igual que un rbol AVL, los rboles B insertan una clave y luego verifican si esa insercin provoc algn tipo de desbalance, procediendo a restaurar el equilibrio si fuera el caso.