Sunteți pe pagina 1din 26

Prezado (a) Aluno(a),

Você fará agora seu TESTE DE CONHECIMENTO! Lembre-se que este exercício é opcional, mas não valerá ponto para sua avaliação. O
mesmo será composto de questões de múltipla escolha.

Após responde cada questão, você terá acesso ao gabarito comentado e/ou à explicação da mesma. Aproveite para se familiarizar com este
modelo de questões que será usado na sua AV e AVS.

1. O esquema que apresenta uma descrição global do banco de dados e que não fornece detalhes do modo como
os dados estão fisicamente armazenados é o esquema:

conceitual

externo

interno

compartilhado

privado

Explicação:

As funções de cada um dos 3 esquemas são:

Esquema Interno

 Descreve a estrutura de armazenamento físico do banco de dados;


 Utiliza um modelo de dados;
 Lista detalhadamente os dados armazenados e os caminhos de acesso ao banco de dados.

Esquema Conceitual

 Descreve a estrutura do banco de dados como um todo;


 Apresenta uma descrição global do banco de dados, que não fornece detalhes do modo como os dados
estão fisicamente armazenados.

Esquema Externo

 Descreve as visões do banco de dados para um grupo de usuários;


 Define, em cada visão, quais porções do banco de dados um grupo de
usuários terá acesso.

2. Sobre múltiplas visões de dados, assinale a alternativa correta.

É um problema dos sistemas tradicionais.

É importante que usuários possam ter visões diferentes da base de dados.

Representa a forma como os dados são armazenados em cada SGBD.

É obtida com a redundância de dados.

Deve ser evitada para que haja integridade de dados.

Explicação:

Como um conjunto de informações pode ser utilizada por um conjunto diferenciado de usuários, é importante que
estes usuários possam ter visões diferentes da base de dados. Uma visão é definida como um subconjunto de
uma base de dados, formando, deste modo, um conjunto virtual de informações.
 

3. Na Arquitetura Ansi Sparc quando nos referimos a forma  como os diferentes  usuários  enxergam o banco de
dados estamos no:

Aplicativo

Sistemas Gerenciador de Banco de Dados

Nivel Externo

Nivel Interno

Nivel Conceitual

Explicação:

O Nivel externo é aonde são definidas as diversas visões do banco de dados, ou seja, a forma como os usuários
enxergam o banco de dados.

4. Quando as mudanças feitas no arquivo de uma aplicação não são automaticamente realizadas nos arquivos das
outras aplicações temos um problema de:

Dificuldade de acesso

Independência de dados

Segurança

Dependência entre programas e dados

Redundância de dados

Explicação:

A redundância de dados é a duplicação dos mesmos dados em dois ou mais arquivos. O problema da redundância
é que as mudanças, ao serem feitas no arquivo de uma aplicação, não são automaticamente realizadas nos
arquivos das outras aplicações, gerando a falta de integridade dos dados.

5. O usuário de banco de dados responsável por fazer o seu gerenciamento  é o:

Administrador de Dados

Gerente de Sistemas

Desenvolvedor

Projetista de Banco de Dados

Administrador de Banco de Dados

Explicação:
O administrador de banco de dados é responsavel pelo gerenciamento do SGBD e portanto do próprio banco de
dados

6. A autoinformação do banco de dados está caracterizada pela existencia :

Do catálogo

Dos aplicativos

Do sistema de banco de dados

Dos arquivos de dados

Do SGBD

Explicação:

O catalogo armazena os metadados, ou seja os dados que descrevem as estruturas de armazenamento do banco
de dados,permitindo que o SGBD acesse os seus dados sem necessitar de informações externas.

Prezado (a) Aluno(a),

Você fará agora seu TESTE DE CONHECIMENTO! Lembre-se que este exercício é opcional, mas não valerá ponto
para sua avaliação. O mesmo será composto de questões de múltipla escolha.

Após responde cada questão, você terá acesso ao gabarito comentado e/ou à explicação da mesma. Aproveite
para se familiarizar com este modelo de questões que será usado na sua AV e AVS.

1. É composto(a) pelo conjunto de valores (dados) armazenados no banco de dados. Estes valores podem variar
com o tempo.

É a definição de:

projeção

modelo

seleção

instância

esquema

Explicação:

A instância é composta pelo conjunto de valores (dados) armazenados no banco de dados. Estes valores podem
variar com o tempo.

A instância é criada e alterada continuamente ao longo da utilização do sistema.

2. O Diagrama Entidade-Relacionamento é utilizado para elaboração do seguinte modelo de dados:

externo
interno

físico

conceitual

hierárquico

Explicação:

O Diagrama Entidade Relacionamento é a ferramenta utilizada no Projeto de Banco de Dados para realizar a
modelagem conceitual

3. No modelo entidade-relacionamento a cardinalidade define:

A faixa dos valores que podem ser armazenados em determinada entidade.

As colunas de uma tabela que serão exibidas.

As linhas de uma tabela que serão exibidas.

Com quantas entidades de um tipo uma outra entidade pode se relacionar.

O tipo de dado da entidade.

Explicação:

O modelo entidade-relacionamento define regras de negócio que o banco de dados deve atender. Uma das regras
é a cardinalidade que define se o relacionamento é obrigatório ou opcional (cardinalidade mínima) e com quantas
entidades da entidade tipo B uma entidade da entidade tipo A pode se relacionar (cardinalidade máxima).

4. O modelo que descreve as estruturas de armazenamento de dados, tais como no SGBD como os tipos de dados
esécíficos,  índices, tipo de preenchimento destes campos, é:

Modelo Relacional

Modelo lógico

Modelo essencial

Modelo conceitual

Modelo físico

Explicação:

O modelo de dados físico define a forma como as tabelas serão criadas no SGBD, com os seus tipos de dados, os
indices a serem utilizados e as opções de armazenamento

 
5. O modelo que descreve a realidade do ambiente, constituindo uma visão global dos principais dados e
relacionamentos, independente das restrições de implementação em um banco de dados, é o:

Relacional

Lógico

Conceitual

Físico

Essencial

Explicação:

