BANCO DE DADOS MULTIDIMENSIONAIS CONSULTANDO O CUBO DE DADOS (MDX – SQL SERVER 2008) Banco de...

21
BANCO DE DADOS MULTIDIMENSIONAIS CONSULTANDO O CUBO DE DADOS (MDX – SQL SERVER 2008) Banco de Dados Avançado - Prof.ª Valeria Times Andresson Firmino

Transcript of BANCO DE DADOS MULTIDIMENSIONAIS CONSULTANDO O CUBO DE DADOS (MDX – SQL SERVER 2008) Banco de...

Page 1: BANCO DE DADOS MULTIDIMENSIONAIS CONSULTANDO O CUBO DE DADOS (MDX – SQL SERVER 2008) Banco de Dados Avançado - Prof.ª Valeria Times Andresson Firmino.

BANCO DE DADOS MULTIDIMENSIONAIS

CONSULTANDO O CUBO DE DADOS

(MDX – SQL SERVER 2008)

Banco de Dados Avançado - Prof.ª Valeria Times

Andresson Firmino

Page 2: BANCO DE DADOS MULTIDIMENSIONAIS CONSULTANDO O CUBO DE DADOS (MDX – SQL SERVER 2008) Banco de Dados Avançado - Prof.ª Valeria Times Andresson Firmino.

Cin/UFPE - Banco de Dados Avançado - Prof.ª Valéria Times

Importando o Cubo de Dados O SQL Server 2008 possui dois tipos de servidor

DataBase Engine Base de dados do ambiente transacional

Analysis Service Base de dados multidimensional

Por padrão apenas o DataBase Engine é carregado Para carregar o Analysis Service

Menu File => Connect Object Explorer Server Type: Analysis Service

Connect

Page 3: BANCO DE DADOS MULTIDIMENSIONAIS CONSULTANDO O CUBO DE DADOS (MDX – SQL SERVER 2008) Banco de Dados Avançado - Prof.ª Valeria Times Andresson Firmino.

Cin/UFPE - Banco de Dados Avançado - Prof.ª Valéria Times

Importando o Cubo de Dados Para importar o cubo, no Analysis Service

Clique Direito em Databases, Restore.. Na seção Restore Source, clique em Browser Especifique o Diretório e o nome do Arquivo OK, OK Clique Direito em Analysis Service, Refresh

Cubo Importado

Page 4: BANCO DE DADOS MULTIDIMENSIONAIS CONSULTANDO O CUBO DE DADOS (MDX – SQL SERVER 2008) Banco de Dados Avançado - Prof.ª Valeria Times Andresson Firmino.

Cin/UFPE - Banco de Dados Avançado - Prof.ª Valéria Times

Esquema Multidimensional do Cubo

Page 5: BANCO DE DADOS MULTIDIMENSIONAIS CONSULTANDO O CUBO DE DADOS (MDX – SQL SERVER 2008) Banco de Dados Avançado - Prof.ª Valeria Times Andresson Firmino.

Cin/UFPE - Banco de Dados Avançado - Prof.ª Valéria Times

Consultando o Cubo de Dados Para criar uma consulta

Clique Direito em Analysis Service New Query, MDX

Para executar a consulta Clique em execute

Page 6: BANCO DE DADOS MULTIDIMENSIONAIS CONSULTANDO O CUBO DE DADOS (MDX – SQL SERVER 2008) Banco de Dados Avançado - Prof.ª Valeria Times Andresson Firmino.

Cin/UFPE - Banco de Dados Avançado - Prof.ª Valéria Times

Consultando o Cubo de Dados Minha primeira consulta MDX – Pontos importantes

Resultados MDXs são sub-cubos

Dimensões do cubo são mapeadas para eixos do sub-cubo

Uma consulta MDX pode ter mais de um eixo. Porém, MDX Analysis Server só suporta no max. 2 (columns e rows)

Dimensões não especificadas nos eixos podem aparecer no WHERE

Page 7: BANCO DE DADOS MULTIDIMENSIONAIS CONSULTANDO O CUBO DE DADOS (MDX – SQL SERVER 2008) Banco de Dados Avançado - Prof.ª Valeria Times Andresson Firmino.

Cin/UFPE - Banco de Dados Avançado - Prof.ª Valéria Times

Consultando o Cubo de Dados Minha Primeira Consulta MDX

Operação Slice Os clientes e os filmes alugados no

primeiro ano.SELECT

([DIM CLIENTE].[Nome].children) ON COLUMNS,([DIM FILME].[Nome].children) ON ROWS

FROM [POINTFILMES]WHERE [DIM_TIME].[Year].firstChild -- OPERAÇÃO DE SLICE!!

Page 8: BANCO DE DADOS MULTIDIMENSIONAIS CONSULTANDO O CUBO DE DADOS (MDX – SQL SERVER 2008) Banco de Dados Avançado - Prof.ª Valeria Times Andresson Firmino.

Cin/UFPE - Banco de Dados Avançado - Prof.ª Valéria Times

Consultando o Cubo de Dados Conceitos importantes

Tuples Coleção de membros, os quais são de diferentes

dimensões. Não suporta mais de um membro de uma mesma dimensão

Sintaxe: ([Dim1].[Member], [Dim2].[Member], [Dim3].[Member])

Sets Conjunto de membros de um única dimensão Sintaxe: {[Dim].[Member], [Dim].[Member], [Dim].

[Member]}

Executa Não ExecutaSELECT {[DIM FUNCIONARIO].[Nome].[Andresson],[DIM FUNCIONARIO].[Nome].[Carol]} ON COLUMNS,{([DIM FILME].[Nome].children) }ON ROWSFROM [POINTFILMES]WHERE [DIM_TIME].[Year].firstChild

SELECT ([DIM FUNCIONARIO].[Nome].[Andresson],[DIM FUNCIONARIO].[Nome].[Carol]) ON COLUMNS,([DIM FILME].[Nome].children) ON ROWSFROM [POINTFILMES]WHERE [DIM_TIME].[Year].firstChild

Page 9: BANCO DE DADOS MULTIDIMENSIONAIS CONSULTANDO O CUBO DE DADOS (MDX – SQL SERVER 2008) Banco de Dados Avançado - Prof.ª Valeria Times Andresson Firmino.

Cin/UFPE - Banco de Dados Avançado - Prof.ª Valéria Times

Consultando o Cubo de Dados Conceitos importantes

Sets podem conter um conjunto de tuplas Ex:

Atenção!!! Não se usa Set no WHERE.

SELECT {([DIM FUNCIONARIO].[Nome].[Andresson]),

([DIM FUNCIONARIO].[Nome].[Carol])} ON COLUMNS,([DIM FILME].[Nome].children) ON ROWS

FROM [POINTFILMES]WHERE ([DIM_TIME].[Year].firstChild, [DIM CLIENTE].[Sexo].[M])

Page 10: BANCO DE DADOS MULTIDIMENSIONAIS CONSULTANDO O CUBO DE DADOS (MDX – SQL SERVER 2008) Banco de Dados Avançado - Prof.ª Valeria Times Andresson Firmino.

Cin/UFPE - Banco de Dados Avançado - Prof.ª Valéria Times

Consultando o Cubo de Dados Conceitos importantes (vírgula X dois

pontos) Com vírgula, Ex:

o mesmo resultado utilizando dois pontos:

SELECT {[DIM_TIME].[Month].[January 2006],[DIM_TIME].[Month].[February 2006],[DIM_TIME].[Month].[March 2006],[DIM_TIME].[Month].[April 2006] } ON COLUMNS

FROM [POINTFILMES]

SELECT {[DIM_TIME].[Month].[January 2006]:[DIM_TIME].[Month].[April 2006] } ON COLUMNS

FROM [POINTFILMES]

Page 11: BANCO DE DADOS MULTIDIMENSIONAIS CONSULTANDO O CUBO DE DADOS (MDX – SQL SERVER 2008) Banco de Dados Avançado - Prof.ª Valeria Times Andresson Firmino.

