DEPENDÊNCIA FUNCIONAL

 

Vem da teoria de funções da matemática o conceito de dependência funcional utilizado pela modelagem relacional.

 

Por exemplo, considere os conjuntos:

 
 

Nesse exemplo, há uma função de um número com relação a um nome, ou seja, com um número é possível encontrar o nome correspondente.

 
 

Se A determina B, então B não é funcionalmente dependente de nenhum subconjunto de A.

 

Uma dependência funcional é representada por :

 

A -> B

 

(A é denominado determinante)

 

Exemplo:

 
 

Departamento -> Código funcionário ?
(Departamento pode determinar o Código_Funcionário ?)

 

Não, pois o departamento 003 aparece em duas tuplas (para os funcionários 125 e 555).

 

Código_Funcionário -> Departamento ?
(Código_Funcionário pode determinar o Departamento?)

 

Sim, pois se conhecendo o Código_Funcionário (atributo unívoco) é possível determinar o departamento (um funcionário só pode pertencer a um departamento).

 

Nome -> Código_Funcionário ?
(Nome pode determinar o Código_Funcionário ?)

 

Não, pois podem existir funcionários com o mesmo nome, logo, pode haver múltiplos valores de Código_Funcionário para o mesmo nome.

 

Código_Funcionário -> Sobrenome ?
(Código_Funcionário pode determinar o Sobrenome?)

 

Apesar de dois funcionários terem o mesmo sobrenome, ao se conhecer o Código_Funcionário é possível se determinar um só sobrenome.

 

A identificação de dependências funcionais não pode ser obtida apenas a partir da inspeção de algumas instâncias, mas sim através das próprias propriedades dos atributos.

 

Outro exemplo de identificação de dependências funcionais:

 
 

O valor é funcionalmente dependente de produto (Produto -> Valor) ?

 

Não, o mesmo produto pode ter valores distintos em diferentes mercados.

 

O valor é funcionalmente dependente de mercado?

 

Não, para cada mercado há tantos valores quanto os produtos vendidos nesse mercado.

 

Valor depende funcionalmente de ambos {Mercado, produto} -> Valor.

 

Regras para encontrar Dependências Funcionais

 
  • Separação
  •  
     

    Exemplo:

     

    CPF -> nome, endereço então CPF -> nome e CPF -> endereço

     

    Leia o exemplo acima da seguinte maneira: se com um número de cpf é possível encontrar o nome e o endereço de uma pessoa, então com esse número é possível encontrar apenas o nome ou apenas o endereço.

     
  • Acumulação
  •  
     

    Exemplo:

     

    CPF -> endereço então CPF, idade -> endereço

     

    Leia o exemplo acima da seguinte maneira: se com um número de cpf é possível encontrar o endereço de uma pessoa, então com este número mais a idade da pessoa é possível encontrar o endereço também.

     
  • Transitividade
  •  
     

    Exemplo:

     

    CPF -> código-cidade e código-cidade -> nome-cidade
    então CPF -> nome-cidade

     

    Leia o exemplo acima da seguinte maneira: se com um número de cpf é possível encontrar o código da cidade de uma pessoa, e com o código da cidade é possível encontrar o nome da cidade, então com o número do cpf é possível encontrar o nome da cidade.

     
  • Pseudo-Transitividade
  •  
     

    Exemplo:

     

    CPF -> código-funcionário e código-funcionário,
    mês -> salário-funcionário
    então CPF, mês -> salário-funcionário

     

    Leia o exemplo acima da seguinte maneira: se com um número de cpf é possível encontrar o código do funcionário, e com o código do funcionário mais um certo mês é possível encontrar o salário que ele recebeu naquele mês, então com o número do cpf mais um certo mês é possível encontrar o salário que ele recebeu naquele mês.

     

     

     

    Atividade de Fixação

     

    No intuito de fixar a aprendizagem iniciada por meio deste módulo e verificar como está sua compreensão sobre o mesmo, são sugeridos alguns exercícios de fixação para serem resolvidos. Clique no link de exercícios ao lado, pois será por meio dele iniciada a lista de exercícios sobre os conteúdos estudados até este momento. Boa revisão sobre os mesmos!!