Buscar

BDQ FULL IMP BD

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 67 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 67 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 67 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Avaliação: CCT0199_AV1_201001029518
Tipo de Avaliação: AV1 
Aluno: 201001029518 - ANTONIO RICARDO DE SOUZA CIRIO 
Nota da Prova: 6.0 de 8.0 Data da Prova: 3/31/2012
1.) SQL - CONCEITOS Pontos: 0.0 / 0.5
É uma vantagem de uso da linguagem SQL:
 Dependência de fabricante 
 Dependência de plataforma 
 Alto custo de treinamento 
 Visão única dos dados 
 
 Definição dinâmica dos dados 
2.) SQL - CONCEITOS Pontos: 0.0 / 0.5
O comando SELECT * FROM TABELA: 
 Lista todas as linhas de uma tabela 
 Lista todas as colunas de uma tabela 
 Lista tanto as linhas quanto as colunas de uma tabela 
 Não é um comando da linguagem SQL
 Nenhuma das respostas acima
3.) SQL Pontos: 0.5 / 0.5
Quando desejamos selecionar o maior e o menor valor de um atributo numérico 
usamos: 
 MIN, MAX 
 MAIOR, MENOR 
 SUM
 COUNT
 AVG
4.) SQL Pontos: 0.5 / 0.5
Página 1 de 4CÓPIA IMPRESSA DE PROVA
11/04/2012http://www.bquestoes.estacio.br/prova_resultado_preview.asp?cod_hist_prova=63205...
funcionarios
Typewriter
funcionarios
Typewriter
funcionarios
Typewriter
funcionarios
Typewriter
funcionarios
Typewriter
funcionarios
Highlight
funcionarios
Typewriter
funcionarios
Typewriter
funcionarios
Highlight
funcionarios
Highlight
 
 
 
Na linguagem SQL, para totalizarmos os valores de uma coluna usamos o comando: 
 GROUP BY
 EQUAL
 AVG
 COUNT
 SUM
5.) SQL - CONCEITOS Pontos: 0.0 / 1.0
O comando SELECT FROM corresponde a seguinte operação da álgebra relacional: 
 Projeção 
 Seleção
 União
 Interseção
 Junção
6.) SQL Pontos: 1.0 / 1.0
(ENADE 2011 - Adaptado) 
CREATE TABLE PECAS (CODIGO NUMERIC(5) NOT NULL, 
 DESCRICAO VARCHAR(20) NOT NULL, 
 ESTOQUE NUMERIC(5) NOT NULL, 
 PRIMARY KEY(CODIGO)); 
 
CREATE TABLE FORNECEDORES 
(COD_FORN NUMERIC(3) NOT NULL, 
 NOME VARCHAR(30) NOT NULL, 
 PRIMARY KEY(COD_FORN)); 
CREATE TABLE FORNECIMENTOS 
(COD_PECA NUMERIC(5) NOT NULL, 
 COD_FORN NUMERIC(3) NOT NULL, 
 QUANTIDADE NUMERIC(4) NOT NULL, 
 PRIMARY KEY(COD_PECA, COD_FORN), 
 FOREIGN KEY (COD_PECA) REFERENCES PECAS, 
 FOREIGN KEY (COD_FORN) REFERENCES 
 FORNECEDORES); 
A partir desse script, assinale a opção que apresenta o comando 
SQL que permite obter uma lista que contenha o nome de cada 
fornecedor: 
 SELECT NOME FROM FORNECEDORES;
 SELECT * FROM FORNECEDORES;
 SELECT NOME FROM FORNECEDOR;
 SELECT NOME_FORNECEDOR FROM FORNECEDORES;
 SELECT * FROM FORNECEDOR;
7.) SQL PARTE 2 Pontos: 1.0 / 1.0
Dada a tabela de livros com os seguintes campos: cod_livro, título, descrição, ano_publicação, preço. Qual é o comando 
correto para apresentar o título, a descrição do livro e simular no banco, um aumento de preço de 50% para livros publicados 
em 2012?
Página 2 de 4CÓPIA IMPRESSA DE PROVA
11/04/2012http://www.bquestoes.estacio.br/prova_resultado_preview.asp?cod_hist_prova=63205...
 
 
 
 Select título, descrição, preço*1.50 from livros where ano_publicação='2012'
 Select título, descrição, preço*0.50 from livros where ano_publicação='2012'
 Select título, descrição, preço*1,50 from livros where ano_publicação='2012'
 Select título, descrição, preço*0,50 from livros where ano_publicação='2012'
 Select título, descrição, preço*1.50 from livros
8.) SQL Pontos: 1.0 / 1.0
Dada a instrução SQL: 
SELECT * FROM Paciente WHERE endereço NOT LIKE "Avenida%"; 
É correto afirmar que serão selecionados 
 todos os registros da tabela Paciente que possuem em alguma parte do conteúdo do campo "endereço" a palavra 
Avenida.
 todos os registros da tabela Paciente que possuem no início do conteúdo do campo "endereço" a palavra Avenida.
 todos os registros da tabela Paciente que não possuem em alguma parte do conteúdo do campo "endereço" a palavra 
Avenida.
 todos os registros da tabela Paciente que possuem no final do conteúdo do campo "endereço" a palavra Avenida.
 apenas os registros da tabela Paciente que não possuem como inicial do conteúdo do campo "endereço" a palavra 
Avenida.
9.) ÁLGEBRA RELACIONAL Pontos: 1.0 / 1.0
Considere as relações: 
PROFESSOR (matriculaprf, nomeprf, titulacao, anoadmissao) 
MINISTRA (matricula, codigo) 
matricula REFERENCIA matriculaprf em PROFESSOR 
codigo REFERENCIA codigodisciplina em DISCIPLINA 
DISCIPLINA (codigodisciplina, nomedisciplina, creditos) 
A consulta em álgebra relacional que responde a questão "Quem são os professores (nome e matrícula) que ministram a 
disciplina Implementação de Bancos de Dados" está corretamente representada em: 
 
