Questão nº 39

Questão de Tecnologia da Informação · FGV TCE-SP 2023 (nº 39)

FGV2023Agente da Fiscalização - TITecnologia da Informação
Gabarito: Aver comentário ↓

Quando referidas, considere as tabelas relacionais TX e TY, criadas e instanciadas com o script SQL a seguir.

create table TY(C int primary key not null, A int)
create table TX(A int primary key not null, B int,
                foreign key (B) references TY(C)
                  on delete cascade
               )
insert into TY    values (1,0)
insert into TY(C) values (2)
insert into TY(C) values (3)
insert into TY    values (5,NULL)
insert into TY    values (6,NULL)
insert into TX values (1,2)
insert into TX values (2,1)
insert into TX values (3,2)
insert into TX values (4,2)

Com referência às tabelas TX e TY, como descritas anteriormente, analise o comando SQL a seguir.

delete FROM TY

Após a execução desse comando, o total de linhas, somando-se os números de linhas de cada tabela, é:

Resposta comentada

Gabarito Alternativa A

A regra ON DELETE CASCADE em um banco de dados significa que, quando você exclui uma linha de uma tabela "pai" (a que é referenciada), todas as linhas correspondentes na tabela "filha" (a que faz a referência) são automaticamente excluídas também.

  • (A) Correta: Quando o comando delete FROM TY é executado, todas as linhas da tabela TY são marcadas para exclusão. Devido à restrição ON DELETE CASCADE na tabela TX (que referencia TY.C através de TX.B), todas as linhas em TX que referenciam as linhas de TY que estão sendo excluídas também são automaticamente excluídas. Como todas as linhas de TY são excluídas, e todas as linhas de TX referenciam alguma linha de TY (direta ou indiretamente, pois as que não referenciam seriam as que não teriam sido inseridas ou as que referenciam linhas já excluídas), todas as linhas de TX também são excluídas. Assim, ambas as tabelas ficam vazias, resultando em 0 linhas em TY + 0 linhas em TX = 0 linhas no total.
  • (B) Incorreta: Esta alternativa sugere que restaria apenas 1 linha no total, o que não ocorre, pois todas as linhas são excluídas devido ao ON DELETE CASCADE.
  • (C) Incorreta: Esta alternativa sugere que restariam 4 linhas. Uma armadilha comum seria esquecer o efeito do ON DELETE CASCADE e considerar que apenas as linhas de TY seriam excluídas, deixando as 4 linhas originais de TX intactas. No entanto, o ON DELETE CASCADE garante que as linhas de TX também sejam removidas.
  • (D) Incorreta: Esta alternativa sugere que restariam 5 linhas, o que não corresponde ao resultado da operação de exclusão em cascata.
  • (E) Incorreta: Esta alternativa sugere que restariam 9 linhas, o que seria o número total de linhas antes de qualquer exclusão (5 em TY + 4 em TX), não após o comando DELETE.

Fonte: FGV TCE-SP 2023 Agente da Fiscalização - TI (Caderno Tipo 1). Reproduzida para fins de estudo.

Continue estudando

Estudar é izi

Pratique milhares de questões como esta, de graça, com explicação e gamificação no Quizinho.

Estudar de graça no Quizinho