Strutture dati: verticale vs orizzontale¶
Quando si progettano strutture di dati tabulari è consigliabile evitare la crescita orizzontale dei valori.
Modalità sconsigliata
| osservazione | osservazione | osservazione | |
|---|---|---|---|
| variabile | |||
| variabile |
Modalità consigliata
| variabile | variabile | variabile | |
|---|---|---|---|
| osservazione | |||
| osservazione |
Quando è possibile, è preferibile mettere le variabili o gli attributi dei dati nelle colonne di una tabella e aggiungere i valori corrispondenti alle osservazioni dei dati nelle righe.
La crescita orizzontale di una struttura di dati tabulari può rendere difficile la manutenzione e la creazione di visualizzazioni.
In generale, è più facile identificare le relazioni tra le variabili nelle colonne che tra le righe, ed è più facile fare confronti tra gruppi di osservazioni nelle righe che tra gruppi di colonne.
Tuttavia, questa raccomandazione dovrebbe essere adattata in base alle esigenze di aggiornamento dei dati:
- Se è necessario registrare nuove variabili o attributi che non sono stati registrati in precedenza, per esempio una serie temporale, allora è ragionevole far crescere la struttura dei dati orizzontalmente, cioè aggiungere nuove colonne. Questo permetterà di inserire le osservazioni per le nuove variabili mantenendo i valori vuoti nelle osservazioni pre-aggiornamento per queste nuove colonne, se non esiste un valore assegnabile per quelle osservazioni. Quando si aggiungono nuove osservazioni, si devono necessariamente inserire nuove righe.
Esempio:¶
crescita orizzontale vs. verticale.
Cattiva prassi
| marca | guasto_radiatore | guasto_carburatore | guasto_sospensione | guasto_frizione |
|---|---|---|---|---|
| chevrolet chevelle malibu | 0 | 7 | 1 | 0 |
| buick skylark 320 | 1 | 2 | 2 | 2 |
Buona prassi
| marca | tipo_guasto | quantita_guasti |
|---|---|---|
| chevrolet chevelle malibu | radiatore | 0 |
| chevrolet chevelle malibu | carburatore | 7 |
| chevrolet chevelle malibu | sospensione | 1 |
| chevrolet chevelle malibu | frizione | 0 |
| buick skylark 320 | radiatore | 1 |
| buick skylark 320 | carburatore | 2 |
| buick skylark 320 | sospensione | 2 |
| buick skylark 320 | frizione | 2 |
| plymouth satellite | radiatore | 0 |
| plymouth satellite | carburatore | 4 |
| plymouth satellite | sospensione | 4 |
| plymouth satellite | frizione | 1 |
L'esempio mostra un modo di organizzare i dati evitando la crescita orizzontale della struttura dei dati aggiungendo nuove variabili simili a quelle esistenti. La trasposizione in una struttura verticale creando due nuove variabili, 'tipo_guasto' e 'quantita_guasti', permette di aggiungere facilmente nuove osservazioni sotto forma di righe.
D'altra parte, quando vengono pubblicate serie temporali, per esempio la storia della domanda di veicoli per gli anni 1972-1977, la crescita orizzontale della struttura è ragionevole se si presenta la necessità, per esempio, di completare la serie temporale per gli anni '70.
| marca | 1972 | 1973 | 1974 | 1975 | 1976 | 1977 |
|---|---|---|---|---|---|---|
| chevrolet chevelle malibu | 345 | 423 | 1234 | 1690 | 2345 | 2134 |
| buick skylark 320 | 124 | 252 | 785 | 914 | 1353 | 896 |
| plymouth satellite | 57 | 71 | 165 | 315 | 1104 | 1561 |