pi 
matriculaprf, nomeprf (PROFESSOR matriculaprf = ⋈matricula  (σnomedisciplina = "Implementação 
de Bancos de Dados" (DISCIPLINA)) 
 
pi 
matriculaprf, nomeprf (PROFESSORmatriculaprf =
 ⋈
matricula
 MINISTRA)
 
 
pi 
matriculaprf, nomeprf (PROFESSOR matriculaprf =
 ⋈
matricula
 (MINISTRA 
codigo = 
 ⋈
codigodisciplina
(σ
nomedisciplina = "Implementação de Bancos de Dados" (DISCIPLINA))) 
 
pi 
matriculaprf, nomeprf (PROFESSOR matriculaprf =
 ⋈
matricula
 (MINISTRAcodigo =
 ⋈
codigodisciplina
(DISCIPLINA)))
 
 
 Não existe consulta que responda a esta questão. 
Página 3 de 4CÓPIA IMPRESSA DE PROVA
11/04/2012http://www.bquestoes.estacio.br/prova_resultado_preview.asp?cod_hist_prova=63205...
 
 
 
10.) SQL PARTE 1 - CREATE TABLE E DML Pontos: 1.0 / 1.0
Como ficaria o comando SQL para criar a tabela a seguir? 
 
 CREATE TABLE X_EMPR ( CODIGO NUMBER(5) PRIMARY KEY, DESCRICAO VARCHAR2(40) NOT NULL, QUANTIDADE 
NUMBER(8), VALOR_UNIT NUMBER(9,2) )
 CREATE TABLE X_EMPR ( CODIGO NUMBER(5) PRIMARY KEY, DESCRICAO VARCHAR2(40) NOT NULL UNIQUE, 
QUANTIDADE NUMBER(8), VALOR_UNIT NUMBER(9,2) )
 CREATE TABLE X_PROD ( CODIGO NUMBER(5) PRIMARY KEY, DESCRICAO VARCHAR2(40) NOT NULL UNIQUE, 
QUANTIDADE NUMBER(8), VALOR_UNIT NUMBER(9,2) )
 CREATE TABLE X_PROD ( CODIGO NUMBER(5) PRIMARY KEY, DESCRICAO VARCHAR2(40) NOT NULL, QUANTIDADE 
NUMBER(8), VALOR_UNIT NUMBER(9,2) )
 CREATE TABLE X_PROD ( CODIGO VARCHAR2(5) PRIMARY KEY, DESCRICAO VARCHAR2(40) NOT NULL UNIQUE, 
QUANTIDADE NUMBER(8), VALOR_UNIT NUMBER(9,2) )
Página 4 de 4CÓPIA IMPRESSA DE PROVA
11/04/2012http://www.bquestoes.estacio.br/prova_resultado_preview.asp?cod_hist_prova=63205...
 
 
 Fechar 
 
Avaliação: CCT0199_AV_201102204935 (AG) » IMPLEMENTAÇÃO DE BANCO DE DADOS 
Tipo de Avaliação: AV 
Aluno: 201102204935 - CLEBER LUIZ DE MAGALHAES 
Professor: PATRICIA FIUZA DE CASTRO Turma: 9001/AA 
Nota da Prova: 3,0 Nota de Partic.: 0 Data: 11/06/2014 08:56:32 
 
 
 1a Questão (Ref.: 201102340941) Pontos: Sem Correç. / 1,5 
Observe a tabela EMPREGADO ilustrada na figura abaixo. 
 
Escreva o comando SQL para eliminar a coluna SOBRENOME desta tabela. 
 
 
Resposta: 
 
 
Gabarito: ALTER TABLE Empregado DROP COLUMN sobrenome. 
 
 
 
 2a Questão (Ref.: 201102341021) Pontos: Sem Correç. / 1,5 
Baseado na tabela empregado ilustrada na figura a seguir, escreva uma consulta SQL que recupere a soma dos 
salários de todos os empregados, o salário máximo, o salário mínimo e a média dos salários. 
 
 
 
Resposta: 
 
 
Gabarito: 
Sugestão: 
SELECT SUM(salario), MAX(salario), MIN(salario), AVG(salario) 
FROM empregado 
 
 
 
 3a Questão (Ref.: 201102331858) Pontos: 0,5 / 0,5 
Considere as relações: 
PROFESSOR (matriculaprf, nomeprf, titulacao, anoadmissao) 
MINISTRA (matricula, codigo) 
matricula REFERENCIA matriculaprf em PROFESSOR 
codigo REFERENCIA codigodisciplina em DISCIPLINA 
DISCIPLINA (codigodisciplina, nomedisciplina, creditos) 
A consulta em álgebra relacional que responde a questão "Quem são os professores (nome e matrícula)que ministram a disciplina Implementação de Bancos de Dados" está corretamente representada em: 
 
 
 matriculaprf, nomeprf (PROFESSOR matriculaprf = ⋈matricula (MINISTRA codigo = ⋈codigodisciplina(nomedisciplina = 
"Implementação de Bancos de Dados" (DISCIPLINA))) 
 
 matriculaprf, nomeprf (PROFESSOR matriculaprf = ⋈matricula (nomedisciplina = "Implementação de Bancos de 
Dados" (DISCIPLINA)) 
 
 matriculaprf, nomeprf (PROFESSORmatriculaprf = ⋈matricula MINISTRA) 
 
 matriculaprf, nomeprf (PROFESSOR matriculaprf = ⋈matricula (MINISTRAcodigo 
=
 ⋈
codigodisciplina(DISCIPLINA))) 
 
Não existe consulta que responda a esta questão. 
 
 
 
 4a Questão (Ref.: 201102333248) Pontos: 0,5 / 0,5 
Observe a tabela empregado: 
 
Qual será o resultado se executarmos a consulta abaixo: 
 
 
 
São Paulo, Santos, Rio de Janeiro, Niterói 
 
São Paulo, Santos, Santos, Rio de Janeiro, Niterói 
 
Niterói, Rio de Janeiro, Santos 
 
Niterói, Rio de Janeiro, Santos, Santos, São Paulo 
 Niterói, Rio de Janeiro, Santos, São Paulo 
 
 
 
 5a Questão (Ref.: 201102333276) Pontos: 0,5 / 0,5 
Acerca do conjunto de operações para manipulação de dados, marque a alternativa correta: 
 
 
A cláusula ORDER BY possibilita ordenar a filtragem feita por GROUP BY. 
 
O predicado LIKE é um predicado com operações de boleanos. 
 
O predicado IS NULL faz a checagem de valores zerados. 
 O Predicado BETWEEN retorna resultados entre dois valores fornecidos pelo usuário. 
 
Nenhuma das respostas anteriores. 
 
 
 
 6a Questão (Ref.: 201102332554) Pontos: 0,0 / 0,5 
De acordo com o modelo de dados definido pelas tabelas a seguir, indique a instrução SQL 
adequada para: 
 
Apresentar apenas os nomes completos dos Empregados que tenham no cargo a palavra "venda". 
 
 SELECT PRIM_NOME || ' ' || ULT_NOME FROM EMPREGADO WHERE UPPER(CARGO) LIKE '%VENDA%' ; 
 SELECT PRIM_NOME || ' ' || ULT_NOME FROM EMPREGADO WHERE UPPER(CARGO) LIKE '%venda%' ; 
 
SELECT PRIM_NOME, ULT_NOME FROM EMPREGADO WHERE UPPER(CARGO) LIKE '%VENDA%' ; 
 
SELECT PRIM_NOME || ' ' || ULT_NOME FROM EMPREGADO WHERE CARGO LIKE '%VENDA%' ; 
 
SELECT PRIM_NOME, ULT_NOME FROM EMPREGADO WHERE CARGO LIKE '%VENDA%' ; 
 
 
 
 7a Questão (Ref.: 201102345402) Pontos: 0,5 / 0,5 
 
Listar cpf e nome do cliente que possui o veículo placa BDQ2012. 
 
 
SELECT c.cpf, v.veiculo FROM Veiculo v INNER JOIN Cliente c ON v.Cliente_cpf = c.cpf WHERE v.placa = 
'BDQ2012'; 
 
SELECT c.cpf, c.nome FROM Veiculo v INNER JOIN Cliente c ON v.Cliente_cpf = c.cpf ; 
 SELECT c.cpf, c.nome FROM Veiculo v INNER JOIN Cliente c ON v.Cliente_cpf = c.cpf WHERE v.placa = 
'BDQ2012'; 
 
SELECT c.cpf, c.cliente FROM Veiculo v INNER JOIN Cliente c ON v.Cliente_cpf = c.cpf WHERE v.placa = 
'BDQ2012'; 
 
Nenhuma das consultas acima. 
 
 
 
 8a Questão (Ref.: 201102345690) Pontos: 0,0 / 1,0 
(NCE-UFRJ - 2005 - BNDES - Análise de Sistemas - Desenvolvimento) 
Considere um banco de dados simplificado referente ao controle de concursos, constituído pelas tabelas 
Concurso, Cargo, Candidato e Inscrição, criadas pelo script SQL mostrado abaixo. 
 
create table concurso (id_concurso int not null primary key, concurso varchar(60) not null); 
create table cargo (id_cargo int not null primary key,cargo varchar(60) not null, id_concurso int not null, 
constraint ci0 foreign key (id_concurso) references concurso (id_concurso)); 
create table candidato (id_candidato int not null primary key, nome varchar(40) not null); 
 
 
A consulta SQL que produz a lista dos candidatos que se inscreveram em todos os concursos é: 
 
 
 
 
select nome 
from candidato cd 
where 
exists 
 (select * 
 from concurso cc 
 where 
 not exists 
 (select * 
 from inscrição i 
 where i.id_concurso=cc.id_concurso 
 and i.id_candidato=cd.id_candidato)) 
 
select nome 
from candidato cd 
where 
not exists 
 (select * 
 from concurso cc 
 where 
 not exists 
 (select * 
 from inscrição i 
 where i.id_concurso <> cc.id_concurso 
 and i.id_candidato <> cd.id_candidato)) 
 select nome 
from candidato cd 
where 
not exists 
 (select * 
 from concurso cc 
 where 
 exists 
 (select * 
 from inscrição i 
 where i.id_concurso=cc.id_concurso 
 and i.id_candidato=cd.id_candidato)) 
 select nome from candidato cd where 
not exists 
 (select * from concurso cc where 
 not exists 
 (select * from inscrição i where i.id_concurso=cc.id_concurso 
 and i.id_candidato=cd.id_candidato)) 
 
select nome 
from candidato cd 
where 
exists 
(select * from concurso cc 
 where not in 
 (select * 
 from inscrição i 
 where i.id_concurso=cc.id_concurso 
 and i.id_candidato=cd.id_candidato)) 
 
 
 
 9a Questão (Ref.: 201102346458) Pontos: 1,0 / 1,0 
(CESGRANRIO - 2008 - BNDES - Análise de Sistemas - Desenvolvimento) 
O Administrador de Dados de uma loja virtual verifica que há um problema no sistema controlador do estoque. 
Alguns produtos apresentam quantidades negativas, ou seja, houve mais vendas que a quantidade existente no 
estoque. 
O programador do sistema mostra, em pseudocódigo, o trecho que realiza a verificação do estoque. 
 
Qual opção descreve corretamente o problema e sua solução? 
 
 A transação não bloqueia o produto consultado. O SELECT deverá ter, no final, a cláusula FOR UPDATE. 
 
 Está havendo um problema de concorrência e a solução é retirar a transação, eliminando os comandos 
BEGIN TRANSACTION, ROLLBACK TRANSACTION e COMMIT TRANSACTION. 
 
Está havendo um problema de leitura suja e a solução é mover o COMMIT TRANSACTION para dentro do 
THEN, logo abaixo do UPDATE. 
 
Está havendo um problema de deadlock e a solução é colocar a cláusula FOR UPDATE ao final do BEGIN 
TRANSACTION. 
 
Está havendo um problema de registro fantasma e a solução é alterar o nível de isolamento para 
serializável. 
 
 
 
 10a Questão (Ref.: 201102332343) Pontos: 0,0 / 0,5 
É responsável por garantir a Integridade Referencial: 
 
 
Chave de Atributo 
 
Chave Secundária 
 Chave Estrangeira 
 
Chave Candidata 
 Chave Primária 
 
Avaliação: CCT0199_AV_201102204935 » IMPLEMENTAÇÃO DE BANCO DE DADOS 
Tipo de Avaliação: AV 
Aluno: 
Professor: PATRICIA FIUZA DE CASTRO Turma: 9003/AC 
Nota da Prova: 2,5 Nota de Partic.: 1 Data: 18/11/2014 15:57:46 
 
 
 1a Questão (Ref.: 201102333232) Pontos: 0,0 / 0,5 
Considere o esquema: 
Aluno(matricula, cpf, nome, endereço). 
Assinale a alternativa que não representa uma super-chave deste esquema. 
 
 nome, endereço 
 
matricula, cpf 
 
matricula, nome 
 
cpf, nome 
 matricula, endereco 
 
 
 
 2
a
 Questão (Ref.: 201102332670) Pontos: 0,0 / 0,5 
Em relação a álgebra relacional, o operador de _____________ permite combinar seleções e um produto 
cartesiano em uma só operação. 
 
 
Interseção 
 União 
 
Projeção 
 
Diferença 
 Junção 
 
 
 
 3a Questão (Ref.: 201102346591) Pontos: 0,0 / 1,0 
(CESGRANRIO - 2006 - EPE - Área Tecnologia da Informação) 
Para as técnicas de controle de concorrência em Bancos de Dados, assinale a afirmativa INCORRETA. 
 
 
O deadlock ocorre quando cada transação em um conjunto de duas ou mais transações espera por algum 
item que estejabloqueado por alguma outra transação T no conjunto. 
 Diz-se que uma transação segue o protocolo de bloqueio de duas fases se todas as operações (read_lock, 
write_lock) precedem a última operação de desbloqueio na transação 
 
O problema de espera indefinida (starvation) pode ocorrer se o esquema de espera para itens 
bloqueados for parcial, dando prioridade a algumas transações sobre as outras. 
 
Uma forma para detectar um estado de deadlock consiste em construir um grafo wait-for. 
 As técnicas de controle de concorrência baseadas em ordenação por timestamp não usam bloqueios, 
portanto, deadlocks nunca podem ocorrer. 
 
 
 
 4a Questão (Ref.: 201102340587) Pontos: 0,0 / 1,5 
CONSIDERE O BANCO DE DADOS ABAIXO 
AUTOMOVEIS (Código, Fabricante, Modelo, Ano, País, Preço) 
REVENDEDORAS (CGC, Nome, Proprietário, Cidade, Estado) 
GARAGENS (CGCRevenda, CodAuto, AnoAuto, Quantidade) 
CGCRevenda REFERENCIA Cgc GARAGENS 
CodAuti REFERENCIA Código em AUTOMÓVEIS 
QUAL A CONSULTA EM SQL QUE RETORNA QUANTIDADE DE REVENDEDORAS DO JOÃO DA SILVA EM CADA 
CIDADE DO ESTADO DO RIO DE JANEIRO? 
 
 
Resposta: SELECT revendedora FROM joaodasilva FROM estadoriodejaneiro MAX revendedoras 
 
 
Gabarito: SELECT COUNT(*) , CIDADE FROM REVENDEDORAS WHERE PROPRIETÁRIO = 'JOÃO DA SILVA' AND 
ESTADO = 'RJ' GROUP BY CIDADE 
 
 
 
 5a Questão (Ref.: 201102469355) Pontos: 0,0 / 0,5 
Ao selecionar os dados de uma tabela, para visualização ou outra necessidade podemos restringir o seu 
espectro de visualização utilizando a cláusula: 
 
 
ORDER 
 WHERE 
 FROM 
 
UP 
 
UNTIL 
 
 
 
 6a Questão (Ref.: 201102345407) Pontos: 0,5 / 0,5 
 
 
 
Listar placa, o ano do veículo e a descrição de seu modelo, se ele possuir ano a partir de 2010 
 
 SELECT v.placa, v.ano, m.descricao FROM Veiculo v INNER JOIN Modelo m ON v.Modelo_codMod = 
m.codMod WHERE ano >= 2010; 
 
SELECT v.placa, m.descricao FROM Veiculo v INNER JOIN Modelo m ON v.Modelo_codMod = m.codMod 
WHERE ano = 2010; 
 
SELECT v.placa, v.veiculo, m.modelo FROM Veiculo v INNER JOIN Modelo m ON v.Modelo_codMod = 
m.codMod WHERE ano >= 2010; 
 
Nenhuma das respostas acima. 
 
SELECT v.placa, v.ano, m.descricao FROM Veiculo v INNER JOIN Modelo m ON v.Modelo_codMod = 
m.codMod WHERE ano > 2010; 
 
 
 
 7a Questão (Ref.: 201102333295) Pontos: 0,5 / 0,5 
Qual o resultado da consulta SELECT COUNT(DISTINCT X) FROM R? 
 
 
 
2 
 
4 
 
1 
 3 
 
0 
 
 
 
 8a Questão (Ref.: 201102469548) Pontos: 0,0 / 1,0 
Uma visão pode ser: 
 
 Simples ou complexa. 
 
Somente complexa 
 
Linear 
 
Somente simples 
 Simples e linear 
 
 
 
 9a Questão (Ref.: 201102335823) Pontos: 0,0 / 0,5 
(CONSULPLAN - 2012) Ao contrário das linguagens tradicionais, que são procedimentais, SQL é uma linguagem 
declarativa, que integra três sublinguagens: Data Manipulation Language (DML), Data Definition Language 
(DDL) e Data Control Language (DCL). Um comando DML e outro DDL são, respectivamente: 
 
 Update e Drop. 
 
Grant e Delete. 
 Update e Grant. 
 
Drop e Grant. 
 
Delete e Update. 
 
 
 
 10a Questão (Ref.: 201102340955) Pontos: 1,5 / 1,5 
Escreva uma consulta SQL que recupere o código e o nome de todos os empregados. A tabela empregado está 
ilustrada na figura a seguir. 
 
 
 
Resposta: SELECT codigo_empregado,nome FROM empregado 
 
 
Gabarito: SELECT codigo_empregado, nome 
FROM empregado. 
 
 
IMPLEMENTAÇÃO DE BANCO DE DADOS 
Banco de Questões 
1) 1. ______________ são objetos que apresentam auto-incremento. 
2. ______________ uma pseudocoluna utilizada para extrair valores de uma sequence qualquer, sempre que for 
referenciada. 
3. ______________ uma pseudocoluna utilizada para informar o último valor gerado por uma sequence. É 
sempre incrementada após um ______________ 
4. Nextval e currval ___________ ser usados na cláusula VALUES de um comando INSERT 
5. Nextval e currval ___________ ser usados dentro de uma subconsulta. 
As palavras que preenchem as lacunas corretamente estão representadas em: 
 (1) sequences (2) nextval (3) currval e nextval (4) podem (5) podem 
 (1) sequences (2) currval - (3) nextval e nextval (4) não podem (5) podem 
 (1) sequences (2) nextval (3) currval e nextval (4) podem (5) não podem 
 (1) indices (2) nextval (3) currval e nextval (4) podem (5) não podem 
 (1) sequences (2) currval (3) nextval e nextval (4) não podem (5) não podem 
2) A linguagem SQL pode ter vários enfoques, EXCETO: 
 Linguagem interativa de consulta (query AdHoc) 
 Linguagem para acesso às bases de dados 
 Linguagem para a programação de sistemas de informação 
 Linguagem de administração de banco de dados 
 Linguagem de consulta em ambiente cliente/servidor 
3) A operação da álgebra relacional que recupera linhas em uma tabela é denominada: 
 Junção 
 Seleção 
 Produto cartesiano 
 Projeção 
 Diferença 
4) A partir da tabela abaixo, identifique a expressão, em álgebra relacional, que permite listar a matrícula dos 
funcionários do setor de Projetos: 
 
 σ setor = "Projetos" (Funcionarios_ste) 
 σ matricula (π setor = "Projetos" (Funcionarios_ste)) 
 π Funcionarios_ste (σ matricula, setor = "Projetos") 
 π setor = "Projetos" (σ matricula (Funcionarios_ste)) 
 π matricula (σ setor = "Projetos" (Funcionarios_ste)) 
5) Acerca do conjunto de operações para manipulação de dados, marque a alternativa correta: 
 O predicado IS NULL faz a checagem de valores zerados. 
 O Predicado BETWEEN retorna resultados entre dois valores fornecidos pelo usuário. 
 Nenhuma das respostas anteriores. 
 O predicado LIKE é um predicado com operações de booleanos. 
 A cláusula ORDER BY possibilita ordenar a filtragem feita por GROUP BY. 