O modelo conceitual é feito utilizando o Diagrama Entidade Relacionamento e destina-se a formalizar a realidade
apresentada no mini mundo, formalizando-a

6. No modelo entidade-relacionamento um retângulo representa _________ , um losango representa _________ e


um círculo representa _________.

Assinale a alternativa que preenche corretamente as lacunas acima, respectivamente:

Entidade, relacionamento e atributo.

Relacionamento, atributo e entidade.

Atributo, entidade e relacionamento.

Relacionamento, entidade e atributo.

Entidade, atributo e relacionamento.

Explicação:

O modelo entidade-relacionamento utiliza a ferramenta Diagrama Entidade Relacionamento (DER) para sua
representação. Neste Diagrama, temos os seguintes construtores gráficos para:

 Entidades: Retângulos com o nome da entidade dentro.


 Relacionamento: Losangos com o nome do relacionamento dentro.
 Atributos: Círculos ligados as entidades/relacionamentos.
 Ligações entre entidades e os relacionamentos: Linhas.

Prezado (a) Aluno(a),

Você fará agora seu TESTE DE CONHECIMENTO! Lembre-se que este exercício é opcional, mas não valerá ponto
para sua avaliação. O mesmo será composto de questões de múltipla escolha.

Após responde cada questão, você terá acesso ao gabarito comentado e/ou à explicação da mesma. Aproveite
para se familiarizar com este modelo de questões que será usado na sua AV e AVS.

1. Trata-se de um conjunto de elementos do contexto do negócio, representados por um conjunto de atributos:


Informação

Classe

Associação

Entidade

Dado

Explicação:

No contexto do MER uma entidade é um objeto do mundo real concreto ou abstrato que é descrito pelas suas
caracteristicas, chamadas atributos.

2. O conceito inverso ao conceito de generalização é o conceito de:

especialização

instanciação

agregação

classificação

particionamento

Explicação:

Classificação: Usada para definir um conceito como uma classe ou conjunto de objetos reais ou abstratos (a nível
de elemento) caracterizados por propriedades comuns.

Generalização: Usada para definir um conceito genérico (a nível de classe) a partir de conceitos específicos (a
nível de classe) caracterizados por propriedades comuns.

Agregação: Usada para definir objetos reais ou abstratos (a nível de elemento) e conceitos (a nível de classe)
¿compostos¿ a partir de objetos ou conceitos ¿componentes¿.

Instanciação: Inverso da Classificação.

Especialização: Inverso da Generalização.

Particionamento: Inverso da Agregação.

3. A realidade que esta sendo modelada durante o projeto de banco de dados denomina-se
 

Mundo Real
 
Requisito de Informação
 
Modelo Descritivo
 

Modelo Conceitual

Mini Mundo
 
Explicação:

MINI MUNDO é a parcela do mundo real que se vai modelar atendendo aos requisitos de informação

4. Interpretar dados, acrescentando a ele um significado, faz parte do conceito de:

Planificação

Abstração

Enumeração

Agregação

Formalização

Explicação:

A abstração propicia que o ser humano, a partir de percepções iniciais comece a formar conceitos abstratos
(informações) ao conseguir interpretar esses dados percebidos, acrescentando a ele um significado.

5. O Modelo ER (Entidade-Relacionamento) básico consiste em três classes de objetos que são:


 

Índices, Entidades, Relacionamentos


 

Diagramas, Relacionamentos e Atributos

Campos, Relacionamentos e Atributos


 
Relacionamentos, Tabelas e Atributos
 
Entidades, Relacionamentos e Atributos
 

Explicação:

O DER tambem é conhecido como ERA , entidade, relacionamento e atributos, seus 3 elementos  básicos

6. No modelo entidade-relacionamento, uma entidade se relaciona com:

Outras entidades

Atributos

Relacionamento-tipo

Modelos

Conceitos

Explicação:
Os principais componentes dos Modelos Entidade-Relacionamento (MER) são as entidades (coisas, objetos) sue as
relações com outras entidades.

Prezado (a) Aluno(a),

Você fará agora seu TESTE DE CONHECIMENTO! Lembre-se que este exercício é opcional, mas não valerá ponto
para sua avaliação. O mesmo será composto de questões de múltipla escolha.

Após responde cada questão, você terá acesso ao gabarito comentado e/ou à explicação da mesma. Aproveite
para se familiarizar com este modelo de questões que será usado na sua AV e AVS.

1. Na modelagem conceitual de um banco observou-se que  um aluno pode ou não estar matriculado em um curso,
podendo estar matriculado em vários  e um curso necessita de um ou mais alunos para ocorrer. Seguindo a
orientação descrita no texto, assinale o conjunto de cardinalidades correto abaixo:

(0,N) e (0,1).

(0,N) e (1,N).

(0,1) e (0,N).

(0,1) e (1,N).

(0,N) e (0,N).

Explicação:

Quanto a  aluno

- pode não estar em nenhum curso - mínimo 0

- pode estar me vários curso - máximo 1

- cardinalidade - (0,N)

Quanto a curso 

- precisar ter um aluno - mínimo 1

- pode ter vários - máximo N

- cardinalidade (1,N)

2. Um atributo para ser identificador dever ser classificado como:

Único e Obrigatório

Composto e monovalorado

Não único e simples

Único e opcional

Composto e Obrigatório

Explicação:
o atributo identificador é aquele que irá dar origem a uma chave primária na tabela, desta forma deve ter as
mesmas caracteristicas de unicidade e obrigatoriedade

3. A afirmação: "um morador reside  em uma e somente uma cidade e em uma cidade residem pelo menos um ou
vários moradores", mostra que as cardinalidades de morador  para cidade e de cidade para morador  são
respectivamente:

(0,1) e (1,N)

(1,N) e (0,1)

(1,N) e (0,N)

(0,N) e (1,1)

(1,1) e (1,N)

Explicação:

Quanto a morador

- mora em uma cidade -  mínimo 1

- mora em somente uma - máximo 1

- cardinalidade (1,1)

Quanto a cidade 

- possui no mínimo um morador - mínimo 1

- pode possuir vários - máximo N

