SóProvas


ID
1117498
Banca
CESGRANRIO
Órgão
FINEP
Ano
2014
Provas
Disciplina
Banco de Dados
Assuntos

As tabelas abaixo pertencem ao esquema de um banco de dados de um supermercado.

CREATE TABLE PRODUTO (
       COD NUMBER(5) NOT NULL,
       DESCRICAO VARCHAR2(100) NOT NULL,
       PRECO NUMBER(8,2) NOT NULL,
       QTD_ESTOQUE NUMBER(5) ,
       TIPO NUMBER(1) NOT NULL,
       CONSTRAINT PRODUTO_PK PRIMARY KEY (COD))

CREATE TABLE ITEM (
       NUM_SERIE NUMBER(7) NOT NULL,
       COR VARCHAR2(20) NOT NULL,
       VOLTAGEM NUMBER(5) NOT NULL,
       COD_PROD NUMBER(5) NOT NULL,
       CONSTRAINT ITEM_PK PRIMARY KEY (NUM_SERIE),
       CONSTRAINT ITEM_FK FOREIGN KEY (COD_PROD)
              REFERENCES PRODUTO (COD))

Observações:
• A empresa comercializa produtos controlados por quantidade (por exemplo, caixa de sabão em pó, pacote de biscoito e lata de extrato de tomate) e produtos controlados por unidade (por exemplo, televisor, máquina de lavar roupa e liquidificador).

• A quantidade em estoque de um produto controlado por quantidade (TIPO=1) é obtida diretamente da coluna QTD_ESTOQUE.

• A quantidade em estoque de um produto controlado por unidade (TIPO=2) NÃO pode ser obtida diretamente da coluna QTD_ESTOQUE, pois, para esse tipo de produto, esta coluna irá conter o valor NULL.

• Cada linha da tabela ITEM contém informações sobre um item existente no estoque da empresa relativo a um tipo de produto controlado por unidade.


Qual comando SQL irá inserir corretamente uma nova linha na tabela de produtos, além de não violar restrições semânticas relativas ao banco de dados do supermercado?

Alternativas
Comentários
  • Resolvi da seguinte forma:

    a)Correta. COD,DESCRIÇÃO,PRECO,TIPO=> Todas são NOT NULL, por isso não viola as restrições.

    b,c)Errado. Não foi inserido os nomes da tabela(COD,DESCRIÇÃO,PRECO,TIPO)

    d,e)Errado. QTD_ESTOQUE viola as restrições.

  • a) Correta! É a nossa resposta.

    b) Quando não fornecemos a lista de campos na inserção, precisamos explicitar os valores de cada campo no VALUES. A tabela tem 5 colunas, mas o comando só passa 4 valores. ERRADA

    c) O comando insere um produto do tipo 2 e informa a quantidade em estoque (700). No entanto, note que o enunciado menciona que os produtos de tipo 2 devem ter o NULL no campo QTD_ESTOQUE, já que são produtos controlados por item, na tabela Item. ERRADA

    d) O comando tenta passar 5 valores (apesar de um estar em branco), mas só passa 4 na lista. ERRADA

    e) O comando passa 5 campos mas só fornece 4 valores. ERRADA