
Cerchiamo di discutere le differenze tra 3NF e BCNF con l'aiuto del grafico di confronto mostrato di seguito.
Grafico comparativo
Base per il confronto | 3NF | BCNF |
---|---|---|
Concetto | Nessun attributo non-prime deve essere transitivamente dipendente dalla chiave Candidate. | Per qualsiasi dipendenza insignificante in una relazione R dice X-> Y, X dovrebbe essere una super chiave della relazione R. |
Dipendenza | 3NF può essere ottenuto senza sacrificare tutte le dipendenze. | Le dipendenze potrebbero non essere conservate in BCNF. |
Decomposizione | La decomposizione senza perdita di dati può essere ottenuta in 3NF. | La decomposizione senza perdita di dati è difficile da ottenere in BCNF. |
Definizione di 3NF
Una tabella o una relazione è considerata in Terza Forma Normale solo se la tabella è già in 2NF e non esiste un attributo non-prime che dipende in modo transitorio dalla chiave candidata di una relazione.
Quindi, prima di affrontare il processo di normalizzazione di una tabella in 3NF, permettimi di discutere la chiave del candidato. Una chiave candidata è una super-chiave minima, ovvero una super-chiave con attributi minimi che possono definire tutti gli attributi di una relazione. Quindi, nel processo di normalizzazione della tabella, in primo luogo, si riconosce la chiave candidata di una determinata relazione. Gli attributi che fanno parte della chiave candidata sono attributi primi e gli attributi che non fanno parte della chiave candidata sono attributi non primi .
Ora se abbiamo una relazione R (A, B, C, D, E, F) e abbiamo le seguenti dipendenze di funzione per la relazione R.

La tabella è in 2NF poiché nessun attributo non-prime dipende parzialmente dalla chiave candidata
Ma, una dipendenza transitiva è osservata tra le dipendenze funzionali fornite, poiché l'attributo F non dipende direttamente dalla chiave candidata AB . Invece, l'attributo F dipende transitivamente dalla chiave candidata AB tramite l'attributo D. Fino all'attributo D ha un certo valore che possiamo raggiungere per attribuire il valore di F, dalla chiave candidata AB. Nel caso in cui il valore dell'attributo D sia NULL non possiamo mai trovare / cercare il valore di F con l'aiuto della chiave candidata AB. Questo è il motivo per cui 3NF richiede di rimuovere la dipendenza transitiva dalle relazioni.
Quindi, per rimuovere questa dipendenza transitiva, dobbiamo dividere la relazione R. Mentre dividendo una relazione posiziona sempre la chiave candidata e tutti gli attributi che dipendono da quella chiave candidata nella prima relazione. Nella prossima relazione divisa, inseriremo l'attributo che causa la dipendenza transitiva e anche gli attributi che dipendono da esso nella seconda relazione.

Definizione di BCNF
BCNF è considerato il più forte di 3NF. La relazione R per essere in BCNF deve essere in 3NF . E ovunque una dipendenza funzionale non banale A -> B valga in relazione a R, allora A deve essere un superkey della relazione R. Come sappiamo, la chiave Super è una chiave che ha un singolo attributo o insieme di attributi che determina, l'intero attributi di una relazione.
Passiamo ora a un esempio per capire BCNF in un modo migliore. Supponiamo di avere una relazione R (A, B, C, D, F), che ha le seguenti dipendenze funzionali.

Ma una dipendenza funzionale cioè D -> F sta violando la definizione di BCNF, secondo la quale, se D -> F esiste allora D dovrebbe essere la chiave super che non è il caso qui. Quindi divideremo la relazione R.

Differenze chiave tra 3NF e BCNF
- 3NF afferma che nessun attributo non-prime deve essere transitivamente dipendente dalla chiave candidata della relazione. D'altra parte, BCNF afferma che se esiste una dipendenza funzionale banale X -> Y per una relazione; quindi X deve essere una super chiave.
- 3NF può essere ottenuto senza sacrificare la dipendenza della relazione. Tuttavia, la dipendenza potrebbe non essere preservata durante l'ottenimento di BCNF.
- 3NF può essere ottenuto senza perdere alcuna informazione dalla vecchia tabella mentre, mentre si ottiene BCNF possiamo perdere alcune informazioni dalla vecchia tabella.
Conclusione:
BCNF è molto più restrittivo di 3NF che aiuta a normalizzare di più la tabella. La relazione in 3NF ha una ridondanza minima a sinistra che viene ulteriormente rimossa dal BCNF.