Dependência funcional em SGBD: tipos com exemplos

⚡ Resumo Inteligente

A dependência funcional é uma restrição que determina como um atributo se relaciona com outro em um SGBD (Sistema de Gerenciamento de Banco de Dados). Ela fundamenta a normalização ao identificar determinantes e dependentes, e é classificada em dependências multivaloradas, triviais, não triviais e transitivas.

  • ➡️ Ideia central: Em X → Y, o determinante X fixa o valor da variável dependente Y, representada por uma seta.
  • 🏷️ Termos chave: Determinante, dependente, axioma, decomposição e união descrevem como as dependências são nomeadas e manipuladas.
  • 📐 Axiomas de Armstrong: Reflexividade, aumentação e transitividade inferem toda dependência que um conjunto implica logicamente.
  • 🔀 Quatro tipos: Dependências multivaloradas, triviais, não triviais e transitivas descrevem, cada uma, uma relação de atributos distinta.
  • 🧹 Link de normalização: As dependências impulsionam a normalização, que remove redundâncias e atualiza anomalias.
  • 🔑 Encerramento: O fechamento do atributo revela as chaves candidatas e se uma dependência se mantém.
  • ✅ Benefício: Boas dependências sinalizam um bom design e distinguem esquemas de qualidade de esquemas de baixa qualidade.

Dependência Funcional em SGBD

O que é dependência funcional?

Dependência Funcional (FD) Uma dependência funcional é uma restrição que determina a relação entre um atributo e outro em um Sistema de Gerenciamento de Banco de Dados (SGBD). Ela ajuda a manter a qualidade dos dados no banco de dados e desempenha um papel fundamental na distinção entre um bom e um mau projeto de banco de dados.

Uma dependência funcional é representada por uma seta “→”. A dependência funcional de Y em relação a X é representada por X → Y. Vamos entender a dependência funcional com um exemplo.

Exemplo:

Número de empregado nome do empregado Competitivo Cidade
1 Dana 50000 Santos
2 Francis 38000 London
3 Andrew 25000 Tóquio

Neste exemplo, se soubermos o valor do número do funcionário, podemos obter o nome do funcionário, a cidade, o salário e assim por diante. Com isso, podemos dizer que a cidade, o nome do funcionário e o salário dependem funcionalmente do número do funcionário.

Termos chave

Aqui estão alguns termos-chave para dependência funcional em um banco de dados:

Termos chave Descrição
Axiom Axiomas são um conjunto de regras de inferência usadas para inferir todas as dependências funcionais em um banco de dados relacional.
Decomposição Uma regra que sugere que, se você tiver uma tabela que parece conter duas entidades determinadas pela mesma chave primária, você deve considerar dividi-la em duas tabelas diferentes.
Dependente Ele é exibido no lado direito do diagrama de dependência funcional.
determinante Ele é exibido no lado esquerdo do diagrama de dependência funcional.
União Isso sugere que, se duas tabelas forem separadas e a chave primária for a mesma, você deve considerar juntá-las.

Regras de Dependências Funcionais (Axiomas de Armstrong)

A seguir estão as três regras mais importantes para a dependência funcional em um banco de dados. Elas são conhecidas como os axiomas de Armstrong, e todas as outras regras de inferência podem ser derivadas delas.

  • Regra reflexiva: Se X é um conjunto de atributos e Y é um subconjunto de X, então X → Y é verdadeiro.
  • Regra de aumento: Quando X → Y é válido e C é um conjunto de atributos, então XC → YC também é válido. Adicionar atributos não altera a dependência básica.
  • Regra da transitividade: Semelhante à regra transitiva em álgebra: se X → Y é válida e Y → Z é válida, então X → Z também é válida.

Dessas três regras adicionais são derivadas e são usadas constantemente na prática:

  • Regra da União: Se X → Y e X → Z, então X → YZ.
  • Regra de decomposição: Se X → YZ, então X → Y e X → Z.
  • Regra da pseudotransitividade: Se X → Y e WY → Z, então WX → Z.

Aplicar essas regras repetidamente a um conjunto de dependências produz o seu resultado. encerramento, o conjunto completo de dependências que se seguem logicamente. O fechamento de um conjunto de atributos também é como as chaves candidatas são encontradas, o que se relaciona diretamente ao estudo de Chaves do SGBD.

Tipos de dependências funcionais em SGBD

Existem principalmente quatro tipos de dependência funcional em SGBDs:

  • Dependência Multivalorada
  • Dependência Funcional Trivial
  • Dependência Funcional Não Trivial
  • Dependência Transitiva

Dependência multivalorada em DBMS