6) Analise as afirmações a seguir, relativas ao conceito de chave primária: 
i. Pode ser composta por um ou vários atributos. 
ii. Não admite duplicidade de valores, exceto no caso de valores nulos. 
iii. Deve ser definida durante a construção do modelo de E-R. 
Marque a alternativa correta (apenas uma opção) 
 As afirmações I e II são falsas. 
 Todas as afirmações são verdadeiras. 
 Apenas as afirmações II e III são verdadeiras. 
 As afirmações II e III são falsas. 
 Apenas as afirmações I e III são verdadeiras. 
7) Analise as afirmações abaixo: 
I. Quando fazemos uma consulta em uma View podemos usar todos as clausulas do comando Select, tais 
como : Where, Group By, Having e Order By. 
II. Quando fazemos uma consulta em uma View podemos utilizar os operadores relacionais ( in, between, 
like, is null), os operadores lógicos ( and, or not) e as funções de grupo. 
III. Quando fazemos uma consulta em uma View podemos fazer junções com uma tabela 
IV. Quando fazemos uma consulta em uma View podemos fazer subconsultas e utilizar operadores de 
conjunto; 
São VERDADEIRAS: 
 I, II, e IV. 
 I, III e IV. 
 I e II. 
 I, II, III e IV. 
 I, II e III. 
8) Analise as seguintes afirmações: "(1) A restrição de integridade referencial diz que chave primária em uma 
relação não pode ter seu valor nulo PORQUE (2) esta chave identifica as tuplas da relação" 
Podemos afirmar: 
 As duas afirmações são falsas. 
 A primeira afirmação é falsa e a segunda é verdadeira. 
 As duas afirmações são verdadeiras e a primeira justifica a segunda. 
 A primeira afirmação é verdadeira e a segunda é falsa. 
 As duas afirmações são verdadeiras e a primeira não justifica a segunda. 
9) Analise as seguintes afirmações: "(1) O valor de uma chave estrangeira só pode ser inserido em uma tabela se já 
existena tabela onde é chave primária PORQUE (2) esta restrição garante a integridade referencial." Podemos 
afirmar: 
 As duas afirmações são verdadeiras e primeira justifica a segunda. 
 As duas afirmações são falsas. 
 As duas afirmações são verdadeiras e a primeira não justifica a segunda 
 A primeira afirmação é verdadeira e a segunda é falsa. 
 A primeira afirmação é falsa e a segunda é verdadeira. 
10) Ao selecionar os dados de uma tabela, para visualização ou outra necessidade podemos restringir o seu 
espectro de visualização utilizando a cláusula: 
 UNTIL 
 FROM 
 UP 
 WHERE 
 ORDER 
11) Ao tentar inserir um valor nulo em um campo que é chave primária estaremos violando a: 
 Restrição de Domínio 
 Restrição de Entidade 
 Restrição de Chave Primária 
 Restrição de Referência 
 Restrições Semântica 
12) As abordagens clássicas utilizadas pelo otimizador de consultas são: 
 Custo e tempo 
 Regras e tempo 
 Regras e custo 
 Custo 
 Regras 
13) (CESGRANRIO - 2006 - EPE - Área Tecnologia da Informação) Para as técnicas de controle de concorrência em 
Bancos de Dados, assinale a afirmativa INCORRETA. 
 Diz-se que uma transação segue o protocolo de bloqueio de duas fases se todas as operações (read_lock, 
write_lock) precedem a última operação de desbloqueio na transação 
 Uma forma para detectar um estado de deadlock consiste em construir um grafo wait-for. 
 O deadlock ocorre quando cada transação em um conjunto de duas ou mais transações espera por algum 
item que esteja bloqueado por alguma outra transação T no conjunto. 
 As técnicas de controle de concorrência baseadas em ordenação por timestamp não usam bloqueios, 
portanto, deadlocks nunca podem ocorrer. 
 O problema de espera indefinida (starvation) pode ocorrer se o esquema de espera para itens bloqueados for 
parcial, dando prioridade a algumas transações sobre as outras. 
14) (CESGRANRIO - 2008 - BNDES - Análise de Sistemas - Desenvolvimento) 
O Administrador de Dados de uma loja virtual verifica que há um problema no sistema controlador do estoque. 
Alguns produtos apresentam quantidades negativas, ou seja, houve mais vendas que a quantidade existente no 
estoque. O programador do sistema mostra, em pseudocódigo, o trecho que realiza a verificação do estoque. 
 
Qual opção descreve corretamente o problema e sua solução? 
 Está havendo um problema de deadlock e a solução é colocar a cláusula FOR UPDATE ao final do BEGIN 
TRANSAC TION. 
 A transação não bloqueia o produto consultado. O SELEC T deverá ter, no final, a cláusula FOR UPDATE. 
 Está havendo um problema de leitura suja e a solução é mover o C OMMIT TRANSAC TION para dentro do 
THEN, logo abaixo do UPDATE. 
 Está havendo um problema de registro fantasma e a solução é alterar o nível de isolamento para serializável. 
 Está havendo um problema de concorrência e a solução é retirar a transação, eliminando os comandos 
BEGIN TRANSAC TION, ROLLBAC K TRANSAC TION e C OMMIT TRANSAC TION. 
15) Considere a relação: 
PRODUTO (codigo, unidade, descrição, valor_unitário) 
A consulta em SQL para reponder a questão "Liste o código dos produtos com valores unitários entre R$ 500,00 
e R$ 1000,00" é: 
 SELECT CODIGO FROM PRODUTO WHERE VALOR_UNITARIO > 500; 
 SELECT CODIGO FROM PRODUTO WHERE VALOR_UNITARIO IN [500, 1000]; 
 SELECT CODIGO FROM PRODUTO WHERE VALOR_UNITARIO LIKE 500 AND 1000; 
 SELECT CODIGO FROM PRODUTO WHERE VALOR_UNITARIO BETWEEN 500 AND 1000; 
 Nenhuma das consultas acima. 
16) Considere a relação abaixo: 
AUTOMÓVEL (placa, fabricante, modelo, cor, data_de_fabricação) 
A consulta SQL que responde a questão "Liste todos os automóveis (placa, modelo, cor) fabricados pela VW ou 
pela Fiat" é: 
 SELECT PLACA, MODELO, COR FROM AUTOMOVEL WHERE FABRICANTE BETWEEN 'VW AND FIAT'; 
 SELECT PLACA, MODELO, COR FROM AUTOMOVEL WHERE FABRICANTE IS ('VW', 'FIAT'); 
 SELECT PLACA, MODELO, COR FROM AUTOMOVEL WHERE FABRICANTE IN ('VW', 'FIAT'); 
 Nenhuma das respostas acima. 
 SELECT PLACA, MODELO, COR FROM AUTOMOVEL WHERE FABRICANTE = 'VW' AND FABRICANTE = 
'FIAT'; 
17) Considere a relação abaixo: 
CLIENTE (cpf, nome, endereço, telefone) 
A consulta SQL que responde a pergunta "Quais os clientes (cpf e nome) que não possuem endereço 
cadastrado" é: 
 SELECT * FROM CLIENTE WHERE ENDERECO IS NULL; 
 SELECT CPF, NOME FROM CLIENTE WHERE ENDERECO IS NOT NULL; 
 SELECT CPF, NOME FROM CLIENTE; 
 Nenhuma das respostas acima. 
 SELECT CPF, NOME FROM CLIENTE WHERE ENDERECO IS NULL; 
18) Considere a tabela aluno abaixo: 
 
Qual o atributo poderia ser chave candidata da tabela acima? 
 cidade 
 cpf 
 Não existe atributo que poderia ser chave candidata 
 endereço 
 nome 
19) Considere as relações: 
ALUNO (matriculaluno, nomealuno, endereço, telefone) 
CURSA (matricula, codigo) 
matricula REFERENCIA matriculaluno em ALUNO 
codigo REFERENCIA codigodisciplina em DISCIPLINA 
DISCIPLINA (codigodisciplina, nomedisciplina, creditos) 
A consulta em álgebra relacional que responde a questão "Quais os alunos (nome e matrícula) que cursam a 
disciplina com código CCT0199" está corretamente representada em: 
 π matriculaaluno, nomealuno (ALUNOmatriculaluno = ⋈matricula (σ codigo = CCT0199 (DISCIPLINA))) 
 Não existe consulta que reponda a questão 
 π matriculaaluno, nomealuno (CURSA matriculaluno = ⋈matricula DISCIPLINA) 
 π matriculaluno, nomealuno (ALUNO matriculaluno = ⋈matricula (σ codigo = CCT0199 (CURSA))) 
 π matriculaaluno, nomealuno (ALUNO matriculaluno = ⋈matricula DISCIPLINA) 
