Saltar al contenido principal Saltar al contenido complementario

Cargar datos jerárquicos

Las jerarquías de n niveles desequilibrados se utilizan a menudo para representar dimensiones geográficas u organizativas en los datos, entre otras cosas.

Estos tipos de jerarquías se almacenan normalmente en una tabla de nodos adyacentes, que es una tabla en la que cada registro corresponde a un nodo y tiene un campo que contiene una referencia al nodo padre.

Tabla Nodos
IDNodoIDParentNodeTítulo
1-Director General
21Director Regional
32Director de Oficina
43Director de Departamento

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 se pueden usar fácilmente, por ej. en una estructura de árbol. La palabra clave hierarchy se puede usar en el script de carga de datos para transformar una tabla de nodos adyacentes en una tabla de nodos expandidos.

Ejemplo:  

Hierarchy (NodeID, ParentNodeID, Title, 'Manager') LOAD NodeID, ParentNodeID, Title FROM 'lib://data/hierarchy.txt' (txt, codepage is 1252, embedded labels, delimiter is ',', msq);
Tabla de nodos expandidos
NodeIDIDParentNodeTítuloTítulo1Título2Título4Título4
1-Director GeneralDirector General---
21Director RegionalDirector GeneralDirector Regional--
32Director de OficinaDirector GeneralDirector RegionalDirector de Oficina-
43Director de DepartamentoDirector GeneralDirector RegionalDirector de OficinaDirector de Departamento

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. Una 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.

Una tabla de antepasados contiene un registro por cada relación hijo-antepasado que encuentra en los datos. Contiene claves y nombres de los hijos y antepasados. Es decir, cada registro describe a qué nodo pertenece un nodo específico. La palabra clave hierarchybelongsto se puede usar en el script de carga de datos para transformar una tabla de nodos adyacentes en una tabla de ancestros.

Más información

 

¿Esta página le ha sido útil?

No dude en indicarnos en qué podemos mejorar si encuentra algún problema en esta página o su contenido, como, por ejemplo, errores tipográficos, pasos que falta o errores técnicos.