Divisão
A álgebra relacional dispõe ainda da operação divisão, indicada pelo símbolo . 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
| cpf | projeto_id |
|---|---|
| 123 | 1 |
| 123 | 2 |
| 241 | 3 |
PROJETOS_JOSE
| projeto_id |
|---|
| 1 |
| 2 |
1️⃣ Precisamos obter a lista, sem repetição, dos CPFs dos funcionários:
2️⃣ Em seguida, geramos todas as combinações possíveis entre CPF e os projetos existentes, com a operação produto cartesiano.
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).
4️⃣ Extraio apenas o CPF dos registros inválidos:
5️⃣ Analisando os dados reais, subtraio os CPFs com registros inválidos:
6️⃣ Terminado o processo, para a coleta dos nomes, devemos efetuar a operação de junção natural: