Database - Terza forma normale (3NF)
Una tabella è in una terza forma normale quando sono soddisfatte le seguenti condizioni:
- È nella seconda forma normale.
- Tutti i campi non primari dipendono dalla chiave primaria.
La dipendenza di questi campi non primari è tra i dati. Ad esempio, nella tabella seguente, il nome della via, la città e lo stato sono indissolubilmente legati al loro codice postale.
CREATE TABLE CUSTOMERS(
CUST_ID INT NOT NULL,
CUST_NAME VARCHAR (20) NOT NULL,
DOB DATE,
STREET VARCHAR(200),
CITY VARCHAR(100),
STATE VARCHAR(100),
ZIP VARCHAR(12),
EMAIL_ID VARCHAR(256),
PRIMARY KEY (CUST_ID)
);
La dipendenza tra il codice postale e l'indirizzo viene chiamata come dipendenza transitiva. Per ottemperare alla terza forma normale, tutto ciò che devi fare è spostare i campi Via, Città e Stato nella loro tabella, che puoi chiamare tabella CAP. -
CREATE TABLE ADDRESS(
ZIP VARCHAR(12),
STREET VARCHAR(200),
CITY VARCHAR(100),
STATE VARCHAR(100),
PRIMARY KEY (ZIP)
);
Il passaggio successivo consiste nel modificare la tabella CLIENTI come mostrato di seguito:
CREATE TABLE CUSTOMERS(
CUST_ID INT NOT NULL,
CUST_NAME VARCHAR (20) NOT NULL,
DOB DATE,
ZIP VARCHAR(12),
EMAIL_ID VARCHAR(256),
PRIMARY KEY (CUST_ID)
);
I vantaggi della rimozione delle dipendenze transitive sono principalmente duplici. Innanzitutto, la quantità di duplicazione dei dati viene ridotta e quindi il database diventa più piccolo.
Il secondo vantaggio è l'integrità dei dati. Quando i dati duplicati cambiano, c'è un grosso rischio di aggiornare solo alcuni dei dati, soprattutto se sono distribuiti in molti punti diversi del database.
Ad esempio, se l'indirizzo e i dati del codice postale fossero archiviati in tre o quattro tabelle diverse, qualsiasi modifica nei codici postali dovrebbe essere estesa a tutti i record in quelle tre o quattro tabelle.