Cosa sono i dati gerarchici?
I dati gerarchici sono una struttura di dati in cui gli elementi sono collegati tra loro secondo relazioni genitore-figlio in una struttura complessiva ad albero. Pensate ai dati come ad un albero genealogico, con nonni, genitori, figli e nipoti che formano una gerarchia di dati collegati. Normalmente, questo è usato per mostrare un organigramma, un progetto con compiti o una tassonomia di termini linguistici.
Nei dati gerarchici, ognuno di questi nodi "figli" ha un solo "genitore", ma ogni genitore può avere più figli. Il primo nodo, in cima alla gerarchia, è chiamato nodo radice. Quando è necessario recuperare delle informazioni, l'intero albero viene scansionato dal nodo radice in giù. Poiché l'intero albero deve essere scansionato ogni volta che un utente fa una richiesta, questo rende il sistema poco flessibile e lento. I database moderni si sono evoluti per includere l'uso di gerarchie multiple sugli stessi dati per una ricerca più veloce e più facile.
Tuttavia, i dati gerarchici sono ancora oggi molto usati. Un uso comune di una struttura gerarchica di dati è l'informazione sul personale. In una struttura di organigramma, si ha il nodo radice del CEO in cima con una struttura di personale sotto.
Sviluppato da IBM negli anni '60, il modello di dati gerarchico è uno dei primi tipi di modelli. Tuttavia, è stato rapidamente sostituito da un modello di dati relazionale per superare alcuni dei significativi problemi strutturali inerenti a questo modello.
Perché è importante la struttura dei dati?
La struttura dei dati di un'organizzazione è di vitale importanza. Affinché un'azienda sia in grado di inserire informazioni, elaborarle, recuperarle e mantenerle, la scelta del tipo di struttura dei dati è assolutamente vitale. Immagina sul tuo computer, se non ci fosse una struttura di cartelle o convenzioni di denominazione. La capacità di trovare o usare ogni cosa sarebbe gravemente compromessa.
In un'azienda troverai invece cartelle organizzate con nomi di reparti logici. In questi reparti, le cartelle potrebbero essere organizzate per trimestri finanziari o altro modo logico che si applica a quell'azienda. Poi, all'interno di questo, i singoli file sono nominati in modo descrittivo, spesso con date o versioni registrate in un formato specifico. Tutti questi sono memorizzati in ordine alfa. Questo significa che quando un dipendente deve accedere a un certo file, è un compito incredibilmente semplice eseguire il drill-down e trovare ciò di cui ha bisogno. In modo simile, una buona struttura dei dati consente pratiche commerciali buone, veloci ed efficienti.
Un'enorme limitazione della scienza dei dati è in generale che sebbene il mondo sia fluido e tridimensionale, i computer lo percepiscono come piatto e immutabile. Mentre le persone sanno che esistono 200 razze di cani e 200 varietà di serpenti, un computer sa solo che ci sono 400 articoli. Una struttura di dati è vitale per raggruppare, accedere, elaborare e vedere i dati in modo che sia interpretabile dai computer.

