Questão de Banco de Dados — SQL — FGV 2023
- Código
- fg071511
- Banca
- FGV
- Órgão
- TCE-SP
- Ano
- 2023
- Nível
- Superior
- Cargo
- Agente da Fiscalização - TI
- A0;
- B1;
- C4;
- D5;
- E9.
GabaritoA — 0;
Gabarito: letra A (0 linhas). O comando delete FROM TY remove todas as linhas da tabela TY. Como a tabela TX possui uma chave estrangeira (B) referenciando TY(C) com a opção ON DELETE CASCADE, a exclusão em TY é propagada para TX, deletando todas as linhas de TX que referenciam as chaves primárias removidas. Como todas as linhas de TX têm B = 1 ou 2, e estes valores existem em TY, todas as 4 linhas de TX também são deletadas. Assim, após a execução, ambas as tabelas ficam vazias, totalizando 0 linhas.
A banca testa o comportamento de integridade referencial com exclusão em cascata, um tópico clássico em bancos de dados relacionais. O candidato que não levar em conta o CASCADE tenderá a somar apenas as linhas de TY (5) ou as de TX (4), ou as duas sem considerar a remoção (9), caindo nos distratores.
Como explicado, a exclusão em TY com CASCADE remove todas as linhas das duas tabelas, resultando em 0 linhas no total.
Afirma que sobra 1 linha. Não há nenhum registro que sobreviva, pois todas as chaves de TX são referenciadas a TY, e a exclusão é em cascata.
4 linhas. Esse valor corresponde ao número de linhas de TX antes do DELETE, mas elas são excluídas em cascata. Sem considerar o cascade, alguém poderia pensar que apenas TY perde linhas, mas não é o caso.
5 linhas. É a quantidade inicial de linhas de TY, mas o comando deleta todas as linhas de TY e, por cascade, as de TX. Logo, total é 0.
9 linhas. Soma de TY (5) + TX (4) antes da exclusão. Ignora completamente o efeito do DELETE.
Para questões com ON DELETE CASCADE, lembre-se de que a exclusão na tabela pai (referenciada) propaga para as linhas da tabela filha (que referenciam). Sempre verifique a restrição de integridade referencial. Neste caso, como todas as linhas de TX referenciam TY, todas são removidas. Se houvesse linhas em TX com B = NULL (não referenciando), elas permaneceriam.
Gabarito: letra A.
Link permanente: /questoes/fg071511