Logo Passei Direto
Buscar

BANCO DE DADOS - A3

User badge image
Luiz Souto

em

Ferramentas de estudo

Questões resolvidas

A respeito dos recursos para construção de consultas avançadas com o SELECT, analise as sentenças a seguir e assinale (V) para a(s) verdadeira(s) e (F) para a(s) falsa(s):

I. ( ) Subconsultas permitem que um comando de SELECT contenha outro comando de SELECT interno. Um exemplo, é usar subconsultas com um operador IN.
II.( ) Os agrupamentos permitem resumir os dados agrupando registros, por exemplo, podemos agrupar os clientes por bairro e os bairros serão os agrupamentos
III. ( ) Funções de agregação permite que os dados sejam consultados de forma mais simples, com um mecanismo análogo a uma tabela virtual
IV. ( ) As junções são cálculos que permitem realizar por exemplo contabilizações, cálculo de média, maior valor e outros

A partir das associações feitas anteriormente, assinale a alternativa que apresenta a sequência correta:

a. V, V, F, V.
b. V, V, F, F.
c. F, F, V, V.
d. F, F, V, F.
e. F, F, F,F.

Em um sistema de livraria, existe uma tabela LIVRO que contém os seguintes campos: LIVRO (COD_LIVRO, TITULO, AUTOR, VALOR). Para recuperar a lista dos autores com o total de títulos de sua autoria presentes na livraria e o valor médio dos valores de seus títulos, a consulta deve ser:


• SELECT AUTOR, COUNT(*), MEDIA(VALOR) FROM LIVRO GROUP BY AUTOR
• SELECT AUTOR, SUM(*), MEDIA(VALOR) FROM LIVRO GROUP BY AUTOR
• SELECT TITULO, SUM(*), AVG(VALOR) FROM LIVRO GROUP BY TITULO
• SELECT TITULO, COUNT(*), AVG(VALOR) FROM LIVRO GROUP BY TITULO
• SELECT AUTOR, COUNT(*), AVG(VALOR) FROM LIVRO GROUP BY AUTOR

O componente objeto do comentário do EMASRI é

a. Uma view 
b. Um procedimento armazenado
c. Um gatilho
d. Uma cláusula
e. Uma junção

Material
páginas com resultados encontrados.
páginas com resultados encontrados.
details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Questões resolvidas

A respeito dos recursos para construção de consultas avançadas com o SELECT, analise as sentenças a seguir e assinale (V) para a(s) verdadeira(s) e (F) para a(s) falsa(s):

I. ( ) Subconsultas permitem que um comando de SELECT contenha outro comando de SELECT interno. Um exemplo, é usar subconsultas com um operador IN.
II.( ) Os agrupamentos permitem resumir os dados agrupando registros, por exemplo, podemos agrupar os clientes por bairro e os bairros serão os agrupamentos
III. ( ) Funções de agregação permite que os dados sejam consultados de forma mais simples, com um mecanismo análogo a uma tabela virtual
IV. ( ) As junções são cálculos que permitem realizar por exemplo contabilizações, cálculo de média, maior valor e outros

A partir das associações feitas anteriormente, assinale a alternativa que apresenta a sequência correta:

a. V, V, F, V.
b. V, V, F, F.
c. F, F, V, V.
d. F, F, V, F.
e. F, F, F,F.

Em um sistema de livraria, existe uma tabela LIVRO que contém os seguintes campos: LIVRO (COD_LIVRO, TITULO, AUTOR, VALOR). Para recuperar a lista dos autores com o total de títulos de sua autoria presentes na livraria e o valor médio dos valores de seus títulos, a consulta deve ser:


• SELECT AUTOR, COUNT(*), MEDIA(VALOR) FROM LIVRO GROUP BY AUTOR
• SELECT AUTOR, SUM(*), MEDIA(VALOR) FROM LIVRO GROUP BY AUTOR
• SELECT TITULO, SUM(*), AVG(VALOR) FROM LIVRO GROUP BY TITULO
• SELECT TITULO, COUNT(*), AVG(VALOR) FROM LIVRO GROUP BY TITULO
• SELECT AUTOR, COUNT(*), AVG(VALOR) FROM LIVRO GROUP BY AUTOR

