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