-cardinalidade (1,N)

4. Dentre as opções abaixo, selecione a que pode representar um atributo multivalorado para uma pessoa.

Nome do dependente

Local de Nascimento

Quantidade de filhos

Data de nascimento

Sexo

Explicação:

Atributos multivalorados são atributos cujo conteúdo é formado por mais de um valor. Uma pessoa pode ter mais
de um dependente, portanto pode ter mais de um nome de dependente como atributo.

O demais atributos aparecem apenas uma vez.

 
5. A cardinalidade (m:n) é utilizada quando:

Uma instancia de uma entidade se relaciona com muitas instancias de outra unidade, e vice-versa.

É utilizada cardinalidade cruzada.

O atributo é multivalorado.

A quantidade de relacionamentos entre instância A e B são obrigatoriamente diferentes.

A participação no relacionamento é obrigatória.

Explicação:

A cardinalidade (m:n) diz que uma instância da entidade A se relaciona com muitas instâncias da entidade B, e
que uma instância da entidade B se relaciona com muitas instâncias da entidade da A.

6. Se não houver nenhuma indicação especial a respeito de um atributo significa que ele é:

Simples, multivalorado e único.

Composto, multivalorado e não único.

Composto, monovalorado e único.

Simples, monovalorado e não único.

Composto, obrigatório e multivalorado.

Explicação:

Por padrão um atributo é simples, obrigatório, monovalorado e não único.

Prezado (a) Aluno(a),

Você fará agora seu TESTE DE CONHECIMENTO! Lembre-se que este exercício é opcional, mas não valerá ponto
para sua avaliação. O mesmo será composto de questões de múltipla escolha.

Após responde cada questão, você terá acesso ao gabarito comentado e/ou à explicação da mesma. Aproveite
para se familiarizar com este modelo de questões que será usado na sua AV e AVS.

1. Julgue as afirmativas abaixo:

I-Para representar uma relação muitos-para-muitos, você deve criar uma terceira tabela, geralmente chamada
de tabela de associação, que divide a relação muitos-para-muitos em duas relações um-para-muitos.

II-Para representar uma relação muitos-para-muitos, insira a chave primária de cada uma das duas tabelas na
terceira tabela. Como resultado, a terceira tabela registra cada ocorrência, ou instância, da relação.

III-Para representar uma relação muitos-para-muitos, exporte  a chave primária de uma tabela para a  outra,
como chave estrangeira.

 
Somente a afirmação II está correta.
 
Somente as afirmações I e II estão corretas.
 
Somente a afirmação III está correta.
 

Somente as afirmações II e III estão corretas

Somente a afirmação I está correta.


 

Explicação:

Na modelagem lógica de um relacionamento  N:N criamos um terceira tabela e exportamos para está as chaves
primarias das tabelas resultantes das entidades tipo que participam do relaciomento tipo

2. Para a transformação de atributos multivalorados em tabelas deve-se:

Prever a quantidade máxima de valores e criar a quantidade necessária de atributos.

Definir um atributo com tipo capaz de assumir qualquer valor.

Utilizar a chave estrangeira do atributo multivalorado.

Criar uma nova tabela contendo a chave primária da tabela origem e o atributo multivalorado.

Criar uma chave composta com todos os valores do atributo multivalorado.

Explicação:

Atributos multivalorados são transformados em uma tabela distinta e a chave primária da tabela origem é
exportada para a nova tabela, onde irá compor a chave primária junto com o atributo.

3. No modelo de banco de dados relacional, os dados são representados por meio de:

Ponteiros, que são as chaves primárias e estrangeiras.

Listas encadeadas de tuplas.

Vetores de tuplas.

Matrizes tridimensionais formadas por linhas, colunas e chaves.

Tabelas.

Explicação:

No  modelo relacional, como o proprio nome diz, os dados são armazenados em TABELAS.

Uma tabela na matemática é denominada Relação dai o nome MODELO RELACIONAL

4. "Descreve a sua estrutura, sendo constituído pelo conjunto de seus atributos e suas restrições."
A definição acima refere-se a:

instância

campo

valor

tupla

esquema

Explicação:

O esquema de uma relação descreve a sua estrutura, sendo constituído pelo conjunto de seus atributos e suas
restrições.

5. Qual o nome da regra em um banco de dados que assegura que um valor que apareça em uma relação para um
dado conjunto de atributos também apareça para um certo conjunto de atributos em outra relação?
 

Dependência Semântica.
 
Integridade Referencial.
 

Transitividade Composta.

Integridade Conceitual.
 
Dependência Composta.
 

Explicação:

Integridade Referencial - As chaves estrangeiras têm que ser respeitadas, ou seja, se existe um determinado
valor para o atributo na tabela onde ele é chave estrangeira, este valor deve existir na tabela onde ele é chave
primária.

Integridade semântica - Garante que o dado inserido em uma linha da tabela seja um valor válido. Para esse valor
ser válido deve ser do mesmo tipo de dados definido na especificação da coluna na tabela.

Dependência Transitiva - Uma dependência funcional transitiva ocorre quando uma colua, além de depender da
chave primária da tabela, depende de outra coluna ou conjunto de colunas da tabela.

6. Quando deve ser utilizada uma chave primária composta?

Quando a tabela possui atributo único.

Quando a tabela não possui atributo único e obrigatório.

Quando for necessário garantir a integridade referencial.

Quando for necessário referenciar dados de outra tabela.

Quando houver somente uma chave candidata.

Explicação:
Um atributo para ser chave primária deve obrigatoriamente ser único e obrigatório. Quando não existir atributo
com estas características é necessário utilizar uma chave composta.

Prezado (a) Aluno(a),

Você fará agora seu TESTE DE CONHECIMENTO! Lembre-se que este exercício é opcional, mas não valerá ponto
para sua avaliação. O mesmo será composto de questões de múltipla escolha.

Após responde cada questão, você terá acesso ao gabarito comentado e/ou à explicação da mesma. Aproveite
para se familiarizar com este modelo de questões que será usado na sua AV e AVS.

1. O comando que encerra uma transação fazendo com que todas as modificações pendentes passem a ser
definitivas é:

Commit

Write

Rollback

Exit

Save

Explicação:

Transação é um conjunto de comandos que são vistos como uma operação única e que podem ser confirmados ou
revertidos ao seu final.

Uma transação começa com o comando "begin transaction" e termina com um dos dois comandos:

 Commit: Encerra a transação corrente fazendo com que todas as modificações pendentes passem a ser
definitivas.
 Rollback: Encerra a transação corrente fazendo com que todas as
modificações pendentes sejam desprezadas.

2. Supondo a existência de uma tabela PESSOA, o comando para eliminar a tabela de um SGBD PostgreSQL é:

ERASE TABLE PESSOA

DELETE TABLE PESSOA

DROP TABLE PESSOA

REMOVE TABLE PESSOA

CLEAN TABLE PESSOA

Explicação:

Para apagar uma tabela de um SGBD deve ser utilizado o comando

DROP TABLE

onde é o nome da tabela a ser apagada.


 

3. Considere o banco de dados relacional de uma clínica médica


PACIENTE (id_pac, nome_pac, sexo, fone_pac)
ESPECIALIDADE (id_espec, nome_espec)
MEDICO (id_med, nome_med, fone_med, id_espec)
CONSULTA (id_cons, dt_cons, vl_cons, id_pac, id_med)
Dê o comando correspondente de Atualizar o nome da especialidade para a especialidade de id = 1.
  

Update ESPECIALIDADE Set  nome_espec = 'Clínico Geral' Where id_espec = 1 

Update ESPECIALIDADE Set  nome_espec = 'Clínico Geral' Where id_espec > 1


    
 Update ESPECIALIDADE Set  nome_espec = 'Clínico Geral' Where id_espec != 1
  
 Update ESPECIALIDADE Set  nome_espec = 'Clínico Geral' Where id_espec <> 1
    
Update ESPECIALIDADE Set  nome_espec = 'Clínico Geral' Where id_espec < 1
    

Explicação:

o comando que atualiza os dados é o de update

4. A seguinte instrução ocasiona qual procedimento no banco: 


CREATE TABLE PESSOAS ( ID_PESSOA INT NOT NULL  PRIMARY KEY, PESSOA VARCHAR(26) );

Cria um identificador (ID_PESSOAS) que é a chave primária;


 
Cria a tabela pessoa na forma descrita e com os campos preenchidos;
 

Mostra a tabela tbPessoa.

Cria a tabela pessoa com 3 campos;


 
Cria a tabela pessoa com 2 campos; 
 

Explicação:

o COMANDO CREATE TABLE cria uma tabela

5. Ao implementar um sistema de gerência de fornecedores, o desenvolvedor percebeu que não existia no banco de
dados relacional da empresa qualquer representação da entidade PRODUTO que aparecia em seu modelo de
dados. Para corrigir essa falha, preparou um comando SQL que alteraria o esquema do banco de dados.

Tal comando SQL deve ser iniciado com

    

CREATE PRODUTO : TABLE


  
 ALTER TABLE PRODUTO
    

 CREATE TABLE PRODUTO

 CREATE PRODUTO AS TABLE


  
ALTER SCHEMA ADD TABLE PRODUTO
  

Explicação:

A SOLUÇÃO SERIA CRIAR A TABELA PRODUTO COM O COMANDO CREATE TABLE

6. Foi criada uma tabela com o comando:

CREATE TABLE COR

(ID Numeric (4) Primary Key,

Nome Varchar (20) Not Null)

Para apagar a linha da tabela cujo atributo "Nome" seja "VERDE" deve ser utilizado o comando:

ERASE NOME='VERDE' FROM COR

DELETE FROM COR WHERE NOME='VERDE'

ERASE FROM COR WHERE NOME='VERDE'

DROP TABLE VERDE

DELETE NOME='VERDE' FROM COR

Explicação:

O comando delete é utilizado para excluirmos linhas em uma tabela e tem como sintaxe:

DELETE FROM nome_tabela WHERE condição

Prezado (a) Aluno(a),

Você fará agora seu TESTE DE CONHECIMENTO! Lembre-se que este exercício é opcional, mas não valerá ponto
para sua avaliação. O mesmo será composto de questões de múltipla escolha.

Após responde cada questão, você terá acesso ao gabarito comentado e/ou à explicação da mesma. Aproveite
para se familiarizar com este modelo de questões que será usado na sua AV e AVS.

1. Dada a tabela criada com o comando SQL:

CREATE TABLE NOME

(PRIMEIRO VARCHAR(15),

MEIO VARCHAR(15),

ULTIMO VARCHAR(15))

Onde PRIMEIRO representa o primeiro nome de uma pessoa, MEIO representa o nome do meio da pessoa, e
ULTIMO representa o último nome da pessoa, selecione o comando SQL que retorna uma única coluna contendo
o nome completo das pessoas, colocando um espaço em branco entre cada um dos componentes do nome.

SELECT PRIMEIRO + ' ' + MEIO + ' ' + ULTIMO FROM NOME

SELECT PRIMEIRO || ' ' || MEIO || ' ' || ULTIMO FROM NOME
SELECT PRIMEIRO ' ' MEIO ' ' ULTIMO FROM NOME

SELECT PRIMEIRO, ' ', MEIO, ' ', ULTIMO FROM NOME

SELECT AGREG(PRIMEIRO, ' ', MEIO, ' ', ULTIMO) FROM NOME

Explicação:

O operador || é utilizado quando se deseja concatenar duas colunas.

2. Dada a tabela criada com o comando SQL:

CREATE TABLE NOME

(PRIMEIRO VARCHAR(15),

MEIO VARCHAR(15),

ULTIMO VARCHAR(15))

Onde PRIMEIRO representa o primeiro nome de uma pessoa, MEIO representa o nome do meio da pessoa, e
ULTIMO representa o último nome da pessoa, selecione o comando SQL que retorna o primeiro nome da pessoa
que possui valor nulo no atributo MEIO.

SELECT PRIMEIRO FROM NOME WHERE MEIO IS NULL

