Sommario:
- Definizione - Cosa significa terza forma normale (3NF)?
- Techopedia spiega la terza forma normale (3NF)
Definizione - Cosa significa terza forma normale (3NF)?
La terza forma normale (3NF) è la terza fase della normalizzazione di un database e si basa sulla prima e sulla seconda forma normale, 1NF e 2NF.
3NF afferma che tutti i riferimenti di colonna nei dati di riferimento che non dipendono dalla chiave primaria devono essere rimossi. Un altro modo per dirlo è che solo le colonne di chiave esterna devono essere utilizzate per fare riferimento a un'altra tabella e nella tabella di riferimento non devono esistere altre colonne della tabella principale.
Techopedia spiega la terza forma normale (3NF)
Prendi in considerazione il database di una banca, che contiene due tabelle: CUSTOMER_MASTER per l'archiviazione dei dettagli del cliente e ACCOUNT_MASTER per l'archiviazione dei dettagli sui conti bancari, incluso quale cliente detiene quale account. In questo caso, deve esserci un modo per collegare le due tabelle al fine di legare un account al cliente che lo possiede. Il modo per farlo è tramite una chiave esterna. Questa è una colonna nella tabella ACCOUNT_MASTER che punta o fa riferimento a una colonna corrispondente (chiamata chiave primaria) nella tabella padre CUSTOMER_MASTER. Chiamiamo questa colonna CustID.
Supponiamo che il cliente Andrew Smith crei un account nella tabella CUSTOMER_MASTER con CustID 20454. Il signor Smith detiene un conto di risparmio con il numero S-200802-005, i cui dettagli sono memorizzati nella tabella ACCOUNT_MASTER. Ciò significa che la tabella ACCOUNT_MASTER avrà una colonna denominata CustID, che non è un dato originale. Al contrario, ha anche il valore 20454, che fa semplicemente riferimento allo stesso CustID nella tabella CUSTOMER_MASTER.
Ora, 3NF impone che nella nostra tabella ACCOUNT_MASTER, le uniche informazioni in nostro possesso sul cliente dovrebbero essere il CustID (20454) come chiave esterna, e si riferisce e identifica il cliente che possiede questo stesso CustID nella tabella CUSTOMER_MASTER (Andrew Smith ). Nessun altro dato relativo ai nostri clienti (come nome, data di nascita, sesso e così via) deve essere archiviato nella tabella ACCOUNT_MASTER o in effetti in qualsiasi altra tabella, poiché tutti questi dati su di lui sono già memorizzati in CUSTOMER_MASTER. In questo modo, i soli dati dei clienti memorizzati all'esterno della tabella CUSTOMER_MASTER sono CustID. Questo paga dividendi interessanti assicurando che non vi siano duplicazioni di dati, il che a sua volta rende le query molto più efficienti e riduce la quantità di spazio di archiviazione richiesta.
