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

