SóProvas


ID
2756497
Banca
FAURGS
Órgão
BANRISUL
Ano
2018
Provas
Disciplina
Banco de Dados
Assuntos

Observe a tabela PRODUTOS abaixo.


create table PRODUTOS

(codp integer not null primary key,

nome varchar(120) not null,

preco numeric(5,2) not null,

desconto integer,

precoDoConcorrente numeric(5,2));


Considere as visões definidas abaixo usando SQL. Assuma que não existem gatilhos definidos sobre a tabela, nem para estas visões.


I - CREATE VIEW V1 AS

SELECT DISTINCT CODP, NOME, PRECO

FROM PRODUTOS

WHERE DESCONTO >0;

II - CREATE VIEW V2 AS

SELECT PRECO

FROM PRODUTOS

GROUP BY PRECO

HAVING COUNT(*) > 3;

III - CREATE VIEW V3 AS

SELECT CODP, NOME, PRECO

FROM PRODUTOS

WHERE PRECODOCONCORRENTE - PRECO >0;


Através de quais visões é possível inserir uma tupla na tabela PRODUTOS, usando um comando INSERT compatível com o respectivo esquema da visão?

Alternativas
Comentários
  • É possível inserir, atualizar e remover registros de uma tabela a partir de uma View. No entanto, há várias restrições que impossibilitam essas operações, lista completa em [1]

     

    I - Não posso ter "DISTINCT"

    II - Não posso ter "GROUP BY", "HAVING" e "COUNT". Tá faltando "nome" e "preco" que são not null

    III - OK. Não há nada nessa View que impeça o insert

     

    [1] https://mariadb.com/kb/en/inserting-and-updating-with-views/