Buscar

IMPLEMENTAÇÃO DE BANCO DE DADOS

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 32 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 32 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 32 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

IMPLEMENTAÇÃO DE BANCO DE DADOS 
Analise as seguintes afirmações: 
"(1) O valor de uma chave estrangeira só 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: 
 
 
A primeira afirmação é falsa e a segunda é verdadeira. 
 
As duas afirmações são verdadeiras e primeira justifica a segunda. 
 
As duas afirmações são verdadeiras e primeira não justifica a segunda 
 
As duas afirmações são falsas. 
 
A primeira afirmação é verdadeira e a segunda é falsa. 
 
 
 
 
 2a Questão 
 
É responsável por garantir a Integridade Referencial: 
 
 
Chave Estrangeira 
 
Chave Secundária 
 
Chave Candidata 
 
Chave de Atributo 
 
Chave Primária 
 
 
 
 
 3a Questão 
 
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 II e III são falsas. 
 
As afirmações I e II são falsas. 
 
 Todas as afirmações são verdadeiras. 
 
Apenas as afirmações I e III são verdadeiras. 
 
 
Apenas as afirmações II e III são verdadeiras. 
 
 
Gabarito 
Coment. 
 
 
 
 
 4a Questão 
 
O entendimento dos modelos de banco de dados é fundamental para compreender as 
vantagens e desvantagens em aspectos de estrutura e manipulação dos dados. Um 
destes modelos utiliza tabelas bidimensionais para o armazenamento dos dados e a 
maneira como os dados são armazenados influencia na facilidade de acesso às 
informações, existindo técnicas de normalização para aperfeiçoar a organização. 
Trata-se do modelo 
 
 
orientado a objetos. 
 
relacional. 
 
em rede 
 
distribuído. 
 
hierárquico 
 
 
Gabarito 
Coment. 
 
 
 
 
 5a Questão 
 
Em banco de dados, todo método de controle de concorrência deve evitar anomalias 
de sincronização. Essas anomalias estão relacionadas a: 
I - perda da consistência do banco. 
II - acesso via ODBC. 
III - acesso a dados inconsistentes. 
IV - consulta recursiva. 
V - perda de atualizações. 
 
Estão certos apenas os itens 
 
 
II, III e IV. 
 
I, III e V. 
 
II, III e V. 
 
I, IV e V. 
 
I, II e IV. 
 
 
 
 
 6a Questão 
 
(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: 
 
 
Redundância de dados. 
 
Replicação de dados. 
 
Consistência de dados. 
 
Dependência de dados. 
 
Integridade de dados. 
 
 
 
 
 7a Questão 
 
Os conceitos de banco de dados relacional refletem o nível de abstração dos dados. 
Desta forma, marque a alternativa que se refere à instância da entidade. 
 
 
Pode ser modificado com o uso dos comandos DDL. 
 
Pode ser considerado como o resultado da aplicação do SELECT. 
 
É o conjunto de opções de preenchimento do atributo. 
 
Toda entidade deve possui chave primária. 
 
Uma chave estrangeira é sempre uma chave primária em outra tabela. 
 
 
 
 
 8a Questão 
 
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: 
 
 
 
A primeira afirmação é falsa e a segunda é verdadeira. 
 
As duas afirmações são falsas. 
 
As duas afirmações são verdadeiras e a primeira não justifica a segunda. 
 
As duas afirmações são verdadeiras e a primeira justifica a segunda. 
 
A primeira afirmação é verdadeira e a segunda é falsa. 
 
A relação T1 abaixo conterá: 
T1 =  nome, sexo,salário,dept ((sexo="MASCULINO") and (salário<5000) (EMPREGADO)) 
 
 
 
Nome e depto de todos os empregados homens que ganham menos que 5000 
 
Nome, sexo, salário e depto de todos os empregados homens que ganham 
menos que 5000 
 
Esta não é uma consulta válida 
 
Nome, sexo, salário e depto de todos os empregados que ganham menos que 
5000 
 
Nome, sexo, salário e depto de todos os empregados homens que ganham 5000 
 
 
Gabarito 
Coment. 
 
 
Gabarito 
Coment. 
 
 
 
 
 2a Questão 
 
Admitindo as relações abaixo especificadas, marque a alternativa que representa a 
consulta em álgebra relacional que responde corretamente a seguinte pergunta: quais 
os nomes dos alunos e seus respectivos cursos? 
 
Alunos(matricula, nome, endereco, cpf, cod_curso) 
Cursos(codigo, nome_curso) 
 
 
ᴨnome, nome_curso(σcod_curso=codigo (Alunos X Cursos)) 
 
ᴨnome, nome_curso(σmatricula=codigo (Alunos X Cursos)) 
 
ᴨnome, nome_curso(σcod_curso=codigo (Alunos)) 
 
σnome, nome_curso(ᴨcod_curso=codigo (Alunos X Cursos)) 
 
ᴨnome, nome_curso(Alunos X Cursos) 
 
Gabarito 
Coment. 
 
 
 
 
 3a Questão 
 
A operação da álgebra relacional que recupera linhas em uma tabela é denominada: 
 
 
Seleção 
 
Diferença 
 
Projeção 
 
Junção 
 
Produto cartesiano 
 
 
Gabarito 
Coment. 
 
 
Gabarito 
Coment. 
 
 
 
 
 4a Questão 
 
Considere a relação: 
FILME (nome, diretor, tempoduracao, genero, ano) 
A consulta em álgebra relacional que retorna o nome e o ano de todos os filmes de 
ação com tempo de duração entre 120 e 180 minutos. 
 
 
 
 
  nome, ano ((genero = "ação" AND tempoduracao >= 120 AND tempoduracao <= 180) (FILME) ) 
 
  nome, ano ((genero = "ação" AND tempoduracao >= 120 OR tempoduracao <= 180) (FILME) ) 
  nome, ano ((genero = "ação" AND tempoduracao >= 120 AND tempoduracao <= 180) (FILME) ) 
  nome, ano ((genero = "ação" OR tempoduracao >= 120 AND tempoduracao <= 180) (FILME) ) 
  nome, ano ((genero = "ação" AND tempoduracao = 120) (FILME) ) 
 
 
Gabarito 
Coment. 
 
 
 
 
 5a Questão 
 
Uma linguagem de consulta procedural, onde o objetivo fundamental é permitir a 
escrita de expressões relacionais é denominada de álgebra relacional. Com suas 
operações fundamentais é possível exprimir qualquer consulta nesta linguagem. 
Sendo assim, para apresentar os dados de acordo com a tabela abaixo, marque a 
alternativa correta que descreve a álgebra a ser utilizada. 
Produto.Nome Produto.Qualidade Estoque.Qtde 
Laranja 1 100 
Laranja 2 150 
Uva 1 200 
Uva 2 130 
Trigo 2 240 
Pêssego 1 260 
Pêssego 2 190 
 
 
 
πNome, Qualidade, Qtde 
 
πNome, Qualidade, Qtde(σProduto.Cod_Prod = Estoque.Cod_Prod(Produto X 
Estoque)) 
 
πNome, Qualidade, Qtde(σProduto.Cod_Prod = Estoque.Cod_Prod) 
 
σProduto.Cod_Prod = Estoque.Cod_Prod(πNome, Qualidade, Qtde) 
 
σProduto.Cod_Prod = Estoque.Cod_Prod(Produto X Estoque) 
 
 
Gabarito 
Coment. 
 
 
 
 
 6a Questão 
 
Em relação a álgebra linear é correto afirmar que: 
 I - A operação de projeção é aplicada sobre apenas uma relação visando 
selecionar um subconjunto de tuplas (com todos os seus atributos). 
 II O produto cartesiano é uma operação binária que combina todas as tuplas de 
duas tabelas. 
 III - A operação de seleção é aplicada sobre apenasuma relação de visando 
projetar os atributos de uma relação de acordo com uma lista de atributos oferecida. 
Estão corretas: 
 
 
Somente I 
 
Somente a II 
 
I e III 
 
Somente III 
 
II e III 
 
 
Gabarito 
Coment. 
 
 
 
 
 7a Questão 
 
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 (nomedisciplina = "Implementação de 
Bancos de Dados" (DISCIPLINA)) 
  matriculaprf, nomeprf (PROFESSOR matriculaprf = ⋈matricula (MINISTRAcodigo = ⋈codigodisciplina 
(DISCIPLINA))) 
  matriculaprf, nomeprf (PROFESSORmatriculaprf = ⋈matricula MINISTRA) 
 
Não existe consulta que responda a esta questão. 
 
   (  =  (  = 

 ( =      ())) 
 
 
Gabarito 
Coment. 
 
 
 
 
 8a Questão 
 
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 OU Salario > 2000 
(Empregado)
 
  ID = 102 E id_Depto = 10 E Salario > 2000 (Empregado) 
  ID > 102 E id_Depto = 10 E Salario > 2000 (Empregado) 
  ID = 102 OU id_Depto = OU E Salario > 2000 
(Empregado)
 
  ID > 102 OU id_Depto = 10 E Salario > 2000 
(Empregado)
 
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 aumentar em 10% o valor 
unitário de cada produto? 
 
 
 
UPDATE X_PROD SET VALOR_UNIT = VALOR_UNIT + 
VALOR_UNIT * 10 /100; 
 
UPDATE X_PROD SET VALOR_UNIT + 10 /100; 
 
UPDATE X_PROD SET VALOR_UNIT + VALOR_UNIT * 10 /100; 
 
UPDATE X_PROD SET VALOR_UNIT = VALOR_UNIT * 10 /100; 
 
UPDATE X_PROD SET VALOR_UNIT = VALOR_UNIT + 10 /100; 
 
 
Gabarito 
Coment. 
 
 
 
 
 2a Questão 
 
O comando SQL para excluir os registros da tabela Aluno, cujo campo nome comece 
com a letra M, é: 
 
 
DELETE FROM Aluno WHERE nome='M'. 
 
DELETE FROM Aluno WHERE nome LIKE 'G%'. 
 
DELETE FROM Aluno WHERE nome LIKE 'M%'. 
 
DELETE FROM Aluno WHERE nome SUCH '%M'. 
 
DELETE FROM Aluno 
 
 
Gabarito 
Coment. 
 
 
 
 
 3a Questão 
 
Dado o seguinte requisito funcional: 
 
É necessário cadastrar a matrícula, o nome e o curso dos alunos, e sabendo que um 
aluno pode fazer mais de um curso e um curso ter mais de um aluno. 
 
Qual das questões representa a normalização correta de um banco de dados 
relacional? 
 
 
CREATE TABLE CURSOS (CODIGO INTEGER, DESCRICAO 
VARCHAR(100), PRIMARY KEY (CODIGO)); 
CREATE TABLE ALUNOS (MATRICULA INTEGER, NOME 
VARCHAR(100), PRIMARY KEY (MATRICULA)); 
CREATE TABLE INSCRICAO (ALUNO INTEGER, CURSO INTEGER, 
PRIMARY KEY (ALUNO,CURSO), 
FOREIGN KEY (ALUNO) REFERENCES ALUNOS (MATRICULA), 
FOREIGN KEY (CURSO) REFERENCES CURSOS (CODIGO)); 
 
CREATE TABLE CURSOS (CODIGO INTEGER, DESCRICAO 
VARCHAR(100), PRIMARY KEY (CODIGO)); 
CREATE TABLE ALUNOS (MATRICULA INTEGER, NOME 
VARCHAR(100), CURSO INTEGER, PRIMARY KEY (MATRICULA), 
FOREIGN KEY (CURSO) REFERENCES CURSOS (CODIGO)); 
 
CREATE TABLE CURSOS (CODIGO INTEGER, DESCRICAO 
VARCHAR(100), PRIMARY KEY (CODIGO)); 
CREATE TABLE ALUNOS (MATRICULA INTEGER, NOME 
VARCHAR(100), PRIMARY KEY (MATRICULA)); 
CREATE TABLE INSCRICAO (ALUNO INTEGER, CURSO INTEGER, 
PRIMARY KEY (ALUNO,CURSO)); 
 
CREATE TABLE ALUNOS (MATRICULA INTEGER, NOME 
VARCHAR(100), CURSOS VARCHAR(50), PRIMARY KEY 
(MATRICULA)); 
 
CREATE TABLE CURSOS (CODIGO INTEGER, DESCRICAO 
VARCHAR(100), PRIMARY KEY (CODIGO)); 
CREATE TABLE ALUNOS (MATRICULA INTEGER, NOME 
VARCHAR(100), CURSO INTEGER, PRIMARY KEY (MATRICULA)); 
 
 
Gabarito 
Coment. 
 
 
 
 
 4a Questão 
 
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 ('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'); 
 
INSERT INTO X_PROD VALUES ( TV Led 40 polegadas, 20, 400, 3000); 
 
INSERT INTO X_PROD VALUES (20, TV Led 40 polegadas, 400, 3000); 
 
 
Gabarito 
Coment. 
 
 
Gabarito 
Coment. 
 
 
 
 
 5a Questão 
 
A linguagem SQL pode ter vários enfoques, EXCETO: 
 
 
Linguagem interativa de consulta (query AdHoc) 
 
 
Linguagem de consulta em ambiente cliente/servidor 
 
Linguagem para acesso às bases de dados 
 
Linguagem de administração de banco de dados 
 
Linguagem para a programação de sistemas de informação 
 
 
Gabarito 
Coment. 
 
 
Gabarito 
Coment. 
 
 
 
 
 6a Questão 
 
No Script SQL de criação da tabela pagamento aparece a palavra 'funcionario' 4 vezes. 
Sendo assim, é possível afirmar que se referem, respectivamente: 
 
 
 
 
apelido, atributo, tabela, chave estrangeira 
 
tupla, chave primária, apelido, chave estrangeira 
 
atributo, apelido, campo, tabela 
 
campo, atributo, apelido, tabela 
 
coluna, tabela, apelido, chave primária 
 
 
 
 
 7a Questão 
 
O comando SQL que apaga um tabela é: 
 
 
 
INSERT INTO 
 
REMOVE TABLE 
 
DROP TABLE 
 
UPDATE 
 
DELETE TABLE 
 
 
 
 
 8a Questão 
 
(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: 
 
 
Drop e Grant. 
 
Update e Drop. 
 
Delete e Update. 
 
Update e Grant. 
 
Grant e Delete. 
 
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); 
 
 
Gabarito 
Coment. 
 
 
 
 
 2a Questão 
 
Observe a tabela R: 
 
Qual será o resultado da consulta: 
SELECT X FROM R WHERE Y is null; 
 
 
4 e null 
 
1 e 5 
 
1 e 4 
 
null e 55 
 
 
 
 
 3a Questão 
 
Analise as seguintes instruções abaixo: 
SELECT * FROM PAÍS; 
SELECT NOMEPOPULAR FROM NOME; 
SELECT * FROM CAPTURA WHERE TEMPAGUA < 25; 
SELECT * FROM ESPÉCIE; 
 
Nos comandos SELECT acima encontramos exemplos de: 
 
 
Duas projeções e duas seleções. 
 
Uma seleção e uma projeção. 
 
Duas seleções e uma projeção. 
 
Duas projeções e duas restrições. 
 
Duas projeções e uma seleção. 
 
 
Gabarito 
Coment. 
 
 
 
 
 4a Questão 
 
O operador que possibilita a seleção de uma faixa de valores sem a 
necessidade do uso dos operadores >=, <= e AND é: 
 
 
LIKE 
 
BETWEEN 
 
GROUP BY 
 
IN 
 
HAVING 
 
 
 
 
 5a Questão 
 
Qual comando SQL é utilizado para obter um conjunto de dados em uma tabela em 
um banco de dados? 
 
 
INSERT 
 
GET 
 
SELECT 
 
JOIN 
 
UPDATE 
 
 
 
 
 6a Questão 
 
O esquema de banco de dados apresentado abaixo faz parte de um banco de dados criado a partir de um 
conjunto de dados públicos de captura de tubarões entre os anos de 2001 e 2013 na costa da Austrália. 
Os dados podem ser baixados no endereço: https://data.qld.gov.au/dataset/shark-control-program-shark-catch-
statistics/resource/5c6be990-3938-4125-8cca-dac0cd734263 
Características do esquema: Chave primária sublinhada e chave estrangeira em itálico. 
Seguem algumas tabelas do Esquema: 
 
Nome (IDNome, IDEspécie, NomePopular) 
Tubarão (IDTubarão, IDEspécie, Comprimento, Sexo) 
Captura (NumCaptura, IDTubarão, IDLocal, Data, TempAgua) 
Local (IDLocal, CodArea, NomeLocal) 
Area (CodArea, NomeArea) 
 
Sabendo-se que a tabela nome contém nomes populares de tubarões e deseja-se listar o comprimento 
e o sexo de todos os tubarões que tem nome popular terminado com a letra k. Assinale a alternativa 
abaixo que retorna corretamente a consulta desejada: 
 
 
SELECT Comprimento, Sexo FROM Tubarão T, Espécie E, Nome N WHERE 
T.IDEspecie = E.IDEspecie AND N.IDEspécie = E.IDEspecie AND 
NomePopular like '%k'; 
 
SELECT Comprimento, Sexo FROM Tubarão T, Espécie E, Nome N WHERE 
T.IDEspecie = N.IDEspécie AND NomePopular like '%k'; 
 
SELECT Comprimento, Sexo FROM Tubarão T, Espécie E, Nome N WHERE 
T.IDEspecie = E.IDEspecie AND N.IDEspécie = E.IDEspecie AND UPPER 
(NomePopular) like '_k'; 
 
SELECT Comprimento, Sexo FROM Tubarão T, Espécie E, Nome N WHERE 
T.IDEspecie = E.IDEspecie AND N.IDEspécie = E.IDEspecie AND UPPER 
(NomePopular) like '%k%'; 
 
SELECT * FROM Tubarão T, Espécie E, Nome N WHERE T.IDEspecie = 
E.IDEspecie AND N.IDEspécie = E.IDEspecie AND NomePopular like '%k'; 
 
 
 
 
 7a Questão 
 
Sobre a cláusula WHERE do comando SELECT, é correto afirmar que: 
 
 
Filtra as linhas a serem exibidas no resultado 
 
Filtra as colunas a serem exibidas no resultado 
 
É utilizado em todos os comandos SELECT 
 
Nunca pode ser utilizado com uma junção 
 
Especifica condição de ordenação 
 
 
 
 
 8a Questão 
 
Considere as seguintes tabelas de um banco de dados: - FORNECEDOR { 
for_codigo, for_nome, for_telefone, for_cidade, est_uf } - ESTADO { est_uf, 
est_nome } A instrução SQL que recupera os nomes dos estados para os quais não há 
fornecedores cadastrados é: 
 
 
SELECT e.est_uf FROM estado AS e WHERE e.est_nome NOT IN ( 
SELECT f.est_uf FROM fornecedor AS f ); 
 
SELECT e.est_nome FROM estado AS e WHERE e.est_uf IN ( select 
f.est_uf FROM fornecedor AS f ); 
 
SELECT e.est_nome FROM estado AS e WHERE e.est_uf NOT IN ( 
SELECT f.est_uf FROM fornecedor AS f ); 
 
SELECT e.est_nome FROM estado AS e, fornecedor AS f WHERE 
e.est_nome <> f.est_uf; 
 
SELECT e.est_nome FROM estado AS e, FROM fornecedor AS f 
WHERE e.est_uf = f.est_uf; 
 
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 * OVER PACIENTE ORDER BY NOME_PACIENTE; 
 
SELECT * OVER PACIENTE ASC NOME_PACIENTE; 
 
SELECT * FROM PACIENTE DESC NOME_PACIENTE; 
 
SELECT * FROM PACIENTE ASC NOME_PACIENTE; 
 
SELECT * FROM PACIENTE ORDER BY NOME_PACIENTE; 
 
 
Gabarito 
Coment. 
 
 
 
 
 2a Questão 
 
Qual será o resultado da consulta SELECT COUNT(DISTINCT salario) FROM 
funcionario? 
 
 
 
6 
 
7 
 
8 
 
5 
 
9 
 
 
Gabarito 
Coment. 
 
 
 
 
 3a Questão 
 
Na linguagem SQL, para totalizarmos os valores de uma coluna usamos o comando: 
 
 
SUM 
 
COUNT 
 
GROUP BY 
 
AVG 
 
EQUAL 
 
 
Gabarito 
Coment. 
 
 
 
 
 4a Questão 
 
UM recurso do comando SELECT é a possibilidade de agruparmos nossos dados. 
Para isso usamos a cláusula: 
 
 
GROUP BY 
 
SUM 
 
ORDER 
 
ORDER BY 
 
JOIN 
 
 
Gabarito 
Coment. 
 
 
 
 
 5a Questão 
 
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 IN 
(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 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 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; 
 
 
Gabarito 
Coment. 
 
 
 
 
 6a Questão 
 
Considere a seguinte consulta SQL: 
SELECT nome, count(*) 
FROM aluno 
GROUP BY nome 
Esta consulta tem como resultado. 
 
 
o atributo nome e o número de registros existentes para cada nome, na tabela 
nome. 
 
o atributo nome e o número de registros existentes para cada nome, da tabela 
aluno. 
 
todos os atributos das tabelas nome e aluno. 
 
o atributo nome e a soma do conteúdo do atributo nome, da tabela aluno. 
 
todos os atributos da tabela nome, além do atributo especial Count. 
 
 
Gabarito 
Coment. 
 
 
 
 
 7a Questão 
 
Em SQL, para contar linhas usamos: 
 
 
SUM 
 
SELECT 
 
AVG 
 
GROUP BY 
 
COUNT 
 
 
 
 
 8a Questão 
 
Considere a relação: 
ALUNO (matrícula, nome, endereço, estado, cidade, cep, datadeingresso, 
coeficiente_de_rendimento) 
A consulta SQL para listar os alunos com maior e menor coefiente de rendimento nos 
estado de SP, RJ e MG é: 
 
 
 
 
SELECT MAX(COEFICIENTE_DE_RENDIMENTO), 
MIN(COEFICIENTE_DE_RENDIMENTO) FROM ALUNO; 
 
SELECT MAX(COEFICIENTE_DE_RENDIMENTO), 
MIN(COEFICIENTE_DE_RENDIMENTO) FROM ALUNO WHERE ESTADO 
= 'SP' OR ESTADO = 'RJ' OR ESTADO = 'MG'; 
 
Nenhuma das respostas acima 
 
SELECT MAX, MIN(COEFICIENTE_DE_RENDIMENTO) FROM ALUNO 
WHERE ESTADO = 'SP' OR ESTADO = 'RJ' OR ESTADO = 'MG'; 
 
SELECT MAX(COEFICIENTE_DE_RENDIMENTO), 
MIN(COEFICIENTE_DE_RENDIMENTO) FROM ALUNO WHERE ESTADO 
= 
IMPLEMENTAÇÃO DE BANCO DE 
DADOS 
6a aula 
 Lupa 
 
 
Vídeo 
 
PPT 
 
MP3 
 
 
 
Exercício:CCT0768_EX_A6_201401414761_V1 
10/04/2019 
(Finaliz.) 
Aluno(a): JOSE LEONARDO LOPES SENA 2019.1 EAD 
Disciplina: CCT0768 - IMPLEMENTAÇÃO DE BANCO 
DE DADOS 
201401414761 
 
 
 
 1a Questão 
 
São tipos de JOIN: 
 
 
Apenas o INNER JOIN. 
 
Apenas o INNER JOIN e o LEFT JOIN. 
 
SELECT JOIN, INNER JOIN, LEFT JOIN e RIGHT JOIN. 
 
SELECT JOIN e INNER JOIN. 
 
INNER JOIN, LEFT JOIN e RIGHT JOIN. 
 
 
Gabarito 
Coment. 
 
 
 
 
 2a Questão 
 
 
Um sistema de informação usa um banco de dados relacional que possui tabelas 
cujos esquemas em SQL estão representados a seguir. 
CREATE TABLE Artista ( 
id INTEGER PRIMARY KEY, 
nome VARCHAR(40) NOT NULL, 
CPF CHAR(11) NOT NULL, 
dataNascimento DATE, 
UNIQUE (CPF) ); 
 
CREATE TABLE Evento ( 
id INTEGER PRIMARY KEY, 
descricao VARCHAR(60) NOT NULL, 
numMaxConvidados INTEGER DEFAULT 0, 
CHECK (numMaxConvidados >= 0) ); 
 
CREATE TABLE Atuacao ( 
idArtista INTEGER, 
idEvento INTEGER, 
PRIMARY KEY (idArtista, idEvento), 
FOREIGN KEY (idArtista) REFERENCES Artista, 
FOREIGN KEY (idEvento) REFERENCES Evento(id)); 
 
O sistema também possui uma consulta que integra um de seus relatórios, conforme 
indicado a seguir: 
 
SELECT A.nome, E.descricao 
FROM Evento E FULL JOIN Atuacao T ON E.id = T.idEvento 
FULL OUTER JOIN Artista A ON T.idArtista = A.id 
 
Considerando que todas as tabelas possuem dados, o resultado da consulta utilizada 
no relatório e: 
 
 
O nome de todos os artistas combinados com a descrição de todos os eventos 
 
O nome de todos os artistas e a descrição de todos os eventos em que eles 
atuam. 
 
A descrição de todos os eventos e, caso haja artistas alocados, os seus nomes. 
 
O nome de todos os artistas e, caso eles participem de eventos, a descrição do 
evento. 
 
O nome de todos os artistas, a descrição de todos os eventos e, caso eles se 
relacionem, os dois combinados. 
 
 
Gabarito 
Coment. 
 
 
 
 
 3a Questão 
 
Qual a sintaxe SQL-SELECT errada? 
 
 
SELECT X.COLUNA1, AVG(Y.COLUNA2) FROM TABELA1 X INNER 
JOIN TABELA2 Y ON X.COLUNA3=Y.COLUNA4 GROUP BY 
X.COLUNA1; 
 
SELECT COLUNA1, COLUNA2, COLUNA3 FROM TABELA1 ORDER BY 
1 ASC, 2 DESC, 3 ASC; 
 
SELECT COLUNA1, COLUNA2 FROM TABELA1 WHERE COLUNA3 
LIKE ('%X%') ORDER BY 3; 
 
SELECT COUNT(*) FROM TABELA1; 
 
SELECT COLUNA1, COLUNA2 FROM TABELA1 WHERE COLUNA3 IN 
(1,2,3); 
 
 
Gabarito 
Coment. 
 
 
 
 
 4a Questão 
 
Considere as afirmações abaixo: 
 
1. As relações podem ser manipuladas através de operadores relacionais. Embora 
não seja utilizada frequentemente, devido à sua complexidade, ela ajuda a esclarecer 
a manipulação relacional e estabelece os fundamentos para o aprendizado da SQL. 
2. A Álgebra Relacional é um conjunto de operações usadas para manipular relações 
e é oriunda da Teoria dos Conjuntos da matemática. 
3. A Álgebra Relacional é fechada, o que significa que os resultados de uma ou mais 
operações relacionais são sempre uma relação. 
 
São VERDADEIRAS: 
 
 
Somente 1. 
 
2 e 3. 
 
1, 2 e 3. 
 
1 e 3. 
 
1 e 2. 
 
 
Gabarito 
Coment. 
 
 
 
 
 5a Questão 
 
Para se obter a quantidade de empregados por cargo deve-se digitar qual o select 
abaixo: 
 
 
SELECT C.DESCRICAO AS CARGO, COUNT(E.MATRICULA) AS QTDE 
FROM CARGO C INNER JOIN EMPREGADO E GROUP BY 
C.DESCRICAO; 
 
SELECT C.DESCRICAO AS CARGO, COUNT(E.MATRICULA) AS QTDE 
FROM CARGO C INNER JOIN EMPREGADO E ON C.CODIGO = 
E.CARGO GROUP BY C.DESCRICAO; 
 
SELECT DESCRICAO AS CARGO, COUNT(MATRICULA) AS QTDE 
FROM CARGO C INNER JOIN EMPREGADO E ON CODIGO = CARGO 
GROUP BY DESCRICAO; 
 
SELECT C.DESCRICAO AS CARGO, COUNT(E.MATRICULA) AS QTDE 
GROUP BY C.DESCRICAO FROM CARGO C INNER JOIN EMPREGADO 
E ON C.CODIGO = E.CARGO; 
 
SELECT C.DESCRICAO AS CARGO, SUM(E.MATRICULA) AS QTDE 
FROM CARGO C INNER JOIN EMPREGADO E ON C.CODIGO = 
E.CARGO GROUP BY C.DESCRICAO; 
 
 
Gabarito 
Coment. 
 
 
 
 
 6a Questão 
 
 
Qual das consultas abaixo retorna o nome e a placa de todos os veículos? 
 
 
SELECT placa FROM Veiculo INNER JOIN Cliente ON Cliente_cpf = cpf; 
 
SELECT v.placa, c.nome FROM Veiculo v INNER JOIN Cliente c ON 
v.Cliente_cpf = c.cpf; 
 
SELECT v.placa, c.nome FROM Cliente INNER JOIN Cliente c ON 
v.Cliente_cpf = c.cpf; 
 
SELECT c.nome FROM Veiculo v INNER JOIN Cliente c ON cpf = cpf; 
 
SELECT c.cpf, c.nome FROM Veiculo v INNER JOIN Cliente c ON 
v.Cliente_cpf = c.cpf WHERE v.placa; 
 
 
 
 
 7a Questão 
 
Em uma junção Cruzada entre três tabelas com respectivamente 10, 8 e 4 resgistros, 
gerará uma saída com quantos registros? 
 
 
20 registros 
 
320 registros 
 
220 registros 
 
22 registros 
 
160 registros 
 
 
 
 
 8a Questão 
 
Para se obter todos as matrículas, nomes e descrições dos departamentos de todos 
empregados independente de terem ou não códigos de departamento atribuídos 
(entenda-se por nulo os departamentos não atribuídos) deve-se escrever qual o 
select: 
 
 
SELECT E.ID_EMP_MATRICULA AS MATRICULA, E.VC_EMP_NOME AS 
NOME, D.VC_DEP_NOME AS DEPARTAMENTO FROM EMPREGADO E 
INNER JOIN DEPARTAMENTO D ON E.NU_EMP_DEPARTAMENTO = 
D.ID_DEP_CODIGO; 
 
SELECT E.ID_EMP_MATRICULA AS MATRICULA, E.VC_EMP_NOME AS 
NOME, D.VC_DEP_NOME AS DEPARTAMENTO FROM EMPREGADO E 
LEFT JOIN DEPARTAMENTO D ON E.NU_EMP_DEPARTAMENTO = 
D.ID_DEP_CODIGO; 
 
SELECT E.ID_EMP_MATRICULA AS MATRICULA, E.VC_EMP_NOME AS 
NOME, D.VC_DEP_NOME AS DEPARTAMENTO FROM EMPREGADO E 
INNER JOIN DEPARTAMENTO D ON E.NU_EMP_DEPARTAMENTO = 
D.ID_DEP_CODIGO WHERE E.NU_EMP_DEPARTAMENTO IS NULL; 
 
SELECT E.ID_EMP_MATRICULA AS MATRICULA, E.VC_EMP_NOME AS 
NOME, D.VC_DEP_NOME AS DEPARTAMENTO FROM EMPREGADO E 
INNER JOIN DEPARTAMENTO D ON E.NU_EMP_DEPARTAMENTO != 
D.ID_DEP_CODIGO; 
 
SELECT E.ID_EMP_MATRICULA AS MATRICULA, E.VC_EMP_NOME AS 
NOME, D.VC_DEP_NOME AS DEPARTAMENTO FROM EMPREGADO E 
RIGHT JOIN DEPARTAMENTO D ON E.NU_EMP_DEPARTAMENTO = 
D.ID_DEP_CODIGO; 
 
IMPLEMENTAÇÃO DE BANCO DE 
DADOS 
8a aula 
 Lupa 
 
 
Vídeo 
 
PPT 
 
MP3 
 
 
 
Exercício: CCT0768_EX_A8_201401414761_V1 
10/04/2019 
(Finaliz.) 
Aluno(a): JOSE LEONARDO LOPES SENA 2019.1 EAD 
Disciplina: CCT0768 - IMPLEMENTAÇÃO DE BANCO 
DE DADOS 
201401414761 
 
 
 
 1a Questão 
 
Para criarmos um índice para a tabela Fornecedor pelo Bairro e Cidade devemos dar 
o seguinte comando: 
 
 
Create Index Fornecedor BY Bairro, Cidade 
 
Create Index Fornecedor ON Forn_Bairro_Cidade(Bairro, Cidade) 
 
Create Index Forn_Bairro_Cidade ON Fornecedor BY Bairro, Cidade 
 
Create Index Forn_Bairro_Cidade From Fornecedor BY Bairro, Cidade 
 
Create Index Forn_Bairro_Cidade ON Fornecedor(Bairro, Cidade) 
 
 
Gabarito 
Coment. 
 
 
 
 
 2a Questão 
 
Com relação a Chaves e índices de Banco de Dados: 
 
1 ) Chave designa o conceito de item de busca, ou seja , um dado que será empregado na 
 consulta à base de dados. É um conceito lógico da aplicação; 
2 ) Índice e um recurso físico visando otimizar a recuperação de uma informação, via um 
método 
 de acesso. Seu objetivo principal está relacionado com a performance do sistema. 
3 ) Uma chave pode ser utilizada comoíndice , mas um índice não e necessariamente uma 
 chave. 
4) Podemos ter em um banco de dados quantos índices desejarmos, sem qualquer tipo de 
 preocupação 
 
