Imagem de fundo

Seja o seguinte esquema relacional de banco de dados:tb_processos(id_processo, numero_p...

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?


A

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')


B

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'


C

select mov.descricao, mov.data_movimentacao

from tb_movimentacoes mov natural join tb_processos proc

where proc.status='Arquivado'


D

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')


E

select mov.descricao, mov.data_movimentacao

from tb_movimentacoes mov

union

select proc.id_processo from tb_processos proc

where proc.status='Arquivado'