Dependência funcional em SGBD: o que é, tipos e exemplos

O que é dependência funcional?

Dependência Funcional (FD) é uma restrição que determina a relação de um atributo com outro atributo em um Sistema de Gerenciamento de Banco de Dados (SGBD). A Dependência Funcional ajuda a manter a qualidade dos dados no banco de dados. Ele desempenha um papel vital para encontrar a diferença entre um design de banco de dados bom e ruim.

Uma dependência funcional é indicada por uma seta “→”. A dependência funcional de X em Y é representada por X → Y. Vamos entender a Dependência Funcional em SGBD com um exemplo.

Exemplo:

Número de empregado nome do empregado Salário Cidades
1 Dana 50000 San Francisco
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, cidade, salário, etc. 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 no banco de dados:

Termos chave Descrição
Axioma Axiomas é 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, considere dividi-las 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 o PK for o mesmo, você deve considerar colocá-las. junto

Regras de Dependências Funcionais

Abaixo estão as três regras mais importantes para dependência funcional no banco de dados:

  • Regra reflexiva –. Se X for um conjunto de atributos e Y for_subset_of X, então X terá um valor de Y.
  • Regra de aumento: quando x -> y é válido e c é um conjunto de atributos, então ac -> bc também é válido. Isso é adicionar atributos que não alteram as dependências básicas.
  • Regra de transitividade: Esta regra é muito semelhante à regra transitiva em álgebra se x -> y é válido e y -> z é válido, então x -> z também é válido. X -> y é chamado funcionalmente que determina y.

Tipos de dependências funcionais em SGBD

Existem principalmente quatro tipos de dependência funcional no SGBD. A seguir estão os tipos de dependências funcionais em DBMS:

  • 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 na situação em que existem vários atributos independentes de vários valores em uma única tabela. Uma dependência multivalorada é uma restrição completa entre dois conjuntos de atributos em uma relação. Requer que certas tuplas estejam presentes em uma relação. Considere o seguinte exemplo de dependência multivalorada para entender.

Exemplo:

Modelo_de_carro Maf_ano Cor
H001 2017 Metálico
H001 2017 Verde
H005 2018 Metálico
H005 2018 Blue
H010 2015 Metálico
H033 2012 Gray

Neste exemplo, maf_year e color são independentes um do outro, mas dependem de car_model. Neste exemplo, essas duas colunas são consideradas multivalores dependentes de car_model.

Esta dependência pode ser representada assim:

modelo_carro -> ano_maf

modelo_carro-> cor

Dependência Funcional Trivial em SGBD

A dependência Trivial é um conjunto de atributos que são chamados de triviais 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. Vamos entender com um exemplo de dependência funcional trivial.

Por exemplo:

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

A dependência funcional, também conhecida como dependência não trivial, ocorre quando A-> B é verdadeiro, onde B não é um subconjunto de A. Em um relacionamento, se o atributo B não for um subconjunto do atributo A, então é considerado um não trivial. dependência.

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

Exemplo:

(Empresa} -> {CEO} (se conhecemos a empresa, sabemos o nome do CEO)

Mas o CEO não é um subconjunto da Empresa e, portanto, é 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 “t” é indiretamente formado por duas dependências funcionais. Vamos entender com o seguinte exemplo de dependência transitiva.

Exemplo:

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

{Empresa} -> {CEO} (se conhecemos a empresa, sabemos o nome do CEO)

{CEO} -> {Idade} Se conhecemos o CEO, sabemos a idade

Portanto, de acordo com a regra da regra de dependência transitiva:

{Empresa} -> {Idade} deve ser válida, isso faz sentido porque se soubermos o nome da empresa, poderemos saber a idade dele.

Nota: É preciso lembrar que a dependência transitiva só pode ocorrer em uma relação de três ou mais atributos.

O que é Normalização?

A normalização é um método de organização dos dados no banco de dados que ajuda a evitar anomalias de redundância, inserção, atualização e exclusão de dados. É 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 do banco de dados relacional. Pode ter o efeito de duplicar os mesmos dados dentro do banco de dados, o que pode resultar na criação de tabelas adicionais.

Vantagens da Dependência Funcional

  • A Dependência Funcional evita redundância de dados. Portanto, os mesmos dados não se repetem em vários locais naquele banco de dados
  • Ajuda você a manter a qualidade dos dados no banco de dados
  • Ajuda você a definir significados e restrições de bancos de dados
  • Ajuda você a identificar designs ruins
  • Ajuda você a descobrir os fatos sobre o design do banco de dados

Resumo

  • Dependência funcional é quando um atributo determina outro atributo em um Sistema SGBD.
  • Axioma, Decomposição, Dependente, Determinante, União são termos-chave para dependência funcional
  • Quatro tipos de dependência funcional são 1) Multivalorada 2) Trivial 3) Não trivial 4) Transitiva
  • A dependência multivalorada ocorre na situação em que existem vários atributos independentes de vários valores em uma única tabela
  • A dependência Trivial ocorre quando um conjunto de atributos que são chamados de triviais se o conjunto de atributos estiver incluído nesse atributo
  • A dependência não trivial ocorre quando A->B é verdadeiro onde B não é um subconjunto de A
  • Um transitivo é um tipo de dependência funcional que ocorre quando é indiretamente formado por duas dependências funcionais
  • A normalização é um método de organização dos dados no banco de dados que ajuda a evitar redundância de dados