Lo dico io
Non direiQuel problema si risolve lato programmazione non lato db.
Siccome neppure tu mi conosci, linkarmi qualche guida per principianti ed asserire "forse non ti è chiaro..." quando direi che la situazione è opposta non è esattamente un modo gradevole di porsi.Io invece siccome non ti conosco e, nonostante la mia (poca) esperienza, penso che altri possano saperne più di me e quando non la pensano come me o (come nel tuo caso) mi dicono cose contrarie cerco di capire...non faccio il presuntuoso.
Certo sono consapevole che molto spesso s'insegna in modo dogmatico, come se in una certa situazione si debba sempre e comunque fare una certa cosa, senza preoccuparsi del perchè, o percome, o se ci sono altre strade, migliori o peggiore.
La normalizzazione è un esempio classico in cui si applica un metodo nato per risolvere un problema (memorizzazione dei dati su schede di carta perforate con buchini o nuclei in ferrite o quello che si usava) in un panorama informatico totalmente diverso rispetto a quello di oggi, e soprattutto sotto ipotesi rigorose che quasi mai vengono trattate (l'aspetto semantico).
Talvolta si trovano professori coi (...controxxi...) invece spiegano e precisano pregi e difetti, quando e come e perchè (io evidentemente son stato fortunato sotto questo profilo, mica ho avuto la scienza infusa).
L'esempino di sopra non è farina del mio sacco (anzi è una domanda con cui mi hanno aperto il deretano all'orale), ma è grandemente esplicativo di un esempio semplice e comprensibile dove la dipendenza funzionale SEMBRA essere eliminabile (algebricamente), ma non lo è (semanticamente).
Poi c'è tutto l'argomento delle prestazioni, che l'utente optime ha introdotto, e che senza dubbio ha un suo peso, anzi si potrebbe aggiungere anche il problema odierno di un database distribuito (ma non credo sia relativo alla domanda dell'utente, e quindi non vi ho accennato).
Torno quindi alla risposta iniziale: puoi fare benissimo un database denormalizzato che funziona perfettamente, anche meglio di uno normalizzato.
E viceversa, se vogliamo completare.


Rispondi quotando