Differenza tra 3NF e BCNF

Autore: Laura McKinney
Data Della Creazione: 1 Aprile 2021
Data Di Aggiornamento: 13 Maggio 2024
Anonim
4.3.0 Database Normal Forms: 1NF, 2NF, 3NF, 4NF and BCNF
Video: 4.3.0 Database Normal Forms: 1NF, 2NF, 3NF, 4NF and BCNF

Contenuto


Normalizzazione è un metodo che rimuove ridondanza da una relazione minimizzando così l'inserzione, la cancellazione e l'aggiornamento delle anomalie che degradano le prestazioni dei database. In questo articolo, distingueremo tra due forme normali più alte, cioè 3NF e BCNF. La differenza di base tra 3NF e BCNF è quella 3NF elimina la dipendenza transitiva da una relazione e una tabella per essere in BCNF, la banale dipendenza funzionale X-> Y in una relazione deve contenere, solo se X è la super chiave.

Discutiamo le differenze tra 3NF e BCNF con l'aiuto della tabella di confronto mostrata di seguito.

  1. Tabella di comparazione
  2. Definizione
  3. Differenze chiave
  4. Conclusione

Tabella di comparazione

Base per il confronto3NFBCNF
ConcettoNessun attributo non primo deve dipendere in modo transitorio dalla chiave del candidato.Per qualsiasi banale dipendenza in una relazione, dire X-> Y, X dovrebbe essere una super chiave della relazione R.
Dipendenza3NF può essere ottenuto senza sacrificare tutte le dipendenze.Le dipendenze non possono essere conservate in BCNF.
DecomposizioneLa decomposizione senza perdita può essere ottenuta in 3NF.La decomposizione senza perdite è 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 c'è non-prime attributo transitivamente dipende dal chiave candidata di una relazione.

Quindi, prima di affrontare il processo di normalizzazione di una tabella in 3NF, consentitemi di discutere la chiave del candidato. UN Chiave del candidato è super chiave minima cioè una super chiave con attributi minimi che possono definire tutti gli attributi di una relazione. Quindi, nel processo di normalizzazione del tuo tavolo, prima riconosci la chiave candidata di una data relazione. Gli attributi che fanno parte della chiave candidata sono attributi primie 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.


Osservando le dipendenze funzionali, possiamo concludere che AB è una chiave candidata per la relazione R perché usando la chiave AB possiamo cercare il valore di tutti gli attributi in una relazione R. Quindi A, B diventa attributi primi mentre insieme formano la chiave del candidato. Gli attributi C, D, E, F diventa non-prime attributi perché nessuno di essi fa parte di una chiave candidata.

La tabella è in 2NF poiché nessun attributo non primo dipende parzialmente dalla chiave candidata

Tuttavia, si osserva una dipendenza transitiva tra le dipendenze funzionali fornite, come attributo F non dipende direttamente dalla chiave candidata AB. Invece, attributo F è transitivamente dipende dalla chiave candidata AB tramite attributo D. Finché l'attributo D ha un 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 si divide una relazione, posizionare 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 dipendenza transitiva e anche gli attributi che dipendono da esso nella seconda relazione.

Ora, le tabelle R1 e R2 sono in 3NF in quanto non sono rimaste dipendenze parziali e transitive. Relazione R1 (A, B, C, D, E) ha una chiave candidata AB mentre, relazione R2 (D, E) ha D come chiave candidata.

Definizione di BCNF

BCNF è considerato il più forte di 3NF. La relazione R per essere in BCNF deve essere in 3NF. E ovunque a dipendenza funzionale non banale A -> B vale in relazione a R, quindi UN deve essere un superchiave della relazione R. Come sappiamo, la Super chiave è una chiave che ha un singolo attributo o un insieme di attributi che determina, gli interi attributi di una relazione.

Passiamo ora a un esempio per comprendere meglio BCNF. Supponiamo di avere una relazione R (A, B, C, D, F), che hanno le seguenti dipendenze funzionali.

Osservando la relazione R, possiamo dirlo UN e BF siamo chiavi candidate della relazione R, poiché solo loro possono cercare il valore di tutti gli attributi nella relazione R. Quindi A, B, F sono i primo attributi considerando che, C e D siamo non-prime attributi. Nessuna dipendenza transitiva è stata osservata nelle dipendenze funzionali presenti sopra. Quindi, la tabella R è in 3NF.

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

Ora, le tabelle R1 e R2 sono in BCNF. Relazione R1 ha due candidato chiavi UN e B, la banale dipendenza funzionale di R1, cioè A-> BCD e B -> ACD, tenere premuto per BCNF come A e B sono i super tasti per la relazione. Relazione R2 ha D come suo chiave candidata e la dipendenza funzionale D -> F vale anche per BCNF poiché D è una Super chiave.

  1. 3NF afferma che nessun attributo non primo deve dipendere in modo transitorio dalla chiave candidata della relazione. D'altra parte, BCNF afferma che se una banale dipendenza funzionale X -> Y esiste per una relazione; allora X deve essere una super chiave.
  2. 3NF può essere ottenuto senza sacrificare la dipendenza della relazione. Tuttavia, la dipendenza potrebbe non essere preservata durante l'ottenimento di BCNF.
  3. 3NF può essere ottenuto senza perdere alcuna informazione dalla vecchia tabella mentre, mentre ottenendo BCNF, possiamo perdere alcune informazioni dalla vecchia tabella.

Conclusione:

BCNF è molto più restrittivo di 3NF che aiuta a normalizzare maggiormente la tabella. La relazione in 3NF ha una ridondanza minima rimossa che viene ulteriormente rimossa dal BCNF.