Gerarchie

Le gerarchie di livello n non bilanciate vengono spesso utilizzate per rappresentare, ad esempio, le dimensioni geografiche o organizzative nei dati. In genere, questi tipi di gerarchia vengono memorizzati in una tabella di nodi adiacenti, in cui ciascun record corrisponde a un nodo e presenta un campo contenente un riferimento al nodo padre.

In questa tabella il nodo è salvato solamente su un record, ma può presentare un numero qualsiasi di figli. Ovviamente la tabella può contenere campi aggiuntivi che descrivono gli attributi dei nodi.

Una tabella di nodi adiacenti è ottimale per la manutenzione, ma difficile da utilizzare nel lavoro quotidiano. Invece, nelle query e nelle analisi, vengono utilizzate altre rappresentazioni. Le tabelle di nodi espanse sono una rappresentazione comune, in cui ciascun livello della gerarchia è memorizzato in un campo separato. I livelli in una tabella di nodi espansi possono essere facilmente utilizzati in una struttura ad albero. La parola chiave hierarchy può essere utilizzata nello script di caricamento per trasformare una tabella di nodi adiacenti in una tabella di nodi espansi.

Esempio:  

Hierarchy (NodeID, ParentNodeID, Title, 'Manager') LOAD NodeID, ParentNodeID, Title FROM 'hierarchy.txt' (txt, codepage is 1252, embedded labels, delimiter is ',', msq);

Un problema che si presenta con la tabella di nodi espansi è che non è facile utilizzare i campi di livello per ricerche o selezioni, perché è necessaria una conoscenza a priori del livello in cui eseguire tali operazioni. Le tabelle padre sono una rappresentazione differente che consente di risolvere questo problema. Questa rappresentazione viene inoltre denominata tabella ponte.

La tabella padre contiene un record per ogni relazione figlio-padre presente nei dati. Contiene chiavi e nomi per gli elementi figlio e per gli elementi padre, ossia ogni record descrive a quale nodo specifico appartiene un nodo. La parola chiave hierarchybelongsto può essere utilizzata nello script di caricamento per trasformare una tabella di nodi adiacenti in una tabella padre.

Vedere anche: