SóProvas


ID
898078
Banca
CESGRANRIO
Órgão
BNDES
Ano
2013
Provas
Disciplina
Banco de Dados
Assuntos

Considere as tabelas a seguir para responder às questões. Essas tabelas pertencem ao esquema de um banco de dados de uma locadora de veículos.

CREATE TABLE VEICULO (
     PLACA CHAR(7) NOT NULL,
    MODELO VARCHAR2(50) NOT NULL,
    COD_CAT CHAR(2) NOT NULL,
    CONSTRAINT VEICULO_PK PRIMARY KEY (PLACA),
    CONSTRAINT VEICULO_FK FOREIGN KEY (COD_CAT) REFERENCES
    CATEGORIA (COD_CAT))


CREATE TABLE CATEGORIA (
    COD_CAT CHAR(2) NOT NULL,
    DESCR VARCHAR2(80) NOT NULL,
    VAL_DIARIA NUMBER(7,2),
    CONSTRAINT CATEGORIA_PK PRIMARY KEY (COD_CAT))


CREATE TABLE ALUGUEL (
        PLACA CHAR(7) NOT NULL,
        DATA_DEV NUMBER(6),
        DATA_ALG NUMBER(6) NOT NULL,
        CONSTRAINT ALUGUEL_PK PRIMARY KEY (PLACA, DATA_ALG),
        CONSTRAINT ALUGUEL_FK FOREIGN KEY (PLACA) REFERENCES
        VEICULO (PLACA))


Observações:
• A tabela VEICULO contém as informações sobre os veículos que a locadora dispõe para aluguel. Ela possui uma coluna chamada COD_CAT, que contém a categoria à qual um veículo pertence.
• A tabela CATEGORIA representa a tabela de preços da locadora. Ela registra o valor que será cobrado por um dia de aluguel de um veículo de uma determinada categoria.
• A tabela ALUGUEL é usada para registrar todas as operações de aluguel. A coluna DATA_ALG guarda a data na qual um veículo foi alugado, enquanto a coluna DATA_DEV guarda a data na qual o veículo foi devolvido. Ela é informada ao sistema quando o cliente devolve o veículo à locadora. Ambas as datas estão no formato AAMMDD. Dessa forma, a data 05/02/2011 será armazenada como 110205.

Qual consulta permite exibir a placa e o modelo dos veículos que NÃO foram alugados no mês de junho de 2012?

Alternativas
Comentários
  • Eu descartei a letra D por causa do OR entre as datas. 

    Eu fiquei entra a letra B e letra E porque são as mais complexas e está cobrando o conceito do MINUS.

    O MINUS é a subtração de dois conjuntos. Que nesse caso é o conjunto do todo menos o conjunto dos carros que foram alugados em todos os meses menos o mês de junho. Fazendo a subtração, dá exatamente os carros que foram alugados no mês de junho.

    Resposta certa letra B.


  • http://sqlfiddle.com/#!4/b8577/2/0

  • Gabarito letra B. 
    Acredito que a grande dúvida fica entre B e D. Pois de fato as duas retornam como resultado de sua seleção os veículos que não foram alugados no mês de junho de 2012. Porém com uma sútil diferença.  
    A letra D retornar: "dos carros que já foram alugados um dia, quais não foram alugados em junho de 2012" e simplesmente ignora os carros que nunca foram alugados, porque o carros que nunca foram alugados não estão tabela ALUGUEL.    Já a letra B retorna: "todos os carros existentes na tabela veiculo [MENOS] os carros que foram alugados em junho de 2012, ou seja no conjunto todos os carros existentes estão os que já foram alugados um dia (ou seja, estão presentes na ta tabela ALUGUEL) e ainda os carros que nunca foram alugados(não estão presentes na tabela ALUGUEL). A letra D não está de todo errada, porém a B está mais correta.   Deu para entender ou ficou confuso ?