Consideriamo una relazione R(A B C). Qui A, B e C sono conosciuti come l'attributo della relazione R. Quando si verifica la seguente condizione; quindi la dipendenza transitiva si verifica nel DBMS. Le condizioni sono A → B, B → C. Pertanto, la condizione diventa A → C. In altre parole, possiamo dire che quando le dipendenze sono formate da due dipendenze funzionali, allora le dipendenze funzionali diventano dipendenze transitive.
Cos'è la dipendenza transitiva?
Consideriamo una relazione R(A B C). Qui A, B e C sono conosciuti come l'attributo della relazione R. Quando si verifica la seguente condizione; quindi la dipendenza transitiva si verifica nel DBMS. Le condizioni sono A → B, B → C. Pertanto, la condizione diventa A → C. Nelle dipendenze funzionali transitive, un dipendente dipende direttamente dal determinante.
Comprendiamo le dipendenze transitive con l'aiuto del seguente esempio.
ID_autore | Autore | Libro | Autore_Nazionalità |
---|---|---|---|
A1 | Arundhati Roy | Il Dio delle piccole cose | India |
A1 | Kiran Desai | L'eredità della perdita | India |
A2 | RK Narayan | Il mangiatore di uomini di Malgudy | India |
Nella tabella degli autori sopra, lo otteniamo.
Se osserviamo da vicino le dipendenze funzionali discusse sopra, troviamo il seguente modello.
- A → B e B → C B→C; quindi A → CA → C.
- A → Libro, B → Autore B → Autore e C → Nazionalità_Autore C→Nazionalità_Autore
Supponiamo di applicare la Terza Forma Normale (3NF) nella tabella degli autori sopra. In tal caso, la dipendenza transitiva della tabella autore deve essere rimossa e il processo di rimozione delle dipendenze transitive del database è noto come processo di normalizzazione.
Come evitare le dipendenze transitive?
Consideriamo nuovamente la tabella degli autori sopra e vediamo che tipo di problema si presenta durante la creazione della tabella.
Tabella degli autori:
Autore_ID | Autore | Libro | Autore_Nazionalità |
---|---|---|---|
A1 | Arundhati Roy | Il Dio delle piccole cose | India |
A1 | Kiran Desai | L'eredità della perdita | India |
A2 | RK Narayan | Il mangiatore di uomini di Malgudy | India |
Le anomalie dei dati (come anomalie di aggiornamento, inserimento e cancellazione) e le incoerenze possono essere fornite dalla tabella dell'autore. Quando c'è troppa ridondanza nel database, si verificano anomalie nei dati. Le anomalie dei dati si verificano anche quando si verifica un problema con l'aggiornamento, l'eliminazione e l'inserimento di nuovi dati. Ad esempio, nella tabella dell'autore-
- Non possiamo aggiungere un nuovo autore finché non possiamo aggiungere un libro alla tabella.
- Non possiamo eliminare l'autore finché non eliminiamo completamente il libro dal database.
- Se vogliamo eliminare il libro 'Il Dio delle piccole cose', verranno eliminati anche l'ID, l'autore e la nazionalità dell'autore.
I problemi di cui sopra si verificano in qualsiasi relazione che contiene dipendenze transitive.
Terza forma normale rimuovendo la dipendenza transitiva
Consideriamo il Tabella degli autori con tre attributi (Author_ID, Author, Author_Nationality) e provare a trovare ed eliminare la dipendenza transitiva da questa tabella,
Tabella degli autori:
ID_autore | Autore | Libro | Autore_Nazionalità |
---|---|---|---|
A1 | Arundhati Roy | Il Dio delle piccole cose | India |
A1 | Kiran Desai | L'eredità della perdita | India |
A2 | RK Narayan | Il mangiatore di uomini di Malgudy | India |
La tabella dell'autore sopra non è in 3NF perché ha una dipendenza transitiva. Vediamo come
oggetto Java
- Autore → Autore_Nazionalità Autore → Autore_Nazionalità
- ID_autore → Autore
Pertanto esiste anche la seguente dipendenza funzionale,
- Authir_ID → Author_Nationality sta formando uno schema simile a quello di cui abbiamo discusso sopra.
Ora per eliminare la dipendenza transitiva, tutto ciò che dobbiamo fare è dividere la tabella dell'autore in modo tale che Author_ID non dipenda più funzionalmente da Author_Nationality.
Creiamo due tabelle, una contenente solo {Author_ID, Author} e un'altra contenente {Author_Nationality}. Le nuove tabelle saranno simili a queste,
Tabella degli autori
ID_autore | Autore |
---|---|
A1 | Il Dio delle piccole cose |
A2 | L'eredità della perdita |
A3 | Il mangiatore di uomini di Malgudy |
Tabella sulla nazionalità dell'autore
Autore | Autore_Nazionalità |
---|---|
Arundhati Roy | India |
Kiran Desai | India |
RK Narayan | India |
Ora la nuova tabella Autore e la tabella Nazionalità dell'autore non contengono alcuna dipendenza transitiva e la relazione è ora in 3NF.