Jerarquías
A menudo se emplean jerarquías no equilibradas de n niveles para representar, entre otras cosa, por ejemplo, dimensiones geográficas u organizativas en los datos. Estos tipos de jerarquías se almacenan normalmente en una tabla de nodos adyacentes, esto es, una tabla en la que cada registro corresponde a un nodo y tiene un campo que contiene una referencia al nodo padre.
En este tipo de tabla, el nodo se almacena en un único registro, pero puede tener cualquier número de hijos. La tabla puede por supuesto contener campos adicionales que describan atributos para los nodos.
Una tabla de nodos adyacentes es óptima para el mantenimiento, pero difícil de utilizar en el trabajo diario. En las consultas y el análisis se suelen emplear otras representaciones en vez. La tabla de nodos expandidos es una representación habitual, en la que cada nivel de la jerarquía se almacena en un campo aparte. Los niveles en una tabla de nodos expandidos pueden utilizarse fácilmente por ejemplo en una estructura de árbol. La palabra clave hierarchy se puede utilizar en el script de carga de datos para transformar una tabla de nodos adyacentes en una tabla de nodos expandidos.
Ejemplo:
Un inconveniente de la tabla de nodos expandidos es que no es fácil utilizar los campos de nivel para búsquedas o selecciones, dado que se necesita un conocimiento previo acerca de qué nivel explorar o seleccionar. La tabla de antepasados supone una representación diferente que resuelve este problema. Esta representación también se conoce con el nombre de tabla puente.
La tabla de antepasados contiene un registro por cada relación hijo-antepasado que encuentra en los datos. Posee claves y nombres de los hijos, así como también de los antepasados. Es decir, cada registro describe a qué nodo pertenece un determinado nodo. La palabra clave hierarchybelongsto se puede emplear en el script de carga para transformar una tabla de nodos adyacentes en una tabla de antepasados.