Você está na página 1de 21

BANCO DE DADOS

MULTIDIMENSIONAIS
CONSULTANDO O CUBO
DE DADOS
(MDX SQL SERVER 2008)
Banco de Dados Avanado - Prof. Valeria
Times
Andresson Firmino
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 padro apenas o DataBase Engine carregado
Para carregar o Analysis Service
Menu File => Connect Object Explorer
Server Type: Analysis Service
Connect


Cin/UFPE - Banco de Dados Avanado - Prof. Valria Times
Importando o Cubo de Dados
Para importar o cubo, no Analysis Service
Clique Direito em Databases, Restore..
Na seo Restore Source, clique em Browser
Especifique o Diretrio e o nome do Arquivo
OK, OK
Clique Direito em Analysis Service, Refresh
Cubo Importado

Cin/UFPE - Banco de Dados Avanado - Prof. Valria Times
Esquema Multidimensional do
Cubo

Cin/UFPE - Banco de Dados Avanado - Prof. Valria Times
Consultando o Cubo de Dados
Cin/UFPE - Banco de Dados Avanado - Prof. Valria Times
Para criar uma consulta
Clique Direito em Analysis Service
New Query, MDX
Para executar a consulta
Clique em execute

Consultando o Cubo de Dados
Cin/UFPE - Banco de Dados Avanado - Prof. Valria Times
Minha primeira consulta MDX Pontos
importantes
Resultados MDXs so sub-cubos

Dimenses do cubo so mapeadas para eixos do
sub-cubo

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

Dimenses no especificadas nos eixos podem
aparecer no WHERE

Consultando o Cubo de Dados
Cin/UFPE - Banco de Dados Avanado - Prof. Valria Times
Minha Primeira Consulta MDX
Operao 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 -- OPERAO DE SLICE!!
Consultando o Cubo de Dados
Cin/UFPE - Banco de Dados Avanado - Prof. Valria Times
Conceitos importantes
Tuples
Coleo de membros, os quais so de diferentes
dimenses.
No suporta mais de um membro de uma mesma dimenso
Sintaxe: ([Dim1].[Member], [Dim2].[Member],
[Dim3].[Member])
Sets
Conjunto de membros de um nica dimenso
Sintaxe: {[Dim].[Member], [Dim].[Member],
[Dim].[Member]}







Executa No Executa
SELECT
{[DIM FUNCIONARIO].[Nome].[Andresson],
[DIM FUNCIONARIO].[Nome].[Carol]} ON
COLUMNS,
{([DIM FILME].[Nome].children) }ON ROWS
FROM [POINTFILMES]
WHERE [DIM_TIME].[Year].firstChild

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

Consultando o Cubo de Dados
Cin/UFPE - Banco de Dados Avanado - Prof. Valria Times
Conceitos importantes
Sets podem conter um conjunto de tuplas
Ex:




Ateno!!! No 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])
Consultando o Cubo de Dados
Cin/UFPE - Banco de Dados Avanado - Prof. Valria Times
Conceitos importantes (vrgula X dois pontos)
Com vrgula, 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]
Consultando o Cubo de Dados
Cin/UFPE - Banco de Dados Avanado - Prof. Valria Times
Eliminando clulas 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])
Consultando o Cubo de Dados
Cin/UFPE - Banco de Dados Avanado - Prof. Valria Times
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 COLUMNS
FROM [POINTFILMES]
SELECT
TOPCOUNT(
{[DIM FUNCIONARIO].[Nome].children}
,[Measures].[FATOS Count],10) ON COLUMNS
FROM [POINTFILMES]
Consultando o Cubo de Dados
Cin/UFPE - Banco de Dados Avanado - Prof. Valria Times
Navegando em uma hierarquia
Obter o nmero de alugueis de cada cliente
durante os anos. Mas, para o ano de 2007 descer
um nvel, de modo a exibir tambm 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 1
FROM [PointFilmes] WHERE [Measures].[FATOS Count]
Consultando o Cubo de Dados
Cin/UFPE - Banco de Dados Avanado - Prof. Valria Times
Navegando em uma hierarquia
Os cinco filmes mais alugados e exibir as suas
quantidades de locaes 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 ROWS
FROM PointFilmes
Consultando o Cubo de Dados
Cin/UFPE - Banco de Dados Avanado - Prof. Valria Times
Mais de uma dimenso por eixo


ou


Cuidado com o CROSSJOIN operao muito
custosa!!!


SELECT
CROSSJOIN([DIM CLIENTE].[Nome].children,
[DIM FUNCIONARIO].[Nome].children) ON COLUMNS
FROM PointFilmes
SELECT
([DIM CLIENTE].[Nome].children,
[DIM FUNCIONARIO].[Nome].children) ON COLUMNS
FROM PointFilmes
Exerccios
Cin/UFPE - Banco de Dados Avanado - Prof. Valria Times
Qual o nmero de locaes para o filme
Central do Brasil?
Qual o nmero de locaes para o filme
Central do Brasil e Cdigo da Vinci?
Qual o nmero de locaes do funcionrio
Andresson no ms de Outubro de 2009?
Qual o nmero de locaes do funcionrio
Andresson no ms de Outubro de 2009 para o
filme Central do Brasil?
Exerccios
Cin/UFPE - Banco de Dados Avanado - Prof. Valria Times
Qual o valor dos aluguis para todos os
filmes em todos os semestres?
Qual o valor dos aluguis para todos os
filmes em todos os semestres para os clientes
do sexo feminino?
Qual o valor dos aluguis para todos os
filmes por ano e semestre?
Quais os10 filmes mais alugados em 2009 e
seu respectivos nmero de locaes?


Exerccios
Cin/UFPE - Banco de Dados Avanado - Prof. Valria Times
Quais os nmero de locaes dos10 filmes
mais alugados em 2009 para com os 5
clientes que fizeram mais locaes em 2009?
Qual o valor dos aluguis para todos os filmes
nos meses das frias 2006-2007?
Agora, crie suas prprias consultas e pratique
bastante.


Referncias
Multidimensional Expressions (MDX) Reference
http://msdn.microsoft.com/en-us/library/ms145506.aspx
Kimball, Ralph e Ross, Margy. 2002. The Data Warehouse
Toolkit. 2 Edio. 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.
Prxima Aula
Cin/UFPE - Banco de Dados Avanado - Prof. Valria Times
Construindo o Cubo de Dados
Especificao do Projeto.
Dvidas

Cin/UFPE - Banco de Dados Avanado - Prof. Valria Times