Quando un'organizzazione deve usare i dati gerarchici?
Attualmente, organizzazioni come banche e telecomunicazioni usano dati gerarchici nelle loro applicazioni. Questo perché richiedono prestazioni veloci e altamente accurate. Anche il registro di Windows sulla maggior parte dei computer è un esempio di struttura gerarchica dei dati. Anche i progetti di produzione complessi spesso usano modelli di dati gerarchici a causa dei grandi volumi di dati.
I dati gerarchici sono utilizzati al meglio quando:
- I dati possono essere memorizzati in una forma "ad albero" con una chiara struttura di genitori e figli.
- C'è bisogno di cogliere la struttura della gerarchia.
- Ci sono elevati requisiti di volume di dati.
- I sistemi esistenti sono troppo complessi per migrare a un modello relazionale o di rete.
Alternative ai dati gerarchici
Dati relazionali
Il modello di dati più comune, quando i dati sono raggruppati in relazioni. Un insieme di variabili sono raggruppate in categorie vere, false o nulle. I dati sono quindi messi insieme ad altri elementi che condividono variabili e attributi. I gruppi sono collegati insieme da relazioni. Questo gruppo di elementi è simile a quel gruppo. A differenza dei dati gerarchici che sono limitati dalla loro natura uno a molti, nei dati relazionali ci possono essere relazioni molti a molti. I database relazionali usano il Structured Query Language (SQL), il linguaggio standard di interrogazione.
Il modello relazionale è eccellente per mantenere la coerenza dei dati tra le istanze. Per esempio, se un cliente preleva denaro da un bancomat, questo cambiamento si rifletterà nel saldo dell'applicazione del telefono. Questo lo rende eccellente per assicurare che istanze multiple di dati siano corrette in una serie di sistemi.
Rispetto a una struttura gerarchica, invece di memorizzare i dati in una struttura ad albero, li memorizza in tabelle.
Modello di rete
Il modello di rete, come il modello di dati relazionale, è stato creato per risolvere i difetti inerenti ai modelli di database gerarchici. In un modello di dati di rete, un figlio può essere collegato a più genitori, anche se sono chiamati proprietari e membri.
Questo modello supporta una serie di relazioni ed è molto più fluido dei modelli gerarchici. Tuttavia, questi sono molto più complicati, il che li rende difficili da gestire e mantenere. Non è ancora flessibile come i modelli di dati relazionali, e non tutte le relazioni possono essere accuratamente modellate e collegate a proprietari e membri.
Vantaggi delle strutture di dati gerarchici
I dati sono facilmente recuperabili
Poiché i collegamenti tra i nodi di dati sono ben definiti, trovare e recuperare i dati è facile. Poiché il genitore e i figli sono memorizzati strettamente insieme, anche la navigazione e il recupero dei dati è veloce.
Integrità referenziale
L'integrità dei dati è sempre mantenuta perché tutte le modifiche effettuate nella tabella madre sono automaticamente cambiate nella tabella figlia.
Struttura semplice
La struttura della relazione genitore-figlio capovolta è immediatamente e facilmente comprensibile. È concettualmente semplice, ha una chiara catena di comando all'interno del database e come risultato offre alte prestazioni. A causa della struttura semplice, favorisce anche la condivisione dei dati.
Buona sicurezza
La sicurezza del database è fornita e applicata dal sistema di gestione del database. È così sicuro che alcuni sviluppatori di linguaggi di interrogazione strutturati dicono che bisognerebbe essere un mago per far uscire i dati.

Sfide delle strutture di dati gerarchici
Inflessibilità
Il modello è inflessibile e rigido, e l'aggiunta di un nodo o di una relazione può sconvolgere l'intera struttura. Se una tabella padre e una figlia non sono collegate, aggiungere una nuova voce nella tabella figlia è difficile perché i dati extra devono essere inseriti prima nella tabella madre. Allo stesso modo, è difficile spostare un figlio da un livello all'altro.
Adatto solo per relazioni uno a molti
Quando un genitore ha molti figli, queste relazioni sono facili da mostrare. Tuttavia, quando ci sono relazioni molti a molti, sono più difficili da esprimere. Qualsiasi cosa più complessa delle relazioni genitore figlio non è supportata nei dati gerarchici. I figli non possono essere collegati ad altri genitori e non c'è la possibilità di collegare i figli di genitori diversi.
Cancellazioni
Se un genitore viene cancellato, anche tutti i figli (e oltre) vengono automaticamente cancellati. Immagina nel tuo computer desktop, se cancelli una cartella, cancelli tutti i file al suo interno. In modo simile funziona un database gerarchico per le cancellazioni.
Mancanza di standard
Non c'è una definizione specifica dei dati o un linguaggio di manipolazione dei dati. In generale, il sistema si basa sulla rigidità per far rispettare gli standard, e questo non sempre funziona.
Complesso da implementare
L'implementazione di sistemi di dati gerarchici richiede la comprensione delle caratteristiche di archiviazione dei dati e la conoscenza della struttura organizzativa. Questo lo rende complicato e difficile da implementare rispetto ad altri sistemi.
Il futuro dei modelli di dati gerarchici
Anche se alcuni modelli di natura gerarchica esistono ancora oggi, stanno cadendo in disuso. Sarebbe insolito implementare un modello di dati gerarchici in un nuovo sistema. La loro rigidità, la difficoltà di implementazione e le enormi restrizioni li rendono antieconomici e scomodi da implementare.
Pur essendo efficienti in termini di accesso ai dati, la loro natura restrittiva li rende meno capaci di affrontare le sfide della soverchiante varietà di tipi e volumi di dati.
Essendo uno dei primi modelli di dati, non si poteva prevedere che la rapida natura della tecnologia lo avrebbe reso obsoleto; ma sta succedendo. Il futuro è nella flessibilità, proprio quella caratteristica che i dati gerarchici non possono dare. Reti ed ecosistemi stanno rapidamente sostituendo le gerarchie con un modo più organico di memorizzare e accedere ai dati.