DATABASE: Teoria.
Dopo l'avvento dei big data, etc, i database relazionali (da Access a Oracle a Sql Server a RDS) sembrerebbero superati. Ma per alcuni database come gli anagrafici sono ancora l'unica soluzione (al più una eventualissima alternativa sono i documentali, come MongoDb). Pertanto quella pletora di pseudoinformatici che si rivendono come super specialisti e che non conoscono le normalizzazioni dei DB relazionali (oltre ad altre teorie base dell'informatica) dovrebbero fermarsi all'utilizzo di Excel (che non sarebbe poco, per loro). A questo punto vorrei focalizzarmi sulla prima forma normale (1NF) ed alla sua denormalizzazione, ovvero alla creazione di un vettore in una colonna della n-pla (vedi proprio l'esempio di 1NF di Wikipedia). Questo tipo di denormalizzazione è spinta da funzioni come ListAgg, array_ agg, string_agg, etc, o, meglio, come la DConcat che ho presentato in un precedente articolo. Quest'ultima, potentissima, può concatenare non solo le righe dei dati di una colonna, ma anche produrre la concatenazione dei dati di più colonne (come l'esempio di Wikipedia, dove i separatori sono la virgola ed il puntoevirgola).
Ovviamente i separatori vanno scelti diversi!
Perché questo articolo? Perché
1) capiate perché è ovvio che non si possa utilizzare più di una colonna risultato di una DConcat (parliamo di dati che vanno interpretati poi come un prodotto cartesiano)
2) capiate che la scelta di una denormalizzazione può servire ad ottenere dei risultati da una tabella più compatta, ma tali risultati vanno analizzati poi da un parser, qualora fosse necessario valutare i singoli dati della stringa aggregata
3) prossimamente presenterò una soluzione VBA per Access per spacchettare una compattazione da DConcat, e volevo estrapolare questo cappello dall'articolo di questa presentazione.