Domanda

  

Eventuali duplicati:
   Che cosa fa esattamente la normalizzazione del database fare?

Qualcuno può chiarire la normalizzazione dei dati? Quali sono i diversi livelli? Quando dovrei "de-normalizzazione"? Can I over normalizzare? Ho una tabella con milioni di dischi, e credo di sopra normalizzata, ma non sono sicuro.

È stato utile?

Soluzione

Se si dispone di milioni di Colonne che probabilmente normalizzata sotto-it.
Quali mezzi di normalizzazione è che

  

tutti gli attributi non chiave "deve fornire   un fatto che riguarda la chiave, la chiave di tutto,   e nient'altro che la chiave ".

Se si dispone di una colonna che dipende tutto tranne che la chiave, si dovrebbe normalizzare il vostro tavolo.
vedi qui .

Aggiunto a rispondere al commento:
Se si dispone di ProductID | ProductType | ProductTypeID, dove ProdcutTypeID dipende solo ProductType, si dovrebbe fare una nuova tabella per questo:
ProductID | ProductTypeID e sull'altro tavolo: ProductTypeID | ProductTypeName.
Quindi, per rispondere alla tua domanda, relative al prodotto non è abbastanza preciso, nel mio esempio al primo caso, mi è stato di pertinenza del prodotto come bene. Tutte le colonne devono riguardare solo per ProductID (si può dire che solo descrivere prodotto, ma non descrivere qualsiasi altra cosa, anche se è legato al prodotto - che è preciso).
Numero di righe, in generale non è relevent.

Altri suggerimenti

La normalizzazione è di ridurre la duplicazione dei dati in un database relazionale. Il livello più popolare è terza forma normale (è quella descritta da "la chiave, la chiave di tutta la, e nient'altro che la chiave"), ma ci sono un sacco di diversi livelli, vedi la voce di Wikipedia per un elenco di quelli principali. (In pratica la gente sembra pensare che stanno facendo bene per ottenere terza forma normale.) Significa accettare di più la duplicazione dei dati, in genere in cambio di una migliore performance denormalizing.

Come altri hanno detto la normalizzazione del database è sulla riduzione della duplicazione dei dati e modelli di dati più generici (che può facilmente rispondere alle domande inaspettate in fase di progettazione). La normalizzazione di un database è consentire un processo abbastanza formale. Quando si è sperimentato si seguono per lo più i metodi di analisi dei dati e ottenere un database normalizzato alla fine.

database di normalizzazione di solito è una buona idea, ma v'è una cattura. In molti casi si comporta la creazione di nuove tabelle e unisciti relazioni tra le tabelle. JOIN è noto per avere un costo (molto) ad alte prestazioni in fase di esecuzione, d'ora in poi per i grandi volumi di dati si consiglia di denormalizzare.

Un altro costo può anche essere la necessità di scrivere le richieste più complesse per l'accesso ai dati necessari e che può essere un problema per i principianti SQL. L'idea migliore è probabilmente quello di bastone con la normalizzazione in ogni caso (terza forma normale di solito è sufficiente, in quanto vi sono diversi livelli di normalizzazione, come altri hanno detto) e di diventare più abili con SQL.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top