Normalizzazione o denormalizzazione

di il
9 risposte

Normalizzazione o denormalizzazione

Ciao a tutti quando ha senso la denormalizzazione dei dati nella progettazione di un database???

vorrei un po' di parere

9 Risposte

  • Re: Normalizzazione o denormalizzazione

    Vuoi pareri o risposte?
  • Re: Normalizzazione o denormalizzazione

    Esempio. Hai una fattura, che va intestata ad un cliente. Puoi quindi avere:
    1) Fattura.Cliente.Codice che punta alla tabella con tutti i dati del cliente
    2) Fattura.ClienteCodice, Fattura.ClienteRagioneSociale, Fattura.ClienteIndirizzo, etc... con i dati del cliente "copiati".

    Il modello 1 è normalizzato ma richiede l'accesso alla tabella collegata.
    Il modello 2 è denormalizzato ma ogni record richiede molto più spazio.
    Ovviamente le differenze tecniche sono molte e sottili ma non ci interessano ora.

    Quello che fa la differenza è la natura stessa dei dati. Per capirlo facciamo un esempio concreto e comune: il nostro cliente cambia sede!
    Quando il cliente cambia sede viene a cambiare il suo record nella tabella collegata e cosa succede alle fatture emesse in data precedente, se devi ristamparle? Ci sono ovviamente molte risposte possibili e proprio il fatto che siano molte ci fa capire che la denormalizzazione è un processo importante, complesso e necessario!

    La denormalizzazione è anche legata alla ridondanza dei dati.
    Conclusione: quando e come si applica la denormalizzazione? Dipende!
    N
  • Re: Normalizzazione o denormalizzazione

    Dipende da contesto e/o scelta personale/strategica.
  • Re: Normalizzazione o denormalizzazione

    +m2+ ha scritto:


    Vuoi pareri o risposte?
    pareri
  • Re: Normalizzazione o denormalizzazione

    Emadragon ha scritto:


    +m2+ ha scritto:


    Vuoi pareri o risposte?
    pareri
    Non ha senso questa richiesta, per il semplice fatto che NON ESISTE uno standard prefissato.
    La risposta è quella che ti ha dato nicolap, ovvero: DIPENDE!
  • Re: Normalizzazione o denormalizzazione

    Emadragon ha scritto:


    +m2+ ha scritto:


    Vuoi pareri o risposte?
    pareri
    allora mi spiace non posso contribuire
  • Re: Normalizzazione o denormalizzazione

    nicolap ha scritto:


    Esempio. Hai una fattura, che va intestata ad un cliente. Puoi quindi avere:
    1) Fattura.Cliente.Codice che punta alla tabella con tutti i dati del cliente
    2) Fattura.ClienteCodice, Fattura.ClienteRagioneSociale, Fattura.ClienteIndirizzo, etc... con i dati del cliente "copiati".

    Il modello 1 è normalizzato ma richiede l'accesso alla tabella collegata.
    Il modello 2 è denormalizzato ma ogni record richiede molto più spazio.
    Ovviamente le differenze tecniche sono molte e sottili ma non ci interessano ora.

    Quello che fa la differenza è la natura stessa dei dati. Per capirlo facciamo un esempio concreto e comune: il nostro cliente cambia sede!
    Quando il cliente cambia sede viene a cambiare il suo record nella tabella collegata e cosa succede alle fatture emesse in data precedente, se devi ristamparle? Ci sono ovviamente molte risposte possibili e proprio il fatto che siano molte ci fa capire che la denormalizzazione è un processo importante, complesso e necessario!

    La denormalizzazione è anche legata alla ridondanza dei dati.
    Conclusione: quando e come si applica la denormalizzazione? Dipende!
    N
    questa è una casistica perfetta anche perchè la ridondanza dei dati non è sempre garantita...

    La cosa che mi ha lasciato perplesso ed a portare qui la questione è stato trovare come spiegazione alla necessità di utilizzare la denormalizzazione il risolvere problemi di efficenza e velocità nei db relazionali...
  • Re: Normalizzazione o denormalizzazione

    Emadragon ha scritto:


    La cosa che mi ha lasciato perplesso ed a portare qui la questione è stato trovare come spiegazione alla necessità di utilizzare la denormalizzazione il risolvere problemi di efficenza e velocità nei db relazionali...
    Beh... intanto c'è gente che parla/scrive solo perché non ha di peggio da fare.
    Poi, in molti ambienti sono ancora all'età della pietra.

    In termini generali, ci sono casi in cui avere molte tabelle collegate può richiedere un carico di lavoro notevole al db ma questo ci riporta sempre al problema che per progettare bene qualsiasi cosa bisogna studiarla, capirla, etc... ovvero bisogna avere una conoscenza migliore possibile del contesto.
    Tanta fuffa, alla fine, serve solo a ricordarci proprio questo!
    N
  • Re: Normalizzazione o denormalizzazione

    Emadragon ha scritto:


    La cosa che mi ha lasciato perplesso ed a portare qui la questione è stato trovare come spiegazione alla necessità di utilizzare la denormalizzazione il risolvere problemi di efficenza e velocità nei db relazionali...
    Quando i dati sono consolidati e quindi non necessitano di aggiornamenti e devono essere solo
    letti ( vedi ad esempio datawarehouse) ha senso denormalizzare per privilegiare la velocità;

    ... si fa prima ad estrarre i dati da una singola tabella che da una join di n tabelle
Devi accedere o registrarti per scrivere nel forum
9 risposte