O componente objeto do comentário do EMASRI é

a. Uma view 
b. Um procedimento armazenado
c. Um gatilho
d. Uma cláusula
e. Uma junção

Prévia do material em texto

1. As cláusulas WHERE, ORDER BY, GROUP BY, JOIN e outras são exemplos de partes de um 
SELECT e cada uma fornece algum recurso que traduz alguma necessidade ao se realizar 
consultas sobre os dados. Ao consultar as tabelas de CARRO e FABRICANTE em um sistema 
de locadoras, foi realizada a seguinte consulta: 
 
SELECT F.FABRICANTE, COUNT(*), AVG(C.VLR_LOCACAO) 
FROM CARRO as C INNER JOIN FABRICANTE as F 
ON (C.COD_FABRICANTE = F.COD_FABRICANTE) 
WHERE ANO > 2015 
AND AR_COND = ‘S’ 
GROUP BY FABRICANTE 
 
Considerando esta consulta, analise e assinale nas sentenças a seguir (V) para a(s) 
verdadeira(s) e (F) para a(s) falsa(s). 
 
I. ( ) Os carros do ano 2015 serão considerados na consulta 
II. ( ) Será mostrada a contagem de carros conforme condições e agrupados por fabricante 
III. ( ) Apenas carros com ar condicionado serão contabilizados 
IV. ( ) Apenas carros que tiverem um fabricante cadastrado serão considerados 
A partir das associações feitas anteriormente, assinale a alternativa que apresenta a 
sequência correta: 
Resposta correta. A alternativa está correta. O item I é falso pois carros do ano de 2015 não atendem à 
condição ANO > 2015, deveria ser ANO >= 2015. O item II é verdadeiro, a consulta faz um agrupamento 
por fabricante contando os registros que atendem às condições em WHERE. O item III é verdadeiro pois a 
condição AR_COND=’S’ é indicativo que o carro possui ar condicionado. E o item IV é verdadeiro pois 
como é feito um INNER JOIN, apenas registros que possuem valores e são correspondentes são válidos 
para o resultado. 
• V, V, F, V. 
• F, V, F, F. 
• F, F, V, F. 
• V, V, V, V. 
✓ F, V, V, V. 
 
2. Um banco de dados é um conjunto de componentes definidos de diversas formas via 
comandos de DDL. Por exemplo, dentre os componentes existem as tabelas, os 
procedimentos armazenados e as visões, dentre outros, cada um com suas finalidades. Sobre 
as visões, qual das sentenças a seguir representa uma das vantagens de usar estes 
componentes em um banco de dados? 
Resposta correta. A alternativa está correta pois com a criação de uma view, uma consulta complexa 
é encapsulada e os usuários passam a ter um mecanismo mais simples para consultar os dados de 
tabelas. 
 
• Definem os perfis de usuários que podem inserir dados no banco de dados 
✓ Permite que consultas mais complexas sejam manipuladas de forma mais 
simples 
• Permite combinar dados de tabelas diferentes via chave estrangeira 
• Permite armazenar dados para uma consulta mais simples 
• São funções que permitem contabilizar ou totalizar valores 
 
3. O comando SELECT pode conter várias cláusulas, por exemplo, para indicar as tabelas fonte 
dos dados (FROM), para estabelecer os filtros (WHERE), para ordenação dos dados (ORDER 
BY). Estas cláusulas e o emprego de diversos tipos de recursos torna este comando bastante 
útil para expressar as necessidades de informações de usuários de um banco de dados. 
 
A respeito dos recursos para construção de consultas avançadas com o SELECT, analise as 
sentenças a seguir e assinale (V) para a(s) verdadeira(s) e (F) para a(s) falsa(s): 
 
I. ( ) Subconsultas permitem que um comando de SELECT contenha outro comando de 
SELECT interno. Um exemplo, é usar subconsultas com um operador IN. 
II.( ) Os agrupamentos permitem resumir os dados agrupando registros, por exemplo, 
podemos agrupar os clientes por bairro e os bairros serão os agrupamentos 
III. ( ) Funções de agregação permite que os dados sejam consultados de forma mais simples, 
com um mecanismo análogo a uma tabela virtual 
IV. ( ) As junções são cálculos que permitem realizar por exemplo contabilizações, cálculo de 
média, maior valor e outros 
 
A partir das associações feitas anteriormente, assinale a alternativa que apresenta a 
sequência correta: 
Resposta correta. A alternativa está correta. O item I é verdadeiro pois subconsultas permite aninhar 
comandos SELECT, um comando SELECT pode conter outro mais interno e uma das formas usadas é de 
fato com o operador IN. O item II é verdadeiro pois agrupamentos resumem dados juntando registros 
com valores iguais nos campos do agrupamento e aplicando funções de agregação nos outros campos. O 
Item III é falso pois o mecanismo semelhante a uma tabela virtual que facilita o uso de consultas é uma 
VIEW e não as funções agregadas que servem para cálculos como totalização e contabilização. O item IV 
é falso pois as junções servem para combinar tabelas através das chaves estrangeiras. O recurso que 
realiza contabilizações são as funções de agregação. 
• V, V, F, V. 
✓ V, V, F, F. 
• F, F, V, F. 
• F, F, V, V. 
• F, F, F,F. 
 
4. Uma cláusula “group by”, parte do comando SELECT, permite criar agrupamentos, isto é, 
vários registros com os mesmos valores são combinados em uma linha e os valores dos 
outros campos podem ser resumidos através de funções de agregação, gerando cálculo de 
totais, contagens, médias e outros. 
Em um sistema de livraria, existe uma tabela LIVRO que contém os seguintes campos: 
 
LIVRO (COD_LIVRO, TITULO, AUTOR, VALOR) 
 
Para recuperar a lista dos autores com o total de títulos de sua autoria presentes na livraria e o 
valor médio dos valores de seus títulos, a consulta deve ser: 
Resposta correta. A alternativa está correta pois o agrupamento (group by) ocorre por AUTOR que é o 
campo junto ao SELECT e é requisitado contagem e média por autor tratadas com as funções de 
contagem (COUNT(*) ) e a média (AVG(VALOR) ) aplicadas corretamente. 
• SELECT TITULO, COUNT(*), AVG(VALOR) FROM LIVRO GROUP BY TITULO 
• SELECT TITULO, SUM(*), AVG(VALOR) FROM LIVRO GROUP BY TITULO 
✓ SELECT AUTOR, COUNT(*), AVG(VALOR) FROM LIVRO GROUP BY AUTOR 
• SELECT AUTOR, SUM(*), MEDIA(VALOR) FROM LIVRO GROUP BY AUTOR 
• SELECT AUTOR, COUNT(*), MEDIA(VALOR) FROM LIVRO GROUP BY AUTOR 
 
5. As views permitem simplificar a forma como as consultas podem ser feitas pois uma view 
abstrai a complexidade das consultas, por exemplo consultas com muitas junções, funções 
de agregação e outras. Daí, uma consulta utiliza a view como se fosse uma tabela virtual cuja 
definição é baseada na consulta mais complexa. 
 
Em um determinado sistema de compras, foi criada a seguinte view. 
CREATE VIEW functionbodyOnloadHandler(){ if(typeof(parent.feedHtmlOnLoadFn)=='function') 
{ parent.feedHtmlOnLoadFn(this); } returntrue; } window.onload=bodyOnloadHandler; return; " /> 
COMPRAS_CLIENTES_VW AS (NOME, BAIRRO DATA_NASC, SEXO, COD_CIDADE, CIDADE, 
DATA_COMPRA, VALOR) AS SELECT CLI.NOME, CLI.BAIRRO, CLI.DATA_NASC, CLI.SEXO, 
CID.COD_CIDADE, CID.DCR_CIDADE, CMP.DATA_COMPRA, CMP.VLR_COMPRA FROM 
CLIENTE CLI INNER JOIN COMPRA CMP ON CLI.COD_CLIENTE = CMP.COD_CLIENTE INNER JOIN 
CIDADE AS CID ON CLI.COD_CIDADE = CID.COD_CIDADE 
 