Escolha a alternativa correta: 
 
 
Todos os quatro itens estão corretos. 
 
Apenas os itens 1 e 4 estão corretos. 
 
Apenas os ítens 1 e 2 estão corretos. 
 
Apenas os ítens 2 e 3 estão corretos. 
 
Apenas os itens 1, 2 e 3 estão corretos. 
 
 
Gabarito 
Coment. 
 
 
 
 
 3a Questão 
 
Para sabermos o valor atual em uma sequência, devemos usar: 
 
 
Select NomeSequencia.NEXTVAL from NomeTabela 
 
Nenhuma das demais respostas 
 
Select NomeSequencia.CURRVAL from NomeTabela 
 
Select NomeSequencia.NEXTVAL from Dual 
 
Select NomeSequencia.CURRVAL from Dual 
 
 
Gabarito 
Coment. 
 
 
 
 
 4a Questão 
 
São tipos de visões: 
 
 
Abstratas 
 
Simples e Abstratas 
 
Simples 
 
Complexas 
 
Simples e Complexas 
 
 
Gabarito 
Coment. 
 
 
 
 
 5a Questão 
 
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) currval (3) nextval e nextval (4) não podem (5) não podem 
 
(1) indices (2) nextval (3) currval e nextval (4) podem (5) não podem 
 
(1) sequences (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) podem 
 
(1) sequences (2) nextval (3) currval e nextval (4) podem (5) podem 
 
 
Gabarito 
Coment. 
 
 
 
 
 6a Questão 
 
O comando SQL para criar uma visão chamada Eye, abrangendo os atributos A1 e 
A2 da tabela Pen, é: 
 
 
BUILD Eye AS INSERT A1, A2 FROM Pen 
 
CREATE DROP Eye FROM A1, A2 FROM Pen 
 
COMPILE Eye AS INSERT A1, A2 FROM Pen 
 
COMPOSE FLASH Eye AS A1, A2 FROM Pen 
 
CREATE VIEW Eye AS SELECT A1, A2 FROM Pen 
 
 
Gabarito 
Coment. 
 
 
 
 
 7a Questão 
 
O comando para apagar um visão é: 
 
 
DROP VIEW 
 
DELETE VIEW 
 
NEW VIEW 
 
DEL VIEW 
 
CANCEL VIEW 
 
 
Gabarito 
Coment. 
 
 
 
 
 8a Questão 
 
Dentre as regras de utilização de NEXTVAL e CURRVAL, qual das opções abaixo 
NÃO pode ser usada? 
 
 
Numa cláusula SELECT em tabelas (exceção a Views) 
 
