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: