Forme normali in teoria dei database relazionali

September 17

Forme normali nel database relazionale teoria occupiamo di come ridurre la quantità di ridondanza dei dati all'interno di una determinata tabella. Ogni forma normale rappresenta un livello. Per soddisfare ogni i requisiti di un certo livello, i requisiti per i livelli precedenti devono essere soddisfatti. Per raggiungere la forma normale ottimale per le tabelle all'interno di un database, il creatore inizia con una lunga lista di tutti i dati che si terrà nel database, e quindi funziona attraverso le forme normali fino a quando non può più rompere i dati giù in tavoli più piccoli.

Prima forma normale

La prima forma normale viene creato rimuovendo gli attributi di ripetizione o multivalore in una tabella a una tabella figlio. Ogni voce in una colonna deve avere un singolo valore. Ogni colonna deve essere di un solo tipo di dati. Non si può avere una colonna che contiene sia dati numerici e di caratteri.

Ogni riga deve essere univoco. Non ci può essere più istanze dello stesso indirizzo. La sequenza di colonne e righe non importa. Tutte le colonne devono avere un nome univoco all'interno di una tabella. I nomi possono essere ripetute in più di una tabella, ma non nella stessa tabella.

Seconda forma normale

Nella seconda forma normale, ogni colonna all'interno della tabella deve essere rilevante per l'intera chiave primaria. Il rapporto deve essere un rapporto uno a uno o uno-a-molti. La seconda forma normale è rilevante solo quando vi è più di una colonna utilizzata come chiave primaria. Ad esempio, se abbiamo una tabella in cui la chiave primaria è la colonna PART_NO e magazzino e c'è una colonna chiamata WAREHOUSE_ADDRESS, la colonna WAREHOUSE_ADDRESS è rilevante solo per la parte di magazzino della chiave primaria. Si deve essere collocato in un'altra tabella in cui la chiave primaria è semplicemente MAGAZZINO.

Terza forma normale

Per la terza forma normale, tutte le colonne che dipendono colonne non chiave vengono rimossi. Inoltre, tutti i dati che possono essere derivati ​​da altre colonne viene rimosso. Ad esempio, se si dispone di una tabella che ha i nomi delle colonne CLIENTE, COMPANY e COMPANY_ADDRESS, il COMPANY_ADDRESS colonna dipende dal COLONNA COMPANY. Per soddisfare terza forma normale, ci dovrebbero essere due tavoli. Uno con le colonne cliente e azienda, e un altro con le colonne COMPANY COMPANY_ADDRESS.
La seconda parte della terza forma normale dice che i dati possono che può essere derivata da altre colonne viene rimosso. Ad esempio, una tabella che aveva il CLIENTE colonne, ITEM_NO, QUANT_PURCHASED, UNIT_PRICE e TOTAL viola terza forma normale, perché totale può essere derivato da QUANT_PURCHASED * UNIT_PRICE. Per soddisfare terza forma normale della colonna TOTALE sarebbe stato rimosso.

Quarta forma normale

Sotto la quarta forma normale, una tabella non può avere più di una colonna multivalore. Una colonna multivalore è quella in cui una singola entità può avere più di un attributo per quella colonna. Una tabella con le colonne dei dipendenti, le competenze e PREMI violerebbe quarta forma normale, perché il dipendente potrebbe avere più competenze e più premi. Per soddisfare la quarta forma normale, i dati devono essere suddivisi in una tabella con le colonne dei dipendenti e competenze e una seconda tabella con le colonne dei dipendenti e premi.

Quinto forma normale

La quinta forma normale è stato creato rimuovendo le colonne che possono essere creati da piccoli pezzi di dati che può essere mantenuta con meno ridondanza. Una tabella che contiene la colonna PERFORMER, spettacolo, SEDE violerebbe quinta forma normale se gli esecutori potrebbero apparire in molteplici spettacoli e luogo multipla. Per soddisfare quinta forma normale, i dati sarebbero stati divisi in tre tabelle. La prima tabella avrebbe la PERFORMER colonne e spettacolo. La seconda tabella avrebbe la Mostra colonne e il luogo. La terza tabella avrebbe la SEDE colonne e performer. I dati corretti possono comunque essere derivati ​​dalla combinazione dei tavoli, ma i dati non è più di natura ciclica.