Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Critério para a Divisão

Tentei fazer a divisão direto sem antes fazer a projeção do atributo Numero_Projeto, e o programa não aceitou. É obrigatório que o divisor tenha apenas um atributo?

1 resposta
solução!

Olá, Rodrigo, tudo bem?

Peço desculpas pela demora no retorno.

A divisão é utilizada quando se deseja extrair de uma relação R1 uma determinada parte que possui as características (valores de atributos) da relação R2, onde, a relação que fica antes da divisão(÷) é a relação R1 a relação que fica após a divisão(÷) é a relação R2.

Na relação que fica à esquerda da divisão, não é necessário realizar nenhuma seleção ou projeção, pois é desta relação que vamos extrair os atributos que desejamos, neste caso o atributo CPF_Funcionario.

Na relação que fica à direita da divisão, precisamos realizar uma projeção para definirmos por qual campo vamos fazer a divisão, ou seja, qual campo de R2 vamos comparar com R1 para buscar os atributos que desejamos.

Um exemplo de como realizar essa busca:

FUNC_PROJ = (trabalha_em) ÷ (π Numero_Projeto (σ Numero_Departamento == 5 (projeto)))
  • Primeiro está sendo realizado uma busca na relação projeto, onde apenas será retornado projetos que o número do departamento seja igual a 5.
  • Em seguida é feito uma projeção, para ser retornado apenas o número dos projetos.
  • Após a projeção realizo a divisão, onde:
    • Será retornado da relação trabalha_em, o CPF_Funcionario e horas, onde o Numero_projeto da relação trabalha_em seja igual ao número_projeto da relação projeto.

Consulta completa fica da seguinte forma:

FUNC_PROJ = (trabalha_em) ÷ (π Numero_Projeto (σ Numero_Departamento == 5 (projeto)))


RESULTADO = π Ultimo_Nome, Primeiro_Nome ((ρ Cpf_Funcionario ➡ Cpf (RESULTADO_CPF_FUNC)) ⋈ funcionario)

Qualquer nova dúvida é só falar e bons estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software