20) Considere as relações: 
PROFESSOR (matriculaprf, nomeprf, titulacao, anoadmissao) 
MINISTRA (matricula, codigo) 
matricula REFERENCIA matriculaprf em PROFESSOR 
codigo REFERENCIA codigo disciplina em DISCIPLINA 
DISCIPLINA (codigodisciplina, nomedisciplina, creditos) 
A consulta em álgebra relacional que responde a questão "Quem são os professores (nome e matrícula) que 
ministram a disciplina Implementação de Bancos de Dados" está corretamente representada em: 
 πmatriculaprf, nomeprf (PROFESSORmatriculaprf = ⋈ matricula(MINISTRAcodigo = ⋈ codigodisciplina(DISCIPLINA))) 
 πmatriculaprf, nomeprf (PROFESSORmatriculaprf = ⋈ matricula(σnomedisciplina = "Implementação de Banco de Dados"(DISCIPLINA)) 
 Não existe consulta que responda a esta questão. 
 πmatriculaprf, nomeprf (PROFESSORmatriculaprf = ⋈ matricula(MINISTRAcodigo = ⋈ codigodisciplina(σnomedisciplina = "Implementação de 
Banco de Dados"(DISCIPLINA))) 
 πmatriculaprf, nomeprf (PROFESSORmatriculaprf = ⋈ matricula(MINISTRA) 
21) Considere o esquema abaixo: 
PROFESSOR (matriculaprf, nomeprf, titulacao, anoadmissao) 
MINISTRA (matricula, codigo) 
matricula REFERENCIA matriculaprf em PROFESSOR 
codigo REFERENCIA codigodisciplina em DISCIPLINA 
DISCIPLINA (codigodisciplina, nomedisciplina, creditos) 
Os comandos SQL apresentam todos os elementos necessários para a sua criação estão representados em: 
 CREATE TABLE PROFESSOR ( MATRICULAPRF NOT NULL,NOMEPRF NOT NULL, TITULACAO NOT 
NULL, ANOADMISSAO NOT NULL, PRIMARY KEY (MATRICULAPRF)); 
CREATE TABLE DISCIPLINA ( CODIGODISCIPLINA NOT NULL,NOMEDISCIPLINA NOT NULL, 
CREDITOS NOT NULL, PRIMARY KEY (CODIGODISCIPLINA)); 
CREATE TABLE MINISTRA (MATRICULA NOT NULL, CODIGO NOT NULL, PRIMARY KEY (MATRICULA, 
CODIGO), FOREIGN KEY MATRICULA REFERENCES PROFESSOR (MATRICULAPRF), FOREIGN KEY 
CODIGO REFERENCES DISCIPLINA (CODIGODISCIPLINA)); 
 CREATE TABLE PROFESSOR ( MATRICULAPRF NUMBER (5) NOT NULL, NOMEPRF VARCHAR(20) 
NOT NULL, TITULACAO VARCHAR (15) NOT NULL, ANOADMISSAO VARCHAR (4) NOT NULL); 
CREATE TABLE DISCIPLINA ( CODIGODISCIPLINA VARCHAR (5) NOT NULL,NOMEDISCIPLINA 
VARCHAR(20)NOT NULL, CREDITOS NUMBER (2) NOT NULL); 
CREATE TABLE MINISTRA (MATRICULA NUMBER (5) NOT NULL, CODIGO VARCHAR (5) NOT NULL); 
 CREATE TABLE PROFESSOR ( MATRICULAPRF NUMBER (5) NOT NULL,NOMEPRF VARCHAR(20) NOT 
NULL, TITULACAO VARCHAR (15) NOT NULL, ANOADMISSAO VARCHAR (4) NOT NULL, PRIMARY KEY 
(MATRICULAPRF)); 
CREATE TABLE DISCIPLINA ( CODIGODISCIPLINA VARCHAR (5) NOT NULL, NOMEDISCIPLINA 
VARCHAR(20) NOT NULL, CREDITOS NUMBER (2) NOT NULL, PRIMARY KEY (CODIGODISCIPLINA)); 
CREATE TABLE MINISTRA (MATRICULA NUMBER (5) NOT NULL, CODIGO VARCHAR (5), PRIMARY 
KEY (MATRICULA, CODIGO)); 
 CREATE TABLE PROFESSOR ( MATRICULAPRF NUMBER(5) NOT NULL,NOMEPRF VARCHAR(20) NOT 
NULL, TITULACAO VARCHAR (15) NOT NULL, ANOADMISSAO VARCHAR (4) NOT NULL, PRIMARY KEY 
(MATRICULAPRF)); 
CREATE TABLE DISCIPLINA ( CODIGODISCIPLINA VARCHAR (5) NOT NULL,NOMEDISCIPLINA 
VARCHAR(20) NOT NULL, CREDITOS NUMBER (2) NOT NULL, PRIMARY KEY (CODIGODISCIPLINA)); 
CREATE TABLE MINISTRA (MATRICULA NUMBER (5) NOT NULL, CODIGO VARCHAR (5) NOT NULL, 
PRIMARY KEY (MATRICULA, CODIGO), FOREIGN KEY MATRICULA REFERENCES PROFESSOR 
(MATRICULAPRF), FOREIGN KEY CODIGO REFERENCES DISCIPLINA (CODIGODISCIPLINA)); 
 CREATE TABLE PROFESSOR ( MATRICULAPRF NUMBER (5) NOT NULL,NOMEPRF VARCHAR(20) NOT 
NULL, TITULACAO VARCHAR (15) NOT NULL, ANOADMISSAO VARCHAR (4) NOT NULL); 
CREATE TABLE DISCIPLINA ( CODIGODISCIPLINA VARCHAR (5) NOT NULL,NOMEDISCIPLINA 
VARCHAR(20) NOT NULL, CREDITOS NUMBER (2) NOT NULL); 
CREATE TABLE MINISTRA (MATRICULA NUMBER(5) NOT NULL, CODIGO VARCHAR (5) NOT NULL, 
PRIMARY KEY (MATRICULA, CODIGO), FOREIGN KEY MATRICULA REFERENCES PROFESSOR 
(MATRICULAPRF), FOREIGN KEY CODIGO REFERENCES DISCIPLINA (CODIGODISCIPLINA)); 
22) Considere o script: 
CREATE TABLE PECA (CODIGO NUMERIC(5) NOT NULL, 
DESCRICAO VARCHAR(20) NOT NULL, 
ESTOQUE NUMERIC(5) NOT NULL, 
PRIMARY KEY(CODIGO)); 
Após a criação desta tabela, o comando que inclui a tupla (1234, "lápis de cor", 500) está representado em: 
 INSERT INTO PECA (1234, "lápis de cor", 500); 
 INCLUDE INTO PECA (1234, "lápis de cor", 500); 
 INSERT INTO PECAS ("1234", "lápis de cor", 500); 
 INSERT INTO PECAS (1234, "lápis de cor", 500); 
 INSERT PECAS (1234, "lápis de cor", 500); 
23) Considere o texto a seguir e complete as lacunas, comas expressões constantes nas alternativas, respeitando a 
correlação sequencial em que estão dispostas. 
Uma ..................... é uma coluna ou uma combinação de colunas cujos valores distinguem uma linha das demais, 
dentro de uma tabela. 
Uma ...................... é uma coluna ou uma combinação de colunas cujos valores aparecem, necessariamente, na 
........................ de uma tabela. 
Em alguns casos, mais de uma coluna ou combinações de colunas podem servir para distinguir uma linha das 
demais. Uma das colunas (ou combinação de colunas) é escolhida como ..................... As demais colunas ou 
combinações são denominadas ........................ 
A sequência correta encontra-se apenas em: 
 Chave primária; chave estrangeira; chave primária; chave primária; chaves estrangeiras. 
 Chave primária; chave estrangeira; chave primária; chave secundária; chaves alternativas. 
 Chave primária; chave estrangeira; chave primária; chave primária; chaves alternativas. 
 Chave primária; super-chave; chave primária; chave candidata; chaves secundárias. 
 Chave primária; chave primária; chave primária; super-chave; chaves secundárias. 
24) (CONSULPLAN - 2012) Ao contrário das linguagens tradicionais, que são procedimentais, SQL é uma linguagem 
declarativa, que integra três sublinguagens: Data Manipulation Language (DML), Data Definition Language (DDL) 
e Data Control Language (DCL). Um comando DML e outro DDL são, respectivamente: 
 Update e Grant. 
 Update e Drop. 
 Grant e Delete. 
 Delete e Update. 
 Drop e Grant. 
25) (CONSULPLAN - 2012) Dentre os objetivos da implementação de bancos de dados, um visa solucionar um 
problema que ocorre quando aplicações diferentes operam sobre os mesmos dados, armazenados em arquivos 
diferentes. Esse problema é conhecido por: 
 Dependência de dados. 
 Integridade de dados. 
 Redundância de dados. 
 Consistência de dados. 
 Replicação de dados. 
26) De acordo com a tabela a seguir, como fica a instrução de seleção para recuperarmos os funcionários possuem 
ID maior do que 102, trabalham no Departamento 10 e ganham mais de R$ 2.000,00 de Salário? 
 
 σ ID > 102 OU id_Depto = 10 E Salario > 2000 (Empregado) 
 σ ID = 102 OU id_Depto = OU E Salario > 2000 (Empregado) 
 σ ID > 102 OU id_Depto = 10 OU Salario > 2000(Empregado) 
 σ ID > 102 E id_Depto = 10 E Salario > 2000 (Empregado) 
 σ ID = 102 E id_Depto = 10 E Salario > 2000 (Empregado) 
27) De acordo com o modelo de dados definido pelas tabelas a seguir, indique a instrução SQL adequada para: 
 
Apresentar apenas os nomes completos dos Empregados que trabalhem nos Departamentos 11, 21, 22, 31, 42 
ou 51. 
 SELECT PRIM_NOME, ULT_NOME FROM EMPREGADO WHERE ID_DEPTO IN (11, 21, 22, 31, 42, 51); 
 SELECT PRIM_NOME, ULT_NOME FROM EMPREGADO WHERE ID_DEPTO ON (11, 21, 22, 31, 42, 51); 
 SELECT PRIM_NOME || ' ' || ULT_NOME FROM EMPREGADO WHERE ID_DEPTO =11 AND ID_DEPTO 
=21 AND ID_DEPTO =22 AND ID_DEPTO =31 AND ID_DEPTO =42 AND ID_DEPTO =51; 
 SELECT PRIM_NOME || ' ' || ULT_NOME FROM EMPREGADO WHERE ID_DEPTO ON (11, 21, 22, 31, 42, 
51); 
 SELECT PRIM_NOME || ' ' || ULT_NOME FROM EMPREGADO WHERE ID_DEPTO IN (11, 21, 22, 31, 42, 
51); 
28) De acordo com o modelo de dados definido pelas tabelas a seguir, indique a instrução SQL adequada para: 
 
Apresentar o maior salário pago aos Empregados Agrupados por Departamento, para os Departamentos (11, 21, 
22, 31, 42, 51). 
 SELECT MAX(SALARIO) FROM EMPREGADO WHERE ID_DEPTO =11 AND ID_DEPTO =21 AND 
ID_DEPTO =22 AND ID_DEPTO =31 AND ID_DEPTO =42 AND ID_DEPTO =51; 
 SELECT MAXIMO(SALARIO) FROM EMPREGADO WHERE ID_DEPTO IN (11, 21, 22, 31, 42, 51) GROUP 
BY ID_DEPTO; 
 SELECT MAX(SALARIO) FROM EMPREGADO WHERE ID_DEPTO ON (11, 21, 22, 31, 42, 51) GROUP BY 
ID_DEPTO; 
 SELECT MAXIMO(SALARIO) FROM EMPREGADO WHERE ID_DEPTO ON (11, 21, 22, 31, 42, 51) GROUP 
BY ID_DEPTO; 
 SELECT MAX(SALARIO) FROM EMPREGADO WHERE ID_DEPTO IN (11, 21, 22, 31, 42, 51) GROUP BY 
ID_DEPTO; 
29) De acordo com o modelo de dados definido pelas tabelas a seguir, indique a instrução SQL adequada para: 
 
Apresentar os Ids e os nomes dos Departamentos ordenados por nome de forma Decrescente. 
 SELECT ID, NOME FROM DEPARTAMENTO ORDER BY DESC NOME; 
 SELECT ID, NOME FROM DEPARTAMENTO ORDER BY ASC NOME; 
 SELECT ID, NOME FROM DEPARTAMENTO ORDER BY NOME DESC; 
 SELECT ID, NOME FROM DEPARTAMENTO ORDER BY NOME ASC; 
 SELECT ID, NOME FROM DEPARTAMENTO ORDER BY NOME; 
30) De acordo com o processo de submissão de uma consulta no Oracle, identifique a ordem de execução as 
seguintes etapas: 
1 - Análise Semântica 
2 - Análise Sintática 
3 - Geração de Código 
4 - Otimização da Consulta 
5 - Reescrita de Consulta 
A ordem de execução CORRETA seria: 
 2, 1, 4, 5, 3 
 2, 1, 5, 4, 3 
 1, 2, 4, 5, 3 
 1, 2, 3, 4, 5 
 1, 2, 5, 4, 3 
31) De uma chave primária é certo afirmarmos: 
I. Pode ser simples ou composta. 
II. Não pode constar entre as chaves candidatas da relação. 
III. O atributo da chave primária deve ser único. 
Estão corretas: 
 I e III. 
 II e III. 
 I e II. 
 Somente I. 
 I, II e III. 
32) Dentre as opções a seguir, qual não é uma função de grupo? 
 SUM(x) 
 CONT(*) 
 AVG(x) 
 MAX(x) 
 MED(x) 
33) Dentre as propriedades de uma transação, qual delas é responsável por preservar a integridade do banco dedados? 
 Consistência 
 Atomicidade 
 Isonomia 
 Durabilidade 
 Isolamento 
34) Dentre as sub-linguagens definidas na Linguagem SQL, o comando SELECT faz parte de qual delas? 
 Controle de transações 
 DRL 
 DCL 
 DML 
 DDL 
35) Dentre as vantagens da utilização dos SGBDs a seguir, qual NÃO é uma vantagem? 
 Redução ou Eliminação de redundâncias. 
 Padronização dos dados. 
 Independência dos dados. 
 Dependência entre programas e dados. 
 Compartilhamento de Dados. 
36) Durante a criação de uma tabela, é detectada a necessidade de se definir um atributo de texto que armazenará 
dados com tamanhos entre 2000 e 3000 caracteres. Qual é o tipo adequado a ser usado este atributo neste 
caso? 
 RAW(tam) 
 VARCHAR2(tam) 
 LONG RAW 
 LONG 
 CHAR(tam) 
37) É uma vantagem de uso da linguagem SQL: 
 Visão única dos dados 
 Dependência de fabricante 
 Definição dinâmica dos dados 
 Dependência de plataforma 
 Alto custo de treinamento 
38) Em relação à álgebra relacional, o operador de _____________ permite combinar seleções e um produto 
cartesiano em uma só operação. 
 Projeção 
 Diferença 
 União 
 Junção 
 Interseção 
39) Em SQL, para contar linhas usamos: 
 GROUP BY 
 SUM 
 AVG 
 SELECT 
 COUNT 
40) Em uma junção Cruzada entre três tabelas com respectivamente 10, 8 e 4 registros, gerará uma saída com 
quantos registros? 
 320 registros 
 220 registros 
 160 registros 
 22 registros 
 20 registros 
41) (ENADE 2011 - Adaptado) 
CREATE TABLE PECAS (CODIGO NUMERIC(5) NOT NULL, 
 DESCRICAO VARCHAR(20) NOT NULL, 
 ESTOQUE NUMERIC(5) NOT NULL, 
 PRIMARY KEY(CODIGO)); 
 
CREATE TABLE FORNECEDORES 
(COD_FORN NUMERIC(3) NOT NULL, 
 NOME VARCHAR(30) NOT NULL, 
 PRIMARY KEY(COD_FORN)); 
 
CREATE TABLE FORNECIMENTOS 
(COD_PECA NUMERIC(5) NOT NULL, 
 COD_FORN NUMERIC(3) NOT NULL, 
 QUANTIDADE NUMERIC(4) NOT NULL, 
 PRIMARY KEY(COD_PECA, COD_FORN), 
 FOREIGN KEY (COD_PECA) REFERENCES PECAS, 
 FOREIGN KEY (COD_FORN) REFERENCES 
 FORNECEDORES); 
 
A partir desse script, assinale a opção que apresenta o comando SQL que permite obter uma lista que contenha 
o código e a quantidade de peças fornecidas: 
 SELECT CODIGO, ESTOQUE FROM PECAS 
 SELECT COD_PECA, QUANTIDADE FROM FORNECIMENTO; 
 Nenhuma das respostas acima 
 SELECT CODIGO, ESTOQUE FROM FORNECIMENTOS; 
 SELECT COD_PECA, QUANTIDADE FROM FORNECIMENTOS; 
42) (ENADE 2011 - Adaptado) 
CREATE TABLE PECAS (CODIGO NUMERIC(5) NOT NULL, 
 DESCRICAO VARCHAR(20) NOT NULL, 
 ESTOQUE NUMERIC(5) NOT NULL, 
 PRIMARY KEY(CODIGO)); 
 
CREATE TABLE FORNECEDORES 
(COD_FORN NUMERIC(3) NOT NULL, 
 NOME VARCHAR(30) NOT NULL, 
 PRIMARY KEY(COD_FORN)); 
 
CREATE TABLE FORNECIMENTOS 
(COD_PECA NUMERIC(5) NOT NULL, 
 COD_FORN NUMERIC(3) NOT NULL, 
 QUANTIDADE NUMERIC(4) NOT NULL, 
 PRIMARY KEY(COD_PECA, COD_FORN), 
 FOREIGN KEY (COD_PECA) REFERENCES PECAS, 
 FOREIGN KEY (COD_FORN) REFERENCES 
 FORNECEDORES); 
 
A partir desse script, assinale a opção que apresenta o comando SQL que permite obter uma lista que contenha 
o nome de cada fornecedor: 
 SELECT NOME_FORNECEDOR FROM FORNECEDORES; 
 SELECT * FROM FORNECEDOR; 
 SELECT * FROM FORNECEDORES; 
 SELECT NOME FROM FORNECEDOR; 
 SELECT NOME FROM FORNECEDORES; 
43) (FGV - 2010 - DETRAN-RN - Assessor Técnico - Administração de Banco de Dados) 
Assinale a alternativa correta sobre fragmento de comando a seguir: 
(select distinct nome_cliente 
from contas) 
intersect 
(select distinct nome_cliente 
from emprestimos) 
 Se um cliente tem diversas contas e empréstimos no banco, não aparecerá no resultado. 
 Se um cliente tem diversas contas e empréstimos no banco, aparecerá todas as repetições no resultado. 
 Se um cliente possui conta mas não possui empréstimos no banco, aparecerá no resultado. 
 Se um cliente tem diversas contas e empréstimos no banco, aparecerá somente uma vez no resultado. 
 Se um cliente não possui conta mas possui empréstimos no banco, aparecerá no resultado. 
44) (FUMARC - 2011 - BDMG - Analista de Sistemas) 
 
De acordo com o diagrama do esquema de banco de dados relacional, escolha a sentença SQL que melhor 
responda à consulta Listar o número da conta de todas as contas que não tem empréstimo associado: 
 SELECT c.num_conta FROM CONTA AS c 
MINUS 
SELECT e.num_conta FROM EMPRESTIMO AS e 
 SELECT c.num_conta FROM CONTA AS c 
WHERE c.num_conta NOT IN 
(SELECT e.num_conta FROM EMPRESTIMO AS e) 
 SELECT c.num_conta FROM CONTA AS c 
WHERE c.num_conta NOT EXISTS 
(SELECT e.num_conta FROM EMPRESTIMO AS e) 
 SELECT c.num_conta FROM CONTA AS c 
WHERE c.num_emprestimo NOT 
(SELECT e.num_emprestimo FROM EMPRESTIMO AS e) 
 SELECT c.num_conta FROM CONTA AS c 
WHERE c.num_conta NOT IN 
(SELECT e.num_emprestimo FROM EMPRESTIMO AS e) 
45) Listar cpf e nome do cliente que possui o veículo placa BDQ2012. 
 
 SELECT c.cpf, c.nome FROM Veiculo v INNER JOIN Cliente c ON v.Cliente_cpf = c.cpf WHERE v.placa = 
'BDQ2012'; 
 SELECT c.cpf, c.cliente FROM Veiculo v INNER JOIN Cliente c ON v.Cliente_cpf = c.cpf WHERE v.placa = 
'BDQ2012'; 
 SELECT c.cpf, c.nome FROM Veiculo v INNER JOIN Cliente c ON v.Cliente_cpf = c.cpf ; 
 Nenhuma das consultas acima. 
 SELECT c.cpf, v.veiculo FROM Veiculo v INNER JOIN Cliente c ON v.Cliente_cpf = c.cpf WHERE v.placa = 
'BDQ2012'; 
46) Listar placa, o ano do veículo e a descrição de seu modelo, se ele possuir ano a partir de 2010 
 
 Nenhuma das respostas acima. 
 SELECT v.placa, v.ano, m.descricao FROM Veiculo v INNER JOIN Modelo m ON v.Modelo_codMod = 
m.codMod WHERE ano >= 2010; 
 SELECT v.placa, v.ano, m.descricao FROM Veiculo v INNER JOIN Modelo m ON v.Modelo_codMod = 
m.codMod WHERE ano > 2010; 
 SELECT v.placa, m.descricao FROM Veiculo v INNER JOIN Modelo m ON v.Modelo_codMod = m.codMod 
WHERE ano = 2010; 
 SELECT v.placa, v.veiculo, m.modelo FROM Veiculo v INNER JOIN Modelo m ON v.Modelo_codMod = 
m.codMod WHERE ano >= 2010; 
47) Na linguagem SQL, para totalizarmos os valores de uma coluna usamos o comando: 
 COUNT 
 SUM 
 EQUAL 
 AVG 
 GROUP BY 
48) Na sintaxe ANSI da junção Interior, na sua forma padrão é: 
 select [colunas] from tabela1 LEFT JOIN tabela2 ON ; 
 select * from tabela1 LEFT JOIN tabela2; 
 select [colunas] from tabela1 RIGHT JOIN tabela2 ON ; 
 select * from tabela1 C ROSS JOIN tabela2; 
 select [colunas] from tabela1 INNER JOIN tabela2 ON ; 
49) (NCE-UFRJ - 2005 - BNDES - Análise de Sistemas - Desenvolvimento) 
Considere um banco de dados simplificado referente ao controle de concursos, constituído pelas tabelas 
Concurso, Cargo, Candidato e Inscrição, criadas pelo script SQL mostrado abaixo. 
create table concurso (id_concurso int not null primary key, concurso varchar(60) not null); 
create table cargo (id_cargo int not null primary key,cargo varchar(60) not null, id_concurso int not null, 
constraint ci0 foreign key (id_concurso) references concurso (id_concurso)); 
create table candidato (id_candidato int not null primary key, nome varchar(40) not null); 
A consulta SQL que produz a lista dos candidatos que se inscreveram em todos os concursos é: 
 select nome 
from candidato cd 
where 
not exists 
(select * 
from concurso cc 
where 
not exists 
(select * 
from inscrição i 
where i.id_concurso <> cc.id_concurso 
and i.id_candidato <> cd.id_candidato)) 
 select nome 
from candidato cd 
where 
exists 
(select * 
from concurso cc 
where 
not exists 
(select * 
from inscriçãoi 
where i.id_concurso=cc.id_concurso 
and i.id_candidato=cd.id_candidato)) 
 select nome 
from candidato cd 
where 
exists 
(select * from concurso cc 
where not in 
(select * 
from inscrição i 
where i.id_concurso=cc.id_concurso 
and i.id_candidato=cd.id_candidato)) 
 select nome 
from candidato cd 
where 
not exists 
(select * 
from concurso cc 
where 
exists 
(select * 
from inscrição i 
where i.id_concurso=cc.id_concurso 
and i.id_candidato=cd.id_candidato)) 
 select nome from candidato cd where 
not exists 
(select * from concurso cc where 
not exists 
(select * from inscrição i where i.id_concurso=cc.id_concurso 
and i.id_candidato=cd.id_candidato)) 
50) No Modelo Relacional de Dados, o mecanismo fundamental para manter a consistência dos dados e evitar 
registros órfãos é denominado. 
 Normalização. 
 Integridade Relacional. 
 Integridade Referencial. 
 Integridade de Chave. 
 Dependência Funcional. 
