FC ConcursosFC Concursos

Questão FC295887

Qual comando SQL será executado sem produzir erro?

Linguagem SQL

CESGRANRIO · 2023

Uma empresa aérea possui um sistema de informação para registrar as reservas de passagens de seus passageiros nos voos que oferece. O esquema desse banco de dados foi criado com os seguintes comandos SQL:

 

CREATE TABLE PASSAGEIRO (
            CODIGO                        NUMERIC(5) NOT NULL,
             NOME                           TEXT NOT NULL,
             PRIMARY KEY (CODIGO));


CREATE TABLE VOO (
           NUMERO                        NUMERIC(3) NOT NULL,
           ORIGEM                         TEXT NOT NULL,
           DESTINO                        TEXT NOT NULL,
           NUM_LUGARES              NUMERIC(3) NOT NULL,
           PRIMARY KEY (NUMERO));


CREATE TABLE RESERVA (
            NUM_VOO                       NUMERIC(3) NOT NULL,
            CD_PASS                         NUMERIC(5) NOT NULL,
             PRIMARY KEY (NUM_VOO, CD_PASS),
             FOREIGN KEY (NUM_VOO)
                         REFERENCES VOO(NUMERO),
             FOREIGN KEY (CD_PASS)
                         REFERENCES PASSAGEIRO(CODIGO));

 

Na Figura a seguir, são exibidos os estados atuais dessas tabelas.

 
--------TABELA PASSAGEIRO--------- -------------TABELA VOO----------- --------TABELA RESERVA-----
CODIGO NOME NUMERO ORIGEM DESTINO NUM_LUGARES NUM_VOO CD_PASS
11232 FABIO CARNEIRO 357 RIO DE JANEIRO FORTALEZA 30 357 65789
13121 CARLOS AMARAL 635 SALVADOR RIO DE JANEIRO 20 357 13121
22578 ANA MARIA RIOS 784 FORTALEZA BRASILIA 20 357 56390
22667 CECILIA LOPES 998 PORTO ALEGRE CURITIBA 20 357 22578
23799 KAREN RIBEIRO         357 22667
44532 VICENTE DE CARVALHO         357 56123
44677 JULIA VASCONCELOS         357 44909
44909 ALEX MEDEIROS         635 45131
45131 FLAVIA NASCIMENTO         635 89567
51734 EDSON RIBEIRO         635 11232
56123 PEDRO COIMBRA         635 44532
56390 FELIPE DE SOUZA         635 78980
65123 POLIANA PEDROSA         635 44677
65789 JOANA RODRIGUES         784 23799
79980 ROSANA DA SILVA         784 51734
89567 IARA DE MELO         784 65123
 

Qual comando SQL será executado sem produzir erro?

  1. DELETE FROM PASSAGEIRO WHERE NOME = 'VICENTE DE CARVALHO';
  2. DELETE FROM VOO WHERE DESTINO = 'CURITIBA';
  3. INSERT INTO RESERVA VALUES(998, 56000);
  4. INSERT INTO PASSAGEIRO VALUES(56390, 'RICARDO GONÇALVES');
  5. UPDATE VOO SET NUMERO = 532 WHERE DESTINO = 'RIO DE JANEIRO';
Mostrar resposta e comentário

Gabarito

B

Comentário do professor

O comando DELETE FROM VOO WHERE DESTINO = 'CURITIBA'; remove as linhas da tabela VOO cujo destino seja CURITIBA. No esquema, a tabela RESERVA possui uma chave estrangeira que referencia VOO(NUMERO), o que impede a exclusão de uma linha pai se houver linhas filhas apontando para ela.

Na situação apresentada, o registro com DESTINO = 'CURITIBA' corresponde ao voo de NUMERO = 998 e não existe nenhuma tupla em RESERVA com NUM_VOO = 998. Como não há referências, a exclusão não viola a restrição de integridade referencial (REFERENCES) e, portanto, é executada sem erro.

Conclusão: o comando é permitido porque apaga apenas um voo não referenciado por reservas.

Conteúdo do catálogo FC Concursos · Atualizado em

Continue aprendendo