Na cláusula VALUES de um comando INSERT 
 
Na cláusula SET de um comando UPDATE 
 
No SELECT da query principal de uma construção com subqueries 
 
Na cláusula WHERE de um comando DELETE 
 
 
Gabarito 
Coment. 
 
As abordagens clássicas utilizadas pelo otimizador de consultas são: 
 
 
Regras 
 
Regras e custo 
 
Custo e tempo 
 
Regras e tempo 
 
Custo 
 
 
Gabarito 
Coment. 
 
 
 
 
 2a Questão 
 
Quantos acessos a disco são necessários para encontrar uma linha de uma tabela 
utilizando um índice hash, admitindo que não há a ocorrência de overflow de 
buckets? 
 
 
1 
 
log2n 
 
PR 
 
2 
 
2n 
 
 
 
 
 3a Questão 
 
Os SGBD´s possuem abordagens para otimizar as consultas em um banco de dados. 
Quando o SGBD não possui no dicionário de dados estatísticas sobre o objeto 
referenciado, o otimizador aplica regras baseadas na sintaxe dos comandos e define 
o melhor caminho com o menor número de ranking da análise dos possíveis 
caminhos. 
 
Marque a alternativa que indica a abordagem denominada para este procedimento. 
 
 
Baseada em semântica. 
 
