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?
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?
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)))
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!