SELECT PRIMEIRO FROM NOME WHERE MEIO IS NOT DEFINED

SELECT PRIMEIRO FROM NOME WHERE MEIO = 0

SELECT PRIMEIRO FROM NOME WHERE MEIO = ''

SELECT PRIMEIRO FROM NOME WHERE MEIO = NULL

Explicação:

O operador "IS NULL" visa determinar se no campo existe valor ou não (campo nulo).

Um valor nulo é um valor que está indisponível, não foi atribuído, é desconhecido ou inaplicável, tornando inviável
usar "=" no teste, pois como nulo não é valor, é ausência de valor, não pode ser igual ou diferente de qualquer
outro.

3. Assinale a alternativa que selecione todos os clientes que terminem com o nome 'Morais'
  

 Select * From Cliente Where nome like '%M'


    
Select * From Cliente Where nome like '%Mor'
    
Select * From Cliente Where nome like '%Morais' 
    

Select * From Cliente Where nome like '%M%'

Select * From Cliente Where nome <> 'Morais'


    

Explicação:

É necessario o uso do like com o caracter curinga %


 

4. Considere o esquema de uma empresa conforme segue:

Func (cod_func, nome, dta_nasc, salario, nro_depto, cod_superv) ;

Depto (nro_depto, nome) ;

Projeto (cod_proj, nome, duracao, nro_depto) ;

Participa (cod_proj, cod_func, horas_trab).

Marque a alternativa que contém o comando em SQL para recuperar o nome e o salário dos funcionários do
departamento 5, com salário na faixa entre 1000 e 2000.

    

SELECT NOME, SALARIO FROM FUNC WHERE NRO_DEPTO = 5;


    
SELECT NOME, SALARIO FROM FUNC WHERE NRO_DEPTO = 5 OR SALARIO BETWEEN 1000 AND 2000;
    

SELECT NOME, SALARIO FROM FUNC WHERE SALARIO BETWEEN 1000 AND 2000;

 SELECT NOME, SALARIO FROM FUNC WHERE NRO_DEPTO = 5 AND SALARIO BETWEEN 1000 AND
2000; 
    
 
SELECT NOME, SALARIO FROM FUNC WHERE SALARIO = 1000 AND NRO_DEPTO BETWEEN 1 AND 5;
  

Explicação:

O comando deve ter o between para definir a faixa dos salarios e o operador  AND para ligar as duas condições

5. Assinale a alternativa que selecione todos os clientes cujo código NÃO esteja entre 50 e 75.
    

SELECT * FROM Cliente Where cliente_id NOT BETWEEN 50 OR 75;


    
SELECT * FROM Cliente Where cliente_id BETWEEN 50 AND 75;
  
SELECT * FROM Cliente Where cliente_id NOT BETWEEN 50 AND 75; 
    

 SELECT * FROM Cliente Where cliente_id >= 50 AND  cliente_id <=75;

SELECT * FROM Cliente Where cliente_id = 50 AND 75;


    

Explicação:

É necessario utilizar not between para filtrar as linhas que estão fora da faixa

6. Sobre o comando SELECT, marque a alternativa FALSA.

Pode testar condições para selecionar linhas a serem exibidas.

Pode conter operador para eliminar tabelas selecionadas.


Pode concatenar colunas para mostrar como uma única coluna.

Pode utilizar operadores lógicos para testar múltiplas condições.

Pode realizar operações aritméticas nos resultados retornados.

Explicação:

O comando SELECT permite recuperar dados de uma ou mais tabelas. Não pode ser utilizado para eliminar
tabelas.

Prezado (a) Aluno(a),

Você fará agora seu TESTE DE CONHECIMENTO! Lembre-se que este exercício é opcional, mas não valerá ponto
para sua avaliação. O mesmo será composto de questões de múltipla escolha.

Após responde cada questão, você terá acesso ao gabarito comentado e/ou à explicação da mesma. Aproveite
para se familiarizar com este modelo de questões que será usado na sua AV e AVS.

1. Considere a tabela criada com o comando

CREATE TABLE PRODUTO (

ID NUMERIC(4) PRIMARY KEY,

NOME VARCHAR(20),

COR VARCHAR(10))

Dentre os comandos abaixo, selecione aquele que mostre uma linha contendo a quantidade de produtos que
possuem cor VERDE.

SELECT COUNT('VERDE') FROM PRODUTO GROUP BY COR

SELECT COUNT(*) FROM PRODUTO GROUP BY COR HAVING COR='VERDE'

SELECT COUNT(*) FROM PRODUTO GROUP BY COR WHERE COR IS 'VERDE'

SELECT COUNT(*) FROM PRODUTO GROUP BY COR WHERE COR='VERDE'

SELECT NOME FROM PRODUTO GROUP BY COR HAVING COR='VERDE'

Explicação:

Ao se utilizar a cláusula GROUP BY, pode-se filtrar a seleção de dados antes deles serem agrupados ou depois do
agrupamento.

Para eliminar grupos que não atendam a uma determinada condição, utiliza-se a cláusula HAVING.

2. Considere a tabela criada com o comando

CREATE TABLE PRODUTO (

ID NUMERIC(4) PRIMARY KEY,

NOME VARCHAR(20),

COR VARCHAR(10))

O comando que retorna a quantidade total de cores diferentes é:


SELECT COUNT(DISTINCT COR) FROM PRODUTO

SELECT COUNT(COR) FROM PRODUTO

SELECT COUNT(*) FROM PRODUTO

SELECT DISTINCT COR FROM PRODUTO

SELECT * FROM PRODUTO

Explicação:

O operador DISTINCT elimina os valores duplicados, retornando apenas uma vez cada valor.

A função COUNT conta e mostra o total de linhas retornadas.

3. Baseado no modelo de banco de dados mostrado a seguir: 


CARRO(idcarro,placa,modelo,tipo,cor,ano,Km,valor,chassis,idfilial) 
ALUGUEL(NF,idcarro,idcliente,valor,CNH,dataIni,dataFim,idfuncionario) 
Mostre o tipo dos carros e quantos carros são do mesmo tipo:
 

