Uma dependência é uma restrição que se aplica ou define o relacionamento entre os atributos. Ocorre em um banco de dados quando as informações armazenadas na mesma tabela de banco de dados determinam exclusivamente outras informações armazenadas na mesma tabela. Você também pode descrever isso como um relacionamento em que saber o valor de um atributo (ou um conjunto de atributos) é suficiente para informar o valor de outro atributo (ou conjunto de atributos) na mesma tabela.
Dependências de banco de dados geralmente confundem tanto estudantes quanto profissionais de banco de dados. Felizmente, eles não são tão complicados quanto parecem. Eles podem ser melhor explicados usando alguns exemplos. Aqui, examinaremos tipos comuns de dependência de banco de dados.
Dependências do Banco de Dados e Dependências Funcionais
Dizer que existe uma dependência entre atributos em uma tabela é o mesmo que dizer que existe uma dependência funcional entre esses atributos. Se houver uma dependência em um banco de dados, de modo que o atributo B dependa do atributo A, você escreverá isso como:
A -> B
Por exemplo, em uma tabela listando as características dos funcionários, incluindo o número do Seguro Social (SSN) e o nome, pode-se dizer que o nome depende do SSN (ou SSN -> nome) porque o nome de um funcionário pode ser determinado exclusivamente por um SSN. No entanto, a instrução inversa (nome -> SSN) não é verdadeira porque mais de um funcionário pode ter o mesmo nome, mas sempre tem SSNs diferentes. Uma dependência funcional trivial ocorre quando você descreve uma dependência funcional de um atributo em uma coleção de atributos que inclui o atributo original. Por exemplo, {A, B} -> B é uma dependência funcional trivial, como {name, SSN} -> SSN. Esse tipo de dependência funcional é chamado de trivial porque pode ser derivado do senso comum. É óbvio que se você já conhece o valor de B, então o valor de B pode ser determinado exclusivamente por esse conhecimento. Uma dependência funcional completa ocorre quando você já atende aos requisitos para uma dependência funcional e o conjunto de atributos no lado esquerdo da instrução de dependência funcional não pode ser reduzido ainda mais. Por exemplo, {SSN, age} -> name é uma dependência funcional, mas não é uma dependência funcional completa porque você pode remover a idade do lado esquerdo da instrução sem afetar o relacionamento de dependência. Dependências transitivas ocorrem quando há um relacionamento indireto que causa uma dependência funcional. Por exemplo, A -> C é uma dependência transitiva quando é verdadeira apenas porque ambos A -> B e B -> C são verdadeiros. Dependências multivaloradas ocorrem quando a presença de uma ou mais linhas em uma tabela implica a presença de uma ou mais outras linhas na mesma tabela. Por exemplo, imagine uma empresa automobilística que fabrica muitos modelos de carro, mas sempre faz as cores vermelha e azul de cada modelo. Se você tem uma tabela que contém o nome do modelo, a cor e o ano de cada carro que a empresa fabrica, há uma dependência de vários valores nessa tabela. Se houver uma linha para um determinado nome de modelo e ano em azul, também deverá haver uma linha semelhante correspondente à versão em vermelho desse mesmo carro. É importante entender as dependências do banco de dados porque elas fornecem os blocos básicos usados na normalização do banco de dados, o processo de organizar com eficiência os dados em um banco de dados. Por exemplo: Dependências Funcionais Triviais
Dependências Funcionais Completas
Dependências transitivas
Dependências Multivaloradas
Importância das Dependências