CESGRANRIO — Profissional Transpetro de Nível Superior - Junior: Ênfase 7: Análise de Sistemas - Sap - Finanças e Contabilidade — Banco de Dados Multidimensionais — 2023

Enunciado

Em um banco de dados multidimensional, frequentemente modelado como um cubo de dados, as dimensões são diferentes perspectivas sob as quais os dados podem ser analisados, e os fatos são os dados mais importantes que são analisados ou consultados em relação a essas dimensões. Considere um esquema multidimensional que envolve automóveis, os fabricantes e as revendedoras de carros, com as tabelas Dimensão apresentadas a seguir: 1. Dim\_Automóvel: o Modelo\_ID (identificador único para cada modelo de carro) o Nome\_Modelo (por exemplo: Corolla, Civic, Tucson) o Tipo (por exemplo: Sedan, SUV, Coupe) o Ano\_Lançamento 2. Dim\_Fabricante: o Fabricante\_ID (identificador único para cada fabricante) o Nome\_Fabricante (por exemplo: Toyota, Honda, Ford) o País\_Origem (por exemplo: Japão, EUA, Alemanha) 3. Dim\_Revendedora: o Revendedora\_ID (identificador único para cada revendedora) o Nome\_Revendedora o Localização (cidade e estado) o Tipo\_Revenda (por exemplo: autorizada, independente) A tabela Vendas, que representa fatos, contém as seguintes colunas: • Modelo\_ID (chave estrangeira para Dim\_Automóvel) • Fabricante\_ID (chave estrangeira para Dim\_Fabricante) • Revendedora\_ID (chave estrangeira para Dim\_Revendedora) • Quantidade\_Vendida • Receita\_Total (o total em vendas para essa tripla: modelo, fabricante e revendedora) • Data\_Venda Qual das seguintes expressões, na linguagem de consultas SQL, retorna a receita total de vendas de carros do tipo SUV em 2023, agrupada por fabricante, na cidade de São Paulo?

Alternativas

  1. A)

    SELECT f.Nome\_Fabricante, SUM(v.Receita\_Total) AS Receita\_Total FROM Tbl\_Vendas v JOIN Dim\_Automóvel a ON v.Modelo\_ID = a.Modelo\_ID WHERE a.Tipo = 'SUV' AND r.Localização = 'São Paulo' AND a.Ano\_Lançamento = 2023 GROUP BY f.Nome\_Fabricante;

  2. B)

    SELECT f.Nome\_Fabricante, SUM(v.Receita\_Total) AS Receita\_Total FROM Tbl\_Vendas v LEFT JOIN Dim\_Automóvel a ON v.Modelo\_ID = a.Modelo\_ID JOIN Dim\_Fabricante f ON v.Fabricante\_ID = f.Fabricante\_ID WHERE a.Tipo = 'SUV' AND a.Ano\_Lançamento = 2023 GROUP BY f.Nome\_Fabricante;

  3. C)

    SELECT f.Nome\_Fabricante, SUM(v.Receita\_Total) AS Receita\_Total FROM Tbl\_Vendas v JOIN Dim\_Automóvel a ON v.Modelo\_ID = a.Modelo\_ID JOIN Dim\_Fabricante f ON v.Fabricante\_ID = f.Fabricante\_ID JOIN Dim\_Revendedora r ON v.Revendedora\_ID = r.Revendedora\_ID WHERE a.Tipo = 'SUV' AND a.Ano\_Lançamento = 2023 AND r.Localização = 'São Paulo' GROUP BY f.Nome\_Fabricante;

  4. D)

    SELECT r.Localização, SUM(v.Receita\_Total) AS Receita\_Total FROM Tbl\_Vendas v JOIN Dim\_Automóvel a ON v.Modelo\_ID = a.Modelo\_ID JOIN Dim\_Fabricante f ON v.Fabricante\_ID = f.Fabricante\_ID WHERE a.Tipo = 'SUV' AND a.Ano\_Lançamento = 2023 GROUP BY r.Localização;

  5. E)

    SELECT f.Nome\_Fabricante, COUNT(v.Receita\_Total) AS Receita\_Total FROM Tbl\_Vendas v JOIN Dim\_Automóvel a ON v.Modelo\_ID = a.Modelo\_ID JOIN Dim\_Fabricante f ON v.Fabricante\_ID = f.Fabricante\_ID JOIN Dim\_Revendedora r ON v.Revendedora\_ID = r.Revendedora\_ID WHERE a.Tipo = 'SUV' AND a.Ano\_Lançamento = 2023 AND r.Localização = 'São Paulo' GROUP BY f.Nome\_Fabricante;

Gabarito e comentário

Resposta correta: C

A consulta precisa somar a Receita_Total, filtrar apenas automóveis do tipo SUV, restringir o ano a 2023 e a localização à cidade de São Paulo, além de agrupar o resultado pelo nome do fabricante. Para isso, é necessário relacionar a tabela de fatos às três dimensões: automóvel, fabricante e revendedora. A alternativa C faz os três JOINs, usa SUM(v.Receita_Total), aplica os filtros a.Tipo='SUV', a.Ano_Lançamento=2023 e r.Localização='São Paulo', e finaliza com GROUP BY f.Nome_Fabricante. As demais alternativas omitem joins ou filtros essenciais, agrupam pela coluna errada ou usam COUNT em vez de SUM. Alternativa C.

Questões relacionadas