SELECT tipo, max(tipo) FROM carro GROUP BY tipo;


 
SELECT tipo, sum(tipo) FROM carro GROUP BY sum(tipo);
 
SELECT tipo, count(*) FROM carro;
 
SELECT tipo, count(*) FROM carro GROUP BY tipo;
 
SELECT tipo, sum(tipo) FROM carro GROUP BY tipo;
 

Explicação:

Para a correta execução temos que contar utilizando count e agrupar utilizando Group By

4. Abaixo segue parte do esquema do banco de dados Shark, sabendo-se que os atributos em negrito e sublinhados
são chaves primárias e os atributos em itálico são chaves estrangeiras:

AREA (CODAREA, NOMEAREA)

LOCAL (CODLOCAL, CODAREA, NOMELOCAL)

TUBARAO (IDTUBARAO, IDESPECIE, COMPRIMENTO, SEXO)

CAPTURA (NUMCAPTURA, IDEMB, IDTUBARAO, CODLOCAL, LATITUDE, LONGITUDE, DATA, TEMPAGUA)

Assinale a alternativa abaixo que representa uma consulta que exiba todos os dados de áreas e locais ordenados
decrescentemente pelo nome do local.

    

 SELECT * FROM AREA A, LOCAL L WHERE A.CODAREA = L.CODAREA ORDER NOMELOCAL ASC;
  
SELECT * FROM AREA A INNER JOIN LOCAL L WHERE A.CODAREA = L.CODAREA ORDER BY NOMELOCAL
DESC;
  

 SELECT * FROM AREA A INNER JOIN LOCAL L ON A.CODAREA = L.CODAREA ORDER NOMELOCAL DESC;

 SELECT * FROM AREA A, LOCAL L WHERE A.CODAREA = L.CODAREA ORDER BY NOMELOCAL DESC;
  
SELECT * FROM AREA A, LOCAL L WHERE A.CODAREA = L.CODAREA ORDER NOMELOCAL DESC;
    

Explicação:

PARA ORDENARMOS DE FORMA DESCRECENTE  PRECISAMOS UTILIZAR ORDER BY DESC

5. Considere a tabela definida pelo comando SQL abaixo. 


Create table func ( 
nome varchar(50) not null, 
salario numeric(9,2) not null, 
cod_depto int null); 

Considere a consulta SQL abaixo: 

Select nome, salario 


from func 
where salario > 900 
and  cod_depto is not null 
order by salario 

O requisito abaixo que NÃO é atendido por esta consulta é: 


  

 listar a coluna NOME da tabela FUNC;


  
 só considerar os registros que apresentem o atributo SALARIO maior que 900;
    
 listar a coluna SALARIO da tabela FUNC;
  

 apresentar o resultado em ordem alfabética. 

só considerar os registros que apresentem o atributo COD_DEPTO não nulo;


  

Explicação:

Como a ordenação foi realizada por uma coluna numerica não apresentara a ordem alfabetica crescente no
resultado

6. Considere a tabela criada com o comando

CREATE TABLE PRODUTO (

ID NUMERIC(4) PRIMARY KEY,

NOME VARCHAR(20),

COR VARCHAR(10))

O comando que retorna as diferentes cores, sem repetição, é:

SELECT DISTINCT COR FROM PRODUTO

SELECT COUNT(*) FROM PRODUTO

SELECT * FROM PRODUTO

SELECT COUNT(COR) FROM PRODUTO

SELECT COUNT(DISTINCT COR) FROM PRODUTO


Explicação:

O operador DISTINCT elimina os valores duplicados, retornando apenas uma vez cada valor.

Prezado (a) Aluno(a),

Você fará agora seu TESTE DE CONHECIMENTO! Lembre-se que este exercício é opcional, mas não valerá ponto
para sua avaliação. O mesmo será composto de questões de múltipla escolha.

Após responde cada questão, você terá acesso ao gabarito comentado e/ou à explicação da mesma. Aproveite
para se familiarizar com este modelo de questões que será usado na sua AV e AVS.

1. Considere o banco de dados relacional de uma escola no qual as chaves primárias e estrangeiras estão
sublinhadas.

PROFESSOR (ID_PROF, CPF, NOME)

DISCIPLINA (ID_DISC, CARGA_HOR, NOME, ID_PROF)

Dentre os comandos abaixo, selecione aquele que mostra somente o nome do professor e o nome da disciplina
ao qual o professor está relacionado. Nomes dos professores sem relação com disciplinas e nomes de disciplinas
sem relação com professor não devem aparecer.

SELECT P.NOME, D.NOME FROM PROFESSOR P, DISCIPLINA D

SELECT * FROM PROFESSOR P, DISCIPLINA D

SELECT P.NOME, D.NOME FROM PROFESSOR P, DISCIPLINA D HAVING P.ID_PROF = D.ID_PROF

SELECT * FROM PROFESSOR P, DISCIPLINA D WHERE P.ID_PROF = D.ID_PROF

SELECT P.NOME, D.NOME FROM PROFESSOR P, DISCIPLINA D WHERE P.ID_PROF = D.ID_PROF

Explicação:

A sintaxe tradicional de inner join tem o seguinte formato:

SELECT

FROM tabela1, tabela2

WHERE ;

2. Considere o banco de dados relacional de uma escola no qual as chaves primárias e estrangeiras estão
sublinhadas.

PROFESSOR (ID_PROF, CPF, NOME)

DISCIPLINA (ID_DISC, CARGA_HOR, NOME, ID_PROF)

Dentre os comandos abaixo, selecione aquele que mostra os nomes de todos os professores e as disciplinas às
quais estão relacionados.

Se o professor não estiver relacionado a nenhuma disciplina seu nome deve aparecer na relação.

Disciplinas sem professores relacionados não deve ser listada.

Nenhuma outra informação além do nome do professor e da disciplina deve ser listada.

SELECT * FROM PROFESSOR P, DISCIPLINA D

SELECT P.NOME, D.NOME FROM DISCIPLINA D INNER JOIN PROFESSOR P ON P.ID_PROF = D.ID_PROF
SELECT P.NOME, D.NOME FROM DISCIPLINA D LEFT JOIN PROFESSOR P ON P.ID_PROF = D.ID_PROF

