RVA
Álgebra Relacional

Divisão

A álgebra relacional dispõe ainda da operação divisão, indicada pelo símbolo ÷\div÷. Essa operação é indicada, segundo Navathe, quando há a necessidade de se efetuar consultas como: recupere os nomes dos funcionários que trabalham em todos os projetos em que “João Silva” trabalha.

A álgebra relacional dispõe ainda da operação divisão, indicada pelo símbolo ÷\div. Essa operação é indicada, segundo Navathe, quando há a necessidade de se efetuar consultas como: recupere os nomes dos funcionários que trabalham em todos os projetos em que “João Silva” trabalha.

Segundo Raghu Ramakrishnan, a operação de divisão compreende:

  • uma instância de relação A, que contém exatamente dois atributos, X e Y;
  • uma instância de relação B, que contém um único atributo Y, do mesmo domínio que o atributo Y da instância de relação A;
  • A operação de divisão A/B apresenta como resultado o conjunto de todos os valores X, tais que, para todo valor Y em uma tupla de B, há uma tupla de X,Y em A.

Definição formal

🤓 Explicando a lógica passo a passo

📚 Conhecendo a base de dados

TRABALHA_EM

cpfprojeto_id
1231
1232
2413

PROJETOS_JOSE

projeto_id
1
2

1️⃣ Precisamos obter a lista, sem repetição, dos CPFs dos funcionários:

CPFs=πcpf(TRABALHA_EM)\text{CPFs} = \pi_{cpf}(\text{TRABALHA\_EM})

2️⃣ Em seguida, geramos todas as combinações possíveis entre CPF e os projetos existentes, com a operação produto cartesiano.

POSSIBILIDADES=CPFs×PROJETOS_JOSE\text{POSSIBILIDADES} = \text{CPFs} \times \text{PROJETOS\_JOSE}

3️⃣Com a combinação gerada, precisamos identificar quais são as combinações que não existem no mundo real (na tabela TRABALHA_EM).

INVALIDOS=POSSIBILIDADESTRABALHA_EM\text{INVALIDOS} = \text{POSSIBILIDADES} - \text{TRABALHA\_EM}

4️⃣ Extraio apenas o CPF dos registros inválidos:

REMOVER=πcpf(INVALIDOS)\text{REMOVER} = \pi_{cpf}(\text{INVALIDOS})

5️⃣ Analisando os dados reais, subtraio os CPFs com registros inválidos:

RESULTADO=πcpf(TRABALHA_EM)REMOVER\text{RESULTADO} = \pi_{cpf}(\text{TRABALHA\_EM}) - \text{REMOVER}

6️⃣ Terminado o processo, para a coleta dos nomes, devemos efetuar a operação de junção natural:

RESULTADOFUNCIONARIOS\text{RESULTADO} \star \text{FUNCIONARIOS}
Copyright © 2026