Baseada em processamento. 
 
Baseada em roteamento. 
 
Baseada em regras. 
 
Baseada em custo. 
 
 
Gabarito 
Coment. 
 
 
 
 
 4a Questão 
 
 (CESGRANRIO - 2010 - IBGE - Analista de Sistemas - Desenvolvimento de Aplicações) 
Algumas regras de heurísticas vinculadas à álgebra relacional, como "execute as operações de seleção 
o mais cedo possível", "execute antes as projeções" e "evite os produtos cartesianos", são usualmente 
empregadas em sistemas gerenciadores de bancos de dados para a implementação de 
 
 
otimização de consultas. 
 
controle de concorrência. 
 
chaves primárias e estrangeiras. 
 
 índices do tipo bit map. 
 
recuperação de dados após falhas. 
 
 
 
 
 5a Questão 
 
Os SGBD ́s possuem abordagens para otimizar as consultas em um banco de Se o 
dicionário de dados mantém estatísticas sobre o objeto referenciado, o otimizador 
utilizará estas estatísticas para fazer a seleção dos caminhos. 
 
Marque a alternativa que indica a abordagem denominada para este procedimento. 
 
 
Baseada em custo. 
 
Baseada em processamento. 
 
Baseada em semântica. 
 
Baseada em regras. 
 