SELECT P.NOME, D.NOME FROM PROFESSOR P LEFT JOIN DISCIPLINA D ON P.ID_PROF = D.ID_PROF

SELECT P.NOME, D.NOME FROM PROFESSOR P INNER JOIN DISCIPLINA D ON P.ID_PROF = D.ID_PROF

Explicação:

Para retornar todos os professores é necessário fazer left join com a tabela professores à esquerda.

3. Baseado no modelo de banco de dados mostrado a seguir: 


FILIAL(idfilial(PK), nome, cidade,endereço,telefone) 
FUNCIONARIO(idfuncionario(PK),nome,endereço,telefone,salario,idfilial) 
CLIENTE(idcliente(PK),nome,cpf,endereço,telefone,cidade) 
CLIENTE_ESPECIAL(idcliente(PK),Km,desconto) 
CARRO(idcarro(PK),placa,modelo,tipo,cor,ano,Km,valor,chassis,idfilial) 
ALUGUEL(NF(PK),idcarro,idcliente,valor,CNH,dataIni,dataFim,idfuncionari
o) 
O nome dos clientes que são cadastrados como especiais?

  

 SELECT c.nome cliente FROM cliente c INNER JOIN cliente_especial ce ON c.idcliente=ce.idcliente 

 SELECT c.nome cliente FROM cliente c LEFT JOIN cliente_especial ce ON c.idcliente=ce.idcliente


  
 SELECT c.nome cliente FROM cliente c INNER JOIN cliente_especial ce
  
 SELECT c.nome cliente FROM cliente c, cliente_especial ce ON c.idcliente=ce.idcliente
    
SELECT c.nome cliente FROM cliente c RIGHT JOIN cliente_especial ce ON c.idcliente=ce.idcliente
  

Explicação:

Para sabermos o nome dos clientes especiais temos que fazer uma junção  interior entre a tabela de clientes
especiais e a de cliente.

4. Abaixo segue parte do esquema do banco de dados Shark, sabendo-se que os atributos em negrito e sublinhados
são chaves primárias e os atributos em itálico são chaves estrangeiras:
ESPECIE (IDESPECIE, NOME_CIENTIFICO, DENTICAO, STATUS_EXTINCAO, HABITAT, TIPOREPRODUCAO)
CAPTURA (NUMCAPTURA, IDEMB, IDTUBARAO, CODLOCAL, LATITUDE, LONGITUDE, DATA, TEMPAGUA)
TUBARAO (IDTUBARAO, IDESPECIE, COMPRIMENTO, SEXO)
Assinale a alternativa abaixo que representa uma consulta que exibe o nome científico e o sexo dos tubarões
correlacionados corretamente.  

 SELECT NOME_CIENTIFICO, SEXO FROM ESPECIE E CROSS JOIN TUBARAO T ON E.IDESPECIE =


T.IDESPECIE;
    
 SELECT NOME_CIENTIFICO, SEXO FROM ESPECIE E NATURAL JOIN TUBARAO T ON E.IDESPECIE =
T.IDESPECIE;
  
SELECT NOME_CIENTIFICO, SEXO FROM ESPECIE JOIN TUBARAO;
    
SELECT NOME_CIENTIFICO, SEXO FROM ESPECIE E INNER JOIN TUBARAO T ON E.IDESPECIE =
T.IDESPECIE; 
 
SELECT NOME_CIENTIFICO, SEXO FROM ESPECIE E, TUBARAO T;
    

Explicação:
A consulta deseja recuperar os seguintes campos:

- nome científico: encontra-se na tabela Espécie

- sexo:  encontra-se na tabela Tubarão.

Sendo assim temos que realizar uma junção interior.

5. Baseado no modelo de banco de dados mostrado a seguir: 


FILIAL(idfilial(PK), nome, cidade,endereço,telefone) 
FUNCIONARIO(idfuncionario(PK),nome,endereço,telefone,salario,idfilial) 
CLIENTE(idcliente(PK),nome,cpf,endereço,telefone,cidade) 
CLIENTE_ESPECIAL(idcliente(PK),Km,desconto) 
CARRO(idcarro(PK),placa,modelo,tipo,cor,ano,Km,valor,chassis,idfilial) 
ALUGUEL(NF(PK),idcarro,idcliente,valor,CNH,dataIni,dataFim,idfuncionari
o) 
O nome dos clientes que mesmo cadastrados no banco de dados da
Locadora NÃO fizeram nenhum aluguel?

    

SELECT c.nome cliente FROM aluguel a LEFT JOIN cliente c ON a.idcliente=c.idcliente where a.idcliente IS
NULL
  
SELECT c.nome cliente FROM aluguel a, cliente c ON a.idcliente=c.idcliente
    
SELECT c.nome cliente FROM aluguel a INNER JOIN cliente c ON a.idcliente=c.idcliente where a.idcliente
IS NULL
 SELECT c.nome cliente FROM aluguel a RIGHT JOIN cliente c ON a.idcliente=c.idcliente where a.idcliente
IS NULL 
    
SELECT c.nome cliente FROM aluguel a, cliente c where a.idcliente=c.idcliente
    

Explicação:

Como precisamos obter os não relacionados necessitamos fazer uma junção exterior

6. Qual o tipo de junção que retorna apenas as linhas relacionadas em duas tabelas?

Cruzada

Exterior

Interior

Direita

Esquerda

Explicação:

Existem 3 tipos de junção:

 Cruzada: Retorna o produto cartesiano das duas tabelas, ou seja, a combinação de todas as linhas de
uma tabela com todas as linhas de outra.
 Interior: Retorna as linhas que estão relacionadas nas duas tabelas.
 Exterior: Retorna as linhas relacionadas e as não relacionadas de uma
ou das duas tabelas.

Prezado (a) Aluno(a),

Você fará agora seu TESTE DE CONHECIMENTO! Lembre-se que este exercício é opcional, mas não valerá ponto
para sua avaliação. O mesmo será composto de questões de múltipla escolha.

