Cadernos de Questões

Provas Favoritas

Filtros Salvos

Foram encontradas 190 questões.
#3247230

Um banco de dados multidimensional é frequentemente usado em análise OLAP (Online Analytical Processing) sendo orientado por dimensões, e não por tabelas isoladas como no modelo relacional puro. Nesse contexto, considere uma instância relacionada às vendas de uma loja de varejo. As dimensões, nesse caso, poderiam ser:

1. Tempo: Dias, Meses, Trimestres, Anos 2. Produto: ID do Produto, Nome do Produto, Categoria 3. Localização: Cidade, Estado, País 4. Vendedor: ID do Vendedor, Nome, Departamento

Esse banco de dados multidimensional pode ser visualizado como um “cubo” com quatro dimensões, onde cada dimensão forma um dos eixos. Os pontos dentro desse “cubo” representam valores específicos de medidas, como é o caso do total de vendas. Esses pontos podem também representar algo mais complexo envolvendo muitas dimensões como, por exemplo, as vendas do Produto P no Estado Q durante o Mês R por Vendedor S.

Muitas vezes esses “cubos” são implementados em bancos de dados relacionais convencionais, de modo que os usuários possam usar linguagens amplamente conhecidas, como é o caso da linguagem de consultas SQL. Para isso, é necessário modelar tabelas de dimensão e de fato:

1. DimensaoTempo: com colunas tais como TempoID, Mes, Ano
2. DimensaoProduto: com colunas tais como ProdutoID, NomeProduto, Categoria
3. DimensaoLocalizacao: com colunas tais como LocalizacaoID, Cidade, Estado, País
4. FatoVendas: com colunas tais como TempoID, ProdutoID, LocalizacaoID, TotalVendas

Com base nas tabelas deste esquema relacional em particular, que representam um banco de dados multidimensional, considere que se deseja fazer a seguinte consulta de tipo “slice and dice”:
“Quanto foi vendido em termos de valor total nas categorias ‘Eletrônicos’ e ‘Roupas’ no estado de ‘Pernambuco’ durante o ano de 2022?”

A expressão SQL que responde a essa consulta é

  • SELECT p.Categoria, SUM(f.TotalVendas)FROM FatoVendas fWHERE f.ProdutoID IN ('Eletrônicos', 'Roupas')AND f.TempoID = '2022'AND f.LocalizacaoID = 'Pernambuco'GROUP BY p.Categoria;
  • SELECT p.Categoria, SUM(TotalVendas) AS VendasTotaisFROM FatoVendas fJOIN DimensaoTempo t ON f.TempoID = t.TempoIDWHERE p.Categoria IN ('Eletrônicos', 'Roupas')AND t.Ano = 2022AND l.Estado = 'Pernambuco'GROUP BY p.Categoria;
  • SELECT p.Categoria, COUNT(f.TotalVendas) AS VendasTotaisFROM FatoVendas fJOIN DimensaoProduto p ON f.ProdutoID = p.ProdutoIDJOIN DimensaoLocalizacao l ON f.LocalizacaoID = l.LocalizacaoIDWHERE (p.Categoria = 'Eletrônicos' OR p.Categoria = 'Roupas')AND l.Estado = 'Pernambuco'GROUP BY p.Categoria;
  • SELECT p.Categoria, SUM(f.TotalVendas) AS VendasTotaisFROM FatoVendas fJOIN DimensaoTempo t ON f.TempoID = t.TempoIDJOIN DimensaoProduto p ON f.ProdutoID = p.ProdutoIDJOIN DimensaoLocalizacao l ON f.LocalizacaoID = l.LocalizacaoIDWHERE (p.Categoria = 'Eletrônicos' OR p.Categoria = 'Roupas')AND t.Ano = 2022AND l.Estado = 'Pernambuco'GROUP BY p.Categoria;
  • SELECT p.Categoria, SUM(f.TotalVendas)FROM FatoVendas fJOIN DimensaoProduto p ON f.ProdutoID = p.ProdutoIDWHERE (p.Categoria = 'Eletrônicos' OR p.Categoria = 'Roupas')AND f.TempoID = (SELECT TempoID FROM DimensaoTempo WHERE Ano = '2022')GROUP BY p.Categoria;
Fale com IAgo
IAgo - Assistente IAProva
IA
Olá! Sou o IAgo, seu assistente aqui no IAProvatec 😊
Veja como posso te ajudar:
Agora