Cin/UFPE - Banco de Dados Avançado - Prof.ª Valéria Times

Consultando o Cubo de Dados Eliminando células vazias

Com:

Sem:

SELECT {[DIM FUNCIONARIO].[Nome].[Andresson]} ON COLUMNS,([DIM FILME].[Nome].children) ON ROWS

FROM [POINTFILMES]WHERE ([DIM_TIME].[Year].firstChild, [DIM CLIENTE].[Sexo].[M])

SELECT {[DIM FUNCIONARIO].[Nome].[Andresson]} ON COLUMNS,NON EMPTY([DIM FILME].[Nome].children) ON ROWS

FROM [POINTFILMES]WHERE ([DIM_TIME].[Year].firstChild, [DIM CLIENTE].[Sexo].[M])

Page 12: BANCO DE DADOS MULTIDIMENSIONAIS CONSULTANDO O CUBO DE DADOS (MDX – SQL SERVER 2008) Banco de Dados Avançado - Prof.ª Valeria Times Andresson Firmino.

Cin/UFPE - Banco de Dados Avançado - Prof.ª Valéria Times

Consultando o Cubo de Dados Ordenando o resultado de uma consulta

Classificando o resultado

SELECT ORDER(

{[DIM_TIME].[Month].[January 2006]: [DIM_TIME].[Month].[April 2006]}

,[Measures].[Valor] ,DESC)ON COLUMNSFROM [POINTFILMES]

SELECT TOPCOUNT({[DIM FUNCIONARIO].[Nome].children} ,[Measures].[FATOS Count],10) ON COLUMNS

FROM [POINTFILMES]

Page 13: BANCO DE DADOS MULTIDIMENSIONAIS CONSULTANDO O CUBO DE DADOS (MDX – SQL SERVER 2008) Banco de Dados Avançado - Prof.ª Valeria Times Andresson Firmino.

Consultando o Cubo de Dados

Cin/UFPE - Banco de Dados Avançado - Prof.ª Valéria Times

Navegando em uma hierarquia Obter o número de alugueis de cada cliente

durante os anos. Mas, para o ano de 2007 descer um nível, de modo a exibir também os valores nos semestre de 2007.

SELECT DrilldownMember ( [DIM_TIME].[Year - Half Year - Quarter - Month - Date].children, {[DIM_TIME].[Year - Half Year - Quarter - Month - Date].[Year].[Calendar 2007]} ) ON 0, [DIM FUNCIONARIO].[Nome].children ON 1FROM [PointFilmes] WHERE [Measures].[FATOS Count]

Page 14: BANCO DE DADOS MULTIDIMENSIONAIS CONSULTANDO O CUBO DE DADOS (MDX – SQL SERVER 2008) Banco de Dados Avançado - Prof.ª Valeria Times Andresson Firmino.

Consultando o Cubo de Dados

Cin/UFPE - Banco de Dados Avançado - Prof.ª Valéria Times

Navegando em uma hierarquia Os cinco filmes mais alugados e exibir as

suas quantidades de locações ao longo dos trimestres e meses.

SELECT DRILLDOWNLEVEL({[DIM_TIME].[Year - Half Year - Quarter - Month - Date].[Quarter].members}) ON COLUMNS,TOPCOUNT([DIM FILME].[Nome].children, 5, [Measures].[FATOS Count]) ON ROWSFROM PointFilmes

Page 15: BANCO DE DADOS MULTIDIMENSIONAIS CONSULTANDO O CUBO DE DADOS (MDX – SQL SERVER 2008) Banco de Dados Avançado - Prof.ª Valeria Times Andresson Firmino.

Cin/UFPE - Banco de Dados Avançado - Prof.ª Valéria Times

Consultando o Cubo de Dados Mais de uma dimensão por eixo

ou

Cuidado com o CROSSJOIN operação muito custosa!!!

