Considere as tabelas Cliente e Pedido, em que Cliente.Codig...

Próximas questões
Com base no mesmo assunto
Q4375799 Banco de Dados
Considere as tabelas Cliente e Pedido, em que Cliente.CodigoCliente é a chave primária e Pedido.CodigoCliente é uma chave estrangeira que referencia essa coluna. Analise as duas definições a seguir.

I - FOREIGN KEY (CodigoCliente)
     REFERENCES Cliente(CodigoCliente)
     ON DELETE CASCADE

II - FOREIGN KEY (CodigoCliente)
     REFERENCES Cliente(CodigoCliente)
     ON DELETE NO ACTION

Assinale a opção que apresenta, corretamente, a diferença entre os comportamentos das duas definições. 
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Gabarito: E

Fundamento decisivo: Como a chave estrangeira está em Pedido e referencia Cliente, a regra atua quando se exclui a linha referenciada em Cliente; esse sentido da relação identifica a alternativa E.

Tema central: Ações de integridade referencial
Análise das alternativas
A
Errada
Inverte o sentido da ação referencial. As cláusulas apresentadas regulam o que ocorre quando se exclui o cliente referenciado, e não quando se exclui um pedido. CASCADE não faz a exclusão do pedido eliminar o cliente, e NO ACTION não impede a exclusão do pedido por essa relação.
B
Errada
Trata regras operacionais como simples documentação. Existindo pedidos vinculados, os resultados são distintos: CASCADE remove esses pedidos ao excluir o cliente; NO ACTION gera erro se as referências permanecerem quando a restrição for verificada.
C
Errada
Atribui às duas definições efeitos que elas não possuem. CASCADE exclui os pedidos vinculados ao cliente removido, sem transferi-los para outro cliente. NO ACTION não exclui automaticamente os pedidos; impede que a exclusão deixe referências inválidas na verificação da restrição.
D
Errada
Troca os comportamentos de I e II. CASCADE permite excluir o cliente com pedidos associados porque remove também esses pedidos. Já NO ACTION não os remove automaticamente: se eles continuarem referenciando o cliente na verificação, a exclusão será rejeitada.
E
Certa
A alternativa E aplica corretamente as duas formas de preservar a integridade referencial. Na definição I, ON DELETE CASCADE remove os pedidos que referenciam o cliente excluído, eliminando as linhas dependentes — não os pedidos de outros clientes. Na definição II, ON DELETE NO ACTION não remove automaticamente os pedidos: se eles ainda referenciarem o cliente no momento da verificação da restrição, a exclusão gera erro, pois deixaria referências sem o correspondente registro em Cliente. Sem pedidos associados, essa chave estrangeira não impede a exclusão do cliente. O critério é a existência de referências na verificação, não um bloqueio necessariamente imediato em qualquer configuração.
Pegadinha da questão
A expressão NO ACTION pode sugerir que o banco não fará nenhuma fiscalização. Ela significa ausência de uma ação automática sobre os pedidos, não ausência de controle da integridade referencial.
Dica para questões semelhantes
  • Antes de interpretar ON DELETE, localize a chave estrangeira e o alvo de REFERENCES: isso identifica a tabela dependente e a linha referenciada cuja exclusão aciona a regra.
  • Para distinguir ações referenciais, verifique o cenário em que existem linhas dependentes. Sem elas, tanto CASCADE quanto NO ACTION permitem a exclusão quanto a essa chave estrangeira, ocultando a diferença cobrada.

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo