Skip to main content

Um guia para entender as dependências de banco de dados

gta sa 2019 10 08 15 47 19 227 (Abril 2025)

gta sa 2019 10 08 15 47 19 227 (Abril 2025)
Anonim

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.

Dependências Funcionais Triviais

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.

Dependências Funcionais Completas

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

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

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.

Importância das Dependências

É 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:

  • Para uma tabela estar na segunda forma normal (2NF), não deve haver nenhum caso de um atributo nonprime na tabela que seja funcionalmente dependente de um subconjunto de uma chave candidata.
  • Para uma tabela estar na terceira forma normal (3NF), todo atributo nonprime deve ter uma dependência funcional não transitiva em cada chave candidata.
  • Para que uma tabela esteja em BCNF (Boyce-Codd Normal Form), toda dependência funcional (além de dependências triviais) deve estar em uma superchave.
  • Para uma tabela estar na quarta forma normal (4NF), ela não deve ter dependências com valores múltiplos.