Após responde cada questão, você terá acesso ao gabarito comentado e/ou à explicação da mesma. Aproveite
para se familiarizar com este modelo de questões que será usado na sua AV e AVS.

1. Sobre as subconsultas em SQL, assinale a alternativa FALSA.

Podem existir várias subconsultas para uma única consulta.

Podem retornar uma ou várias linhas.

São escritas entre parênteses.

Podem retornar linhas nulas.

Podem retornar uma ou várias colunas.

Explicação:

As subconsultas obedecem aos seguintes princípios:

 São escritas entre parênteses.


 Podem existir várias subconsultas para uma única consulta.
 Podem existir subconsultas dentro de subconsultas (subconsultas aninhadas).
 Podem retornar uma ou várias colunas.
 Podem retornar uma ou várias linhas.
 Normalmente são utilizadas nas cláusulas WHERE ou HAVING, podendo, mais raramente, serem
utilizadas nas cláusulas FROM ou SELECT.
 Eventualmente podem referenciar colunas da consulta principal (subconsulta correlata).
 Não devem retornar linhas nulas.

2. Qual operador retorna todas as linhas do primeiro conjunto acrescidas de todas as linhas do segundo conjunto,
eliminando as duplicadas?

Except

Union

Inner join

Join

Intersect

Explicação:

O operador UNION realiza a operação de UNIÃO, ou seja, retorna todas as linhas do primeiro conjunto acrescidas
de todas as linhas do segundo conjunto, eliminando as duplicadas.

 
3. Baseado no modelo de banco de dados mostrado a seguir: 
FILIAL(idfilial(PK), nome, cidade,endereço,telefone) 
FUNCIONARIO(idfuncionario(PK),nome,endereço,telefone,salario,idfilial) 
CLIENTE(idcliente(PK),nome,cpf,endereço,telefone,cidade) 
CLIENTE_ESPECIAL(idcliente(PK),Km,desconto) 
CARRO(idcarro(PK),placa,modelo,tipo,cor,ano,Km,valor,chassis,idfilial) 
ALUGUEL(NF(PK),idcarro,idcliente,valor,CNH,dataIni,dataFim,idfuncionari
o) 
Qual o código do Carro que tem o maior valor de aluguel?
 

SELECT idCarro FROM aluguel a where valor = (select Max(valor) from aluguel); 
 
SELECT idCarro FROM aluguel a where valor = (select sum(valor) from aluguel);
 
SELECT idCarro, Max(valor) FROM aluguel;
 

SELECT idCarro, Max(valor) FROM aluguel a group by idcarro;

SELECT idCarro FROM aluguel a where valor = Max(valor);


 

Explicação:

Para executarmos a consulta temos que primeiro obter o maior valor de aluguel em uma subconsulta e depois
utilizar este valor para filtrar as linhas na consulta principal

4. Em um projeto lógico de um sistema foi identificado que  um projeto é de um certo tipo. Assim, as relações
abaixo foram definidas:
TIPO_PROJETO (ID_TIPO, NOME)
PROJETO (ID_PROJETO,  NOME,  DESCRICAO, ID_TIPO, VALOR) Conforme a linguagem SQL e as relações dadas,
escolha a opção que mostre o nome de cada tipo de projeto que não possua um projeto e que comece com a
letra A.
    

SELECT TP.NOME
FROM TIPO_PROJETO TP, PROJETO P
WHERE TP.ID_TIPO = P.ID_TIPO AND  TP.ID_TIPO IS NULL AND TP.NOME LIKE '%A%';
SELECT TP.NOME
FROM TIPO_PROJETO TP, PROJETO P
WHERE TP.ID_TIPO = P.ID_TIPO AND P.VALOR IS NULL AND TP.NOME LIKE '%A%';    
SELECT TP.NOME
FROM TIPO_PROJETO TP, PROJETO P
WHERE ID_TIPO IS NULL AND TP.NOME LIKE '%A%';    
SELECT TP.NOME
FROM TIPO_PROJETO TP, PROJETO P
WHERE ID_TIPO IS NULL AND P.VALOR=0 AND TP.NOME LIKE 'A%';

    
SELECT NOME
FROM TIPO_PROJETO
WHERE ID_TIPO NOT IN (SELECT DISTINCT ID_TIPO FROM PROJETO) AND NOME LIKE 'A%' ;     

Explicação:

A subconsulta retorna o ID do tipos de projeto que possuem projeto e a clausula where filtrar as linhas da
consulta principal que estão no conjunto retornado e ainda os nomes que não começam por A

5. Considere as seguintes tabelas:


    CLIENTE   (idCli, NomeCli)
    PEDIDO   (idPEDIDO, Data, idCli, ValorPedido)
Qual alternativa apresenta os clientes que NÃO tiveram nenhum pedido?

    

SELECT    NomeCli    FROM    CLIENTE C LEFT JOIN PEDIDO P ON C.idCli = P.idCli


    
 SELECT    *    FROM CLIENTE    WHERE    idCli    NOT IN    (SELECT idCli FROM PEDIDO) 
 
SELECT    NomeCli    FROM    CLIENTE C RIGHT JOIN PEDIDO P ON C.idCli = P.idCli
  
SELECT    *    FROM    CLIENTE
    
SELECT    *    FROM CLIENTE    WHERE    idCli    IN    (SELECT idCli FROM PEDIDO)
    

Explicação:

O comando utiliza uma subconsulta para obter o id dos clientes que fizeram pedidos e a seguir filtra os clientes
que não aparecem no conjunto retornado

6. Dentre os comandos abaixo, selecione o que possui uma subconsulta.

SELECT P.NOME, D.NOME FROM PROFESSOR P, DISCIPLINA D WHERE P.ID_PROF = D.ID_PROF

SELECT * FROM PROFESSOR P, DISCIPLINA D

SELECT COUNT(*) FROM PRODUTO GROUP BY COR HAVING COR='VERDE'

DROP TABLE PESSOA

SELECT * FROM NOME WHERE MEIO IN (SELECT DISTINCT MEIO FROM NOME)

Explicação:

Subconsultas são escritas entre parênteses.