51) O comando SELECT * FROM [tabela] WHERE [condições]: 
 Lista todas as colunas de uma tabela 
 Nenhuma das respostas acima 
 Não é um comando da linguagem SQL 
 Lista tanto as linhas quanto as colunas de uma tabela 
 Lista todas as linhas de uma tabela 
52) O comando SELECT FROM corresponde a seguinte operação da álgebra relacional: 
 Projeção 
 Seleção 
 Junção 
 Interseção 
 União 
53) O comando SELECT FROM WHERE corresponde as seguintes operações da álgebra relacional: 
 Projeção e União. 
 Seleção e Projeção. 
 Seleção e Diferença. 
 Seleção e Junção. 
 União e Interseção. 
54) O comando SQL para excluir os registros da tabela Aluno, cujo campo nome comece com a letra M, é: 
 DELETE FROM Aluno. 
 DELETE FROM Aluno WHERE nome LIKE 'G%'. 
 DELETE FROM Aluno WHERE nome SUCH '%M'. 
 DELETE FROM Aluno WHERE nome LIKE 'M%'. 
 DELETE FROM Aluno WHERE nome='M'. 
55) O comando SQL que apaga uma tabela é: 
 DELETE TABLE 
 INSERT INTO 
 REMOVE TABLE 
 DROP TABLE 
 UPDATE 
56) O operador que possibilita a seleção de uma faixa de valores sem a necessidade do uso dos operadores >=, <= 
e AND é: 
 GROUP BY 
 LIKE 
 BETWEEN 
 IN 
 HAVING 
57) O otimizador do Oracle transforma condições envolvendo certos operadores, no caso do operador BETWEEN, ao 
usarmos como o exemplo a construção: Salario BETWEEN 1000 AND 3000 A sua otimização resultante será: 
 salário >= 1000 OR salário <= 3000 
 salário > 1000 AND salário < 3000 
 salário >= 1000 AND salário <= 3000 
 salário < 1000 OR salário > 3000 
 salário > 1000 OR salário < 3000 
58) Observe a tabela abaixo, referente a um banco de dados empresa: 
 
Para gerar uma consulta SQL com todos os atributos, classificados por NOME_PACIENTE, deve-se utilizar o 
seguinte comando: 
 SELECT * FROM PACIENTE ASC NOME_PACIENTE; 
 SELECT * FROM PACIENTE ORDER BY NOME_PACIENTE; 
 SELECT * OVER PACIENTE ORDER BY NOME_PACIENTE; 
 SELECT * FROM PACIENTE DESC NOME_PACIENTE; 
 SELECT * OVER PACIENTE ASC NOME_PACIENTE; 
59) Os atributos de uma tabela constituem: 
 Os nomes das tabelas. 
 As colunas da tabela. 
 Os índices da tabela. 
 As linhas da tabela. 
 As tuplas da tabela. 
60) Os conceitos que envolvem os termos restrição de integridade de entidade e restrição de integridade referencial 
são, respectivamente: 
 os valores dos atributos que formam a chave estrangeira deverá existir na tabela onde a chave estrangeira é 
chave primária, somente quando for igual a NULL / nenhum atributo pertencente à chave primária poderá 
receber valor NULL. 
 os valores dos atributos que formam a chave estrangeira deverá existir na tabela onde a chave estrangeira é 
chave primária, quando for diferente de NULL / nenhum atributo pertencente à chave primária poderá receber 
valor NULL. 
 nenhum atributo pertencente à chave primária poderá receber valor NULL / os valores dos atributos que 
formam a chave estrangeira deverá existir na tabela onde a chave estrangeira é chave primária, quando for 
diferente de NULL. 
 os atributos pertencentes à chave primária deverão conter sempre valores diferentes de NULL / os valores 
dos atributos que formam a chave estrangeira deverá existir na tabela onde a chave estrangeira é chave 
primária, somente quando for igual a NULL. 
 nenhum atributo pertencente à chave primária poderá receber valor NULL / os valores dos atributos que 
formam a chave estrangeira deverá existir na tabela onde a chave estrangeira é chave primária, somente 
quando for igual a NULL. 
61) Para criarmos um índice para a tabela Fornecedor pelo Bairro e Cidade devemos dar o seguinte comando: 
 Create Index Forn_Bairro_Cidade ON Fornecedor(Bairro, Cidade) 
 Create Index Fornecedor BY Bairro, Cidade 
 Create Index Forn_Bairro_Cidade ON Fornecedor BY Bairro, Cidade 
 Create Index Fornecedor ON Forn_Bairro_Cidade(Bairro, Cidade) 
 Create Index Forn_Bairro_Cidade From Fornecedor BY Bairro, Cidade 
62) Para gerar estatísticas em uma tabela cada SGBD disponibiliza comandos. Dentre os tipos de estatísticas 
apresentados identifique aquele que NÃO é considerado como tal: 
 de sistema: utilização típica de I/O e de CPU. 
 de tabelas: número de linhas, blocos, tamanho de registro médio 
 de colunas: número de valores distintos, número de NULLs, histograma de valores 
 de índices: número de folhas, níveis, clustering. 
 de linhas: número de linhas distintas, histograma de linhas 
63) Para incluir a tupla mostrada abaixo na tabela PACIENTE executaríamos o seguinte comando: 
 
 INSERT INTO paciente VALUES (5430005, 'Beatriz Ferro', '1970-05-28', 'feminino', 'casada'); 
 ADD INTO paciente SET (5430005, 'Beatriz Ferro', '1970-05-28', 'feminino', 'casada'); 
 INSERT INTO paciente (5430005, 'Beatriz Ferro', '1970-05-28', 'feminino', 'casada'); 
 ADD INTO paciente VALUES (5430005, 'Beatriz Ferro', '1970-05-28', 'feminino', 'casada'); 
 INSERT INTO paciente SET (5430005, 'Beatriz Ferro', '1970-05-28', 'feminino', 'casada'); 
64) Para iniciar uma transação no Oracle, basta usarmos um comando SQL executável e para encerrar, podemos 
usar qualquer dos comandos abaixo, com Exceção de: 
 SELECT 
 GRANT 
 COMMIT 
 CREATE 
 ROLLBACK 
65) Para sabermos o valor atual em uma sequência, devemos usar: 
 Select NomeSequencia.CURRVAL from NomeTabela 
 Select NomeSequencia.NEXTVAL from NomeTabela 
 Select NomeSequencia.CURRVAL from Dual 
 Select NomeSequencia.NEXTVAL from Dual 
 Nenhuma das demais respostas 
66) Partindo da tabela a seguir, considerando que a mesma já foi criada de acordo com essa ordem de atributos, 
como ficaria o comando SQL para inserir um registro na tabela? 
 
 INSERT INTO X_PROD VALUES ('20', 'TV Led 40 polegadas', '400', '3000'); 
 INSERT INTO X_PROD VALUES ( TV Led 40 polegadas, 20, 400, 3000); 
 INSERT INTO X_PROD VALUES ('TV Led 40 polegadas', 20, 400, 3000); 
 INSERT INTO X_PROD VALUES ( 20, 'TV Led 40 polegadas', 400, 3000); 
 INSERT INTO X_PROD VALUES (20, TV Led 40 polegadas, 400, 3000); 
67) Qual comando SQL é utilizado para obter um conjunto de dados em uma tabela em um banco de dados? 
 GET 
 UPDATE 
 SELECT 
 INSERT 
 JOIN 
68) Qual das consultas abaixo retorna o nome e a placa de todos os veículos? 
 
 SELECT c.nome FROM Veiculo v INNER JOIN Cliente c ON cpf = cpf; 
 SELECT placa FROM Veiculo INNER JOIN Cliente ON Cliente_cpf = cpf; 
 SELECT c.cpf, c.nome FROM Veiculo v INNER JOIN Cliente c ON v.Cliente_cpf = c.cpf WHERE v.placa; 
 SELECT v.placa, c.nome FROM Cliente INNER JOIN Cliente c ON v.Cliente_cpf = c.cpf; 
 SELECT v.placa, c.nome FROM Veiculo v INNER JOIN Cliente c ON v.Cliente_cpf= c.cpf; 
69) Qual dos operadores de conjunto a seguir, devemos tomar cuidado na hora de colocarmos a ordem das tabelas, 
pois retorna diferentes resultados ao se inverter a ordem das tabelas? 
 UNION ALL 
 MINUS ALL 
 UNION 
 MINUS 
 INTERSEC T 
70) Qual dos tipos de sub-consulta que faz referência a uma coluna da tabela da consulta externa? 
 Sub-Consulta Principal 
 Sub-Consulta Correlata 
 Sub-Consulta Simple 
 Sub-Consulta Multi-Linhas 
 Sub-Consulta Multi-Valorada 
71) Qual o resultado da consulta SELECT COUNT(DISTINCT X) FROM R? 
 
 4 
 2 
 1 
 0 
 3 
72) Qual será o resultado da consulta SELECT COUNT(DISTINCT salario) FROM funcionario? 
 
 7 
 6 
 9 
 5 
 8 
73) Quanto a visões, é correto afirmar: 
I - Pode-se fazer uma consulta a uma view com as cláusulas Having e Group By. 
II - Pode-se fazer subconsultas e utilizar operadores de conjunto em uma view. 
III - Uma visão pode permitir, com restrições que os dados da tabela sejam manipulados em comando de 
INSERT, UPDATE e DELETE, porém, não armazena estes dados. 
 Apenas as afirmações II e III são corretas. 
 Apenas as afirmações I e III são corretas. 
 Todas as afirmações estão corretas. 
 Apenas as afirmações I e II são corretas. 
 Apenas a afirmação III é correta. 
74) Relacione as colunas abaixo: 
(1) Tabela bidimensional, composta por linhas e colunas de dados 
(2) Coluna 
(3) Linha 
(4) Conjunto de valores de um atributo 
(5) Nomes das relações seguidas pelos nomes dos atributos, com chaves primária e estrangeiras identificadas 
( ) Esquema 
( ) Atributo 
( ) Tupla 
( ) Relação 
( ) Domínio 
A sequência correta está representada na opção: 
 4,2,3,1,5 
 5,3,2,1,4 
 5,2,3,4,1 
 5,2,1,3,4 
 5,2,3,1,4 
75) Sejam as relações: 
T1 =  nome ((sexo="FEMININO") and (salário>1500) (EMPREGADO)) 
T2 =  nome (dept=5 (EMPREGADO)) 
A relação T3 = T1 - T2 conterá: 
 Nome de todas mulheres que ganham mais do que 1500 e estão lotadas no departamento 5. 
 Nome de todas mulheres que ganham mais do que 1500 e não estão lotadas no departamento 5. 
 Nome de todas mulheres que ganham mais do 1500 
 Nome de todas mulheres que ganham mais do que 1500 ou estão lotadas no departamento 5. 
 Nome de todas mulheres que ganham 1500 e estão lotados no departamento 5. 
76) Uma chave candidata é: 
 um conjunto de valores que cada atributo, definido no esquema, assume em um determinado instante, 
formando o conjunto de tuplas. 
 um conjunto de atributos que descrevem as características dos elementos a serem modelados. 
 um grupo de valores atômicos a partir dos quais um ou mais atributos (ou colunas) retiram seus valores reais. 
 uma ou mais colunas que identificam univocamente a relação, porém não fazem parte da chave primária. 
 uma coluna ou uma combinação de colunas, cujos valores aparecem necessariamente na chave primária de 
uma tabela. 
77) Uma consulta que ocorre dentro de outro comando SQL é denominada: 
 Consulta interna 
 Não é possível uma consulta deste tipo 
 Consulta externa 
 Operação 
 Subconsulta 