SELECT CROSSJOIN([DIM CLIENTE].[Nome].children,[DIM FUNCIONARIO].[Nome].children) ON COLUMNSFROM PointFilmes

SELECT ([DIM CLIENTE].[Nome].children,[DIM FUNCIONARIO].[Nome].children) ON COLUMNSFROM PointFilmes

Page 16: BANCO DE DADOS MULTIDIMENSIONAIS CONSULTANDO O CUBO DE DADOS (MDX – SQL SERVER 2008) Banco de Dados Avançado - Prof.ª Valeria Times Andresson Firmino.

Cin/UFPE - Banco de Dados Avançado - Prof.ª Valéria Times

Exercícios Qual o número de locações para o filme

Central do Brasil? Qual o número de locações para o filme

Central do Brasil e Código da Vinci? Qual o número de locações do

funcionário Andresson no mês de Outubro de 2009?

Qual o número de locações do funcionário Andresson no mês de Outubro de 2009 para o filme Central do Brasil?

Page 17: BANCO DE DADOS MULTIDIMENSIONAIS CONSULTANDO O CUBO DE DADOS (MDX – SQL SERVER 2008) Banco de Dados Avançado - Prof.ª Valeria Times Andresson Firmino.

Cin/UFPE - Banco de Dados Avançado - Prof.ª Valéria Times

Exercícios Qual o valor dos aluguéis para todos os

filmes em todos os semestres? Qual o valor dos aluguéis para todos os

filmes em todos os semestres para os clientes do sexo feminino?

Qual o valor dos aluguéis para todos os filmes por ano e semestre?

Quais os10 filmes mais alugados em 2009 e seu respectivos número de locações?

Page 18: BANCO DE DADOS MULTIDIMENSIONAIS CONSULTANDO O CUBO DE DADOS (MDX – SQL SERVER 2008) Banco de Dados Avançado - Prof.ª Valeria Times Andresson Firmino.

Cin/UFPE - Banco de Dados Avançado - Prof.ª Valéria Times

Exercícios Quais os número de locações dos10

filmes mais alugados em 2009 para com os 5 clientes que fizeram mais locações em 2009?

Qual o valor dos aluguéis para todos os filmes nos meses das férias 2006-2007?

Agora, crie suas próprias consultas e pratique bastante.

Page 19: BANCO DE DADOS MULTIDIMENSIONAIS CONSULTANDO O CUBO DE DADOS (MDX – SQL SERVER 2008) Banco de Dados Avançado - Prof.ª Valeria Times Andresson Firmino.

Referências Multidimensional Expressions (MDX) Reference

http://msdn.microsoft.com/en-us/library/ms145506.aspx

Kimball, Ralph e Ross, Margy. 2002. The Data Warehouse Toolkit. 2ª Edição. s.l. : Wiley Computer Publishing, 2002.

MultiDimensional eXpressions - Wikipedia, the free encyclopedia. Wikipedia. http://en.wikipedia.org/wiki/MultiDimensional_eXpressions.

Nolan, Carl. Introduction to Multidimensional Expression (MDX). s.l. : Microsoft Corporation.

Spofford, George, et al. 2006. MDx Solutions: With Microsoft SQL Server Analysis Services 2005 and Hyperion Essbase. s.l. : Wiley Publishing, Inc., 2006.

Page 20: BANCO DE DADOS MULTIDIMENSIONAIS CONSULTANDO O CUBO DE DADOS (MDX – SQL SERVER 2008) Banco de Dados Avançado - Prof.ª Valeria Times Andresson Firmino.

Cin/UFPE - Banco de Dados Avançado - Prof.ª Valéria Times

Próxima Aula Construindo o Cubo de Dados Especificação do Projeto.

Page 21: BANCO DE DADOS MULTIDIMENSIONAIS CONSULTANDO O CUBO DE DADOS (MDX – SQL SERVER 2008) Banco de Dados Avançado - Prof.ª Valeria Times Andresson Firmino.

Cin/UFPE - Banco de Dados Avançado - Prof.ª Valéria Times

Dúvidas

?