Pular para o conteúdo principal

Questão de Banco de Dados — SQL — FGV 2023

Banco de DadosSQL
Código
fg071511
Banca
FGV
Órgão
TCE-SP
Ano
2023
Nível
Superior
Cargo
Agente da Fiscalização - TI
Com referência às tabelas TX e TY, como descritas anteriormente, analise o comando SQL a seguir.delete FROM TYApós a execução desse comando, o total de linhas, somando-se os números de linhas de cada tabela, é:
  1. A0;
  2. B1;
  3. C4;
  4. D5;
  5. E9.
Revelar gabarito e comentário

GabaritoA — 0;

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

Comando DELETE com integridade referencial ON DELETE CASCADE

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.

Alternativa A — ✅ Correta ⟵ GABARITO

Como explicado, a exclusão em TY com CASCADE remove todas as linhas das duas tabelas, resultando em 0 linhas no total.

Alternativa B — ❌ Incorreta

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.

Alternativa C — ❌ Incorreta

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.

Alternativa D — ❌ Incorreta

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.

Alternativa E — ❌ Incorreta

9 linhas. Soma de TY (5) + TX (4) antes da exclusão. Ignora completamente o efeito do DELETE.

PEGA ESSA DICA!

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