Vamos considerar uma relação R(A B C). Aqui A, B e C são conhecidos como o atributo da relação R. Quando surge a seguinte condição; então a dependência transitiva ocorre no SGBD. As condições são A → B, B → C. Portanto, a condição passa a ser A → C. Em outras palavras, podemos dizer que quando as dependências são feitas por duas dependências funcionais, então as dependências funcionais tornam-se dependências transitivas.
O que é dependência transitiva?
Considere uma relação R(A B C). Aqui A, B e C são conhecidos como o atributo da relação R. Quando surge a seguinte condição; então a dependência transitiva ocorre no SGBD. As condições são A → B, B → C. Portanto, a condição torna-se A → C. Em dependências funcionais transitivas, um dependente é diretamente dependente do determinante.
Vamos entender as dependências transitivas com a ajuda do exemplo a seguir.
Autor_ID | Autor | Livro | Autor_Nacionalidade |
---|---|---|---|
A1 | Arundhati Roy | O Deus das Pequenas Coisas | Índia |
A1 | Kiran Desai | A herança da perda | Índia |
A2 | RK Narayan | O Devorador de Homens de Malgudy | Índia |
Na tabela do autor acima, conseguimos isso.
Se observarmos atentamente as dependências funcionais discutidas acima, encontraremos o seguinte padrão.
- A → B e B → C B→C; portanto, A → CA → C.
- A → Livro, B → Autor B → Autor e C → Autor_Nacionalidade C→Autor_Nacionalidade
Suponha que apliquemos a Terceira Forma Normal (3NF) na tabela de autores acima. Nesse caso, a dependência transitiva da tabela do autor deve ser removida, e o processo de remoção das dependências transitivas do banco de dados é conhecido como processo de Normalização.
Como evitar dependências transitivas?
Vamos considerar novamente a tabela do autor acima e ver que tipo de problema surge durante a criação da tabela.
Tabela de autores:
Autor_ID | Autor | Livro | Autor_Nacionalidade |
---|---|---|---|
A1 | Arundhati Roy | O Deus das Pequenas Coisas | Índia |
A1 | Kiran Desai | A herança da perda | Índia |
A2 | RK Narayan | O Devorador de Homens de Malgudy | Índia |
As anomalias de dados (como anomalias de atualização, inserção e exclusão) e inconsistências podem ser contribuídas pela tabela do autor. Quando há muita redundância no banco de dados, anomalias de dados são causadas nos dados. Anomalias de dados também são causadas quando há um problema com atualização, exclusão e inserção de novos dados. Por exemplo, na tabela do autor-
- Não podemos adicionar um novo autor até que não possamos adicionar um livro à tabela.
- Não podemos excluir o autor até excluirmos completamente o livro do banco de dados.
- Se quisermos deletar o livro 'O Deus das Pequenas Coisas', a identidade do autor, o autor e a nacionalidade também serão deletados.
Os problemas acima ocorrem em qualquer relacionamento que contenha dependências transitivas.
Terceira forma normal removendo a dependência transitiva
Vamos considerar o Tabela de autores com três atributos (Author_ID, Author, Author_Nationality) e tente encontrar e eliminar a dependência Transitiva desta tabela,
Tabela de Autores:
Autor_ID | Autor | Livro | Autor_Nacionalidade |
---|---|---|---|
A1 | Arundhati Roy | O Deus das Pequenas Coisas | Índia |
A1 | Kiran Desai | A herança da perda | Índia |
A2 | RK Narayan | O Devorador de Homens de Malgudy | Índia |
A tabela do autor acima não está na 3NF porque possui uma dependência transitiva. Vamos ver como
pés versus pés
- Autor → Autor_Nacionalidade Autor → Autor_Nacionalidade
- Autor_ID → Autor
Portanto, a seguinte dependência funcional também existe,
- Authir_ID → Author_Nationality está formando um padrão semelhante ao que discutimos acima.
Agora, para eliminar a dependência Transitiva, tudo o que precisamos fazer é dividir a tabela do Autor de tal maneira que Autor_ID não dependa mais funcionalmente de Autor_Nacionalidade.
Vamos criar duas tabelas, uma contendo apenas { Author_ID, Author} e outra contendo {Author_Nationality}. As novas tabelas ficarão assim,
Tabela de Autores
Autor_ID | Autor |
---|---|
A1 | O Deus das Pequenas Coisas |
A2 | A herança da perda |
A3 | O Devorador de Homens de Malgudy |
Tabela de Nacionalidade do Autor
Autor | Autor_Nacionalidade |
---|---|
Arundhati Roy | Índia |
Kiran Desai | Índia |
RK Narayan | Índia |
Agora a nova tabela Autor e a tabela Nacionalidade do Autor não contêm dependência transitiva e a relação agora está em 3NF.