A dependência multivalorada ocorre quando há múltiplos atributos multivalorados independentes em uma única tabela. Uma dependência multivalorada é uma restrição completa entre dois conjuntos de atributos em uma relação, exigindo que certas tuplas estejam presentes. Considere o seguinte exemplo.

Exemplo:

Modelo_de_carro Maf_ano Cor
H001 2017 Metálico
H001 2017 Verde
H005 2018 Metálico
H005 2018 Azul
H010 2015 Metálico
H033 2012 Cinzento

Neste exemplo, Maf_year e Color são independentes entre si, mas dependem de Car_model. Diz-se que essas duas colunas são multivaloradas e dependem de Car_model. Isso é representado da seguinte forma:

modelo_do_carro → ano_maf

modelo_do_carro → cor

Dependência Funcional Trivial em SGBD

Uma dependência trivial é um conjunto de atributos que é considerado trivial se o conjunto de atributos estiver incluído nesse atributo. Portanto, X → Y é uma dependência funcional trivial se Y for um subconjunto de X. Considere o exemplo abaixo.

Emp_id Emp_name
AS555 Harry
AS811 George
AS999 Kevin

Considere esta tabela com duas colunas, Emp_id e Emp_name. {Emp_id, Emp_name} → Emp_id é uma dependência funcional trivial, pois Emp_id é um subconjunto de {Emp_id, Emp_name}.

Dependência funcional não trivial em SGBD

Uma dependência não trivial ocorre quando A → B é verdadeira e B não é um subconjunto de A. Se o atributo B não for um subconjunto do atributo A, a dependência é considerada não trivial.

Empresa CEO Idade
Microsoft Satya Nadella 51
Google Sundar Pichai 46
Apple Tim Cook 57

Exemplo:

{Empresa} → {CEO} (se conhecermos a Empresa, conheceremos o nome do CEO). Mas CEO não é um subconjunto de Empresa e, portanto, trata-se de uma dependência funcional não trivial.

Dependência transitiva em SGBD

Uma dependência transitiva é um tipo de dependência funcional que ocorre quando um atributo é indiretamente determinado por duas dependências funcionais. Considere o exemplo abaixo.

Empresa CEO Idade
Microsoft Satya Nadella 51
Google Sundar Pichai 46
Alibaba Jack Ma 54

{Empresa} → {CEO} (se soubermos a empresa, saberemos o nome do seu CEO).

{CEO} → {Idade} (se soubermos o CEO, saberemos a idade).

Portanto, pela regra da dependência transitiva, {Company} → {Age} deve ser válido, o que faz sentido porque se soubermos o nome da empresa, podemos encontrar a idade.

Nota: a dependência transitiva só pode ocorrer em uma relação com três ou mais atributos.

O que é Normalização?

A normalização é um método de organização de dados em um banco de dados que ajuda a evitar redundância de dados e anomalias de inserção, atualização e exclusão. É um processo de análise dos esquemas de relacionamento com base em suas diferentes dependências funcionais e chave primária.

A normalização é inerente à teoria de bancos de dados relacionais. Ela pode ter o efeito de dividir os dados em tabelas adicionais, de modo que cada fato seja armazenado apenas uma vez. O processo completo é abordado no guia para normalização de banco de dados, que se baseia diretamente nos tipos de dependência acima.

Vantagens da Dependência Funcional

  • A dependência funcional evita a redundância de dados, de modo que os mesmos dados não se repetem em vários locais no sistema. banco de dados.
  • Isso ajuda a manter a qualidade dos dados no banco de dados.
  • Isso ajuda a definir os significados e as limitações dos bancos de dados.
  • Isso ajuda a identificar designs ruins.
  • Isso ajuda você a encontrar informações sobre o projeto do banco de dados.

Perguntas Frequentes

O determinante é o atributo à esquerda da seta que fixa o valor. O dependente é o atributo à direita, cujo valor é determinado. Em X → Y, X determina Y.

Uma dependência funcional fixa um único valor para a variável dependente. Uma dependência multivalorada permite um conjunto de valores independentes, razão pela qual necessita de um atributo próprio e leva à quarta forma normal.

Calcule o fecho de um conjunto de atributos usando as dependências. Se o fecho incluir todos os atributos da relação, esse conjunto é uma superchave; o menor conjunto desse tipo é uma chave candidata.

Sim. Algoritmos de descoberta de dependências, alguns com auxílio de IA, analisam um conjunto de dados e propõem dependências candidatas. Um projetista deve confirmá-las, pois um padrão verdadeiro em dados de amostra pode não se manter como regra.

Ela armazena um fato sobre um atributo não chave, portanto, atualizá-la pode gerar anomalias. Remover dependências transitivas é exatamente o que a terceira forma normal exige, mantendo cada fato em um único local.

Resuma esta postagem com: