

Seu próximo nível começa aqui
Seu desenvolvimento não pode ter limites. Garanta sua Assinatura Ilimitada e libere uma preparação completa com os melhores professores do Brasil.
Seja o seguinte esquema relacional de banco de dados:
tb_processos(id_processo, numero_processo, tipo, status, data_abertura)
Restrições:
• id_processo é chave primária
• numero_processo não pode ser nulo
• tipo pode assumir os valores {"Ação de Alimentos", "Defesa Criminal"}.
• status pode assumir os valores {"Em andamento", "Arquivado", "Sentenciado"}
tb_movimentacoes(id_movimentacao, descricao, data_movimentacao, id_processo<FK>)
Restrições:
• id_movimentacao é chave primária
• descricao não pode ser nulo
• descricao pode assumir os valores { "Petição inicial protocolada", "Audiência realizada"}.
• id_processo é chave estrangeira e referencia a tabela tb_processos
Submeteu-se ao sistema que gerencia esse banco de dados relacional a consulta:
select mov.descricao, mov.data_movimentacao
from tb_movimentacoes mov
where exists
( select proc.id_processo from tb_processos proc
where proc.id_processo=mov.id_processo
and proc.status='Arquivado' )
O otimizador de consultas do sistema, ao avaliar a consulta, identificou tratar-se de um caso de consulta correlata, com uma subconsulta aninhada referenciando um elemento de dado da consulta externa.
Considerando que o otimizador decidiu e é capaz de implementar a melhor opção de otimização, qual das opções apresenta uma consulta equivalente à anteriormente proposta, após a aplicação da técnica de desalinhamento?
select mov.descricao, mov.data_movimentacao
from tb_movimentacoes mov
where mov.id_processo in
(select proc.id_processo from tb_processos proc
where proc.status='Arquivado')
select mov.descricao, mov.data_movimentacao
from tb_movimentacoes mov left join tb_processos proc
on proc.id_processo=mov.id_processo
where proc.status='Arquivado'
select mov.descricao, mov.data_movimentacao
from tb_movimentacoes mov natural join tb_processos proc
where proc.status='Arquivado'
select mov.descricao, mov.data_movimentacao
from tb_movimentacoes mov
where mov.id_processo any
(select proc.id_processo from tb_processos proc
where proc.status='Arquivado')
select mov.descricao, mov.data_movimentacao
from tb_movimentacoes mov
union
select proc.id_processo from tb_processos proc
where proc.status='Arquivado'