Baseada em roteamento. 
 
 
 
 
 6a Questão 
 
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 OR salário > 3000 
 
salário > 1000 OR salário < 3000 
 
salário >= 1000 AND salário <= 3000 
 
 
Gabarito 
Coment. 
 
 
 
 
 7a Questão 
 
O SGBD realiza a execução de comandos em 5 etapas. 
 
Marque a alternativa que nomeia a etapa onde o SGBD verifica a existência de 
tabelas, visões e colunas, bem como realiza verificações de tipos dos atributos e 
dados utilizados na consulta. 
 
 
Analise sintática 
 
Geração de Código 
 
Analise semântica 
 
Reescrita de consulta 
 
Otimização de consulta 
 
 
Gabarito 
Coment. 
 
 
 
 
 8a Questão 
 
Sobre algoritmos para o processamento de junções, assinale a alternativa verdadeira. 
 
 
O algoritmo Sort Merge Join, baseado no clássico algoritmo Merge Sort, 
somente pode ser aplicado se as duas tabelas estiverem ordenadas por seus 
atributos de junção. 
 
O algoritmo Nested-Loop Join pode produzir o menor custo de execução 
possível, desde que uma das duas tabelas possa ser armazenada por inteiro na 
memória. 
 
Índices primários e secundários podem ser utilizados pelo algoritmo Nested-
Loop Join com Índices, mas não o índice hash, pois não é ordenado. 
 
A variação Block Nested-Loop Join do algoritmo Nested-Loop Join não deve ser 
utilizada na prática, pois sempre leva a uma maior leitura de páginas do disco. 
 
O algoritmo Hash Join, altamente recomendável quando as tabelas envolvidas 
são pequenas, não possui qualquer relação com os índices hash, nem trabalha 
com a noção de buckets.

Continue navegando