Assinale qual sentença apresenta uma consulta correta feita com o uso da View. 
Resposta correta. A alternativa está correta pois o campo NOME está definido como um dos campos da 
VIEW no cabeçalho do CREATE VIEW e o count(*) vai contar quantas compras por cliente, via recurso de 
GROUP BY. 
• SELECT NOME, CIDADE FROM CLIENTE 
✓ SELECT NOME, COUNT(*) FROM COMPRAS_CLIENTES_VW GROUP BY 
NOME 
• SELECT NOME, VLR_COMPRA FROM COMPRAS_CLIENTES_VW 
• SELECT NOME, VLR_COMPRA FROM CLIENTE 
• SELECT NOME, DCR_CIDADE FROM COMPRAS_CLIENTES_VW 
 
6. As funções de agregação permitem extrair informações úteis a partir de um determinado 
conjunto de resultados, elas sumarizam os valores de determinados campos em um único 
valor e elas podem ser usadas em todos os dados de um conjunto de resultados ou então 
podem ser combinadas com as cláusulas GROUP BY. 
 
Em um sistema, existe um cadastro de clientes com os seguintes dados: 
CODIGO NOME CONTATO DATA_NASC SEXO BAIRRO 
1 Adriana Araújo 71982213455 1987-02-03 F Barra 
2 Renato Nogueira 11 933321999 1977-07-09 M Morumbi 
3 Viviane Sales 11 987712022 1995-11-02 F Vila Madalena 
4 Marcela Campos 71 973514498 1980-01-19 F Barra 
5 Rodrigo Gonçalves 21 986121942 1992-05-10 M Centro 
6 Jorge Marinho 11 995439812 1990-06-07 M Morumbi 
7 Rodrigo Vieira 71 972318872 1985-08-27 M Centro 
8 Vanessa Aquino 21 933211346 1972-02-15 F Centro 
 
 
Para extrair nesta tabela a data de nascimento do cliente mais velho, a cláusula SELECT deve 
apresentar a seguinte função de agregação: 
Resposta correta. A alternativa está correta. Ao se utilizar a função MIN será recuperada a menor data de 
nascimento do cliente, portanto a data de nascimento do cliente mais velho. 
✓ MIN(DATA_NASC) 
• AVG(DATA_NASC) 
• COUNT(DATA_NASC) 
• MAX(DATA_NASC) 
• SUM(DATA_NASC) 
 
7. O uso de agrupamentos é um recurso utilizado ao criar consultas com SELECT para sumarizar 
dados e realizar contabilizações ou totalizações, e a cláusula usada é o GROUP BY. Uma 
demanda comum é, ao realizar agrupamentos, realizar algum filtro sobre os campos 
calculados. Por exemplo, ao avaliar os clientes e o total de compras calculado via uma função 
SUM, pode-se querer filtrar apenas os clientes com este volume de compras acima de 
R$500,00. 
A palavra chave usada na cláusula que permite realizar este tipo de filtro sobre campos 
calculados por funções de agregação é a: 
Resposta correta. A alternativa está correta. A cláusula HAVING é a alternativa que se tem para realizar 
filtro sobre um campo calculado. Por exemplo, para o caso do exemplo, uma cláusula having seria 
“HAVING SUM(VLR_COMPRA) >= 500”. 
• ORDER 
✓ HAVING 
• FROM 
• INNER 
• WHERE 
 
8. A criação de consultas em um banco de dados através do comando SELECT pode utilizar 
diversos recursos, ordenação, agrupamentos, filtros e outros. Um destes recursos, que 
permite consultas mais avançadas, é o uso de subconsultas em que um comando de SELECT 
pode conter um outro comando SELECT em alguma de suas outras cláusulas. 
Em um sistema de uma loja, imagine que existe uma tabela de COMPRAS com os seguintes 
dados. 
 
NOME DATA VLR_COMPRA 
Renato Nogueira 12/03/2019 35.60 
Renato Nogueira 21/03/2019 120.70 
Renato Nogueira 25/04/2019 81.50 
Rodrigo Gonçalves 14/03/2019 57.80 
Rodrigo Gonçalves 04/04/2019 31.00 
Vanessa Aquino 16/03/2019 23.70 
Vanessa Aquino 10/04/2019 92.50 
 
 Fonte: Elaborado pelo Autor (2019) 
 
