Questões de Banco de Dados Multidimensionais (Banco de Dados)

Limpar Busca

Para apoiar análises sobre os fundadores de empresas ao longo do tempo, elaborou-se, inicialmente, o seguinte modelo multidimensional de dados, no qual a tabela FATO FUNDAÇÃO EMPRESAS se relaciona com múltiplos valores da tabela DIMENSÃO FUNDADOR.

Imagem relacionada à questão do Questões Estratégicas


No caso apresentado, a implementação de uma dimensão multivalorada deve ser realizada por meio da aplicação da técnica de modelagem multidimensional: 

  • A Tabela Ponte (Bridge Tables);
  • B Tabela Fato sem Fatos (Factless Fact Tables);
  • C Dimensão Degenerada (Degenerate Dimensions);
  • D Dimensão Floco de Neve (Snowflaked Dimensions);
  • E Dimensão que Desempenha Múltiplos Papéis (Role-Playing Dimensions).

NetCDF (Network Common Data Form) é um formato de arquivo adotado como padrão pela comunidade científica internacional para o compartilhamento de dados científicos especializados, de natureza multidimensional (multivariáveis).
Além do formato NetCDF, outro formato matricial que pode ser empregado para criar, acessar e compartilhar dados multidimensionais é o

  • A BMP.
  • B HTML.
  • C HDF5.
  • D MrSID.
  • E Shapefile.

A mudança de uma hierarquia (orientação) dimensional para outra tem sua realização facilitada em um cubo de dados por meio de uma técnica chamada:

  • A roteamento.
  • B pivoteamento.
  • C ROLAP.
  • D MOLAP.

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 é

  • A SELECT p.Categoria, SUM(f.TotalVendas) FROM FatoVendas f WHERE f.ProdutoID IN ('Eletrônicos', 'Roupas') AND f.TempoID = '2022' AND f.LocalizacaoID = 'Pernambuco' GROUP BY p.Categoria; 
  • B SELECT p.Categoria, SUM(TotalVendas) AS VendasTotais FROM FatoVendas f JOIN DimensaoTempo t ON f.TempoID = t.TempoID WHERE p.Categoria IN ('Eletrônicos', 'Roupas') AND t.Ano = 2022 AND l.Estado = 'Pernambuco' GROUP BY p.Categoria;
  • C SELECT p.Categoria, COUNT(f.TotalVendas) AS VendasTotais FROM FatoVendas f JOIN DimensaoProduto p ON f.ProdutoID = p.ProdutoID JOIN DimensaoLocalizacao l ON f.LocalizacaoID = l.LocalizacaoID WHERE (p.Categoria = 'Eletrônicos' OR p.Categoria = 'Roupas') AND l.Estado = 'Pernambuco' GROUP BY p.Categoria; 
  • D SELECT p.Categoria, SUM(f.TotalVendas) AS VendasTotais FROM FatoVendas f JOIN DimensaoTempo t ON f.TempoID = t.TempoID JOIN DimensaoProduto p ON f.ProdutoID = p.ProdutoID JOIN DimensaoLocalizacao l ON f.LocalizacaoID = l.LocalizacaoID WHERE (p.Categoria = 'Eletrônicos' OR p.Categoria = 'Roupas') AND t.Ano = 2022 AND l.Estado = 'Pernambuco' GROUP BY p.Categoria;
  • E SELECT p.Categoria, SUM(f.TotalVendas) FROM FatoVendas f JOIN DimensaoProduto p ON f.ProdutoID = p.ProdutoID WHERE (p.Categoria = 'Eletrônicos' OR p.Categoria = 'Roupas') AND f.TempoID = (SELECT TempoID FROM DimensaoTempo WHERE Ano = '2022') GROUP BY p.Categoria;

Sobre Modelagens Multidimensionais, analise as assertivas a seguir e assinale a alternativa correta.

I.  Deixa-se de focar na coleta de dados para se ocupar com a consulta aos dados.
II. O modelo multidimensional é usado em sistemas cujas bases de dados são atualizadas periodicamente.
III. Foca-se na coleta de dados, para posteriormente avaliar a consulta aos dados.
IV. É o mais adequado para os sistemas de BI em que o foco é a coleta de dados.

  • A Todas as assertivas estão corretas. 
  • B Todas as assertivas estão incorretas.
  • C Apenas a assertiva I está correta.
  • D Apenas as assertivas I e II estão corretas.
  • E Apenas as assertivas III e IV estão corretas.