78) (UPENET - 2012 - JUCEPE - Analista de Tecnologia da Informação) 
CREATE TABLE Empregado ( 
Matricula char(5) PRIMARY KEY, 
Nome varchar(30), 
numDepto int 
); 
CREATE TABLE Departamento ( 
numDepto int UNIQUE, 
nomeDepto varchar(30) 
); 
ALTER TABLE Empregado ADD CONSTRAINT fk_empregado_depto 
FOREIGN KEY (numDepto) REFERENCES Departamento(numDepto); 
INSERT INTO Departamento VALUES (1, Vendas´); 
INSERT INTO Departamento VALUES (2, En≥nharia´); 
INSERT INTO Departamento VALUES (3, Contabilidade´); 
INSERT INTO Departamento VALUES (4, RH´); 
INSERT INTO Empregado VALUES (11111´,Juliana´, 1); 
INSERT INTO Empregado VALUES (22222´,Gabriela´, 3); 
INSERT INTO Empregado VALUES (33333´,Francisco´, 3); 
INSERT INTO Empregado VALUES (44444´,Inácio´, 4); 
INSERT INTO Empregado VALUES (55555´ ,João´, 4); 
INSERT INTO Empregado VALUES (66666´,Vitor´, NULL); 
Considere que a consulta que segue foi executada sobre a base de dados com o estado resultante da sequência 
dos comandos apresentados no script anterior. 
SELECT * FROM Empregado LEFT OUTER JOIN Departamento 
ON Empregado.numDepto = Departamento.numDepto; 
Qual a quantidade de registros retornados por esta consulta? 
 Cinco 
 Três 
 Quatro 
 Sete 
 Seis 
79) (VUNESP – 2009 – CETESB – Analista de Tecnologia da Informação – Banco de Dados) 
Na otimização de consultas em sistemas gerenciadores de bancos de dados, podem ser identificadas quatro 
etapas, listadas a seguir: 
I. escolher procedimentos candidatos; 
II. gerar planos de consulta e escolher o mais "econômico"; 
III. converter a consulta para a forma canônica; 
IV. converter a consulta para algum formato interno. 
A ordem correta para a execução dessas quatro etapas é: 
 III, II, IV e I. 
 I, III, II e IV. 
 II, IV, I e III. 
 IV, III, I e II. 
 II, I, III e IV. 
80) Baseado na tabela departamento ilustrada na figura a seguir escreva uma consulta SQL que recupere o número 
de departamentos existentes na tabela departamento. Nomeie a coluna como total_dep. 
 
Sugestão: 
SELECT count(*) total_dep 
FROM departamento 
81) Baseado na tabela dependente mostrada a seguir, escreva uma consulta SQL que recupere o parentesco dos 
dependentes. Elimine as linhas duplicadas. 
 
Sugestão: 
SELECT DISTINCT parentesco 
FROM dependente 
82) Baseado na tabela empregado ilustrada na figura a seguir, escreva uma consulta SQL que recupere a soma dos 
salários de todos os empregados, o salário máximo, o salário mínimo e a média dos salários. 
 
Sugestão: 
SELECT SUM(salario), MAX(salario), MIN(salario), AVG(salario) 
FROM empregado 
83) Baseado na tabela empregado mostrada a seguir, escreva uma consulta SQL que recupere todas as informações 
de empregado ordenando pelos empregados que possuem o maior salário. 
 
Sugestão: 
SELECT * 
FROM empregado 
ORDER BY salario DESC 
84) Baseado nas tabelas agência e empréstimo ilustradas a seguir escreva uma consulta SQL que encontre o 
número dos empréstimos que foram efetuados na agência Metropolitana com a quantia superior a R$300. 
 
 
Sugestão: 
SELECT numero_emprestimo 
FROM emprestimo e, agencia a 
WHERE e.numero_agencia = a.numero_agencia AND a.nome_agencia = 'Metropolitana' AND quantia > 300; 
85) Baseado nas tabelas empregado e dependente ilustradas na figura abaixo, escreva uma consulta SQL que 
recupere o(s) nome(s) do(s) empregado(s) que possui(em) mais de um dependente. 
 
 
Sugestão: 
SELECT nome, count(*) 
FROM empregado e, dependente d 
WHERE e.codigo_empregado = d.codigo_empregado 
GROUP BY nome 
HAVING count(*)>2 
86) Baseado nas tabelas esporte e atleta ilustradas a seguir, escreva uma consulta SQL que recupere os nomes e 
sexo dos atletas que praticam natação ordenados alfabeticamente. 
 
 
Sugestão: 
SELECT a.nome, sexo 
FROM atleta a, esporte e 
WHERE a.idesporte = e.idesporte AND e.nome = 'natação' 
ORDER BY a.nome 
87) Considere as tabelas abaixo: 
 
Queremos executar o seguinte comando SQL: 
 
O que acontecerá? Justifique sua resposta. 
Não será possível inserir a tupla mostrada no comando acima, pois não existe na tabela curso nenhuma tupla 
com o valor de cod_curso = 'ENG' e como a coluna cod_curso da tabela aluno é chave estrangeira da coluna 
cod_curso da tabela curso estaremos violando a restrição de integridade referencialao tentar inserir a tupla 
mostrada acima. 
88) CONSIDERE O BANCO DE DADOS CRIADO A PARTIR DOS COMANDOS ABAIXO: 
CREATE TABLE DISCIPLINA (COD_DISCIPLINA VARCHAR (7) PRIMARY KEY, NOME_DISC VARCHAR (20) 
NOT NULL, CARGA_HORARIA 
NUMBER (3) NOT NULL) 
CREATE TABLE TURMA (COD_TURMA NUMBER (4) PRIMARY KEY, ANO NUMBER (4) NOT NULL, 
SEMESTRE VARCHAR (1) NOT NULL, 
COD_DISC VARCHAR (7) REFERENCES DISCIPLINA (COD_DISCIPLINA)); 
QUAL A CONSULTA SQL PARA RECUPERAR TODOS OS DADOS DE TODAS AS DISCIPLINAS? 
SELECT * FROM DISCIPLINA 
89) CONSIDERE O BANCO DE DADOS CRIADO PELOS COMANDOS ABAIXO: 
CREATE TABLE DISCIPLINA (COD_DISCIPLINA VARCHAR (7) PRIMARY KEY, NOME_DISC VARCHAR (20) 
NOT NULL, CARGA_HORARIA NUMBER (3) NOT NULL) 
CREATE TABLE TURMA (COD_TURMA NUMBER (4) PRIMARY KEY, ANO NUMBER (4) NOT NULL, 
SEMESTRE VARCHAR (1) NOT NULL, COD_DISC VARCHAR (7) REFERENCES DISCIPLINA 
(COD_DISCIPLINA)); 
QUAIS O(S) COMANDO (S) SQL NECESSÁRIO(S) PARA INSERIR A TURMA 3020 DE IMPLEMENTAÇÃO DE 
BANCO DE DADOS, NO PRIMEIRO SEMESTRE DE 2012, 88 CREDITOS, COM CÓDIGO DE DISCIPLNA 
CCT0199. A DISCIPLINA AINDA NÃO EXISTE NO BANCO DE DADOS. 
INSERT INTO DISCIPLINA VALUES ('CCT0199', 'IMPLEMENTAÇÃO DE BANCOS DE DADOS, 88); 
INSERT INTO TURMA VALUES (3020, 2012, 1, 'CCT0199'); 
90) Descreva as principais estratégias de otimização de consultas. 
 Otimização por regras: o otimizador utiliza um conjunto de heurísticas para transformar a consulta em um 
plano de acesso. 
 Otimização por custo: o otimizador utiliza algoritmos de busca por um plano de menor custo no espaço de 
todos os planos de execução possíveis. Para a determinação do custo de um plano, o otimizador precisa 
consultar estatísticas sobre as tabelas do banco de dados. 
91) Escreva o comando SQL para criar a tabela DEPENDENTE no banco de dados com os seguintes atributos e 
suas especificações: 
 CODIGO_EMPREGADO: número com 6 dígitos decimais; 
 NOME_DEPENDENTE: caractere que pode receber de 0 a 50 caracteres; 
 SEXO: caractere com 1 dígito; 
 DATA_NASC: atributo do tipo data; 
 PARENTESCO: caractere que pode receber de 0 a 15 caracteres; 
CREATE TABLE dependente (codigo_empregado NUMBER(6), nome_dependente VARCHAR(50), sexo 
CHAR(1), data_nasc DATE, parentesco VARCHAR(15)); 
92) Escreva o comando SQL para eliminar a tabela ATLETA do banco de dados. A tabela ATLETA está ilustrada na 
figura abaixo. 
 
DROP TABLE atleta 
93) Escreva o comando SQL que aumente em 10% o valor do preço das peças de cor azul. 
A tabela PECAS está ilustrada na figura a seguir. 
 
UPDATE pecas SET preco = preco*1.1 WHERE cor='Azul'. 
94) Escreva uma consulta SQL que recupere o código e o nome de todos os empregados. A tabela empregado está 
ilustrada na figura a seguir. 
 
SELECT codigo_empregado, nome 
FROM empregado. 
95) Escreva uma consulta SQL que recupere todas as informações da peça que possui o maior preço. A tabelapecas 
está ilustrada na figura a seguir. 
 
Sugestão: 
SELECT * 
FROM pecas 
WHERE preco = (SELECT MAX(preco) FROM pecas) 
96) Escreva uma consulta SQL que recupere todas as informações do empregado mais velho. A tabela empregado 
está ilustrada na figura a seguir. 
 
Sugestão: 
SELECT * 
FROM empregado 
WHERE data_nasc = (SELECT MIN(data_nasc) FROM empregado) 
97) Observe a tabela PECAS ilustrada na figura a seguir: 
 
Uma consulta foi realizada na tabela PECAS e o resultado obtido com a consulta está ilustrado na figura a seguir. 
Escreva a consulta SQL que retornará este resultado. 
 
Sugestão: 
SELECT num_peca, pnome, preco 
FROM pecas 
WHERE preco>=3 
98) 
IMPLEMENTAÇÃO DE BANCO DE DADOS 
Banco de Questões 
1) 1. ______________ são objetos que apresentam auto-incremento. 
2. ______________ uma pseudocoluna utilizada para extrair valores de uma sequence qualquer, sempre que for 
referenciada. 
3. ______________ uma pseudocoluna utilizada para informar o último valor gerado por uma sequence. É 
sempre incrementada após um ______________ 
4. Nextval e currval ___________ ser usados na cláusula VALUES de um comando INSERT 
5. Nextval e currval ___________ ser usados dentro de uma subconsulta. 
As palavras que preenchem as lacunas corretamente estão representadas em: 
 (1) sequences (2) nextval (3) currval e nextval (4) podem (5) podem 
 (1) sequences (2) currval - (3) nextval e nextval (4) não podem (5) podem 
 (1) sequences (2) nextval (3) currval e nextval (4) podem (5) não podem 
 (1) indices (2) nextval (3) currval e nextval (4) podem (5) não podem 
 (1) sequences (2) currval (3) nextval e nextval (4) não podem (5) não podem 
2) A linguagem SQL pode ter vários enfoques, EXCETO: 
 Linguagem interativa de consulta (query AdHoc) 
 Linguagem para acesso às bases de dados 
 Linguagem para a programação de sistemas de informação 
 Linguagem de administração de banco de dados 
 Linguagem de consulta em ambiente cliente/servidor 
3) A operação da álgebra relacional que recupera linhas em uma tabela é denominada: 
 Junção 
 Seleção 
 Produto cartesiano 
 Projeção 
 Diferença 
4) A partir da tabela abaixo, identifique a expressão, em álgebra relacional, que permite listar a matrícula dos 
funcionários do setor de Projetos: 
 
 σ setor = "Projetos" (Funcionarios_ste) 
 σ matricula (π setor = "Projetos" (Funcionarios_ste)) 
 π Funcionarios_ste (σ matricula, setor = "Projetos") 
 π setor = "Projetos" (σ matricula (Funcionarios_ste)) 
 π matricula (σ setor = "Projetos" (Funcionarios_ste)) 