Para avaliar o volume de vendas dos clientes, o setor de marketing solicitou uma listagem com os 
clientes e o seu volume total de compras e ordenados pelo volume de compras em ordem 
decrescente. A consulta que reflete esta necessidade do setor de marketing é 
Resposta correta. A alternativa está correta. Perceba que a subconsulta realiza a totalização de vendas e 
abrevia o somatório SUM(VLR_COMPRA) como TOTAL. Este campo é o empregado na ordenação com a 
palavra DESC, em ordem decrescente, os maiores primeiro. 
• SELECT * 
 FROM (SELECT NOME, AVG(VLR_COMPRA) as TOTAL 
 FROM COMPRAS) AS VOLUME_COMPRAS ORDER BY VLR_COMPRA 
DESC 
• SELECT * 
 FROM (SELECT NOME, SUM(VLR_COMPRA) as TOTAL 
 FROM COMPRAS) AS VOLUME_COMPRAS ORDER BY VLR_COMPRA 
DESC 
• SELECT * 
 FROM (SELECT NOME, SUM(VLR_COMPRA) as TOTAL 
 FROM COMPRAS) AS VOLUME_COMPRAS ORDER BY VLR_COMPRA 
ASC 
✓ SELECT * 
 FROM (SELECT NOME, SUM(VLR_COMPRA) as TOTAL 
 FROM COMPRAS) AS VOLUME_COMPRAS ORDER BY 
TOTAL DESC 
• SELECT * 
 FROM (SELECT NOME, AVG(VLR_COMPRA) as TOTAL 
 FROM COMPRAS) AS VOLUME_COMPRAS ORDER BY TOTAL DESC 
 
9. As funções de agregação são úteis para contabilizar, totalizar ou avaliar registros em consultas 
construídas com o comando SELECT, com ou sem a cláusula GROUP BY. Quando usada sem 
agrupamentos, considera todos os registros dentro de um conjunto de resultados. Quando 
usada com group by, resumem os registros de um agrupamento em um valor conforme o 
objetivo da função. 
Em relação às funções de agregação, realize a associação de cada uma delas com as 
afirmações na sequência: 
 
I. SUM 
II. COUNT 
III. AVG 
IV. MAX 
 
Associe as funções de agregação com as afirmações sobre estes comandos 
 
( ) Podem ser aplicadas tendo como parâmetro o “*” 
( ) Retorna o maior valor de um conjunto de dados 
( ) Usada para totalizar valores 
( ) Usada para o cálculo de média de valores 
 
 
Assinale a alternativa que apresenta a sequência correta: 
Resposta correta. A alternativa está correta. Comentando na sequência. O item II, COUNT pode de fato 
ser usado na forma count(*) pois ele realiza uma contagem de registros.O item IV, MAX, de fato calcula o 
valor máximo dentro de um conjunto de valores. SUM (Item I) é usado para totalizar, fazer somatório de 
valores. E AVG (item III) é uma abreviação de average, que representa a média de um conjunto de 
valores. 
✓ II, IV, I, III 
• II, I, IV, III 
• III, IV, I, II 
• III, I, II, IV 
• I, IV, II, III 
 
10. Um banco de dados pode ser composto de diversos componentes, existem as tabelas que são 
os principais componentes mas existem também outros. Sobre um destes componentes, 
(ELMASRI, 2011, p.88) diz que “não necessariamente existe em forma física, ela é considerada 
uma tabela virtual, ao contrário das tabelas de base, cujas tuplas sempre estão armazenadas 
fisicamente no banco de dados. Isso limita possíveis operações de atualização mas não 
oferece quaisquer limitações sobre a consulta.“ 
 
ELMASRI, R.; NAVATHE, S. Sistemas de Banco de Dados. São Paulo: Pearson Addison Wesley, 
2011, p.88. 
 
O componente objeto do comentário do EMASRI é 
Resposta correta. A alternativa está correta. De fato uma view é uma tabela virtual, que não possui dados 
fisicamente e que por isso oferece limitações para atualizações porém não oferece limitações quanto à 
consulta. 
• Uma cláusula 
• Uma junção 
• Um gatilho 
✓ Uma view 
• Um procedimento armazenado

Mais conteúdos dessa disciplina