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.