5) Acerca do conjunto de operações para manipulação de dados, marque a alternativa correta: 
 O predicado IS NULL faz a checagem de valores zerados. 
 O Predicado BETWEEN retorna resultados entre dois valores fornecidos pelo usuário. 
 Nenhuma das respostas anteriores. 
 O predicado LIKE é um predicado com operações de booleanos. 
 A cláusula ORDER BY possibilita ordenar a filtragem feita por GROUP BY. 
6) Analise as afirmações a seguir, relativas ao conceito de chave primária: 
i. Pode ser composta por um ou vários atributos. 
ii. Não admite duplicidade de valores, exceto no caso de valores nulos. 
iii. Deve ser definida durante a construção do modelo de E-R. 
Marque a alternativa correta (apenas uma opção) 
 As afirmações I e II são falsas. 
 Todas as afirmações são verdadeiras. 
 Apenas as afirmações II e III são verdadeiras. 
 As afirmações II e III são falsas. 
 Apenas as afirmações I e III são verdadeiras. 
7) Analise as afirmações abaixo: 
I. Quando fazemos uma consulta em uma View podemos usar todos as clausulas do comando Select, tais 
como : Where, Group By, Having e Order By. 
II. Quando fazemos uma consulta em uma View podemos utilizar os operadores relacionais ( in, between, 
like, is null), os operadores lógicos ( and, or not) e as funções de grupo. 
III. Quando fazemos uma consulta em uma View podemos fazer junções com uma tabela 
IV. Quando fazemos uma consulta em uma View podemos fazer subconsultas e utilizar operadores de 
conjunto; 
São VERDADEIRAS: 
 I, II, e IV. 
 I, III e IV. 
 I e II. 
 I, II, III e IV. 
 I, II e III. 
8) Analise as seguintes afirmações: "(1) A restrição de integridade referencial diz que chave primária em uma 
relação não pode ter seu valor nulo PORQUE (2) esta chave identifica as tuplas da relação" 
Podemos afirmar: 
 As duas afirmações são falsas. 
 A primeira afirmação é falsa e a segunda é verdadeira. 
 As duas afirmações são verdadeiras e a primeira justifica a segunda. 
 A primeira afirmação é verdadeira e a segunda é falsa. 
 As duas afirmações são verdadeiras e a primeira não justifica a segunda. 
9) Analise as seguintes afirmações: "(1) O valor de uma chave estrangeirasó pode ser inserido em uma tabela se já 
existe na tabela onde é chave primária PORQUE (2) esta restrição garante a integridade referencial." Podemos 
afirmar: 
 As duas afirmações são verdadeiras e primeira justifica a segunda. 
 As duas afirmações são falsas. 
 As duas afirmações são verdadeiras e a primeira não justifica a segunda 
 A primeira afirmação é verdadeira e a segunda é falsa. 
 A primeira afirmação é falsa e a segunda é verdadeira. 
10) Ao selecionar os dados de uma tabela, para visualização ou outra necessidade podemos restringir o seu 
espectro de visualização utilizando a cláusula: 
 UNTIL 
 FROM 
 UP 
 WHERE 
 ORDER 
11) Ao tentar inserir um valor nulo em um campo que é chave primária estaremos violando a: 
 Restrição de Domínio 
 Restrição de Entidade 
 Restrição de Chave Primária 
 Restrição de Referência 
 Restrições Semântica 
12) As abordagens clássicas utilizadas pelo otimizador de consultas são: 
 Custo e tempo 
 Regras e tempo 
 Regras e custo 
 Custo 
 Regras 
13) (CESGRANRIO - 2006 - EPE - Área Tecnologia da Informação) Para as técnicas de controle de concorrência em 
Bancos de Dados, assinale a afirmativa INCORRETA. 
 Diz-se que uma transação segue o protocolo de bloqueio de duas fases se todas as operações (read_lock, 
write_lock) precedem a última operação de desbloqueio na transação 
 Uma forma para detectar um estado de deadlock consiste em construir um grafo wait-for. 
 O deadlock ocorre quando cada transação em um conjunto de duas ou mais transações espera por algum 
item que esteja bloqueado por alguma outra transação T no conjunto. 
 As técnicas de controle de concorrência baseadas em ordenação por timestamp não usam bloqueios, 
portanto, deadlocks nunca podem ocorrer. 
 O problema de espera indefinida (starvation) pode ocorrer se o esquema de espera para itens bloqueados for 
parcial, dando prioridade a algumas transações sobre as outras. 
14) (CESGRANRIO - 2008 - BNDES - Análise de Sistemas - Desenvolvimento) 
O Administrador de Dados de uma loja virtual verifica que há um problema no sistema controlador do estoque. 
Alguns produtos apresentam quantidades negativas, ou seja, houve mais vendas que a quantidade existente no 
estoque. O programador do sistema mostra, em pseudocódigo, o trecho que realiza a verificação do estoque. 
 
Qual opção descreve corretamente o problema e sua solução? 
 Está havendo um problema de deadlock e a solução é colocar a cláusula FOR UPDATE ao final do BEGIN 
TRANSAC TION. 
 A transação não bloqueia o produto consultado. O SELEC T deverá ter, no final, a cláusula FOR UPDATE. 
 Está havendo um problema de leitura suja e a solução é mover o C OMMIT TRANSAC TION para dentro do 
THEN, logo abaixo do UPDATE. 
 Está havendo um problema de registro fantasma e a solução é alterar o nível de isolamento para serializável. 
 Está havendo um problema de concorrência e a solução é retirar a transação, eliminando os comandos 
BEGIN TRANSAC TION, ROLLBAC K TRANSAC TION e C OMMIT TRANSAC TION. 
15) Considere a relação: 
PRODUTO (codigo, unidade, descrição, valor_unitário) 
A consulta em SQL para reponder a questão "Liste o código dos produtos com valores unitários entre R$ 500,00 
e R$ 1000,00" é: 
 SELECT CODIGO FROM PRODUTO WHERE VALOR_UNITARIO > 500; 
 SELECT CODIGO FROM PRODUTO WHERE VALOR_UNITARIO IN [500, 1000]; 
 SELECT CODIGO FROM PRODUTO WHERE VALOR_UNITARIO LIKE 500 AND 1000; 
 SELECT CODIGO FROM PRODUTO WHERE VALOR_UNITARIO BETWEEN 500 AND 1000; 
 Nenhuma das consultas acima. 
16) Considere a relação abaixo: 
AUTOMÓVEL (placa, fabricante, modelo, cor, data_de_fabricação) 
A consulta SQL que responde a questão "Liste todos os automóveis (placa, modelo, cor) fabricados pela VW ou 
pela Fiat" é: 
 SELECT PLACA, MODELO, COR FROM AUTOMOVEL WHERE FABRICANTE BETWEEN 'VW AND FIAT'; 
 SELECT PLACA, MODELO, COR FROM AUTOMOVEL WHERE FABRICANTE IS ('VW', 'FIAT'); 
 SELECT PLACA, MODELO, COR FROM AUTOMOVEL WHERE FABRICANTE IN ('VW', 'FIAT'); 
 Nenhuma das respostas acima. 
 SELECT PLACA, MODELO, COR FROM AUTOMOVEL WHERE FABRICANTE = 'VW' AND FABRICANTE = 
'FIAT'; 
17) Considere a relação abaixo: 
CLIENTE (cpf, nome, endereço, telefone) 
A consulta SQL que responde a pergunta "Quais os clientes (cpf e nome) que não possuem endereço 
cadastrado" é: 
 SELECT * FROM CLIENTE WHERE ENDERECO IS NULL; 
 SELECT CPF, NOME FROM CLIENTE WHERE ENDERECO IS NOT NULL; 
 SELECT CPF, NOME FROM CLIENTE; 
 Nenhuma das respostas acima. 
 SELECT CPF, NOME FROM CLIENTE WHERE ENDERECO IS NULL; 
18) Considere a tabela aluno abaixo: 
 
Qual o atributo poderia ser chave candidata da tabela acima? 
 cidade 
 cpf 
 Não existe atributo que poderia ser chave candidata 
 endereço 
 nome 
19) Considere as relações: 
ALUNO (matriculaluno, nomealuno, endereço, telefone) 
CURSA (matricula, codigo) 
matricula REFERENCIA matriculaluno em ALUNO 
codigo REFERENCIA codigodisciplina em DISCIPLINA 
DISCIPLINA (codigodisciplina, nomedisciplina, creditos) 
A consulta em álgebra relacional que responde a questão "Quais os alunos (nome e matrícula) que cursam a 
disciplina com código CCT0199" está corretamente representada em: 
 π matriculaaluno, nomealuno (ALUNOmatriculaluno = ⋈matricula (σ codigo = CCT0199 (DISCIPLINA))) 
 Não existe consulta que reponda a questão 
 π matriculaaluno, nomealuno (CURSA matriculaluno = ⋈matricula DISCIPLINA) 
 π matriculaluno, nomealuno (ALUNO matriculaluno = ⋈matricula (σ codigo = CCT0199 (CURSA))) 
 π matriculaaluno, nomealuno (ALUNO matriculaluno = ⋈matricula DISCIPLINA) 
20) Considere as relações: 
PROFESSOR (matriculaprf, nomeprf, titulacao, anoadmissao) 
MINISTRA (matricula, codigo) 
matricula REFERENCIA matriculaprf em PROFESSOR 
codigo REFERENCIA codigo disciplina em DISCIPLINA 
DISCIPLINA (codigodisciplina, nomedisciplina, creditos) 
A consulta em álgebra relacional que responde a questão "Quem são os professores (nome e matrícula) que 
ministram a disciplina Implementação de Bancos de Dados" está corretamente representada em: 
 πmatriculaprf, nomeprf (PROFESSORmatriculaprf = ⋈ matricula(MINISTRAcodigo = ⋈ codigodisciplina(DISCIPLINA))) 
 πmatriculaprf, nomeprf (PROFESSORmatriculaprf = ⋈ matricula(σnomedisciplina = "Implementação de Banco de Dados"(DISCIPLINA)) 
 Não existe consulta que responda a esta questão. 
 πmatriculaprf, nomeprf (PROFESSORmatriculaprf = ⋈ matricula(MINISTRAcodigo = ⋈ codigodisciplina(σnomedisciplina = "Implementação de 
Banco de Dados"(DISCIPLINA))) 
 πmatriculaprf, nomeprf (PROFESSORmatriculaprf = ⋈ matricula(MINISTRA) 
21) Considere o esquema abaixo: 
PROFESSOR (matriculaprf, nomeprf, titulacao, anoadmissao) 
MINISTRA (matricula, codigo) 
matricula REFERENCIA matriculaprf em PROFESSOR 
codigo REFERENCIA codigodisciplina em DISCIPLINA 
DISCIPLINA (codigodisciplina, nomedisciplina, creditos) 
Os comandos SQL apresentam todos os elementos necessários para a sua criação estão representados em: 
 CREATE TABLE PROFESSOR ( MATRICULAPRF NOT NULL,NOMEPRF NOT NULL, TITULACAO NOT 
NULL, ANOADMISSAO NOT NULL, PRIMARY KEY (MATRICULAPRF)); 
CREATE TABLE DISCIPLINA ( CODIGODISCIPLINA NOT NULL,NOMEDISCIPLINA NOT NULL, 
CREDITOS NOT NULL, PRIMARY KEY (CODIGODISCIPLINA)); 
CREATE TABLE MINISTRA (MATRICULA NOT NULL, CODIGO NOT NULL, PRIMARY KEY (MATRICULA, 
CODIGO), FOREIGN KEY MATRICULA REFERENCES PROFESSOR (MATRICULAPRF), FOREIGN KEY 
CODIGO REFERENCES DISCIPLINA (CODIGODISCIPLINA)); 
 CREATE TABLE PROFESSOR ( MATRICULAPRF NUMBER (5) NOT NULL, NOMEPRF VARCHAR(20) 
NOT NULL, TITULACAO VARCHAR (15) NOT NULL, ANOADMISSAO VARCHAR (4) NOT NULL); 
CREATE TABLE DISCIPLINA ( CODIGODISCIPLINA

Outros materiais