Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.
left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Prévia do material em texto

Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 2 
 
 
 
 
 
 
 
DO BANCO DE DADOS 
RELACIONAL À TOMADA 
DE DECISÃO 
 
 
 
Aprenda como sair do banco de dados 
convencional e criar um ambiente completo de 
suporte à tomada de decisão! 
 
 
 
Diego Nogare 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 3 
 
 
 
 
 
 
 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 4 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
À minha família. 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 5 
Primeiramente gostaria de agradecer a todos que, durante estes 
anos de estudo e aprendizagem de SQL Server, acompanharam meus 
trabalhos - seja como leitor do blog, como conferencista em congressos 
ou seminários, como participante em palestras, como aluno em 
treinamentos oficiais Microsoft ou da NGR Solutions, ou mesmo aluno em 
cursos de Graduação ou Pós-Graduação, como colegas de profissão e 
amigos. Tive o imenso prazer de trocar experiências e aprender com cada 
um de vocês. 
Não posso deixar de dizer que tive MUITA SORTE em conhecer 
profissionais de SQL Server de vários os lugares do mundo. Brasil, Espanha, 
Índia, Estados Unidos, Trinidad e Tobago, México, Costa Rica, Portugal, 
Chile e Argentina são só alguns desses países. Aprendi com cada um deles 
um pouco de cultura e costumes locais. Mesmo não conhecendo todos os 
países em que eles vivem, consegui ter uma visão de como é o mercado 
de trabalho e como vivem as pessoas destes lugares. 
Entendendo esse cenário globalizado e olhando principalmente 
para o Brasil, meu maior objetivo com este livro é permitir que você possa 
criar um ambiente de Business Intelligence dentro da sua empresa, para 
melhorar a tomada de decisão dos líderes que trabalham contigo. O 
objetivo não é aprofundar em assuntos teóricos, que são importantes para 
um ótimo trabalho. Mas em um momento de objetividade e entrega de 
resultados, os textos aqui apresentados são focados em exemplos 
práticos. 
 
Para este estudo contínuo que será feito no decorrer do livro, os 
projetos e bancos de dados que são apresentados tem por objetivo o 
estudo e o aprendizado de técnicas de mercado para o SQL Server e 
Business Intelligence. Ambos Databases podem ser baixados no portal 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 6 
Codeplex (http://www.codeplex.com) procurando-se pelos nomes 
AdventureWorks2012 e/ou AdventureWorksDW2012, ou por meio do 
acesso direto da página do projeto 
(http://www.msftdbprodsamples.codeplex.com). Estes Databases são 
mantidos pela comunidade e também time de desenvolvimento da 
Microsoft. 
 
Os exemplos criados durante o livro podem ser baixados 
diretamente do meu site, acessando o link: 
http://www.diegonogare.net/Livro_BI_2014.zip 
 
Quero agradecer aos meus nobres amigos Thiago Zavaschi que 
escreveu o prefácio desta publicação, Luan Maciel Moreno que revisou 
tecnicamente os capítulos garantindo uma conclusão práticas dos 
exemplos e Renato Cairo por fazer a validação gramatical dos textos. 
Também quero deixar registrada a colaboração da minha esposa 
Laysa Nogare. Foi ela quem me incentivou e, mesmo esperando nossa 
primeira filha, permitiu que este livro saísse do zero e chegasse até você 
com uma sequência lógica de ideias e com uma forma de escrita mais 
adequada. Sem ela, este livro seria um grande post de blog! Obrigado, 
Laysa! 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 7 
Para uma corporação ter sucesso nos negócios, um dos fatores 
mais importantes é a tomada de decisões de maneira assertiva. Para tal, é 
necessário bom embasamento sobre o ritmo do negócio sobre diferentes 
visualizações. Este conhecimento é originado por meio de ferramentas 
para análise dos dados gerados pela própria empresa. Ferramentas para 
este fim são necessárias para análises poderem ocorrer sobre grandes 
volumes de dados, pois a análise manual neste caso pode levar a erros e 
decisões incorretas. 
Existem algumas “formas diferentes” de se fazer BI (Business 
Intelligence). Estas podem ser agrupadas em dois grandes grupos, um 
chamado de self-service BI e outro de BI corporativo. O presente livro é 
focado no que chamamos de BI corporativo, que serve principalmente 
para as decisões de negócio da corporação como um todo. 
Neste livro é apresentado de forma prática como lidar com as 
principais dificuldades iniciais que deverão ser enfrentadas (muitas das 
quais enfrentadas por mim quando comecei nesta área) por quem está se 
aventurando nesta jornada chamada de Business Intelligence (Inteligência 
de Negócio). 
O Diego começa fazendo uma introdução ao conceito principal de 
BI, bem como outros conceitos que irão lhe acompanhar no início, meio e 
final de seus projetos - ou seja, pelo resto da vida. Serão ferramentas, 
conceitos, siglas e estruturas novas... não desista! É comum acreditar que 
o volume de informações a serem aprendidas é grande. E de fato é, mas 
este livro deve te ajudar a dar os primeiros passos neste mundo de 
consultas multidimensionais, bases de dados desnormalizadas, relatórios, 
indicadores, etc. 
Conceitos são importantes - tão importantes quanto aprender a 
sair da inércia e ganhar tração quando se está estudando ou 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 8 
desenvolvendo um projeto desta natureza. Para isso, é apresentado de 
maneira bastante detalhada como ir “do banco relacional à tomada de 
decisão”. 
Um projeto de BI envolve diversas etapas. Começamos pela 
extração dos dados dos sistemas de produção, realizada por ferramentas 
que realizam o que chamamos de processo de ETL (Extract, Transformation 
and Load) a ser realizada pelo Integration Services (SSIS) no nosso caso, 
para constituirmos uma nova base conhecida como Data Warehouse (DW). 
Esta base é o que será usado de fato para alimentar nossa ferramenta 
analítica (SSAS) e posteriormente ser entregue de diferentes formas. Entre 
elas, podemos citar os relatórios através do Reporting Services (SSRS). 
Todas estas etapas estão retratadas na páginas seguintes. 
Tive a oportunidade de ler os originais do livro antes do público 
em geral e sei que ele pode ajudar nas tarefas simples, porém comuns 
nesse mundo. Obrigado pelo convite, meu amigo! 
Agora convido a todos a desfrutarem deste livro para aprender a 
como criar um BI na sua empresa. E que os desafios enfrentados se tornem 
mais amigáveis depois de lê-lo. :-) 
Thiago Zavaschi – Premier Field Engineer em Business Intelligence 
– Microsoft 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 9 
O Minha Vida (http://www.minhavida.com.br) é uma empresa com 
um grande propósito: melhorar a qualidade de vida da população. 
Queremos ser capazes de despertar nas pessoas o cuidado com a sua 
própria saúde. E quando falamos em saúde, nos referimos não só à 
prevenção ou ao tratamento de doenças, mas também a pequenas 
mudanças de hábitos capazes de transformar positivamente o dia a dia 
das pessoas. 
Queremos fazer diferença na vida das pessoas! 
Pensando nisso, nosso time de tecnologia criou o MVTech, uma 
iniciativa para disseminar conhecimento através de iniciativas de seus 
colaboradores, buscando o aprimoramento do mercado nacional. 
 
Com diversas ações como: artigos técnicos em blogs; matérias 
para portais; respostas em foruns de discussão, palestras em eventos, 
eventos presenciais e online, etc… afinal, somos apaixonados pelo que 
fazemos! por que não compartilhar nossa paixão?A criação do MVTech dá um passo adiante nesta linha de 
compartilhamento de conhecimento, passando a existir um canal oficial 
onde poderão ser encontrados grandes conteúdos. 
 
Seja bem vindo ao MVTech 
Alexandre Tarifa – Diretor de Tecnologia – Minha Vida 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 10 
APRESENTAÇÃO __________________________________________ 5 
PREFÁCIO _______________________________________________ 7 
MVTECH ________________________________________________ 9 
SUMÁRIO ______________________________________________ 10 
INTRODUÇÃO AO DATA WAREHOUSE _________________________ 14 
TABELAS DIMENSÕES _____________________________________ 21 
DIMENSÃO DE TEMPO ____________________________________ 25 
TABELAS FATOS __________________________________________ 27 
MEASURES _____________________________________________ 30 
INTRODUÇÃO BUSINESS INTELLIGENCE _______________________ 32 
IMPORTANDO DADOS COM SQL SERVER 2014 IMPORT AND EXPORT 
DATA __________________________________________________ 44 
IMPORTANDO DADOS COM SQL SERVER INTEGRATION SERVICES 2014
 ______________________________________________________ 59 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 11 
TIPOS DE CONEXÕES NO SSIS _______________________________ 72 
PROCESSANDO O CUBO ATRAVÉS DO SSIS _____________________ 85 
PUBLICANDO SEU PACOTE DO SSIS ___________________________ 94 
CRIANDO UM JOB PARA AUTOMATIZAR A EXECUÇÃO DO PACOTE __ 101 
CRIANDO SEU PRIMEIRO CUBO COM O SSAS __________________ 110 
COMO CRIAR UMA MEASURE CONVENCIONAL NO SSAS _________ 118 
COMO CRIAR UMA MEASURE CALCULADA NO SSAS _____________ 122 
MANIPULANDO MEMBROS E ATRIBUTOS DE DIMENSÕES ________ 128 
CRIANDO UMA HIERARQUIA DE MEMBROS DA DIMENSÃO _______ 139 
COMO CRIAR E USAR KPI NO SSAS __________________________ 148 
INTERNACIONALIZANDO SEU PROJETO COM O TRANSLATE _______ 156 
PROCESSANDO E PUBLICANDO O CUBO ______________________ 163 
PROCESSAMENTO DO SSAS, DIRETO AO PONTO! _______________ 173 
ACESSANDO O CUBO ATRAVÉS DO EXCEL 2013 ________________ 177 
REPORTING SERVICES CONFIGURATION MANAGER _____________ 186 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 12 
SHARED DATA SOURCE E SHAREDDATASET ____________________ 195 
CONTRAINDO E EXPANDINDO RESULTADOS, COMO HIERARQUIAS _ 202 
RELATÓRIO COM LINHAS ZEBRADAS _________________________ 220 
PUBLICANDO E ACESSANDO O RELATÓRIO ____________________ 228 
COMO INSERIR GAUGE NO RELATÓRIO _______________________ 234 
PARAMETRIZANDO VALOR MÁXIMO NO GAUGE _______________ 247 
COMO INSERIR 2 PONTEIROS NO GAUGE _____________________ 258 
DRILLDOWN NO REPORTING SERVICES _______________________ 266 
PERSONALIZANDO PALETA DE CORES DO GRÁFICO _____________ 280 
CONCLUSÃO ___________________________________________ 286 
 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 13 
 
 
 
 
 
 
 
 
 
 
 
CONCEITOS DE 
BUSINESS 
INTELLIGENCE E DATA 
WAREHOUSE 
 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 14 
Resumindo, o Data Warehouse é a reorganização dos dados 
estruturados de forma desnormalizada. Ele visa a melhoria contínua na 
entrega de informação ágil e precisa para os tomadores de decisões. O 
mais importante em um projeto de Data Warehouse é responder questões 
das áreas de negócios, sempre buscando o alinhamento com a proposta 
de valor da empresa. Diversas publicações acadêmicas denominam o Data 
Warehouse como um Sistema de Suporte a Decisão (e eu particularmente 
concordo com esta denominação), já que a modelagem do DW é usada 
com foco em agilizar a análise e permitir uma melhor tomada de decisão. 
É um desafio para profissionais de banco de dados relacional 
mudar a forma de pensar e possibilitar a criação do Data Warehouse. Visto 
que todos os estudos e casos de sucesso da utilização de dados 
normalizados, evitando redundância e criando os relacionamentos entre 
as tabelas, precisam ser modificados para modelar os dados de forma 
desnormalizada e redundante. 
Ao se trabalhar com desnormalização dos dados, não é a 
diminuição de espaço em disco utilizado que se busca, mas sim a 
velocidade na resposta. Quando os dados estão todos redundantes e 
calculados na modelagem do Data Warehouse, o espaço utilizado pelo 
armazenamento destes dados aumenta. Isso acontece porque os dados se 
repetem diversas vezes, caracterizando a desnormalização e melhorando 
a performance dos resultados das consultas. 
O custo com processamento, memória, I/O no disco, entre outros, 
tende a aumentar, mas o benefício de ter a resposta para os tomadores de 
decisão deve ser levado em conta para equilibrar a comparação do custo 
versus benefício. Na maioria dos casos o orçamento que a área de TI 
possui é um rateio do orçamento das áreas de negócios que consomem 
serviços da área de TI. Uma estratégia usada em diversas empresas é 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 15 
dividir os custos de hardware – provenientes da aquisição de novos 
servidores – entre a área de negócio solicitante e a área de TI. 
Ao se criar o DW, é preciso ter em mente quais são as questões 
que precisam ser respondidas para a área de negócios que solicitou o 
projeto. Possuir um relacionamento saudável com a área de negócios é 
vital para que se consiga modelar as Dimensões e Fatos, que serão 
explicados mais à frente, do projeto condizente com suas necessidades. É 
inútil desenvolver um projeto de BI, que na maioria das vezes é longo e 
custoso para a empresa, se ele não responder nenhuma das perguntas que 
precisam ser respondidas para a área de negócios e não auxilia as tomadas 
de decisões. 
A montagem do Data Warehouse geralmente consome mais 
tempo do que as outras tarefas que serão desenvolvidas. Pesquisas 
apontam que o ETL (Extraction, Transformation and Loading, ou Extração, 
Transformação e Carga) consome em média 70% do tempo do projeto. 
Este processo é responsável por extrair dados de uma ou diversas fontes 
(Extraction); transformar, limpar e adequar os dados destas fontes em algo 
útil para o projeto (Transformation); e por fim carregar esses dados 
transformados em uma outra base de dados (Loading). Por meio do 
processo de ETL, é possível conectar-se a diversas fontes de dados, seja 
SQL Server, Oracle, DB2, arquivos XML, TXT, CSV, etc. É possível também 
escrever em diversas fontes de dados, inclusive os citados acima. 
Como explicado na apresentação, vamos criar o ambiente de DW 
consumindo a base de dados Adventure Works, que é um SQL Server 
relacional. A modelagem do Data Warehouse, apesar de seguir um 
conceito totalmente diferente, utiliza o mesmo motor de dados relacional. 
O motor analítico só é utilizado quando se cria o projeto do Analysis 
Services, e este sim é um motor diferente do ambiente relacional. 
No desenho da arquitetura de uma Dimensão do Data Warehouse, 
existem duas modelagens que são amplamente estudadas e utilizadas: 
Snowflake Schema e Star Schema. Elas se diferem pela modelagem da 
estrutura do ambiente e desempenho no processamento. 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 16 
As duas modelagens serão explicadas com mais detalhes nos 
tópicos seguintes, mas explicando em linhas gerais o Star Schema é a 
modelagem na qual as dimensões se conectam diretamente à fato sem 
nenhuma sub-dimensão ou dimensão intermediária com os dados 
redundantes e as tabelas desnormalizadas. Já na modelagem Snowflake, 
quando observa-se a Fato e seus relacionamentos, é possível encontrar 
sub-dimensão ou dimensão intermediária entreas tabelas, e uma breve 
lembrança de modelagem normalizada. 
Quando se faz a modelagem do Data Warehouse, nem tudo que 
existe na tabela de origem da base de dados relacional deve ser carregada 
nas Dimensões. Uma informação muito importante para o ambiente 
relacional pode ser completamente desnecessária para o DW. Imagine um 
cenário no qual se analisa o poder de compra de Homens e Mulheres do 
ponto de vista de um determinado produto. Neste cenário pode-se levar 
em consideração informações como Bairro, Cidade, Estado, País e Sexo, 
mas são desnecessários os dados como E-Mail ou Telefone. 
As tabelas Dimensões armazenam os dados detalhados de um 
grupo específico, consumindo dados de uma ou mais tabelas. Sendo 
assim, a Dimensão de Cliente possui os dados relativos a clientes, 
enquanto a Dimensão de Pagamento possui os dados de pagamentos e 
assim por diante. Estas dimensões não precisam se comunicar entre si, 
podendo se comunicar exclusivamente com a tabela Fato. Nesta tabela 
Fato é onde se faz o relacionamento para encontrar um Cliente que fez 
um determinado Pagamento. 
Também é com base nas Dimensões que as Medidas (Measures) 
são derivadas ou desagrupadas (especializadas). Estas Medidas são 
agrupadores calculados com base em informações existentes na tabela 
Fato, mas não são criadas dentro do Data Warehouse. As medidas são 
criadas dentro da ferramenta que faz, de fato, a criação do ambiente OLAP 
(On Line Analytical Processing). Quando a modelagem da tabela Fato 
possui uma coluna em que será calculada e gerada uma Medida, são 
utilizadas outras colunas da mesma tupla (conjunto de colunas de uma 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 17 
mesma linha) para realizar a derivação e/ou desagrupamento desta 
Measure (medida), permitindo chegar no detalhe daquele agrupador. Para 
facilitar o entendimento, imagine um cenário onde uma tabela Fato possui 
os campos CodCliente, CodProduto e Valor. A coluna CodCliente faz 
relacionamento à tabela Dimensão de Clientes, a coluna CodProduto faz 
relacionamento à tabela Dimensão de Produtos e a coluna Valor é um 
dado redundante da tabela Dimensão de Produtos, justamente para 
permitir a criação da medida na tabela Fato. Quando se cria o cubo, por 
exemplo, no Analysis Services, esta coluna Valor da tabela Fato será 
calculada e somará todos os valores, chegando a um somatório de todas 
as vendas realizadas, independente do produto ou cliente. Esta medida 
poderá ser derivada e/ou desagrupada por uma das outras colunas da 
tupla, neste caso somente o Produto ou o Cliente; No primeiro momento, 
quando se analisa somente os valores de vendas, é apresentado todo o 
somatório da coluna Valor, sem nenhum filtro ou derivação. Para esta 
derivação, quando a visão analítica precisa consultar os dados detalhados 
por produtos, será apresentado quanto cada produto rentabilizou, 
dividindo o somatório inicial em quanto cada produto individual 
contribuiu para o todo. Se a visão analítica consulta os dados pela visão 
de clientes, será apresentado o valor que cada cliente pagou, dividindo o 
total em cada um dos clientes. Este é o processo de derivar e/ou 
desagrupar os dados de uma Measure. As medidas normalmente são 
baseadas nas informações contidas na tabela fato - sendo os 
consolidadores (agregadores) baseados em um campo que recebe uma 
operação de cálculo. Estas agregações padrões podem ser de SOMA, 
MÉDIA, VALOR MAXIMO, VALOR MÍNIMO, CONTAGEM DE LINHAS, 
PRIMEIRO VALOR, ULTIMO VALOR, entre outros. E é bom lembrar que as 
medidas são importantes para o projeto de BI, mas não são calculadas no 
momento da criação do Data Warehouse. São criadas na ferramenta de 
análise, como o SQL Server Analysis Services. 
 
Na tabela Fato o próprio nome já diz o que possui: fato! É nesta 
tabela que se faz o cruzamento de todas as chaves das dimensões que 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 18 
representam um Fato, único e verdadeiro, sobre a análise que precisa ser 
feita. A tabela Fato é construída, na maioria das vezes, somente com os 
campos-chave das tabelas Dimensão, para criar os relacionamentos, e com 
os campos que consistirão nas Measures que serão calculadas. Não é 
aconselhável adicionar colunas que não se enquadram nestas duas 
características: Chaves Estrangeiras de tabelas Dimensões e Colunas que 
serão Medidas. Colunas de texto como nome ou endereço não fazem 
sentido para uma tabela Fato, mas podem ser extremamente importantes 
para as dimensões. Para exemplificar, lembre de algum cenário com 
ambiente relacional; cada tabela Dimensão há uma Chave Primária 
(Primary Key – PK) e existem várias Dimensões no banco de dados. Na 
tabela Fato as colunas são Chaves Estrangeiras (Foreign Key – FK) 
referenciando as colunas chave das Dimensões, criando uma modelagem 
“relacional”. A Fato consiste nos dados de relacionamento entre todas as 
Dimensões, fazendo com que seu tamanho aumente se comparado ao 
mesmo ambiente em uma modelagem relacional, com os dados 
normalizados. Como visto anteriormente, a desnormalização de tabela 
aumenta o tamanho armazenado em disco, mas por outro lado nos 
permite uma resposta muito mais rápida e apropriada para os ambientes 
de Data Warehouse. 
Para melhor exemplificar a diferença entre a modelagem 
Relacional e o Data Warehouse, acompanhe as figuras abaixo. 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 19 
 
Ambiente relacional, com a tabela SalesPerson e todos seus 
relacionamentos, do banco de dados AdventureWorks2012 
Veja que na imagem acima, no ambiente relacional, as tabelas 
estão normalizadas evitando redundância de dados e garantindo 
integridade referencial por meio de chaves primárias (PK) e estrangeiras 
(FK). Também é possível observar que a modelagem permite que tabelas 
se relacionem com quantas tabelas forem necessárias por causa da 
normalização. 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 20 
 
Ambiente de Data Warehouse, com a tabela fato FactFinance e 
seus relacionamentos com as dimensões, do banco de dados 
AdventureWorks2012DW 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 21 
Já nesta modelagem de Data Warehouse, existe uma tabela central 
conhecida como Tabela Fato, que possui relacionamento com outras 
tabelas conhecidas como Dimensões. É importante reparar que nesta 
modelagem a tabela Fato possui relacionamento com todas as Dimensões, 
mas nenhuma dimensão se comunica diretamente com outra, a não ser 
por meio da tabela Fato. Os próximos tópicos explicam em detalhes as 
Dimensões e suas as modelagens. 
Olhando e comparando a modelagem Relacional e Data 
Warehouse, pode-se observar que ambas estão no mesmo motor de 
banco de dados, estruturalmente como um OLTP (Online Transaction 
Processing). Se as duas modelagens estão nesta estrutura, por que 
separar? É neste momento que a modelagem e o propósito faz toda a 
diferença. As dimensões do DW são, por natureza, desnormalizadas e 
largas. Toda hierarquia de relacionamentos e integridade de dados que se 
apresenta no modelo relacional é repensado. Nas dimensões, os dados de 
uma mesma categoria devem ser estruturados para representar a entidade 
como um todo, por categoria entenda o grupo contextual no qual aquele 
tipo de informação se encaixa por exemplo: Clientes; Produtos; 
Pagamentos; etc. 
Em uma modelagem relacional, atendendo à 3ª forma normal, 
pode-se ter uma tabela para Logradouro (que possui um relacionamento 
para Cidade e que por sua vez se relaciona com uma outra tabela para 
localizar o Estado). Aprofundando um poucomais, a tabela de Fornecedor 
se relaciona à Logradouro, assim como a tabela Cliente. Quando se modela 
uma Dimensão, é pensado no problema da área de negócios solicitante e 
então os dados são remodelados para atender essa demanda. Olhando 
este mesmo exemplo apresentado a pouco, somente duas tabelas 
dimensões seriam modeladas, uma para Fornecedor e outra para Cliente 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 22 
e estas tabelas teriam os campos Logradouro, Cidade e Estado, mesmo 
que estes dados se repetissem várias vezes para um mesmo Fornecedor 
ou Cliente. Este processo de desnormalização é enraizado nas tabelas 
dimensões. 
 
Modelagem normalizada entre as tabelas Cliente, Fornecedor, 
Logradouro, Cidade e Estado. Ambiente de OLTP 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 23 
 
Modelagem desnormalizada para criação das dimensões de 
Fornecedor e Cliente. Ambiente de DW 
 
As tabelas Dimensões fornecem os campos–chave, que serão 
utilizados para popular a tabela Fato, e os campos que permitirão derivar 
as medidas. Cada tupla da dimensão deve possuir uma chave única, mas 
existem algumas situações onde a tabela original não possui esta chave 
única. Para solucionar este problema, uma técnica chamada Chave 
Substituta (Surrogate Key) deve ser usada, garantindo a maior 
granularidade possível. Por padrão, como a tabela está desnormalizada, a 
granularidade encontrada é entre média e baixa, dificultando a localização 
de dados únicos. 
Se a tabela Dimensão é desnormalizada, quer dizer que não se 
pode criar uma modelagem para Data Warehouse utilizando tabelas 
Dimensões normalizadas? Sim, apesar de não ser tão comum encontrar no 
mercado, é possível trabalhar com dados normalizados no DW. Essa 
técnica existe e é utilizada em alguns cenários. Conceitualmente é 
chamada de Snowflake Schema e será apresentada com detalhes nos 
próximos tópicos. Uma característica forte desta modelagem é construir 
Dimensões que possuem Sub-Dimensões ou relacionamento com outras 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 24 
Dimensões antes de se comunicar com a tabela Fato, se parecendo com 
uma modelagem normalizada. Diferentemente desta modelagem 
normalizada é a amplamente utilizada e estudada Star Schema, que é 
composta por Dimensões específicas que agregam uma ou mais tabelas 
para um segmento de dados (Clientes; Produtos; etc). Desnormalizando os 
dados e contemplando mais colunas dentro da tabela Dimensão, criando 
um único relacionamento entre a tabela Dimensão e a tabela Fato, sem 
existir Sub-Dimensões ou relacionamento direto entre as Dimensões. É 
importante ressaltar que, independente do modelo de criação do seu Data 
Warehouse, seja Star ou Snowflake Schema, os resultados obtidos devem 
obrigatoriamente ser os mesmos. O que diferencia estas modelagens são 
os benefícios existentes na normalização/desnormalização, sendo que os 
dados desnormalizados são mais simples para entendimento da área de 
negócios solicitante - uma vez que não é necessário criar relacionamentos 
entre outras dimensões para conseguir ter os retornos necessários. 
Lembre do exemplo do logradouro de Cliente e Fornecedor, apresentado 
alguns parágrafos acima. Outra grande diferença destas técnicas é que em 
uma modelagem Star Schema não é possível criar um relacionamento 1-
para-muitos, já em um cenário normalizado (Snowflake Schema) é possível 
conseguir este tipo de relacionamento. 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 25 
Toda tabela Fato possui ao menos uma análise feita com base em 
intervalos de tempo, seja data de cadastro de cliente, data de venda do 
produto, data de pedido ao fornecedor, entre outros. Estas datas 
armazenadas podem ocupar um espaço significativo dentro das 
Dimensões e da Fato, visto que um campo do tipo Datetime, que armazena 
os dados de data e hora com 3 casas de milissegundos, ocupa 8 bytes de 
tamanho em cada registro. Fazendo um cálculo rápido, em 1 milhão de 
registros com uma coluna do tipo Datetime, são mais de 7 MB 
armazenados no banco de dados. 
Para saber o tamanho de alguma expressão em bytes, utilize o 
comando DATALENGTH, passando a expressão com parâmetro, como 
exemplificado abaixo. 
 
Tamanho do DataTime: 
select DATALENGTH(getdate()); 
 
Uma técnica amplamente usada é criar uma tabela Dimensão que 
armazena diversas colunas calculadas com base em uma coluna de Data, 
com um intervalo que engloba desde os primórdios dos dados que serão 
analisados até a data presente ou uma data futura, criando uma ocorrência 
única para cada dia. 
Colunas calculadas como: Dia da Semana, Semana do Mês, 
Semana do Ano, Trimestre, Nome do Mês, Mês do Ano, se são informações 
de calendário convencional (iniciando em 01/Janeiro e terminando em 
31/Dezembro) ou se é calendário fiscal (geralmente utilizado por 
empresas Americanas, começando no dia 01/Julho e terminando em 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 26 
30/Junho) podem ser armazenadas evitando o cálculo na hora do 
processamento ou consulta da informação. 
Uma PK sequencial é criada nesta tabela e permite que a tabela 
Dimensão de Tempo faça um relacionamento com a Fato. Ao invés de 
armazenar um campo do tipo Datetime na tabela Fato, é armazenado um 
campo do tipo inteiro que faz o relacionamento com a Dimensão, mesmo 
conceito de PK e FK já explicado anteriormente. Uma vez que a tabela 
Dimensão de Tempo foi criada especificamente para trabalhar com as 
Datas, o processo de carga das outras Dimensões também pode ser 
alterado para usufruir deste benefício, substituindo os campos de 
Datetime por essa coluna-chave da Dimensão de Tempo, sem criar o 
relacionamento físico entre as tabelas. O único relacionamento entre esta 
dimensão e a Dimensão de Tempo continua sendo a tabela Fato. 
Imagine que sua empresa iniciou as atividades em 
01/Janeiro/2010. Não é necessário que você crie a Dimensão de Tempo 
com dados anteriores à esta data. Isso armazenaria informação 
desnecessária (e inútil, neste caso), deixando seu Data Warehouse com 
mais informação do que precisa. Com essa informação, já sabemos qual é 
a data mínima que será armazenada na Dimensão de Tempo e agora nos 
resta definir qual é a data final que estará nesta tabela. Na teoria, nenhum 
cadastro, venda ou qualquer outra interação com seus dados será 
realizada em uma data futura. Isso nos dá a condição de inferir que a data 
máxima desta Dimensão de Tempo será hoje. Limitando os dados a hoje, 
obrigatoriamente toda vez que um novo dia surge, deve-se incluir os 
dados deste dia nesta dimensão, então os cadastros ou vendas deste dia 
terão um correspondente na Dimensão de Tempo. 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 27 
Toda informação sumarizada na tabela Fato deve responder uma 
necessidade de negócios. Da mesma forma que os dados estão 
redundantes nas Dimensões, eles também o estarão na Fato. A tabela fica 
grande por si só, então deve-se evitar o armazenamento de dados 
desnecessários que só ocuparão espaço em disco e não ajudarão na 
tomada de decisão. Os dados armazenados dentro da Fato são as 
combinações das chaves estrangeiras da Dimensões e os valores a serem 
calculados nas Measures. Por prática de mercado, a chave primária da Fato 
é o conjunto de colunas dos relacionamentos das Dimensões com a Fato, 
gerando uma Chave Composta por todas estas colunas, constituindo um 
conjunto único de dados. 
O próprio nome desta tabela já diz o que ela representa, um Fato. 
Em miúdos, o que vem a ser um fato? Quandose junta os dados de todas 
as dimensões com os valores das measures, pode-se dizer que tem um 
fato. Por exemplo, um fato é a junção dos códigos de Cliente, Produto, 
Fornecedor, Região, Loja, etc. A junção de cada um deste códigos pode 
responder a questões como, por exemplo, se “o cliente Diego Nogare 
comprou o produto Treinamento de BI do fornecedor NGR Solutions na 
região Sudeste na loja OnLine”. Este cruzamento de dados é único, 
consistindo num fato. Qualquer alteração neste conjunto de códigos, que 
depois podem coletar os dados de detalhes nas dimensões, representa 
uma informação única, real e verdadeira, sobre o que está se analisando 
para a área de negócios. Volto à bater na tecla: o projeto de Business 
Intelligence deve ser totalmente focado na área de negócios e deve 
responder a questões que ajudarão as áreas a tomar melhores decisões. 
Veja alguns exemplos de perguntas que as áreas de negócios pedem, e 
vamos identificar como separar itens que são Dimensões e outros que 
serão Measures, para por fim, criar a Fato contendo todos estes dados. 
1. Total de Faturamento por equipe de Vendas 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 28 
2. Lucro de uma linha de produto 
3. Quantidade de Pedidos por Produto 
4. Custo do Produto 
5. Total de Faturamento por Cliente 
6. Lucro por Região 
7. Total de Faturamento por Cidade 
 
Olhando estas perguntas, uma a uma, é possível identificar as 
necessidades da área solicitante e, com isso, montar a estrutura que será 
a base para o sistema de suporte à tomada de decisão. Na primeira 
pergunta, Total de Faturamento é uma measure, e Equipe de Vendas é uma 
Dimensão. Reparem que é possível dividir o Faturamento total de todas as 
vendas por equipes de vendas, mas não o contrário. Na segunda pergunta, 
a measure é o Lucro e a dimensão é a Linha de Produto. Na terceira, 
Quantidade de Pedidos é a measure e Produto é a dimensão. Reparem que 
esta dimensão é a mesma entidade da segunda pergunta, então neste 
caso você deve garantir que ambas respostas sejam atendidas pela 
estrutura da dimensão de produtos. Na questão do Custo do Produto é o 
mesmo cenário, compartilhando da mesma entidade da dimensão, e uma 
nova measure é acrescida. Já em Total de Faturamento por Cliente, a 
measure de Total de Faturamento (anteriormente respondida por Equipe 
de Vendas) já existe e agora precisa ser especializada por Cliente. Para isso, 
basta adicionar a nova dimensão. Lucro por Região é o mesmo caso da 
pergunta anterior, em que se compartilha a measure mas não a dimensão. 
Já no caso da última pergunta (Total de Faturamento por Cidade), ambas 
respostas já estão na modelagem de acordo com as perguntas anteriores, 
basta garantir que a entidade Região contenha a informação de Cidade 
que a área de negócios precisa. 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 29 
O resultado seria assim: 
Dimensões: Equipe | Produto | Cliente e Região 
Measures: Total de Faturamento | Lucro | Quantidade de Vendas 
e Custo 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 30 
Measures são os valores calculados e armazenados dentro da Fato, 
que serão desagrupados de acordo com as Dimensões, para especializar 
uma informação. Existem diversos cálculos-padrão que são passíveis de 
serem utilizados nas measures. Os mais comuns, como já citados, são 
SOMA, MÉDIA, VALOR MAXIMO, VALOR MÍNIMO, CONTAGEM DE 
LINHAS, PRIMEIRO VALOR, ULTIMO VALOR. Isso não quer dizer que não 
se pode calcular nenhuma measure específica para sua tomada de decisão. 
Os cálculos específicos como Lucro, por exemplo, podem ser calculado 
com base em uma fórmula que soma os custos de produção do item, mais 
os impostos, e subtrai do valor de venda, gerando o resultado esperado. 
Vale lembrar, mais uma vez, que este processo é realizado dentro do SQL 
Server Analysis Services e não dentro do Data Warehouse. Neste momento, 
o importante na modelagem é garantir que os dados necessários para 
realizar os cálculos das medidas, seja padrão ou específico, estejam 
contemplados nas colunas existentes na tabela Fato e que tenham as 
correspondências nas Dimensões. 
As measures podem ser divididas em grupos, de acordo com o 
grau de abrangência que podem ter nas especializações das informações. 
Estes grupos são chamados de Additive, Semi-Additive e Non-Additive. 
 
O grupo Additive consiste em uma Measure que pode ser 
segmentada por todas as dimensões existentes no projeto. Isso significa 
que todas as dimensões podem derivar o valor da Measure, deixando o 
resultado bem especializado e melhorando ao máximo a tomada de 
decisão. Um exemplo é o Total de Vendas, que pode ser dividido pelas 
dimensões Cliente, Fornecedor, Produto, Loja, Região, etc. 
Já o grupo Semi-Additive permite a derivação do dado por 
algumas dimensões, mas não por todas. Se uma dimensão não tem 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 31 
“habilidade” para derivar aquele dado, este já caracteriza uma measure 
Semi-Additive. Para exemplificar, imagine uma measure que representa o 
Valor em Estoque. Esta informação pode ser dividida por Produto, Loja, 
Fornecedor, Região, mas não pode ser especializada por Cliente. Não é 
possível saber qual cliente irá comprar algum produto, para saber o 
quanto tem em estoque daquele item. 
Por fim o grupo Non-Additive é praticamente um tipo de measure 
que não pode ser especializado por nenhuma dimensão. Este grupo 
peculiar, com base nas definições da literatura, nem deve ser considerado 
uma measure, visto que não se pode derivar ou especializar uma dimensão 
com base nos seus valores. 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 32 
Quem nunca viu nada de BI com o SQL Server pode se sentir um 
pouco perdido com os exemplos práticos de mais à frente, mas esta parte 
introdutória ajudará a dar uma visão interessante e mostrará todo o 
caminho para entender como implantar BI com essa poderosa ferramenta 
da Microsoft. 
Para nivelamento do conhecimento, é importante saber separar os 
“produtos” dentro do SQL Server. Estes produtos são tecnologias dentro 
da plataforma de Business Intelligence que fazem trabalhos diferentes 
umas das outras, mas estão todas interligadas. Então vamos lá: 
Database Engine: o mecanismo dentro do SQL Server responsável 
pelo armazenamento relacional dos dados, sendo o motor OLTP (On-Line 
Transaction Processing). Nesta parte do produto é que se criam as tabelas, 
índices, procedures, functions, enfim, todos os dados transacionais e do 
Data Warehouse, seja normalizado ou desnormalizado. É o que todos 
chamam de banco de dados. 
Analysis Services (SSAS – SQL Server Analysis Services): a 
tecnologia dentro do SQL Server que permite criar os cubos, dimensões e 
tabelas fatos dos dados a serem analisados. Aqui ficam os dados 
redundantes, com um monte de cruzamento já calculado para você não 
precisar fazer JOINS em tempo de execução e, com isso, devolver os dados 
rapidamente para quem utiliza a plataforma de BI. A grosso modo, quando 
fala-se em BI, geralmente está se referindo diretamente a esta ferramenta. 
Integration Services (SSIS – SQL Server Integration Services): Esse 
componente nos permite conectar um lugar qualquer de origem e extrair 
seus dados, podendo trabalhar em cima deles para “arrumar” alguma 
estrutura que não esteja de acordo com o que precisamos e depois 
podemos carregar (salvar) essas informações em algum outro destino. 
Geralmente é usado para ler informações de origens como arquivos TXT, 
Do Banco de Dados Relacional à Tomada de DecisãoMVTech · 33 
XML ou outros bancos de dados e armazenar estas informações no SQL 
Server que servirá como base para o Data Warehouse. Em um segundo 
momento, servirá também para rodar o cubo e ter todas as informações 
centralizadas no BI. 
Por último temos o Reporting Services (SSRS – SQL Server 
Reporting Services): o serviço de gerenciamento de relatórios do SQL 
Server que permite criar e apresentar para os usuários relatórios ricos e 
completos de informações reais que estão armazenadas no SQL Server ou 
Analysis Services. A criação de relatórios com o Reporting Services é bem 
tranquila, garantindo uma produtividade muito grande para quem utiliza 
esse gerenciador. 
 
Agora vamos relembrar algumas terminologias e formas de 
trabalho. 
Modelagem Multidimensional: Quando estudamos SQL Server, 
aprendemos a criar tabelas com alguns níveis de normalização com o 
intuito de deixar nosso banco de dados sem informações 
redundantes desnecessária e com menor quantidade de armazenamento 
possível, diminuindo quantidade de espaço em disco utilizado. Já com BI 
temos que pensar exatamente no contrário, em dados desnormalizados. 
Isso porque temos que colocar os dados em tabelas Fatos e em 
Dimensões! 
 
Tabelas Fato: São os dados que extraímos do banco de dados e 
agrupamos por assuntos específicos das Dimensões e Measures. Para 
ilustrar vamos imaginar um processo de venda de produto. Vamos usar 
Livros, mas poderia ser qualquer outra estrutura. 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 34 
 
Modelagem Normalizada 
 
Essa representação mostra um diagrama de dados relacionais com 
as tabelas normalizadas e evitando redundância de dados. Quando vamos 
atuar com BI e precisamos criar as Tabelas Fato, separamos esses dados 
pertinentes à informações agrupadas por entidades, como Vendas e 
Clientes. Pode haver outras tabelas Fato em um mesmo cubo, vai 
depender do que você precisar. 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 35 
 
 
Ítens passíveis de cálculo da Tabela Fato 
 
Na tabela Fato_Venda, deve-se consultar todas as Dimensões cujas 
informações precisam ser coletadas e escrever nessa Fato. Os dados que 
alimentam a Dimensão e depois, por sua vez, a Fato podem estar em outro 
banco e até outro servidor. Não importa, porque o importante são os 
dados que estarão agrupados pela entidade Vendas, neste exemplo acima. 
Estas informações serão processadas e armazenadas na nova estrutura de 
Data Warehouse. Veja que algumas informações vêm de origens diferentes 
e outras são simplesmente calculadas para atender a necessidade da 
aplicação da área de negócios. 
 
Tabelas Dimensões: São tabelas com informações mais 
detalhadas que complementam as tabelas Fatos e geram uma (ou várias) 
tabelas para armazenar esses novos dados redundantes. As dimensões nos 
possibilitam trabalhar com dados estatísticos de uma determinada 
informação que precisamos analisar. Estes dados serão calculados na Fato 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 36 
como sendo Measures. Seguindo o exemplo anterior (Vendas de Livros) 
conseguimos atrelar dimensão (ou dimensões) a uma tabela fato de Livros 
para saber onde um determinado livro é mais vendido ou qual é o gênero 
que mais agrada a uma certa faixa etária. Veja a imagem abaixo para 
exemplificar esse cenário: 
 
Cubo: É um repositório onde todas as informações poderão ser 
acessadas de forma centralizada e direta. Nos cubos, o cliente já terá todas 
os dados consolidados e preparados para lhe entregar a informação quase 
que imediatamente. Entendendo o fato de que os usuários de um sistema 
de BI são os gerentes e diretores de empresas, a informação para uma 
tomada de decisão deve ser apresentada bem rápida, auxiliando os 
usuários a fazerem o trabalho deles rapidamente! 
 
 
É uma explicação elucidativa somente para facilitar o 
entendimento, já que dentro do Analysis Services os dados não ficam 
armazenados desta forma. Para facilitar o entendimento, imaginem um 
projeto de BI para cruzar informações sobre vendas de roupas com cubo 
de apenas 3 dimensões, sendo uma relacionada à produtos, outra a cores 
e outra a tamanhos. 
Com as três dimensões se cruzando, é possível saber quanto cada 
peça de roupa vende, em qual cor e qual tamanho. Levando em 
consideração cada dimensão, pense hipoteticamente na dimensão de 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 37 
Tamanho como sendo as informações armazenadas em Colunas. A 
dimensão de Cor como sendo as armazenadas em Linhas e a dimensão de 
Tamanho armazenadas nas profundidades. Cada uma destas células 
representa um valor que irá compor a Measure para o cálculo a ser feito. 
Neste caso, Quantidade de Vendas. 
 
 
Armazenamento dos dados na dimensão de Tamanho 
 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 38 
 
Armazenamento dos dados na dimensão de Cor 
 
 
 
Armazenamento dos dados na dimensão de Produto 
 
O cruzamento desta matriz representa a informação mais 
especializada possível, visto que é a junção de todas as dimensões 
existentes. 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 39 
 
 
Matriz do cruzamento de todas as dimensões 
 
Agora, veja esta representação com a Quantidade de Vendas, em 
cada uma das células preenchidas. O somatório de todas as células dá o 
retorno total de vendas, representando a informação mais ampla e menos 
específica possível. 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 40 
 
 
Cubo com a matriz das measures preenchidas 
 
Seguindo a mesma lógica, se for preciso retornar valor de um 
membro qualquer, sem cruzamento com outras dimensões, a 
representação faz uma agregação para aquele membro, neste exemplo 
somando todas as células envolvidas. 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 41 
 
 
Agregação de soma do membro “Tamanho G” – Total 49 
 
 
 
Agregação de soma do membro “Cor Azul” – Total 55 
 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 42 
 
 
Agregação de soma do membro “Produto Bermuda” – Total 37 
 
Um aplicativo muito utilizado para ler os dados destes cubos OLAP 
(On-line Analytical Processing) é o Microsoft Office Excel utilizando o 
recurso de PivotTable e agora também podendo utilizar o PowerPivot. 
Basicamente os dois recursos no Excel fazem essa interface entre o cubo 
OLAP, mas o PowerPivot com o Excel 2013 tornou muito rápido criar 
relatórios e entregar a informação aos gerentes e diretores. 
 
 
 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 43 
 
 
 
 
 
 
 
 
 
 
 
SQL SERVER 
INTEGRATION 
SERVICES 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 44 
 
 
 
Que tal começar a fazer uma movimentação de dados com a 
ferramenta de Import and Export Data, para começar a se familiarizar com 
as possibilidades existentes para seus projetos de Business Intelligence? 
Esta ferramenta é uma versão inicial e com menos recursos que o SQL 
Server Integration Services. 
 
Vou mostrar uma das formas de utilizar o SSIS (SQL Server 
Integration Services) para importar dados para o SQL Server 2014. A ideia 
é popular uma tabela já existente com base em um arquivo de texto 
simples. Utilizarei o Import and Export Data que é uma ferramenta que já 
acompanha o SQL Server e não nos obriga a criar um projeto no SSDT (SQL 
Server Data Tools)que é o Visual Studio com os template para se trabalhar 
com BI. O Import and Export Data é muito mais limitado que o SSDT, mas 
para esse propósito é suficiente. 
 
Para gerar a massa de dados que vou utilizar para explicar, acessei 
o site da Wikipedia e coletei os nomes e períodos de mandato de todos 
os Presidentes da República do Brasil 
(https://pt.wikipedia.org/wiki/Anexo:Lista_de_presidentes_do_Brasil). 
Para armazenar estes dados será necessário uma tabela de nomes 
e, nesta tabela, serão carregados nomes e datas. 
Estes nomes foram salvos em um arquivo TXT, cujo nome é 
Presidentes.txt e que você encontra no arquivo .Zip com os fontes do livro. 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 45 
Para exemplificar o processo de importar esses dados para o SQL 
Server, deve-se criar uma tabela para armazenar os registros. 
 
CREATE DATABASE dbNomes 
GO 
 
USE dbNomes 
GO 
 
CREATE TABLE tbPresidentes (id SMALLINT IDENTITY(1,1) 
, nome VARCHAR(30) not null 
, inicio DATE 
, termino DATE) 
GO 
 
Depois de criada a tabela, é hora de abrir o aplicativo SQL Server 
2014 Import and Export Data (64-bit), que fica dentro da pasta do 
Microsoft SQL Server 2014. Veja no caminho abaixo: 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 46 
 
 
 
A primeira tela que se abre é uma tela de boas-vindas. Ela não 
realiza nenhuma atividade especial no processo. É só avançar sem nenhum 
problema. 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 47 
 
 
A segunda tela é importante. É aqui que selecionamos a origem 
dos nossos dados. Como vamos importar informações de um arquivo TXT, 
no primeiro combo (no topo da tela) a origem selecionada deve ser Flat 
File Source. Neste combo existem outras diversas origem de dados, mas 
neste caso específico será o Flat File. Após escolher essa opção, os campos 
da tela se adaptam a ela e solicitam informações sobre o arquivo. O botão 
Browse nos permite escolher o arquivo utilizado para importar os dados. 
Selecionamos o arquivo Presidentes.txt e algumas informações relativas a 
ele são preenchidas. No menu lateral à esquerda existem quatro opções. 
Se quiser visualizar os dados que existem no arquivo, vá até a opção 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 48 
“Preview”. Reparem que o nome da coluna ficou com o nome do primeiro 
Presidente da República e isso precisa ser corrigido. Volte à opção General 
no menu da esquerda e procure uma caixa de seleção escrito Column 
names in the first data row e desmarque esta caixa. Volte à opção preview 
e então o nome de Deodoro da Fonseca não está mais na coluna, mas 
agora a coluna está com a nomenclatura padrão, com os nomes de 
Column 0, Column 1, e assim por diante. Para alterar esta nomenclatura, 
vá até a opção “Advanced”, selecione a Column 0 e altere a propriedade 
Name de Column 0 para Codigo. Aproveite e altere a propriedade 
DataType de string (DT_STR) para four-byte signed integer (DT_I4). 
 
Para aplicar outras conversões entre os DataTypes do SQL Server 
para o Integration Services, pode conferir nesta tabela a lista de 
correspondências. 
http://technet.microsoft.com/pt-br/library/ms141036.aspx 
 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 49 
 
 
Aproveite e altere também as outras colunas, mudando a 
propriedade Name e DataType, deixando desta forma: 
Column 1  Name: Nome | DataType: string (DT_STR) 
Column 2  Name: Inicio | DataType: database date (DT_DATE) 
Column 3  Name: Termino | DataType: database date (DT_DATE) 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 50 
Depois de alterar estas propriedades, vá até a opção Preview e veja 
as colunas renomeadas. 
Avance para o próximo passo, clicando em Next. 
 
A terceira tela utilizada é a tela referente ao destino dos dados. 
Neste caso, como vamos colocar os dados do arquivo no SQL Server 2014, 
deve-se selecionar o destino como SQL Server Native Client 11.0, informar 
a instância e realizar a autenticação no servidor. Após a autenticação deve-
se escolher o Database que vai armazenar os dados, neste caso, dbNomes. 
Após preencher esses campos, deve avançar para a próxima tela clicando 
em Next. 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 51 
 
 
 
A tela seguinte permite escolher em qual tabela do banco de 
dados os dados do arquivo serão armazenados. Por padrão, ele sugere 
criar uma tabela nova com o nome do arquivo, mas isso não é obrigatório. 
Veja que neste caso vamos preencher a tabela que criamos lá em cima, a 
tbPresidentes. Para informar a essa ferramenta qual coluna do arquivo irá 
popular qual coluna da tabela, deve-se clicar no botão Edit Mappings na 
parte inferior da tela. 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 52 
Na edição de colunas, reparem que as colunas Source 
e Destination foram ligadas automaticamente. Isso acontece por causa dos 
nomes serem os mesmos na origem e no destino. 
 
 
 
 
Porém, o campo Codigo da tabela foi definido com a propriedade 
IDENTITY, que faz um auto-incremento numérico, logo não poderá ser 
preenchido pelos dados da origem. Neste caso, será necessário alterar a 
informação no Destination da coluna Codigo para <ignore>. Assim, os 
dados não serão lidos da origem para escrever no destino. 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 53 
 
 
 
Clica-se em OK na tela de edição de mapeamento das colunas, e 
Next na tela onde liga-se a origem ao destino. 
 
Após a escolha da tabela de destino e a coluna que receberá os 
dados do arquivo, a ferramenta analisa as ligações informadas. Se 
estiverem todas com a validação verde, avançamos para a tela seguinte, 
clicando em Next. 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 54 
 
 
Neste passo, a ferramenta pergunta se quer executar o processo 
imediatamente ou se quer armazenar para realizações futuras. No nosso 
caso, vamos apenas popular esta tabela agora, então não teremos 
problema em mandar executar agora e não salvar essa configuração. Para 
isso, marque a opção Run immediately e desmarque a opção Save SSIS 
Package. Novamente, avance clicando em Next. 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 55 
 
 
Este é o penúltimo passo. Ele mostra um resumo do que será 
realizado e solicita que clique em Finish para efetivamente realizar o 
processo. 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 56 
 
 
Ao clicar em finalizar, o processo começa a ser executado. Se 
estiver tudo configurado certo, não haverá problema e uma tela parecida 
com essa abaixo será apresentada. Veja que todos os passos foram 
executados com sucesso. 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 57 
 
 
Agora, para provar a movimentação dos dados da origem para o 
destino, pode-se fazer um SELECT simples e verificar se todos os 36 
registros foram incluídos. 
 
Este é o código para a validação: 
SELECT id, nome, inicio, termino from tbPresidentes 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 58 
 
 
Parabéns, com este exemplo você realizou sua primeira 
movimentação de dados com o SQL Server 2014! 
Nos próximos passos você irá aprender outras atividades 
interessantes para realizar nos seus projetos de Business Intelligence. 
 
 
Do Banco de Dados Relacional àTomada de Decisão 
 
 
MVTech · 59 
Que tal agora fazer o mesmo trabalho de importação dos dados, 
mas utilizando o SQL Server Integration Services ao invés do SQL Server 
2014 Import and Export Data? 
Desta vez, o aplicativo utilizado será o SSDT (SQL Server Data 
Tools), que nada mais é que o Shell do Visual Studio 2012 com os 
templates de projetos para se trabalhar com BI. Na versão 2014 do SQL 
Server, é necessário baixar e instalar o Visual Studio separadamente. Para 
fazer o download, acesse o link http://www.microsoft.com/en-
us/download/details.aspx?id=36843. 
Após o download e a instalação, é hora de abrir o Visual Studio 
2012, que está na a pasta Microsoft Visual Studio 2012. Veja no caminho 
abaixo: 
 
 
Após o SSDT carregar, acesse o menu File > New > Project, para 
criar um projeto novo. A tela com os templates e tipos de projetos é 
apresentada. As possibilidades de se trabalhar com Business Intelligence 
cobre os três tipos de projetos, Analysis Services, Integration Services e 
Reporting Services. Selecione o Integration Services Project, informe um 
nome e o local onde irá salvar. 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 60 
 
 
Após preencher os dados, clique em OK e aguarde alguns 
instantes. 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 61 
Ao iniciar o projeto, cinco abas superiores são apresentadas na 
área de desenvolvimento do processo: Control Flow, Data 
Flow, Parameters, Event Handlers e Package Explorer. Não vou falar sobre 
as abas que não utilizaremos neste exemplo, vou falar apenas da Control 
Flow e Data Flow. A aba Control Flow é responsável por criar as execuções 
do pacote que não são necessariamente relacionadas à ETL (Extração, 
Transformação e Carga). É dentro desta área que são colocadas as tarefas 
administrativas, como por exemplo, a Data Flow Task, que é uma tarefa 
especial e possui sua própria aba superior. O Control Flow pode possuir 
uma ou mais destas tarefas (Data Flows Task), que são os responsáveis 
reais por realizar o ETL ou outras tarefas, como acessar uma pasta FTP, 
criar um loop, enviar um e-mail, entre outros. 
Já na tarefa Data Flow informamos qual é a origem e o destino dos 
dados que serão processados. Veja as abas superiores e o item do Data 
Flow na Toolbox (à esquerda). Ele será arrastado para dentro do Control 
Flow e irá controlar o processo. 
 
 
 
Após arrastar o item Data Flow Task para a área do Control Flow, 
dê dois cliques nesta tarefa e vamos analisar as mudanças da toolbox desta 
nova aba. Repare que os itens do toolbox foram modificados para se 
adequar à aba Data Flow. As sessões da toolbox são Favorites (suas tarefas 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 62 
favoritas), Common (tarefas comuns usadas nos projetos), Other 
Transforms (são as outras tarefas de transformações, que não estão na 
sessão Common), Other Sources (são as outras tarefas de origens que não 
estão na sessão Favorites) e Other Destinations (são as outras tarefas de 
destino que não estão na sessão Favorites). Os dois grupos que 
obrigatoriamente sempre serão usados em um projeto de ETL com SSIS 
serão os de Origem (Sources) e de Destino (Destinations). O grupo de 
transformação (Data Flow Transformations) pode ser usado ou não, vai 
depender da sua necessidade. 
 
 
 
Bom, sabendo que os itens mínimos para se criar um fluxo 
no SSIS são Origem e Destino, vamos adicionar esses itens e fazer as 
conexões. A origem será um arquivo TXT. Para isso, vou adicionar o Flat 
File Source. Encontre esse objeto na toolbox à esquerda e arraste para a 
área de design. 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 63 
 
 
Depois, como o destino será um banco de dados SQL Server, deve-
se adicionar um ADO NET Destination por meio do mesmo processo. 
Encontre o objeto na toolbox e arraste para a área de design. Repare que 
os itens estão um na sessão de Origem e outro no Destino, apesar dos 
nomes serem parecidos. 
 
 
 
É importante renomear as tarefas, para que seja possível consultar 
as bases de gerenciamento e saber o que aconteceu e quando estes 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 64 
processos interagiram com as execuções. Vou renomear a origem para 
“Arquivo com Presidentes” e o destino para “Tabela com Presidentes” 
 
 
 
Para se criar o fluxo do processo, visto que podem existir diversas 
atividades de origens, transformações e destinos apresentados em um 
mesmo fluxo, é necessário criar uma ordem lógica dos acontecimentos. 
Para isso, deve-se selecionar o item que será processado primeiro e 
arrastar a setinha azul para o item seguinte, continuando até completar 
todo o processo lógico do pacote. Para este exemplo, selecionamos o item 
“Arquivo com Presidentes”, arrastamos sua setinha azul e ligamos no 
“Tabela com Presidentes”. Reparem que existem duas setas na origem. 
Estas setas são chamadas constraints, a seta azul representa que o fluxo 
deve seguir este caminho quando não ocorrer problema no 
processamento. Já a seta vermelha é utilizada como caminho quando o 
processamento daquela tarefa der algum problema. Geralmente a seta 
vermelha segue para um item que permite enviar um e-mail ou salvar a 
mensagem do erro em um arquivo de log para análise posterior. Neste 
exemplo, vou apenas mostrar a constraint de sucesso, a azul. 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 65 
 
 
Agora que já foram criados os fluxos do trabalho, vamos criar as 
conexões que servirão para orientar a origem e o destino dos dados. Para 
isso, clique com o botão direito na Origem e depois selecione Edit. 
 
 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 66 
Uma tela com as opções para se carregar um arquivo é 
apresentada. Esta tela é semelhante à tela criada no exemplo utilizando o 
SQL Server 2014 Import and Export Data. Como não é exatamente a 
mesma tela, é preciso criar uma conexão para o arquivo Presidentes.txt. 
Para isso, clique no botão New e configure as opções do arquivo 
que será lido, seguindo os mesmos passos que foram realizados no 
exemplo anterior. 
 
Após fazer a configuração dos dados de origem, repare que o 
objeto não está mais marcado com um alerta x. Isso representa que ele 
está configurado com uma fonte de dados. Comparando com o destino, 
que ainda não foi configurado, fica fácil observar o x. Agora é a hora de 
configurar o destino dos dados, vamos então fazer o mesmo processo com 
o destino, clique com o botão direito e selecione Edit. 
Uma tela para selecionar a conexão de destino é apresentada. 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 67 
 
 
Deve-se clicar em New para criar o item do Connection Manager e 
ir para uma segunda tela. Nesta segunda tela, uma lista com as conexões 
existentes é apresentada. Novamente clique em New e agora sim 
configure a conexão. Neste caso, como foi feito na origem, deve-se 
configurar o destino de acordo com a configuração realizada no exemplo 
anterior. 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 68 
Após configurar, volte até a primeira tela da configuração e 
informe qual será a tabela que vai escrever a informação. 
 
 
 
Após selecionar a tabela tbPresidentes na combo de Use a Table 
or View, clique no item de menu Mappings à esquerda e repare que os 
itens já estão mapeados entre a origem e o destino. 
Essa configuração irá representar qual informação se liga na outra. 
Apósligar as colunas, é só clicar em OK. 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 69 
 
 
A tabela com os dados dos nomes dos Presidentes está 
preenchida. Para fins de exemplo, vamos apagar todos os dados que 
existem lá dentro e, em seguida, popular a tabela com base neste pacote 
que foi criado. Para apagar todos os dados, execute o código abaixo no 
SQL Server Management Studio: 
 
truncate table tbPresidentes 
 
O processo da movimentação dos dados está quase concluído, só 
precisa executar o pacote (apertando F5) e aguardar o final do 
processamento. Se tudo estiver configurado corretamente, seguindo os 
exemplos acima, as caixinhas ficarão com alertas verdes. Isso significa que 
foram executadas com sucesso. Caso alguma fique vermelha, significa que 
nesta tarefa ocorreu uma falha. 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 70 
 
 
Para confirmar a inclusão de todos os dados do arquivo TXT para 
o SQL Server, consulta-se os dados como feito anteriormente. 
 
Este é o código para a validação: 
SELECT id, nome, inicio, termino from tbPresidentes 
 
 
 
Com esse processo do SQL Server Integration Services funcionando, 
foi possível migrar dados de um arquivo TXT para o SQL Server. O arquivo 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 71 
TXT foi só uma das possíveis origem de dados, podendo ser qualquer 
outra que estivesse dentro do grupo Data Flow Sources na toolbox da 
aba Data Flow. 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 72 
No SQL Server Integration Services, existem dois tipos de escopo 
para abranger o impacto das conexões. Estes dois escopos são nos níveis 
de Pacotes e de Projetos. 
Quando se inicia um novo projeto no SQL Server Integration 
Services, algumas pastas na Solution Explorer são apresentadas. A que diz 
respeito à conexões é a pasta Connection Managers. 
 
 
Esta pasta é responsável por garantir as conexões com escopos de 
Projetos, sendo possível compartilhar esta conexão entre todos os pacotes 
existentes no seu projeto. 
 
Para criar a conexão com este escopo, clique com o botão direito 
na pasta Connection Managers e vá para New Connection Manager. 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 73 
 
 
Neste momento todos os provedores de conexões instalados na 
máquina de desenvolvimento são apresentados, permitindo que você 
escolha em qual irá se conectar. 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 74 
 
 
No caso de selecionar o tipo ADO.NET, você terá acesso a 
conexões nativas ao SQL Server 2014. As outras conexões permitem 
acessos a outros servidores ou arquivos, como XML, Flat File, OLEDB, 
ODBC, entre outros. Após selecionar o ADO.NET e clicar em Add, você será 
redirecionado àquela tela já conhecida das configurações de autenticação 
do servidor. Caso não lembre, veja o capítulo sobre SQL Server 2014 
Import and Export Data. 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 75 
 
 
Após preencher os dados da conexão, confirme a tela no botão OK 
até voltar à tela principal do ambiente. Isso lhe permitirá enxergar a 
conexão que acabou de criar na Solution Explorer, pasta Connection 
Managers. 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 76 
 
 
 
O próximo passo é abrir o pacote chamado Package.dtsx que já 
vem criado na pasta SSIS Packages, para então criar os próximos tipos de 
conexões, com escopo exclusivo para o pacote. 
 
Repare que ao abrir o pacote, também existe uma área no final da 
página chamada Connection Managers e já existe uma conexão criada 
nesta área. Esta conexão é exatamente a mesma conexão com escopo de 
projeto, criada instantes atrás. Um detalhe importante: a conexão com 
escopo de projeto fica com o nome (project) e também um ícone diferente 
para se diferenciar das outras conexões locais. Todas as conexões de 
projeto são replicadas para os pacotes. Por este motivo sempre que for 
necessário se conectar a uma mesma origem de dados de diversos 
pacotes, é recomendado criar esta conexão no escopo do projeto. A 
manutenção também é beneficiada, visto que uma alteração na 
configuração do Connection Managers do projeto irá refletir em todos os 
pacotes que estão utilizando aquela conexão. 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 77 
 
 
Para criar a conexão com escopo do pacote, deve-se clicar com o 
botão direito na área de Connection Manager do pacote e apontar para o 
provedor que deseja criar a conexão. 
 
Da mesma forma utilizada nos exemplos anteriores, foram criadas 
duas conexões, uma para o SQL Server 2014 que serviu de destino dos 
dados, e outra para um Flat File que foi caracterizada como a origem dos 
dados. Para completar o exemplo, deve-se criar uma conexão para o Flat 
File e apontar para aquele arquivo Presidentes.txt. 
 
O controle DataFlow possui uma área de Connection Manager na 
região inferior da área de design. Nesta área ficam todas as conexões 
locais do pacote. Vamos adicionar uma nova conexão clicando com o 
botão direito e indo até o item específico da conexão que deseja realizar. 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 78 
 
 
A tela que irá guiar a configuração do arquivo já é conhecida. É a 
mesma utilizada nos exemplos de Flat File anteriores. Preencha a tela com 
todas as configurações necessárias e veja que foi criada uma nova entrada 
nesta área, agora para o Flat File Connection Manager. 
 
 
 
É possível renomear as conexões para refletir melhor a realidade 
do que se está trabalhando. Renomeie a conexão do escopo de projeto 
para “Destino” e a conexão do pacote para “Origem”. Sua tela irá deverá 
ser parecida com essa: 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 79 
 
 
É possível migrar uma conexão de escopo de pacote para escopo 
de projeto, mas o caminho inverso não é permitido. Para realizar esta 
migração, selecione a conexão no Connection Managers do pacote, clique 
com o botão direito, e então aponte para Convert to Project Connection. 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 80 
 
 
Ao realizar esta tarefa, a conexão apontada para o escopo de 
projeto passará a existir em todos os pacotes do projeto, sendo 
compartilhada entre eles. 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 81 
 
 
Para utilizar uma conexão existente em alguma tarefa 
(independente do escopo), basta informar à tarefa qual é a conexão. Para 
exemplificar, adicione uma tarefa de Execute SQL Task no Control Flow do 
pacote. 
 
 
 
Clique com o botão direito na tarefa adicionada ao pacote e 
aponte para Edit. Nesta tela que se abrirá, é preciso configurar a conexão 
e a instrução SQL a ser executada. Esta tarefa permite executar instruções 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 82 
SQL, indepentende de ser contra um SQL Server, um MySQL ou um Oracle. 
Se o SGBD (Sistema Gerenciador de Banco de Dados) permite a conexão, 
esta tarefa poderá se conectar a ele. 
 
 
 
Altere a propriedade ConnectionType de OLE DB para ADO.NET, 
isso fará com que o ambiente receba instruções para disparar contra 
servidores que tenham autenticações nativas com ADO.NET, que é o caso 
do SQL Server 2014. Com a alteração desta propriedade, é possível clicar 
na caixa de seleção de Connection e visualizar a conexão com o nome de 
Destino.Selecione este item. 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 83 
Logo abaixo, na propriedade SQLStatement, é o local onde deve 
entrar a instrução SQL que será executada no servidor que foi configurado. 
Para o exemplo, coloque o código abaixo, que será responsável por apagar 
todos os registros da tabela tbPresidentes. 
 
truncate table tbPresidentes 
 
 
Confirme as modificações até voltar à tela inicial e veja que o X 
vermelho já não existe mais na tarefa de Execute SQL Task. Como 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 84 
informado anteriormente, é importante renomear as tarefas e objetos. Esta 
tarefa será renomeada como Limpar Tabela tbPresidentes. 
 
Se tudo ocorreu com sucesso, os dados da tabela tbPresidentes 
não existirão mais ao executar o pacote. 
 
 
 
Agora, para preencher novamente a tabela com os dados dos 
Presidentes da República, execute o primeiro exemplo utilizando o SQL 
Server 2014 Import and Export Data ou o segundo exemplo, com o SQL 
Server Integration Services. 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 85 
O processamento do cubo é um processo contínuo, que deve ser 
executado de tempos em tempos de acordo com a atualização do Data 
Warehouse. Digamos que seus dados são migrados da origem (ambiente 
de produção) para o Stage (ambiente temporário) uma vez ao dia, após a 
meia noite, recuperando os dados do dia anterior. Supondo que esta 
movimentação de dados precise de 30 minutos, então seu cubo deverá 
iniciar o processamento dos dados após a meia noite e meia. Existe um 
capítulo mais à frente, na sessão de SQL Server Analysis Services, que 
explica sobre o processamento do cubo. 
 
Este capítulo é para ensinar como criar um pacote de 
processamento do cubo dentro do SSIS. Para isso, porém, seu cubo já deve 
estar criado e publicado. A tarefa existente no Integration Services é 
encarregada de processar o cubo e não de alterar ou publicar. Esta tarefa 
se conecta ao cubo publicado e processa os dados de acordo com a 
instrução de processamento. 
 
Para realizar esta tarefa, será necessário criar um novo projeto do 
SSIS. Neste caso, terá o nome de SSIS_ProcessarCubo. Após o projeto 
criado, também é interessante renomear o nome do pacote. Neste caso 
renomeei para ProcessarCubo.dtsx. 
 
Neste momento pode-se arrastar a tarefa Analysis Services 
Processing Task da caixa de ferramentas para a área de Control Flow do 
pacote. 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 86 
 
 
Em seguida, clique com o botão direito na tarefa que está no 
Control Flow e aponte o mouse para Edit. 
 
 
 
Na tela que se abre, acesse o item Processing Settings que se 
encontra no menu lateral esquerdo. Ao lado da caixa de seleção Analysys 
Services connection manager existe um botão New. Clique neste botão. 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 87 
 
 
Uma nova tela perguntando o caminho do servidor do SQL Server 
Analysis Services é aberta e solicita que seja feita a conexão e autenticação 
ao ambiente. Selecione a opção Create a connection to a computer running 
Analysis Services e clique no botão Edit. 
 
 
 
Neste momento, uma tela familiar é apresentada. É a mesma tela 
utilizada nos capítulos anteriores para se conectar à fontes de dados. 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 88 
Preencha os dados de acesso e autenticação do seu ambiente do SQL 
Server Analysis Services e clique em OK. 
 
 
 
Após concluir a conexão, volte até a tela de edição da tarefa de 
processamento do cubo e repare que alguns itens intermediários à tela 
foram habilitados. Estes itens permitem que seja informado quais objetos 
serão processados e com qual opção de processamento. Para fins de 
conhecimento, vou separar o processamento do cubo em duas fases, mas 
você pode deixar em uma única se quiser. Na primeira fase a tarefa irá 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 89 
processar somente as dimensões e, na segunda fase, processar as 
measures e o cubo. 
 
Para selecionar quais objetos serão processados, clique no botão 
Add que está no centro da tela. 
 
 
 
Uma nova tela se abre e nesta pode-se expandir os agrupadores 
de objetos. Como na primeira fase serão processadas somente as 
dimensões, marca-se todas elas e em seguida finaliza clicando em OK. 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 90 
 
 
Reparem que a área central da tela agora é preenchida com os 
objetos selecionados e é informada qual opção de processamento será 
realizada. Veja no capítulo “Processamento do SSAS, direto ao ponto” na 
sessão do Analysis Services, o que é cada uma destas opções. 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 91 
 
 
 
Finalize a tela até voltar ao pacote, visualizando o Control Flow e 
sua primeira tarefa. Lembre-se de renomear a tarefa, para saber o que ela 
representa. No meu caso, vou renomear para “Processar Dimensões”. 
 
Repita os mesmos passos para criar uma segunda tarefa do tipo 
Analysis Services Processing Task e nesta configurar o processamento do 
cubo. A diferença desta segunda terafa para a primeira são os objetos que 
serão processados. Na segunda tarefa, selecione os objetos relativos ao 
cubo. 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 92 
 
 
Confirme até voltar à área de Control Flow do pacote. Chegando 
no pacote, crie uma sequencia lógica de execução fazendo com que a 
primeira tarefa seja executada somente após a segunda. Faça isso ligando 
a constraint de sucesso da primeira na segunda tarefa. 
 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 93 
Para validar se o processamento do cubo está correto, execute o 
pacote. Se após a execução as tarefas finalizarem com o sinal verde, 
executaram com sucesso! 
 
 
 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 94 
A publicação de pacotes no SQL Server 2014 é do mesmo formato 
que no SQL Server 2012, através do SSIS Catalog. Este catálogo é criado 
dentro do engine relacional e armazena a estrutura dos pacotes 
permitindo que seja melhor organizado e gerenciado pelo SQL Server. O 
banco de dados de sistema MSDB ainda pode ser utilizado para consultar 
informações sobre o execuções do pacote, retornando diversos resultados 
gerenciais para os desenvolvedores. 
 
Neste capítulo será criado o SSIS Catalog e também será feita a 
publicação do pacote criado no capítulo anterior. No capítulo seguinte 
será criado um JOB que executará o pacote automaticamente por meio 
dos seus agendamentos. 
 
A primeira atividade é criar o SSIS Catalog. Para isso, acesse o 
ambiente relacional do servidor que tem a instalação do Integration 
Services. No meu caso, é o mesmo ambiente de desenvolvimento, então 
acessarei o MVS-SQL2014\SQL2014. 
 
 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 95 
Reparem que existe um diretório do Integration Services Catalogs, 
mas quando este diretório é expandido, não existe nenhum catalogo. É 
neste lugar que o SSIS Catalog deve ser criado. Para isso, clique com o 
botão direito do mouse no diretório e aponte para Create Catalog. 
 
 
 
Caso não esteja habilitado, é necessário habilitar a integração com 
CLR. Para isso, marque a caixa de seleção Enable CLR Integration. Após esta 
marcação, a tela estará habilitada para criar o catálogo.O nome padão é 
SSISDB e é necessário informar uma senha. 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 96 
 
 
Feito isso, conclua a tela clicando em OK. Após alguns segundos, 
volte à seu Object Explorer do SQL Server Management Studio e veja que 
o catálogo foi criado no diretório Integration Service Catalogs. 
 
 
 
Neste momento você possui um ambiente para publicar seu 
pacote. Agora volte até o pacote criado no capítulo anterior para processar 
o cubo. 
 
Após abrir o SQL Server Data Tools, clique com o botão direito no 
projeto da Solution Explorer e aponte para Deploy. 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 97 
 
 
 
Uma tela irá se abrir e solicitará o endereço do servidor e qual 
caminho será armazenado. Informe o endereço do servidor no qual 
acabou de criar o SSIS Catalog no campo Server name. No campo Path, 
clique em Browse para criar um diretório de armazenamento. 
 
 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 98 
Após clicar em Browse, uma nova tela irá se abrir. Na parte inferior 
esquerda existe um notão New Folder, para criar um novo diretório. Clique 
neste botão para informar o nome do diretório que receberá este pacote. 
 
 
 
No meu caso, informei o nome AdventureWorks, pois é o 
processamento do cubo do AdventureWorksDw2012. 
 
Confirme a criação do diretório e volte até a tela inicial, onde 
informa o servidor e o caminho. 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 99 
 
 
Avance para a próxima tela, na qual tem um resumo do que será 
feito. Em seguida, clique no botão deploy. Se tudo ocorreu bem, seu 
pacote será publicado no servidor que foi informado. 
 
 
 
Para verificar a publicação, volte até o SQL Server Management 
Studio e expanda o SSISDB. Será possível visualizar o diretório que acabou 
de criar, o projeto do SSIS e o pacote publicado. 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 100 
 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 101 
Após criar e publicar seu pacote, é recomendado criar um 
agendamento automatizado para que a execução do pacote seja feita sem 
a intervenção humana. Isso facilitará (e muito) os processos que devem ser 
executados sequencialmente e em horários não-convencionais. 
Geralmente os JOBs são executados de madrugada, quando há menos 
fluxo no ambiente de produção. 
 
A criação do JOB pode ser feita via código T-SQL ou através de 
wizard do SQL Server Management Studio. Neste capítulo vamos criar o 
JOB através do wizard. 
 
Para isso, acesse o SQL Server Management Studio e vá até o 
serviço do SQL Server Agent. Garanta que ele esteja em execução, com o 
ícone verde. Caso ele esteja com o ícone vermelho, clique com o botão 
direito em cima dele e aponte para Start. 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 102 
 
 
 
Após garantir que o SQL Server Agent esteja executando, clique 
com o botão direito e aponte para New >> JOB. 
 
 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 103 
Uma tela irá se abrir, permitindo criar o serviço automatizado. No 
menu da esquerda, garanta que está no item General, e então, no campo 
Name informe o nome do JOB. Neste caso, vou chamar de Processar Cubo 
Adventure Works. 
 
 
 
Acesse o item Steps no menu da esquerda, para criar quais passos 
serão executados. Na parte inferior da tela existe um botão New, clique 
neste botão e veja uma nova tela se abrindo. Nesta tela, deve-se informar 
o nome do passo no campo Step name, vou nomear como Processamento. 
O campo seguinte é para informar qual o tipo de execução realizada. 
Alterando o tipo para SQL Server Integration Services Package, o contexto 
da tela muda, permitindo que seja feita a conexão ao pacote. Então 
preencha os dados do servidor e do caminho do pacote no SSIS Catalog. 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 104 
 
 
Após escolher o pacote, confirme para finalizar a tela e voltar para 
a configuração do JOB. Em seguida, vá ao menu da esquerda e mude para 
Schedule, permitindo criar o agendamento para estas execuções. Na parte 
inferior esquerda da tela tem novamente um botão New. Ao clicar neste 
botão é feita a configuração do agendamento, inclusive com sua 
recorrência. Neste exemplo, estamos agendando o processamento todos 
os dias depois que a movimentação de dados acontece. Isso ocorre, 
supostamente, meia noite e meia. No campo Name informe o nome. No 
meu caso, vou chamar de Diario. O campo seguinte é sobre o tipo de 
execução: se será executado recorrentemente, se é executado somente 
uma vez, entre outras. Como é para executar todos os dias, mantenha 
como Recurring. Na configuração da frequência de como o JOB será 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 105 
executado, informa-se a periodicidade. No caso não é semanal e sim 
diário, alterando a caixa de seleção Occurs de Weekly para Daily, 
mantendo a opção Recurs every em 1. 
Na sessão referente à execução diária, marque a opção Occurs 
once at para garantir que executará uma vez por dia, neste horário, e 
informe 00:30:00. Este horário é equivalente a meia-noite e meia. Na 
sessão seguinte, sobre a duração, coloque a data de início (que por padrão 
fica a data de hoje) e deixe a opção No end date selecionada. Assim, o JOB 
será executado a partir de hoje sem data para terminar. Após esta 
configuração, confirme no botão OK e volte para a tela inicial. 
 
 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 106 
Confirme também a tela principal e volte ao SQL Server 
Management Studio. Repare que agora existe o JOB com o nome 
Processar Cubo Adventure Works dentro do diretório Jobs no serviço do 
SQL Server Agent. 
 
 
 
 
É possível aguardar até o horário agendado para verificar se a 
execução foi configurada e executada com sucesso, ou então, executar 
manualmente. Para isso, clique com o botão direito do mouse no JOB e 
aponte para Start Job at Step. Confirme que quer executar o Job 
manualmente e aguarde sua conclusão. 
 
 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 107 
Após a execução do JOB, você verá o sinal verde de sucesso. 
 
 
 
Também poderá consultar o histórico de execuções, que 
contempla tanto as execuções manuais quanto as agendadas. Para isso, 
clique com o botão direito no JOB e aponte para View History. 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 108 
 
 
Uma lista com as execuções será apresentada, com os resultados 
ao lado do horário. Se rodou com sucessso fica o sinal verde. Se ocorreu 
alguma falha, fica um alerta vermelho. 
 
 
 
 
 
 
 
 
 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 109 
 
 
 
 
 
 
 
 
 
 
 
SQL SERVER ANALYSIS 
SERVICES 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 110 
O principal item a ser criado no SSAS é o Cubo. Ele será 
responsável por criar todos os cálculos internos e armazenar a informação 
já processada com o foco em facilitar o retorno para os usuários. Neste 
capítulo será criado um cubo baseado no Data Warehouse 
AdventureWorksDW2012. 
Após abrir o SSDT (SQL Server Data Tools) e criar o projeto de 
Analysis Services Multidimensional and Data Mining Project (e no meu 
caso chamei de SSAS_PrimeiroCubo), alguns diretórios são criadosna 
Solution Explorer, dos quais vamos usar Data Sources, Data Source Views, 
Cubes e Dimensions. 
No diretório de Data Sources, é feita a conexão com o banco de 
dados que armazena o Data Warehouse. Para configurar esta conexão, 
clique com o botão direito no diretório e então aponte para New Data 
Source. 
 
A tela de configuração é idêntica às já conhecidas, utilizadas na 
movimentação de dados com o SQL Server Integration Services. 
Neste momento, deve-se fazer a conexão com o banco de dados 
AdventureWorkdDW2012 armazenado no SQL Server 2014. 
O próximo diretório é o Data Source Views, que é responsável por 
apontar com base na conexão, quais serão as tabelas dimensões e fatos a 
serem utilizadas no projeto. Para isso, clique com o botão direito no 
diretório e aponte para New Data Source View. 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 111 
 
 
 
Na tela de wizard que se abre, você seleciona qual é a conexão que 
aponta para o Data Warehouse e avança. A tela seguinte apresenta os 
objetos que estão disponíveis no Data Warehouse. Você deve procurar a 
tabela fato chamada FactInternetSales, e então clicar no botão > que irá 
incluir esta tabela no Data Source View. 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 112 
 
 
Após clicar em >, você irá perceber que a tabela Fato está agora 
na lista de objetos incluídos. Logo mais abaixo, o botão Add Related Tables 
fica habilitado, permitindo que o SSAS inclua também as tabelas que 
possuem relacionamentos com a FactInternetSales. 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 113 
 
 
Após as outras tabelas serem incluídas, repare que uma outra 
tabela Fato foi junto. Esta tabela chamada FactInternetSalesReason deve 
ser retirada. Para isso, selecione esta tabela e clique no botão <. 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 114 
 
 
Na sequência confirme os acessos, clicando em Finish. Agora 
repare que o item foi incluso na Solutions Explorer. 
O próximo diretório é o Cubes. É neste diretório que se cria o cubo, 
adicionando as dimensões e calculando as medidas. Para começar, clique 
com o botão direito no diretório Cube e aponte para New Cube. 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 115 
 
Na janela que se abre, existe a possibilidade de criar um cubo 
baseado em tabelas que já existem, criar um cubo vazio ou gerar tabelas 
no ambiente baseado em templates. Por padrão já vem selecionado Use 
existing tables e é com este item selecionado que vamos avançar. Na tela 
seguinte informamos qual será a tabela que contém os valores para as 
Measures Groups e há um botão de sugestão. 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 116 
Caso você não conheça o ambiente em que está trabalhando, pode 
clicar neste botão e o SSAS analisa as tabelas que possuem a maior 
quantidade de relacionamentos e interpreta como sendo a fato, e então, 
sugere esta tabela como sendo a que armazena as Measures Groups. Após 
clicar no botão Suggest, veja que a tabela FactInternetSales ficou 
selecionada, então avance para a próxima tela. Este é o momento de 
informar quais serão as medidas convencionais existentes no projeto. É 
obrigatório selecionar ao menos uma delas, então desmarque todas e 
volte a selecionar somente a Sales Amount, que representa o total de 
vendas. Então você pode avançar para a próxima tela. 
Na tela seguinte, o SSAS sugere quais as tabelas podem ser 
consideradas dimensões. Desmarque a tabela Fact Intenet Sales, pois já 
sabemos que esta não é uma dimensão e sim uma fato! 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 117 
Ao avançar para a próxima tela, basta finalizar clicando em Finish. 
Neste momento, a estrutura básica do cubo já existe mas ainda não fez o 
processamento. Isso irá acontecer após apontar qual é o ambiente em que 
será publicado o cubo e, de fato, fazer o processamento e a publicação. 
O diretório seguinte é Dimensions, que é automaticamente 
preenchido com as dimensões que foram configuradas através da tela de 
Cubes. Então neste momento não é necessário fazer nada neste diretório. 
Com isso, seu primeiro cubo foi criado mas não foi processado 
nem publicado. Nos próximos capítulos continuamos a trabalhar com este 
cubo, até torná-lo acessível para nossos clientes. 
 
 
 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 118 
Após o cubo, uma das principais atividades a ser realizada com o 
SQL Server Analysis Services é criar as Measures que serão especializadas 
com base nas dimensões do projeto. As medidas são os cálculos realizados 
para responder alguma pergunta da área de negócios. Estas perguntas 
serão elaboradas pelos usuários e nós, da área de Business Intelligence, 
desenvolveremos o projeto para responder estas questões. 
As measures são relativamente simples de se criar e podem ser 
feitas de duas formas. Na hora da criação do cubo por meio do Wizard 
(apresentado no capítulo anterior) do diretório Cube ou então após o cubo 
já estar criado. Neste exemplo, vamos criar as medidas a partir do cubo já 
criado no capítulo anterior. Para isso, abra o projeto que foi criado naquele 
capítulo, expanda o diretório Cube e abra o objeto Adventure Works DW 
2012.cube. 
 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 119 
Neste objeto, procure na parte superior esquerda o bloco das 
Measures, que possui a Measure Group Fact Internet Sales. Ao expandir 
esta Measure Group, será possível ver a medida Sales Amount criada 
através do wizard, na criação do cubo. Para garantir que a medida foi 
calculada da forma correta, clique com o botão direito sobre ela e aponte 
para Edit Measure. 
 
 
Esta medida representa o somatório do total de vendas e deve 
utilizar o sumarizador de somatório (SUM). Ao abrir a tela de Edit Measure, 
é possível constatar que, de fato, o cálculo usado é o SUM. Outros cálculos 
são possíveis, como Count of Rows (contagem de linhas), Minimum (menor 
valor), Maximum (maior valor), First Value (primeiro valor), Last Value 
(último valor), entre alguns outros. 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 120 
 
Basta cancelar e voltar para a tela do Cube. 
Para adicionar novas medidas nesta mesma Measure Group, basta 
clicar com o botão direito no nome da Measure Group e apontar para New 
Measure. 
 
 
Quando a tela de incluir uma nova medida é apresentada, deve-se 
escolher qual será o sumarizador da measure e em qual atributo (campo) 
ele será aplicado. 
Neste capítulo serão criadas duas novas measures, uma para Valor 
do Custo e outra para Total de Imposto. Em ambas serão utilizados o 
agregador de Soma. Para isso, selecione o item SUM na caixa de seleção 
Usage e marque a coluna TotalProductCost em Source Column. 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 121 
 
Clicando em OK, esta medida já estará dentro da Measure Group. 
Repita estes últimos passos para criar a medida que fará a somatória dos 
valores da coluna TaxAmt. 
Após a criação desta segunda measure, seu ambiente contará com 
as Measures Sales Amount (criada do capítulo anterior), Total Product Cost 
e Tax Amt (criadas neste capítulo). 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 122 
Quando se criam os cubos, geralmente se faz os cálculos-padrão 
baseados em sumarização convencional do próprio Analysis Services. Estas 
agregações podem ser SUM, AVG, MAX, MIN, COUNT,entre outras. Mas 
em alguns casos, é preciso calcular medidas que não são padrões. Para 
isso, usamos o recurso de CALCULATIONS. 
Quando se fala de criar cálculos específicos, precisamos trabalhar 
com código MDX (MultiDimensional eXpression). É um pouco diferente do 
T-SQL que estamos acostumados no dia-a-dia, mas não se preocupe, com 
estes dois links de referência dá pra ter uma ideia de MDX: 
 
MDX Syntax Elements (MDX): 
http://technet.microsoft.com/en-us/library/ms146020.aspx 
 
MDX Language Reference (MDX): 
http://technet.microsoft.com/en-us/library/ms145595.aspx 
 
Neste capítulo vamos criar um membro calculado que represente 
a Lucratividade de um produto com base no Total de Vendas, Custo do 
Produto e Impostos. Destes valores citados, o Total de 
Vendas, Custo e Impostos já são measures calculadas anteriormente pelo 
Analysis Services e nós vamos precisar criar somente o cálculo 
da Lucratividade. 
Estas três measures foram explicadas no capítulo anterior, e 
seguiremos neste mesmo projeto. 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 123 
 
As measures criadas foram Total Product Cost, Sales Amount e Tax 
Amt. A parte para fazer o novo cálculo de measure se encontra dentro do 
objeto Adventure Works DW2012.cube, na aba Calculations. Para acessar 
esta aba, abra o projeto que foi utilizado no capítulo anterior, expanda o 
diretório Cubes da Solution Explorer e abra o objeto Adventure Works 
DW2012.cube. Procure a aba Calculations, na parte superior da tela. 
 
 
 
Abrindo esta aba, veja do lado esquerdo o Script Organizer já com 
o CALCULATE feito. Logo abaixo, clique com o botão direito em uma parte 
vazia e aponte para New Calculated Member. 
 
 
 
 
Neste momento, uma tela se abre na área central: é onde você 
preenche os dados do cálculo. 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 124 
Primeiro deve-se colocar o nome do campo calculado. No caso, 
vou chamar de profitability (lucratividade, em inglês). Nos próximos 
capítulos vou explicar como deixar o termo da camada de apresentação 
em outro idioma (no nosso caso, o Português). 
 
No campo seguinte, Parent Hierarchy, informamos onde será 
colocado o membro calculado. Para o SSAS não criar nenhuma Measure 
Group nova, mantenha o padrão, que é Measures. Este item pode conter 
outras Measure Groups e você precisará selecionar outro item, caso queira 
mudar de lugar. 
 
A seguir é o campo mais importante (Expression), onde você irá 
montar a formula do cálculo. Neste caso, como vamos montar a 
lucratividade, vamos fazer a forma da seguinte forma: 
([Measures].[Sales Amount] – 
([Measures].[Total Product Cost] + [Measures].[Tax Amt])) 
/ [Measures].[Sales Amount] 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 125 
 
 
 
Para facilitar sua vida, você pode arrastar os itens que estão nas 
suas Measures para o campo Expression e ele já monta no formato que 
o MDX entende. 
Isso não significa que esta é a única formula que você deve 
customizar no seu projeto. Este é só um exemplo, você vai analisar sua 
necessidade e fazer sua formula! 
Os outros campos você preenche de forma intuitiva, lembrando de 
informar o nome do seu cálculo entre colchetes no campo Name. Este 
nome será refletido dentro da Measure. Veja onde ele impacta. 
 
Alterando a formatação do campo para “Percent” no Format String, 
para o dado ser plotado como um percentual. 
E por fim Selecionando qual Measure Group você vai atrelar ao seu 
cálculo, na opção de Associated Measure Group. 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 126 
 
 
Se a fórmula que você criou funcionar e você processar o cubo, na 
sua análise você conseguirá consumir informações da lucratividade ou 
alguma outra formula que tenha criado. 
 
Reparem na análise, caso você tenha uma hierarquia de membros. 
Quando um membro está “agrupado”, o próprio servidor OLAP se 
encarrega de sumarizar os valores que estão dentro daquele grupo 
específico e lhe apresenta o resultado sumarizado. Veja o valor da 
categoria Accessories, depois veja da subcategoria Road Bikes e por fim 
dos objetos Road-150 Red e Road-250 Black. 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 127 
 
 
Fazendo o cálculo uma única vez, sempre que precisar recuperar 
aquele valor, é só arrastar para sua análise como 
uma Measure convencional da sua Measure Group. 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 128 
Quando se criam as dimensões através do Wizard do cubo, o SSAS 
inclui somente as chaves de relacionamento entre a Tabela Fato e as 
Dimensões como atributos visíveis aos usuários. Novos atributos devem 
ser habilitados às dimensões, permitindo que as análises sejam 
satisfatórias para quem usa nosso projeto. 
 
Para adicionar novos atributos, é na dimensão que se deve 
trabalhar, habilitando a visualização do atributo já existente na estrutura à 
área que será visível ao usuário. Para concluir esta tarefa, deve-se abrir o 
objeto Adventure Works DW2012.cube que está no diretório Cubes. Na 
esquerda da tela, logo abaixo da área onde foram configuradas as 
Measures, existe uma caixa com o nome Dimensions. Nesta área, todas as 
dimensões existentes no projeto são apresentadas, permitindo que sejam 
manipuladas. No exemplo deste capítulo, vamos trabalhar para adicionar 
outras duas dimensões existentes no Data Warehouse para o projeto de 
Business Intelligence e permitir que outros atributos sejam visíveis para o 
usuário final. 
 
A primeira coisa a se fazer é adicionar as outras dimensões. Neste 
caso, deve-se adicionar as dimensões de DimProductCategory (Categoria) 
e DimProductSubcategory (Sub-Categoria), que são relacionadas à 
DimProduct (Produto). Será necessário alterar o Data Source Views, visto 
que somente os itens incluídos neste objeto é que aparecem para o 
projeto. Então vá até o diretório Data Source Views e abra o objeto 
Adventure Works DW2012.dsv e procure o botão Add/Remove Objects que 
parece uma caixa quadriculada com o sinal de positivo, no canto superior 
esquerdo. 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 129 
 
 
Este botão permite incluir as novas dimensões de que precisamos. 
Ao clicar, a tela que se abre é igual àquela que foi utilizada para incluir 
todos os objetos relacionados à tabela Fato utilizada no capítulo sobre a 
criação do cubo. Deve-se adicionar as tabelas DimProductCategory e 
também DimProductSubcategory, então selecione estas dimensões na 
caixa da esquerda e clique em > para incluir no projeto. 
 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 130 
 
 
Após avançar a tala, conclua a inclusão. Neste momento, as 
dimensões foram adicionadas ao projeto, mas ainda não estão disponíveis 
para uso. 
 
Para o próximo passo, vá até o diretório Dimensions na Solution 
Explorer, clique com o botão direito e aponte para New Dimension. 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 131 
 
 
Na tela que se abrir, deixe selecionado o item Use an existing table, 
e avance para a próxima tela. Nesta tela que se abriu, selecione 
DimProductCategory na lista de seleção Main table. 
 
 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 132 
Após selecionar, avance para a próxima tela, onde devem ser 
selecionados os atributos que estarão disponíveis para nossa 
manipulação. Clique na caixa de seleção que está ao lado do título da 
colunaAttribute Name e veja que todos os itens ficaram habilitados. 
 
 
 
Avance para a próxima tela e finalize o processo clicando em 
Finish. 
 
Repita estes mesmos passos, para a dimensão 
DimProductSubCategory. Após incluir esta segunda dimensão, ambas 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 133 
estarão disponíveis para se trabalhar no projeto. Confira no diretório 
Dimensions da Solution Explorer. 
 
 
Depois de incluir estas dimensões no projeto, elas precisam ser 
disponibilizadas para manipulação dentro do cubo. Para isso, expanda o 
diretório Cubes e abra o Adventure Works DW2012.cube. 
 
Procure o botão Add Cube Dimension, no menu de contexto do 
cubo. 
 
 
 
Na tela que se abre, selecione os itens Dim Product Category e Dim 
Product Subcategory e conclua clicando em OK. 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 134 
 
 
 
Voltando ao segundo parágrafo deste capítulo, veja que agora o 
bloco de Dimensions já conta com as duas dimensões que foram incluídas 
no cubo. 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 135 
 
 
Estas duas novas dimensões serão usadas no próximo capítulo, 
para criar a hierarquia de atributos - um recurso interessante para nossos 
usuários. 
 
Ainda não terminamos a proposta deste capítulo, falta alterar as 
visibilidades dos atributos existentes nas dimensões. Neste processo 
vamos modificar a dimensão Dim Sales Territory, mas todas as outras 
também devem ser modificadas para seu cliente ter total uso da solução. 
Para isso, expanda a Dim Sales Territory e clique em Edit Dim Sales 
Territory. 
 
 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 136 
A tela de edição da dimensão possui três áreas. A primeira é 
Attributes, que representa os itens que estão disponíveis para o usuário. A 
área central é a Hierarchies, que representa os atributos em hierarquias, 
que vamos trabalhar no próximo capítulo. E por fim existe o Data Source 
View, que são os objetos desta dimensão atribuídos através do Data 
Source Views. 
 
 
A primeira coisa é retirar o código para o usuário final, isto é, se 
ele não precisar saber do código interno de algum item. Vamos mudar a 
visibilidade, para questões de aprendizado. Mas use isso somente se não 
for necessário para seu usuário. Para deixar o item invisível, selecione o 
atributo na área de Attributes, vá até a propriedade 
AttributeHierarchiVisible e mude para False. 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 137 
 
 
Agora arraste da área de Data Source View para a área de Attributes 
os itens que devem aparecer para seus usuários. 
 
 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 138 
Após arrastar, basta salvar a dimensão e os novos atributos estarão 
disponíveis para os usuários. 
 
Faça isso para todas as dimensões cujos atributos precise 
disponibilizar aos seus usuários. 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 139 
Algumas apresentações de dados ficam melhor dispostas quando 
existe uma hierarquia e alguns dados ficam agrupados em uma 
representação mais ampla, macro, não-excludente aos detalhes daquela 
informação. Esta hierarquia de membros permite que sejam realizadas 
análises enquadradas em grupos e não somente ao item mais granular e 
específico. Neste capítulo, o objetivo é mostrar como criar hierarquias 
dentro da estrutura das dimensões. 
 
Para isso, abra o projeto em que trabalhamos no capítulo anterior, 
expanda o diretório Cubes e abra o objeto Adventure Works 
DW2012.cube. 
 
Na sessão de Dimensions, procure a Dim Product, expanda 
clicando sobre o botão de + e então clique em Edit Dim Product. Na tela 
que se abre, igual à tela que vimos no capítulo anterior, deve-se deixar 
invisível o código do produto, alterando a propriedade 
AttributeHierarchiVisible de True para False. Também é necessário arrastar 
alguns itens que serão usados no projeto, da área Data Source View para 
a área Attributes. 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 140 
 
 
Neste momento, é hora de adicionar as outras tabelas que estão 
relacionadas à dimensão Dim Product, para que seja possível consumir 
dados destas outras dimensões. Para isso, no Data Source View, onde já 
existe a tabela DimProduct, clique com o botão direito na tela e aponte 
para Show Tables. 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 141 
 
 
Na tela que se abrir, selecione as dimensões DimProductCategory 
e também DimProductSubcategory, que foram adicionadas ao projeto no 
capítulo anterior. 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 142 
 
 
Confirme clicando em OK e veja que as duas dimensões agora 
estão disponíveis para se incluir nos itens visíveis da dimensão de produto, 
que será apresentada ao usuário final. 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 143 
 
 
Neste momento, é hora de arrastar os itens de Categoria e Sub-
Categoria para a área dos Attributes desta dimensão. Arraste o atributo 
EnglishProductSubcategoryName da dimensão DimProductSubcategory. 
 
 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 144 
 
 
Faça a mesma coisa para o atributo EnglishProductCategoryName 
da dimensão DimProductCategory. 
 
 
 
Neste momento, os atributos Nome, Categoria e Sub-Categoria do 
Produto estão disponíveis para os usuários através da dimensão, mas 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 145 
ainda não estão como hierarquias. Para realizar esta tarefa, arraste o 
atributo English Product Category Name para qualquer parte da área 
central, Hierarchies. 
 
 
 
Repare que foi criada uma estrutura que permite que novos 
atributos sejam incluídos em outros níveis da hierarquia. Cada novo 
atributo reflete um novo nível de detalhe. Inclua no nível seguinte o 
atributo English Product Subcategory Name. Em seguida, no terceiro nível, 
arraste o atributo English Product Name. 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 146 
 
 
Agora, um alerta apareceu no topo da estrutura de hierarquia. Este 
alerta se dá ao fato de algum membro das dimensões não terem 
relacionamento. Ao lado deste alerta, fica o nome que deve informar à 
estrutura, para que ela seja salva na dimensão. Vou colocar o nome de 
Products. 
 
 
 
Após salvar e processar a dimensão, é possível ver através da aba 
Browser que os dados foram colocados em agrupamentos da hierarquia, 
conforme foi montado neste capítulo. A informação mais ampla é a 
categoria, no segundo nível a Sub-Categoria e por final o nome do 
Produto. 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 147 
 
 
 
Não se preocupe se você não conhece sobre processamento dos 
dados, falaremos sobre este assunto nos próximos capítulos. 
 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 148 
Um recurso altamente utilizado por tomadores de decisão de 
negócios (ou termo em inglês Business Decision Makers) para analisar 
quantitativamente os resultados são os KPIs (Key Performance Indicator, 
ou Indicadores-Chave de Performance). Basicamente são indicadores (ou 
ponteiros) que mostram o resultado de forma gráfica, seguindo um 
padrão universal de cores, como um semáforo, passando por Vermelho, 
Amarelo e Verde. Hoje em dia é possívelcolocar mais variações dentro de 
um KPI, tendo análises com 5 ou até mais “intervalos de resultados”. Isso 
surgiu pelo fato de um resultado dividido apenas em 3 valores representar 
uma análise simplista do acontecimento. A ideia deste capítulo é mostrar 
diretamente no SQL Server Analysis Services como fazer um KPI com 3 
intervalos, mas se precisar de mais, o SQL Server Reporting Services faz isso 
sem nenhuma dificuldade. 
Para exemplificar este processo de criação e uso do KPI, vamos 
trabalhar novamente com banco AdventureWorksDW2012 e vamos 
aproveitar o cálculo que fizemos alguns capítulos atrás para apresentar a 
lucratividade de um produto. 
 
Seguindo a mesma linha do exemplo do cálculo, é necessário abrir 
o diretório Cubes e em seguida abrir o objeto Adventure Works 
DW2012.cube, para acessar a aba KPIs que fica ao lado da aba Calculations 
usada naquele capítulo. 
 
 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 149 
Dentro desta aba, é possível encontrar 3 áreas úteis, sendo duas 
laterais e uma central. Todas são importantes e nos ajudarão nesta criação. 
A primeira que vamos utilizar é a área superior da lateral esquerda, 
chamada KPI Organizer. Nesta área iremos criar um novo KPI e é lá onde 
ficam listados todos os KPIs já criados neste projeto. Clique com o botão 
direito do mouse nesta área e aponte para New KPI. 
 
 
 
Neste momento, repare na área central se transformando e 
contextualmente habilitando diversos campos para trabalhar no KPI. Deve-
se preencher alguns campos. O primeiro dele é o campo Name. Reparem 
que desta vez não colocamos o nome entre colchetes, simplesmente 
informamos o nome, que pode inclusive ser o mesmo de alguma measure 
já criada, não vai gerar conflito. 
 
Na sequência é o campo Associated Measure Group, neste caso, 
deve-se informar em qual Measure Group seus cálculos estão e será o 
mesmo que o KPI ficará associado. Neste caso, só temos o “Fact Internet 
Sales”, então o selecione na caixa de seleção. 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 150 
 
 
O campo seguinte é o Value Expression. Este campo deve receber 
um valor, que inclusive pode ser um campo de uma measure. Arrastando 
e soltando a measure, o valor é preenchido no formato correto. Depois do 
campo preenchido com o cálculo de lucratividade feito em um capítulo 
anterior, este resultado poderá ser reutilizado nos demais campos da 
configuração através da função KpiValue. Usaremos este recurso mais à 
frente. 
Preencha o campo de Value Expression com o código 
[Measures].[Profitability] 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 151 
 
O próximo campo é o Goal Expression, que também deve receber 
um valor. Neste caso, pode-se atribuir “pesos diferentes” para cada 
categoria de produto, com o objetivo de equilibrar a análise. Reparem que 
neste momento retorna-se o atributo English Product Category Name da 
dimensão DimProduct. Com essa atribuição de pesos, posso chamar este 
campo através da função KpiGoal e os membros que retornarão desta 
estrutura terão os pesos atribuídos já calculados. O código desta 
atribuição é um CASE WHEN simples, onde ele verifica se um membro é o 
especificado e então, atribui um peso à ele. Veja o código: 
Case 
 When [Dim Product].[English Product Category 
Name].CurrentMember Is [Dim Product].[English Product Category 
Name].[Accessories] Then .40 
 When [Dim Product].[English Product Category 
Name].CurrentMember Is [Dim Product].[English Product Category 
Name].[Bikes] Then .12 
 When [Dim Product].[English Product Category 
Name].CurrentMember Is [Dim Product].[English Product Category 
Name].[Clothing] Then .20 
 When [Dim Product].[English Product Category 
Name].CurrentMember Is [Dim Product].[English Product Category 
Name].[Components] Then .10 
 Else .12 
End 
A tela, com o código, fica assim: 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 152 
 
 
Seguindo, o próximo campo é o Status Indicator, que é a 
representação gráfica que sua informação irá apresentar quando for 
aplicada no relatório. Normalmente os ícones visuais ficam numa 
representação de semáforo, mas você pode utilizar outros como 
bandeiras, setas, cilindros, faces, etc. 
Este campo está atrelado diretamente ao Status Expression. Este 
campo contém a expressão que irá resultar no valor ser vermelho, amarelo 
ou verde. O cálculo é atribuído a apenas três valores: o vermelho é o valor 
de –1, o amarelo é o valor de 0 e o verde é o valor de +1. Veja o código 
para gerar este valor: 
 
Case 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 153 
 When KpiValue("Profitability") / 
 KpiGoal ("Profitability") >= .90 
 Then 1 
 When KpiValue("Profitability") / 
 KpiGoal ("Profitability") < .90 
 And 
 KpiValue("Profitability") / 
 KpiGoal ("Profitability") >= .80 
 Then 0 
 Else -1 
End 
Reparem que neste momento as funções KpiValue e KpiGoal foram 
chamadas, passando por parâmetro o nome do KPI. Isso significa que, 
independente do cálculo que existir dentro destes campos, a chamada 
destas funções permite que você reutilize o código contido naquele 
campo. 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 154 
 
 
 
Mais abaixo na tela é possível ver algumas configurações. Neste 
caso, é possível ver a tendência do resultado, que é apontado dentro do 
campo Trend Indicator e Trend Expression. 
No campo Trend Indicator, o mais usado são as setas, já que elas 
apontam para cima se a tendência for um crescimento (+1), apontam para 
a direita se for mantido (0) e apontam para baixo (-1) se a tendência é para 
diminuir. 
 
 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 155 
O código que você deve escrever para a tendência também segue 
a mesma lógica de Status Expression, com resultados variando entre –1, 0 
ou +1. Forcei manualmente valor –1 para garantir que a tendência desta 
análise seja negativa e a seta seja mostrada para baixo. Fica uma sugestão 
para vocês: mudem o valor entre esses –1, 0 e +1 e vejam o resultado da 
tendência mudar na visualização dos dados. 
 
Pronto, o KPI está criado e agora é o momento de analisar o 
resultado com ele. Para isso, precisa-se processar o cubo novamente. 
Façam o processamento e então conseguirão ver os resultados do KPI 
dentro da sua análise. 
Caso queira testar o KPI antes de enviar para seus clientes, clique 
no ícone Browser View e o resultado será mostrado. Para voltar à 
visualização anterior, clique em Form View logo à esquerda do Browser 
View. 
 
 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 156 
Quando se trabalha com projetos de BI em uma empresa que pode 
ter usuários ao redor do mundo, faz total sentido nós traduzirmos a 
camada de apresentação de nossos atributos, dimensões e measures, 
facilitando o entendimento e o uso dos resultados pelo usuário final 
dentro de sua língua materna. 
Esta necessidade é mais comum do que imaginamos, ainda mais 
neste últimos anos, com a facilidade e a expansão de trabalho remoto para 
empresas estrangeiras. Conheço algumas pessoas que de suas casas fazem 
projetos internacionais, mesmo nunca tendo contato pessoal com seu 
empregador. Pode parecer estranho, mas acontece. 
Neste capítulo, vamos trabalhar para criar essa 
“internacionalização” de projetos construídos no SSAS, definindo quais 
termos serão usados nalíngua do cliente e quais estarão sem tradução. 
Vale lembrar que a tradução é um mecanismo que altera a legenda e o 
rótulo da informação postada na tela (atributo) e não o dado (membro) 
em si. Isso significa que você não terá seus dados traduzidos, mas sim os 
títulos dos campos que eles representam. 
Outro ponto importante é que uma tradução se dá pela definição 
de dois valores, um sendo o ID do idioma e o outro a tradução que aquele 
valor representa. O idioma padrão do device (repare que não usei o termo 
computador propositalmente) consumindo os dados do cubo é fornecido 
por meio das configurações de localidade, que passa através do LCID 
(Locale ID – Identificador de Localidade) para a ferramenta cliente. 
Mais uma vez vamos expandir o projeto já criado nestes últimos 
capítulos. 
Abra o projeto expanda o diretório Cubes, abra o objeto Adventure 
Works DW2012.cube e por fim visualize e edite a Dim Product. Você pode 
ver a chave do produto (que não está visível para a ferramenta cliente), 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 157 
também os nomes da categoria, subcategoria e produto, além dos outros 
atributos existentes nesta dimensão. Todos os itens, porém, estão com 
seus nomes originais, em inglês. 
 
 
 
Esta visão da Dimensão já permite um tipo de tradução, que será 
aplicada diretamente a seus atributos diretos - no caso, os campos listados 
acima. Repare na parte superior da área de edição da dimensão existe a 
aba Translations. É nesta aba que vamos trabalhar para traduzir os 
atributos. 
 
 
 
Clique no botão New Translation para adicionar uma nova coluna 
atrelada ao idioma que deseja escrever os termos. O ícone é um globo 
com duas setas. 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 158 
 
 
 
Ao clicar no botão para adicionar uma nova tradução, uma tela 
com a lista dos idiomas é apresentada. Nesta tela deve-se selecionar um 
idioma por vez. Repare que ao adicionar o item para Portuguese (Brazil), 
todos os labels da Dimensão Produto passarão a ser plotados no cubo em 
português, de acordo com os termos que forem traduzidos nos 
respectivos campos. Portanto, se você escrever alguma tradução errada, 
ela será escrita de forma errada na tela do seu cliente. 
 
 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 159 
Depois de processar a Dimensão e o Cubo, seus labels ficarão 
apresentados de forma traduzida. 
 
Antes (original – Inglês) 
 
 
Depois (Português) 
 
 
A mesma regra se aplica aos labels do Cubo, onde pode-se traduzir 
as dimensões, nome do cubo e as measures que existem lá dentro. 
Reparem que, neste caso, o ícone usado para adicionar uma 
tradução é o mesmo globo, mas ao invés de possuir as duas setas, ele tem 
um cubo em 3D e não é mais relacionado à dimensão, e sim ao cubo. 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 160 
 
 
Vamos seguir os mesmos passos de antes. Após escolher o idioma 
Portuguese (Brazil) dentro da tela de seleção, uma nova coluna se abre e 
permite inserir os termos do idioma escolhido. Novamente, após inserir os 
termos, processar o cubo e enfim atualizar a ferramenta-cliente... voilà, o 
dado está traduzido para o idioma local do cliente! 
 
 
 
 
 
 
 
 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 161 
Antes (original - Inglês) 
 
 
 
 
 
 
 
 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 162 
Depois (Português) 
 
 
Com isso, você consegue internacionalizar com pouco esforço seus 
projetos - aumentando a satisfação de seus clientes, sejam eles internos 
ou externos! 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 163 
Após criar e configurar todos os objetos do ambiente, é chegada 
a hora de processar os dados e publicar o cubo para que seja acessado 
pelo cliente. O primeiro passo é apontar para o ambiente que possui a 
instalação do SQL Server Analysis Services - e que você tenha acesso para 
publicar. No meu caso vou publicar no ambiente de desenvolvendo, que 
é o mesmo da engine relacional do SQL Server, então o apontamento do 
ambiente será para MVS-SQL2014\SQL2014 e este apontamento deve ser 
realizado nas propriedades do projeto. 
 
Para isso abra o projeto que estava trabalhando até agora, vá até 
a Solution Explorer, encontre o nome do projeto e clique com o botão 
direito, aponte o mouse para Properties. 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 164 
 
 
Nesta tela que se abre, veja no menu da esquerda a opção 
Deployment e na área de contexto do lado direito, informe o caminho do 
servidor e a instância do SSAS que pretende utilizar na propriedade Server, 
dentro da sessão Target. O nome do projeto é colocado na propriedade 
Database e você pode alterar, se for o caso. 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 165 
 
 
Após finalizar clicando em OK, você termina a configuração do 
apontamento para o servidor OLAP. Agora falta a publicação do projeto. 
Para isso volte até a Solution Explorer, clique com o botão direito no nome 
do projeto e aponte para Deploy. 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 166 
 
 
Tanto na primeira publicação, quanto nas atualizações que 
ocorrem depois, uma mensagem informando que o projeto não existe ou 
que sofreu alterações desde a última vez que foi publicado é apresentada. 
Esta mensagem é informativa, avisando que a estrutura foi modificada. 
Preste atenção a esta mensagem, pois se não houve alteração na estrutura 
e você está sendo alertado sobre estas mudanças, pode ser que alguma 
coisa foi alterada por engano e isso será publicado no seu ambiente, 
sobrepondo o atual. Se você alterou a estrutura e está ciente disso, siga 
clicando em Yes neste aviso. 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 167 
 
 
 
Na sequência o SSAS iniciará o processo de publicação e, se tudo 
ocorrer bem, você será notificado com este sinal verde. 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 168 
 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 169 
O deploy será responsável por publicar as estruturas desenvolvidas no SQL 
Server Data Tools para dentro do SQL Server Analysis Services. Depois de 
publicada a estrutura, você já poderá configurar os acessos ao cubo para 
seus usuários. Mas quando qualquer alteração no ambiente relacional que 
serve de origem para o cubo acontecer, este precisa processar os dados 
novamente. Lembrando que o Data Warehouse é alimentado de tempos 
em tempos, você também deve processar o cubo de tempos em tempos. 
Este processo pode ser realizado diretamente dentro do SQL Server Data 
Tools, do SQL Server Management Studio ou então por meio de um JOB 
automatizado no SQL Server Integration Services. No próximo capítulo são 
explicados os tipos e onde são aplicados os processamentos. Agora, se 
precisar processar os dados para verificar se estão corretos, deve-se clicar 
com o botão direito no objeto que quer processar e apontar o mouse para 
Process. Veja como fica o processamento a partir do projeto. 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 170 
 
 
Uma nova tela se abre apresentando algumas informações. Vá até 
o final da página e clique em Run. 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 171 
 
 
Em seguida outra tela se abre, mostrandoo progresso da 
publicação. 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 172 
 
 
Se o Status ficar com o sinal verde, significa que processou com 
sucesso e os dados já estarão atualizados no ambiente OLAP. Se quiser 
verificar a publicação, acesse o SQL Server Management Studio se 
conectando ao Analysis Services, expanda o item Databases e veja o que 
projeto - que você acabou de publicar - está disponível. 
 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 173 
É comum - durante o desenho/planejamento dos projetos de BI - 
dedicarmos algumas atividades à performance e desempenho. Isso é 
ótimo e ajuda muito, mas algumas coisas básicas como processar de forma 
eficiente o cubo (e as dimensões) nem sempre são utilizadas. Digo isso por 
encontrar diversos projetos em que o processamento do cubo está como 
“padrão”. Fazendo uma analogia e forçando a barra um pouco, é como 
criar todos índices que o DTA (Database Tuning Advisor) sugere sem 
examinar o que é realmente útil para o ambiente. Utilizar o processamento 
correto pode salvar algumas horas de sono para nós. O objetivo deste 
capítulo é deixar, de uma forma clara e direta, quais são os tipos de 
processamentos de dados. 
A ideia aqui é ir direto ao ponto, encontrando o que dá pra 
processar (e onde é aplicável) e quais os resultados obtidos com cada tipo 
de processamento. 
 
PROCESS DEFAULT 
Realiza o menor esforço possível (com a menor quantidade de 
tarefas) para processar a estrutura e os dados. O servidor converte esta 
opção na mais adequada à necessidade do seu ambiente, no momento do 
processamento. 
Aplicável: Todos Objetos 
 
PROCESS FULL 
Processa toda a estrutura e os dados, excluindo e recriando os 
objetos. Isso significa que o processamento descarta tudo o que existe, 
cria novamente a estrutura analítica e depois processa os dados para esta 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 174 
estrutura. Se algum novo atributo é adicionado à dimensão, você pode 
atualizar através de um Process Full. 
Aplicável: Todos Objetos 
 
PROCESS UPDATE 
Quando acontece alguma alteração de atributos na dimensão, seja 
adicionando, removendo ou atualizando, este processo deve ser 
executado. Tem inteligência suficiente para processar somente o 
diferencial da estrutura e dos dados que são novos, porém é mais lento 
para aplicar a “inteligência” do que é o diferencial. 
Aplicável: Dimensão 
 
PROCESS DATA 
Descarta todos os dados armazenados e processa todos os dados 
novamente, ignorando se houve alteração na estrutura e também nos 
índices. O foco é somente nos dados. 
Aplicável: Dimensão, Cubo, Medida e Partição 
 
PROCESS ADD 
Processa somente os novos dados, ignorando os dados que já 
existem e também qualquer alteração nova na estrutura ou índices. 
Aplicável: Dimensão e Partição 
 
Só pra lembrar onde o processamento é feito dentro do SSDT (SQL 
Server Data Tools), vá até o objeto que quer processar, clique com o botão 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 175 
direito e aponte para Process. Quando a tela se abrir, veja na caixa de 
seleção as opções de processamento disponíveis para aquele objeto. 
 
 
 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 176 
 
Depois que já tiver publicado seu projeto, de dentro do SSMS (SQL 
Server Management Studio) também é possível processar objetos. Siga o 
mesmo processo: botão direito no cubo, aponte para Process e em seguida 
escolha o tipo de processamento. 
 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 177 
Depois de criar, configurar e publicar o cubo, é hora de acessá-lo. 
A ferramenta mais completa e amplamente utilizada é o Excel. Todo 
tomador de decisão utiliza alguma ferramenta de planilha eletrônica pela 
facilidade e familiaridade, para os projetos de Business Intelligence. Eles 
seguem a mesma linha. Isso não significa que nenhum relatório deve ser 
montado no Reporting Services. Diferente disso, o Reporting Services e o 
Excel trabalham juntos para entregar a melhor forma de visualizar a 
informação para nossos clientes. 
 
Com base nisso, vamos conectar o Excel no SQL Server Analysis 
Services e permitir que todo o potencial de insights sejam gerados a partir 
das diversas possibilidades de cruzamento de dados. 
 
Para isso, abra o Excel 2013 e vá até a Ribbon Data, em seguida 
procure o item From Other Souces e então, From Analysis Services. 
 
 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 178 
Neste momento uma tela para especificar o servidor do SSAS que 
possui o cubo é apresentada, solicitando os dados de autenticação. 
 
Ao avançar, na tela seguinte os projetos que estão visíveis ao usuário que 
se autenticou são apresentados na lista de seleção e o nome do cubo é 
apresentado na área central da tela. Veja o projeto SSAS_PrimeiroCubo 
criado nos capítulos anteriores e também o cubo Adventure Works 
DW2012. 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 179 
 
 
Ao avançar a tela, é possível visualizar algumas configurações que 
serão usadas para salvar o arquivo .odc de conexão, permitindo que esta 
conexão seja reutilizada no futuro. 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 180 
 
 
Ao clicar em Finish, o arquivo da conexão é criado e o Excel 
pergunta onde e como os dados serão trabalhados. Como a ideia é 
permitir flexibilidade através de tabelas dinâmicas, mantenha selecionado 
o item PivotTable Report, pois a partir desta tabela dinâmica é possível 
filtrar, cruzar, esconder e gerar gráficos com base nos dados. 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 181 
 
 
Ao clicar em OK, a estrutura da tabela dinâmica é criada dentro do 
Excel e permite que você faça a manipulação dos dados de forma a 
encontrar seu resultado esperado. 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 182 
 
 
Estes quatro blocos de interação são responsáveis por permitir o 
cruzamento e interação dos dados. Não vou me aprofundar neles, mas dá 
pra ter uma ideia do potencial de se trabalhar com este recurso. No 
quadrante superior à esquerda são os filtros: neste quadrante são 
especificados os itens que filtrarão todo o resultado apresentado na tabela 
dinâmica. O quadrante superior direito, chamado Columns, são os dados 
das dimensões que quebrarão as measures em colunas. O quadrante 
inferior esquerdo, de nome Rows, é o responsável por quebrar os dados 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 183 
das measures em linhas. E por fim, o quadrante inferior direito, Values, é 
onde os dados das measures ou KPIs serão exibidos. 
 
Veja um exemplo utilizando os quadrantes: 
 
 
 
FILTERS: Order Date = 2007 
 
COLUMNS: Region (Hierarquia criada com o Grupo/País/Região) 
 
VALUES: Measure Sales Amount e KPI Profitability Status 
 
ROWS: Product (Hierarquia criada com a Categoria/Sub-
Categoria/Produto) 
 
O resultado fica assim, na tabela dinâmica 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 184 
 
 
E como são dados exibidos no Excel, transformar esta informação 
em gráfico é bem tranquilo. 
 
 
 
Com toda a flexibilidade do Excel e os dados cruzados no cubo, as 
análises dos seus clientes passarão a ter um potencial de decisão com alta 
performance. 
 
Do Banco de Dados Relacional à Tomada de DecisãoMVTech · 185 
 
 
 
 
 
 
 
 
 
 
 
SQL SERVER 
REPORTING SERVICES 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 186 
Desde a versão 2008 do SQL Server Reporting Services não é mais 
necessário o IIS para publicar os relatórios. Desde então foi criado o 
conceito do Reporting Services Configuration Manager, que cria um 
WebService no servidor e permite a publicação neste serviço. A ideia deste 
capítulo é mostrar o que é preciso fazer para permitir o SSRS publicar os 
relatórios em um WebService e então poder consumir os relatórios através 
da web. 
 
Com o SSRS 2014 temos uma ferramenta que auxilia a 
configuração do deploy do relatórios. Por padrão essa ferramenta fica em 
Microsoft SQL Server 2014 >> Configuration Tools >> SQL Server 2014 
Reporting Services Configuration Manager”. 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 187 
 
 
A primeira tela que ela apresenta é para se conectar ao servidor de 
relatórios, o qual também está no meu ambiente de desenvolvimento, 
MVS-SQL2014. 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 188 
 
 
No menu da esquerda, confirme se a opção está apontando para 
o nome do servidor e instância do Reporting Services, então veja na área 
central da tela que o serviço está em execução ou parado. No caso do 
botão Start estar habilitado, significa que o serviço não está rodando no 
momento. Clique em Start e aguarde o serviço ser iniciado. 
 
 
 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 189 
No menu da esquerda, vá até o item Service Account. Nesta tela 
você especificará qual usuário vai ser usado pelo sistema para iniciar e 
gerenciar o serviço de relatórios. Na primeira combo box, você tem a opção 
de escolher entre os Local System (Usuário Local), Network Service (Serviço 
de Rede) ou Local Service (Serviço Local). A segunda forma é informar qual 
usuário você quer utilizar. Neste caso já foi criado um usuário local 
chamado SSAS, então eu recomendo que você crie um usuário e informe 
para este campo. 
 
 
 
Ao alterar o usuário de gerenciamento do serviço, o Reporting 
Services solicita que você faça um backup da chave de criptografia. Escolha 
um lugar seguro para armazenar esta chave e também uma senha. 
Preencha os campos e clique em OK. Depois de alguns instantes, se tudo 
ocorrer bem, as marcações verdes aparecerão na tela de configuração. 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 190 
 
 
 
O item seguinte, Web Service URL, é onde deve-se especificar qual 
é a URL do WebService que publicará os relatórios e permitirá consumir 
por meio de um navegador. Neste momento, especifica-se qual é o 
diretório virtual (caminho lógico que o sistema irá criar para você poder 
acessar os relatórios), e qual é a porta (por padrão é a 80). Repare que 
quando você altera essas configurações, o link que está abaixo na tela é 
modificado. Essa é a URL que você vai acessar seus relatórios. Por padrão 
ele sugere o nome da instância do SQL Server Reporting Services para o 
nome do diretório virtual e também para a URL do serviço. Um padrão de 
mercado é remover o nome da instância do nome do diretório virtual e 
seguir somente com a URL contendo o ReportServer. Veja como ficou. 
 
 
 
Após fazer a alteração, clique em Apply para que estas 
configurações sejam mantidas. 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 191 
 
A aba seguinte é Database e permite conectar ao banco de dados 
específico do Reporting Services. Neste database são armazenadas 
informações sobre execuções, quem acessou, quanto tempo demorou, etc. 
Informe em qual banco de dados o sistema pode se conectar e qual 
usuário ele deve utilizar pra se conectar no banco de dados. Repare que é 
um usuário diferente do informado em Service Account. Lá é para acessar 
o serviço e aqui é para acessar o banco de dados. 
 
 
 
No item Report Manager URL, você informa qual é o nome do 
diretório virtual que será criado para você poder acessar o gerenciador de 
relatórios. Novamente, repare que são dois links diferentes, então informe 
caminhos diferentes. Esse gerenciador lhe permite criar, editar e excluir 
relatórios criados no SQL Server Data Tools ou no Report Builder. 
 
 
 
As configurações básicas estão completas. Só com essas 
configurações realizadas acima, já é possível deixar o SSRS disponível para 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 192 
os deploys de relatórios e também acessível por meio de um WebService 
que foi configurado. 
 
Para acessar os relatórios que serão publicados, recupere o link 
que foi informado na configuração do Web Service URL. No meu caso, 
é: http://mvs-sql2014/ReportServer 
 
Caso tenha problemas de permissão, você verá um erro na tela 
com a mensagem 
“As permissões concedidas ao usuário 
‘<<aqui_vem_o_seu_usuario_escolhido>>’ não são suficientes 
para a execução desta operação. (rsAccessDenied)” 
 
 
 
Um contorno para esta mensagem é alterar a permissão de usuário 
no UAC (User Account Control) para não ser notificado a cada alteração ou 
interação do usuário. Acesse o painel de controle, em seguida vá até Users 
Accounts. Dentro do usuário vá até Change User Account Control Settings 
e modifique a permissão através do slider para o nível mais baixo possível 
(Never Notify) e clique em OK. 
 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 193 
 
 
Ao abrir novamente a URL, você não terá mais o problema de 
acesso negado para o usuário. 
 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 194 
 
Neste momento é possível fazer os deploys de relatórios para este 
ambiente que acabou de ser configurado. 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 195 
Depois de configurar o ambiente e permitir que relatórios sejam 
publicados e acessados, é hora de começar a criar os relatórios com o SQL 
Server Reporting Services. Como nos outros exemplos deste livro, a 
primeira coisa a se fazer é acessar o SQL Server Data Tools e então criar o 
projeto do tipo Report Server, que está dentro do template de Reporting 
Services. 
 
 
 
Vou nomear como SSAS_Conexoes, pois este primeiro exemplo 
será relacionado às conexões dos relatórios. 
 
Da mesma forma que vimos no SQL Server Integration Services que 
podem haver conexões locais e também conexões compartilhadas entre 
todos os pacotes, aqui no Reporting Services também existe a mesma 
possibilidade. Quando se utiliza uma instrução de conexão ao servidor de 
banco de dados compartilhada esta conexão é configurada dentro do 
diretório Shared Data Source. Seguindo a mesma lógica, um acesso a 
tabelas/views/objetos de um banco de dados, também compartilhado, é 
criada dentro do diretório Shared Dataset. Os escopos específicos internos 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 196 
aos relatórios continuam sendo chamados de AD-HOC e possuem suas 
utilidades. 
 
Quando se cria um projeto do tipo Report Server no SSDT, os três 
diretórios-padrão são criados na Solution Explorer –-> Shared Data 
Source / SharedDataset / Reports. 
A pasta Shared Data Source é onde se cria a conexão com o 
servidor e também ao banco de dados, para posterior utilização em todos 
relatórios que utilizem esta mesma origem de dados. O Shared Dataset é 
a conexão entre uma origem de dados e um objeto (tabela, stored 
procedure, view, etc) do bancode dados. Ela permite que você utilize uma 
conexão já existente (Shared Data Source) ou crie uma nova. E por fim a 
pasta Reports é onde ficam os seus arquivos .RDL de relatórios. 
 
Para começar o processo de conexões, vá até a pasta Shared Data 
Sources, clique com o botão direito e vá em Add New Data Source. 
 
 
 
A tela do Wizard vai aparecer e é só você preencher os dados de 
conexão ao banco de dados, igual foi feito nas conexões do Integration 
Services. Para esta edição, clique no botão Edit que aparece ao lado da 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 197 
caixa que receberá a Connection String. Neste caso, estou conectando ao 
Data Warehouse do AdventureWorksDW2012. 
 
 
 
Após a conclusão desta conexão à fonte de dados, é só confirmar 
e verificar que a conexão compartilhada foi criada na pasta Shared Data 
Sources. Agora é hora de fazer a mesma coisa, só que com o Shared 
Dataset. 
Vá na solution explorer, encontre a pasta Shared Datasets, clique 
com o botão direito e vá até o item Add New Dataset. Um outro wizard irá 
se abrir e vai te orientar a fazer a chamada do objeto para retornar os 
dados para a aplicação. 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 198 
 
 
Dê um nome sugestivo para encontrar depois. Neste caso nomeei 
como Paises, pois a consulta irá retornar os países existentes na tabela 
DimSalesTerritory. Veja a consulta: 
select SalesTerritoryCountry from [DimSalesTerritory] 
where SalesTerritoryCountry != 'NA' 
group by SalesTerritoryCountry 
No campo de Data source selecione a conexão compartilhada que 
criou no passo anterior. Na opção de Query Type mantive a opção 
relacionada à Text e então coloquei o texto da consulta apresentada 
algumas linhas acima. Após preencher os dados, é só confirmar e seu 
Shared Dataset estará criado. 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 199 
 
 
 
Com esses dois recursos prontos com escopo de projeto, pode-se 
criar relatórios e utilizar como origem da informação um Dataset criado 
por você ou por outro membro da equipe - podendo ser aplicada 
manutenção nessas informações a qualquer momento, sem ter que entrar 
em relatório por relatório para fazer isso. Com essas duas opções, você 
altera um único lugar e todos os relatórios que utilizam essa conexão 
compartilhada para a origem dos dados já serão automaticamente 
atualizados. 
 
Outra coisa interessante é que, para alterar o Shared Data 
Source ou o Shared Dataset para mudar o ambiente de Desenvolvimento 
pra Produção, o processo é simples. Você pode abrir os 
arquivos ConexaoGlobal.RDS (Shared Data Source) ou Paises.RSD (Shared 
Dataset) que ficam na pasta onde você salvou o projeto. 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 200 
 
 
Ambos arquivos são um XML que pode ser alterado e substituído 
em seus servidores para que reflitam as alterações sem a necessidade de 
recompilar o aplicativo ou refazer o relatório para que a alteração tenha 
efeito. 
 
Vejam como é simples e intuitivo o XML do 
arquivo ConexaoGlobal.RDS: 
 
<?xml version="1.0" encoding="utf-8"?> 
<RptDataSource xmlns:xsi="http://www.w3.org/2001/XMLSchema-
instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
Name="ConexaoGlobal"> 
 <ConnectionProperties> 
 <Extension>SQL</Extension> 
 <ConnectString>Data Source=mvs-sql2014\sql2014;Initial 
Catalog=AdventureWorksDW2012</ConnectString> 
 <Prompt>Specify a user name and password for data source 
ConexaoGlobal:</Prompt> 
 </ConnectionProperties> 
 <DataSourceID>da89fc59-9397-4b44-ae56-
28fa53279522</DataSourceID> 
</RptDataSource> 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 201 
Repare que existe uma TAG chamada ConnectString no centro do 
código. Esta TAG representa o caminho do servidor e a instância que será 
acessada. Também apresenta o Initial Catalog, que é o banco de dados 
que será acessado.
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 202 
Em algumas situações é necessário apresentar dados consolidados 
em um relatório de fechamento, com todo o detalhamento. Isso implicaria 
no relatório ficar com um tamanho e volume de informação acima do que 
caberia em uma página. Para resolver esta necessidade, é possível 
contrair/expandir as linhas do relatório como foram feitas nas hierarquias 
do Analysis Services e visualizar a informação agrupada (linhas contraídas) 
ou então detalhada (linhas expandidas). 
 
Este capítulo é dedicado a ensinar esta técnica. 
 
No capítulo anterior, foi ensinado como criar um Shared Data 
Source e um Shared Dataset apontando para o banco de dados 
AdventureWorksDW2012 que é do engine relacional. Neste capítulo 
também serão criados o Shared Data Source e o Shared Dataset, mas 
apontando para o cubo que foi criado na sessão de Analysis Services, para 
recuperar o resultado existente na hierarquia de Produtos. 
 
Para começar, crie um novo projeto do tipo Report Server e dê o 
nome de SSRS_Hierarquia. 
Após a criação, vá até o diretório Shared Data Source na Solutions 
Explorer e crie uma nova conexão para o servidor onde está publicado o 
cubo. 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 203 
 
 
Conclua clicando em OK. Também crie um Shared Data Set para 
consultar informações já processadas no cubo. Faça isso clicando com o 
botão direito em Shared Data Set e aponte para Add New Dataset. Na 
janela que se abre, informe o nome do Dataset no campo name, 
lembrando que este é o nome externo, para ser usado em todos os 
relatórios que necessitarem. No meu caso, coloquei HierarquiaProduto. Na 
lista de seleção Data Source, informe o Data Source que foi criado a pouco. 
Eu nomeei como CuboAdventureWorks. No campo Query Type só o Text 
está habilitado, mas a edição de texto não, então clique em Query Designer 
e arraste a estrutura da consulta como deve ser retornada. Faça isso 
expandindo as Measures e arrastando Total Vendas para a área central do 
Query Designer. 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 204 
 
 
Faça a mesma coisa expandindo a dimensão Produto e arrastando 
a hierarquia Produtos para o lado esquerdo da measure que foi adicionada 
no Query Designer. 
 
 
 
Repare que, ao posicionar a hierarquia Produtos ao lado da 
measure, uma linha azul marinho fica destacada. Esta linha informa onde 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 205 
os valores daquele atributo serão posicionados. Após arrastar a hierarquia, 
será possível ver os dados como estarão. 
 
 
 
Ao final, retorne à tela anterior clicando em OK. 
 
Repare que o código em MDX foi impresso no campo Text do 
Query Type. 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 206 
 
 
E o código MDX escrito é este abaixo: 
SELECT NON EMPTY { [Measures].[Sales Amount] } ON COLUMNS, NON 
EMPTY { ([Dim Product].[Products].[English Product 
Name].ALLMEMBERS ) } DIMENSION PROPERTIES MEMBER_CAPTION, 
MEMBER_UNIQUE_NAME ON ROWS FROM [Adventure Works DW2012] CELL 
PROPERTIES VALUE, BACK_COLOR, FORE_COLOR, FORMATTED_VALUE, 
FORMAT_STRING, FONT_NAME, FONT_SIZE, FONT_FLAGS 
Após a criação das conexões, é necessário criar o relatório que 
receberá os dados retornados da consulta. Para isso, clique com o botão 
direto do mouse em Reports, aponte para Add e então clique em New Item. 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 207 
 
 
Na tela que se abre,garanta que selecionou o objeto Report e o 
renomeie como VendasPorProduto.rdl, e clique em Add. 
 
 
 
Automaticamente a área de design do relatório se abre, 
permitindo que seja trabalhado. Até este momento não existe nenhuma 
origem de dados atrelada a este relatório. Para fazer esta associação, vá 
até o menu Report Data. Caso não o encontre, acesse o menu View e em 
seguida vá até Report Data, ou então, através do atalho Ctrl+Alt+D. 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 208 
 
Ao chegar ao menu Report Data, procure a opção Datasets, clique 
com o botão direito e aponte para Add Dataset. 
 
 
 
Na tela que se abre, existe a opção de usar um Shared Dataset ou 
então fazer uma conexão interna a este relatório. Neste caso, já existe a 
conexão compartilhada, então a opção Use shared dataset deve ficar 
selecionada nas opções. O campo name é o nome interno do Dataset no 
relatório - isso porque é possível adicionar mais de uma origem de dados 
ao mesmo relatório. Nomeie o dataset interno como ProdutoInterno, 
selecione qual Shared Dataset será utilizado e clique em OK. 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 209 
 
 
Repare que no item Datasets do menu Report Data, existe um 
dataset com o nome interno que foi criado a pouco e os campos que foram 
criados no dataset compartilhado. 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 210 
 
 
Voltando ao relatório, abra a Toolbox (caixa de ferramentas) do 
Reporting Services e arraste o item Table para a área de design do relatório. 
 
 
 
Este componente de tela fornece uma tabela com linhas e colunas 
convencional. Reparem que existe um facilitador para preencher os 
campos, onde a linha de Data representa os dados e a linha de Header 
representa os cabeçalhos. Passe o mouse sobre a primeira coluna e veja 
que um ícone aparece. 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 211 
 
 
Este ícone representa uma lista de campos. Ao clicar, veja que os 
campos adicionados ao Dataset interno são apresentados. 
 
 
 
Selecione o campo Categoria_Produto nesta célula. Faça a mesma 
coisa nas células seguintes, incluindo respectivamente, 
SubCategoria_Produto e Nome_do_Produto. 
 
Por padrão são adicionados apenas três colunas na tabela, para 
adicionar uma nova. Clique com o botão direto na terceira coluna, aponte 
o mouse para Insert Column e então clique em Right. 
 
 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 212 
Estes passos vão incluir uma nova coluna à direita da coluna 
selecionada. Se fosse o caso de incluir uma nova coluna entre Sub-
Categoria e Produto, poderia clicar em Left (esquerda) ou invés de Right 
(direita). Isso incluiria a nova coluna no lado informado. Após incluir a nova 
coluna, faça o mesmo processo e adicione o item Total_Vendas. 
 
 
 
Clicando no botão de Preview, ao lado do botão de Design da área 
de modelagem do relatório, o Reporting Services se conecta ao banco e 
retorna os dados reais que estão sendo consumidos. 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 213 
 
 
Veja que neste momento os dados são apresentados sem 
formatação e, menos ainda, organizados em hierarquias. 
 
Para resolver o problema da hierarquia, deve-se agrupar os dados 
por Categorias, resultando na diminuição do tamanho final do relatório. 
 
Para isso, volte à área de design do relatório, clique com o botão 
direito na célula do campo SubCategoria, aponte para Add Group e em 
seguida Parent Group relacionado ao segmento de Row Group. 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 214 
 
 
 
Uma caixa de diálogo é apresentada, solicitando que informe qual 
deve ser o campo que agrupará os dados. Nesta caixa, 
selecione Categoria_Produto e clique em OK. 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 215 
 
 
 
Com isso, o campo Categoria_Produto é adicionado à tabela de 
dados, mas ainda não diminui o tamanho do relatório. Se visualizar o 
resultado através do botão Preview, o tamanho ainda será o mesmo. A 
única diferença é que os dados de Categorias não estão se repetindo, 
estão apenas agrupados. 
 
Para de fato criar a hierarquia e a possiblidade de expandir e 
contrair o resultado, vá até a área Row Groups (na área central inferior da 
tela de detalhes), clique com o botão direito em Details e em 
seguida Group Properties. 
 
 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 216 
 
Após a caixa de diálogo se abrir, vá até a opção Visibility no menu 
da esquerda, então selecione Hide na sessão When the report is initially 
run, também marque a caixa de seleção do Display can be toggled by this 
report item e então selecione o campo Categoria_Produto1 na lista de 
seleção. Em seguida clique em OK. 
 
 
 
 
Isso realmente fará com que os dados baseados da 
Categoria_Produto comprima os dados de SubCategoria referentes à 
aquela Categoria e permite que o relatório fique menor. Porém, se você 
quiser visualizar os dados das Subcategorias específicas, basta expandir 
clicando no ícone de + e, se quiser retrair, basta clicar no ícone de -. 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 217 
 
 
 
Após a criação da nova Categoria_Produto1 que agrupou os 
resultados, ficaram visíveis no relatório duas colunas de Categoria. Para 
remover a categoria antiga, volte à área de design, clique com o botão 
direito na coluna e aponte para Column Visibility. 
 
 
 
Na janela que se abriu, selecione o Hide na opção já conhecida, 
When the report is initially run. 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 218 
 
 
Fazendo isso, esta coluna será ocultada na hora da apresentação 
do relatório para o usuário. Confirme como ficou o relatório, clicando em 
Preview novamente. 
 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 219 
 
Explore a formatação de tamanho, cores de células e cores de 
texto. Com certeza isto vai melhorar a aparência do seu relatório. Para 
facilitar, veja o menu de edição do Reporting Services. 
 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 220 
As páginas contendo linhas com cores alternadas foram 
introduzidas nos relatórios gigantescos que eram gerados por impressoras 
matriciais. Eram folhas e mais folhas de formulário contínuo, repletos de 
números que dificultavam o acompanhamento do dado no decorrer da 
linha. Quando as folhas zebradas surgiram, os analistas de negócios da 
época conseguiram melhorar as análises simplesmente porque era 
possível acompanhar o dado do começo da linha até o final, sem a 
necessidade de nenhum instrumento extra (como uma régua, por 
exemplo). 
 
No Reporting Services também é possível criar este recurso de 
linhas zebradas - e isso é mais comum do que se imagina. Vários cliente 
que visitei utilizam esta forma de relatório até hoje para mostrar as 
informações necessárias. A proposta deste capítulo é mostrar um exemplo 
de como fazer um desses relatórios em formato de tabela (linha e coluna), 
e como “zebrar” o resultado (deixar uma linha de cada cor 
alternadamente). 
 
Para isso, abra novamente o relatório criado no capítulo anterior 
com a hierarquia dos produtos consumindo através do Analysis Services. 
 
Reparem que o relatório ainda está sem formatação. Todas as 
informações estão chapadas em branco e preto. Como sugeridono final 
do capítulo anterior, vamos fazer algumas modificações para deixar o 
relatório mais atrativo aos olhos do cliente. 
A primeira coisa é alterar o fundo do cabeçalho. Para isso, vá até a 
tabela e clique na coluna à esquerda da linha do cabeçalho. 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 221 
 
 
Quando ela ficar selecionada, vá até o item Background Color e 
selecione a cor de sua preferência. No meu caso, coloquei Azul 
(CornerFlower Blue). 
 
 
 
 
Outra coisa que você pode fazer é alterar o tamanho das colunas. 
Para isso, clique na tabela e vá até a linha divisória das colunas na primeira 
linha. 
 
 
 
Depois de formatar da forma que é melhor para seu relatório, é 
hora de criar o efeito “zebra” no resultado. 
Seguindo a mesma lógica de colorir o cabeçalho, deve-se 
selecionar a linha de dados e novamente apontar o mouse para 
Background Color. 
 
 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 222 
 
Lembrem-se que, ao invés de escolher a cor propriamente dita, nós 
queremos fazer linhas com cores intercaladas. Para isso, ao invés de 
selecionar a cor, será necessário escrever uma expressão em Visual Basic. 
No botão [fx] da caixa de seleção de cores, você pode inserir uma 
fórmula. Clique neste botão. 
 
 
 
Ao abrir a janela, informe o código abaixo: 
=iif(RowNumber(Nothing) mod 2,"White", "LightSteelBlue") 
 
Informando que a primeira linha do relatório é Branca (White), e a 
segunda é um azul mais claro que o do cabeçalho (LightSteelBlue). Caso 
queira, você pode selecionar outras cores a sua escolha. Basta alterar no 
código a cor de sua preferência, clicando sobre a cor na paleta de cores, 
na hora de escrever o código. É importante que você tenha apagado o 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 223 
nome da cor anterior, para que não dê erro na hora de inserir o novo nome 
de cor. 
 
 
 
Confirme até voltar à tela principal e clique novamente no botão 
Preview para verificar como ficou o relatório. 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 224 
 
 
Seguindo esta mesma lógica para zebrar a linha, é possível aplicar 
outra fórmula simples para mudar a cor do texto em determinadas linhas. 
Vou seguir a seguinte regra: se o Total de Vendas for acima de 50.000, 
então a cor do texto será Azul; se for abaixo deste valor, a cor do texto 
será Vermelha. 
 
 
 
A formula colocada na cor do texto é essa: 
=IIF( Fields!Total_Vendas.Value > 50000,"Blue","Red") 
Apesar do valor do Total Vendas representar um valor monetário, 
não é como está formatado. Para alterar a forma visual da apresentação 
do dado, volte à edição do relatório e então clique com o botão direito do 
mouse na célula do Total_Vendas e aponte o mouse para Text Box 
Properties. 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 225 
 
 
 
Nesta tela de formatação, procure no menu da esquerda o item 
Number, em seguida selecione Currency na lista Category e formate de 
acordo com sua preferência. 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 226 
 
 
Clique em OK para voltar à tela de edição do relatório e, mais uma 
vez, clique no botão Preview para ver como ficou. 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 227 
 
 
O resultado da formatação apresentou fundo das linhas zebradas, 
cor do texto baseado em uma regra de negócios e formatação de célula 
para adequar a apresentação do dado ao seu significado. 
 
 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 228 
Como o ambiente já está configurado para receber as publicações 
de relatórios e já foi criado um relatório que acessa os dados do cubo 
Adventure Works DW2012, é hora de juntar estes passos para publicar o 
relatório e deixá-lo disponível para os usuários. 
 
Abra o relatório zebrado que foi criado no capítulo anterior, vá até 
a Solution Explorer, clique com o botão direito do mouse e aponte para 
Properties. 
 
 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 229 
Diversas configurações sobre a publicação são apresentadas na 
tela que se abre. Vejamos em detalhes: 
 
OverwriteDatasets: Sobrescreve o dataset, com base no que está 
desenvolvido no SQL Server Data Tools. Caso alguma alteração no arquivo 
tenha sido feita diretamente no arquivo através do WebService, esta 
alteração será perdida. 
 
OverwriteDataSource: Sobrescreve o data source e segue a 
mesma explicação do OverwriteDatasets. 
 
TargetDatasetFolder: É o diretório dentro da estrutura do 
WebService que será publicado o Shared Dataset desenvolvido. Pode 
inferir caminho com mais de um nível de profundidade. 
 
TargetDataSourceFolder. É o diretório para a publicação do 
Shared Data Source e segue a mesma explicação do TargetDatasetFolder. 
 
TargetReportFolder: É o diretório para a publicação do Relatório 
e segue a mesma explicação do TargetDatasetFolder e 
TargetDataSourceFolder. Por padrão vem o nome do projeto, pois podem 
existir diversos relatórios dentro de um projeto. 
 
TargetReportPartFolder: É o diretório para a publicação de partes 
reutilizáveis do Relatório e segue a mesma explicação do 
TargetDatasetFolder, TargetDataSourceFolder e TargetReportFolder. Por 
padrão vem vazio. 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 230 
 
TargetServerURL: Esta configuração pode ser considerada a mais 
importante, visto que é o caminho do servidor que foi configurado e 
permite o acesso ao serviço de relatórios do Reporting Services. Caso não 
lembre o caminho do seu servidor, acesse novamente o SQL Server 2014 
Reporting Services Configuration Manager, vá até o menu lateral esquerdo 
Web Service URL, e veja qual é a URL configurada. 
 
TargetServerVersion: É uma lista de seleção que deve ser 
informada a versão do ambiente do Reporting Services, não a versão em 
que foi desenvolvido o relatório. 
 
 
 
Ao término da configuração, confirme clicando em OK. Ao voltar à 
tela principal, novamente vá até a Solution Explorer, clique com o botão 
direito e aponte para Deploy. 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 231 
 
 
 
Durante o processo de publicação, uma lista com as ações é 
apresentada na parte inferior do SQL Server Data Tools e permite o 
acompanhamento do que está sendo executado pelo servidor. No final, se 
tudo ocorreu bem, o SSDT apresenta o caminho a ser acessado para 
visualizar o relatório. 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 232 
 
 
Ao acessar o caminho do Reporting Services, será possível ver a 
pasta Produtos, que acabou de ser publicada. Dentro desta pasta existem 
as outras, que foram transformadas em subpastas pela configuração da 
publicação do projeto. Acesse a pasta Produtos, em seguida vá até Reports 
e por fim acesse VendasPorProduto. 
 
 
 
Ao clicar no link do VendasPorProduto, o relatório fará todo o 
caminho para ler os dados no cubo processado e apresentará o resultado 
na tela conforme foi desenvolvido no capítulo anterior. 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 233 
 
 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 234 
Nem sempre os gestores estão esperando os resultados 
detalhados para tomar alguma decisão, em alguns casos analisam 
simplesmente um ponteiro que apresenta a saúde de um produto, 
segmento,ou informação consolidada da empresa inteira. Estes ponteiros 
podem ser representados em diversos formatos através de Gauges nativos 
do Reporting Services. 
 
O Gauge é utilizado para mostrar a informação baseada em 
performance. Em outras palavras, você consegue plotar a informação 
sumarizada em um indicador que auxilia o tomador de decisão a verificar 
se a sua informação está saudável ou não. 
 
Abaixo estão alguns exemplos de Gauges (sem formatação) que o 
SSRS nos possibilita utilizar. 
 
 
 
Este capítulo é focado em criar um Gauge para apresentar o total 
de vendas da empresa no segmento Vestuário (Clothing). Para isso, crie 
um novo projeto do tipo Report Server, também crie um Shared Data 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 235 
Source apontando para o servidor do Analysis Services que posusi o cubo 
publicado. Também crie um Shared Dataset com filtro. Para este caso, 
clique com o botão direito em Shared Dataset e aponte para Add New 
Dataset. 
 
Na Janela que se abre, como no capítulo passado, escolha o Shared 
Data Source que aponta para o cubo, e clique em Query Designer para 
montar o texto que recupera os dados que serão plotados no gráfico. A 
diferença deste Dataset é que somente o segmento Vestuário é necessário 
para gerar o Gauge, então é preciso criar um filtro na consulta. Veja a área 
superior no Query Designer, nesta área é possível configurar o filtro. Após 
inserir a measure de Total Vendas e o atributo Categoria Produto da 
dimensão Produto, é necessário criar um filtro para remover as outra 
categorias do resultado. 
 
 
 
Ao clicar na célula <Select dimension> uma lista com as 
dimensões é apresentada, então selecione Produto. Na sequência, na 
célula Hierarchy selecione Categoria Produto, na célula de Operator 
selecione Equal e por fim, na célula de Filter Expression, escolha o membro 
Clothing. 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 236 
 
 
Ao clicar em OK, somente o resultado da categoria Clothing se 
manterá como origem dos dados. Confirme para voltar à tela anterior. 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 237 
 
 
Repare que existe uma instrução com o filtro no código ON ROWS 
FROM que recupera somente o resultado que seja verdadeiro nesta 
condição. 
SELECT NON EMPTY { [Measures].[Sales Amount] } ON COLUMNS, NON 
EMPTY { ([Dim Product].[English Product Category 
Name].[English Product Category Name].ALLMEMBERS ) } DIMENSION 
PROPERTIES MEMBER_CAPTION, MEMBER_UNIQUE_NAME ON ROWS FROM 
( SELECT ( { [Dim Product].[English Product Category 
Name].&[Clothing] } ) ON COLUMNS FROM [Adventure Works 
DW2012]) CELL PROPERTIES VALUE, BACK_COLOR, FORE_COLOR, 
FORMATTED_VALUE, FORMAT_STRING, FONT_NAME, FONT_SIZE, 
FONT_FLAGS 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 238 
Após confirmar e criar o Shared Dataset, é preciso criar o relatório 
que receberá o Gauge. Crie um novo relatório e nomeie como 
IndicadoresDeVendas 
 
 
 
Arraste o controle de Gauge para o relatório, como fez 
anteriormente com o controle Tabela. Ao arrastar a tela que se abre 
permite escolher o tipo do Gauge que será utilizado no relatório. O 
primeiro Gauge que está na imagem do início do capítulo é o mesmo que 
está selecionado na imagem abaixo, chama-se 180 Degress North. 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 239 
 
 
Após selecionar qual Gauge será utilizado, clique em Ok e 
aparecerá a tela para você informar qual será o DataSet que você quer 
utilizar para fazer a busca dos dados. Você já criou o seu Shared Dataset 
de Vestuario, então é só selecionar na lista e clicar novamente em OK. 
 
 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 240 
Neste momento o gauge é plotado no relatório mas não está 
configurado. Está apenas apresentado e com acesso à informações de 
Vestuário. Para apresentar o dado corretamente, é preciso configurar qual 
será a informação sumarizada que o ponteiro utilizará para plotar no 
gráfico. Para isso, clique no Gauge e espere a janela do SmartTag Gauge 
Data se abrir, vá até o item (Unspecified) e selecione o Total_Vendas. 
 
 
 
Com isso, seu Gauge já está configurado para mostrar a 
informação de total que vem da sua base de dados. Porém, se clicar em 
Preview para visualizar o resultado, o Gauge estará apontando para 100 
que é o limite máximo padrão do ponteiro do gauge. 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 241 
 
 
Para alterar essas configurações básicas do Gauge e criar os 
intervalos que representarão a performance de suas vendas (esse exemplo 
é baseado no Total de Vendas de Vestuário). 
 
Como estamos falando em performance de vendas, normalmente 
existe um planejamento que defini um valor que seja satisfatório para 
medir a performance para aquele ano, ou período. Digamos que o 
planejamento total para Vestuário seja de 400.000,00 (quatrocentos mil). 
Para isso clique novamente no Gauge e aperte a tecla F4, a aba de 
propriedades será aberta, vá até a coleção Scales. Com a janela 
do Scales aberta para edição, procure e altere a 
propriedade MaximumValue para o valor 400000 (quatrocentos mil). 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 242 
 
 
A coleção de Scales permite configurar toda a informação da 
escala que o Gauge irá mostrar, sendo possível definir qual é o valor 
mínimo, o valor máximo, se ele vai mostrar o valor ou não, de quanto em 
quanto é o intervalo a ser mostrado, entre outras configurações. 
 
Ainda dentro da configuração de Scales, procure a coleção Ranges. 
A tela de Ranges permite criar intervalos para mostrar no Gauge e 
o gestor terá a possibilidade de fazer as análises visualmente, esta é a 
cereja do bolo! Neste exemplo os intervalos serão criados para apresentar 
3 Ranges de performance. O primeiro no intervalo de 0 até 300000, que 
será um péssimo resultado. O segundo intervalo será 300001 até 350000 
e apresenta um resultado intermediário. O terceiro intervalo é o que é 
considerado satisfatório e cobre de 350001 até 400000. 
 
Dentro da janela de Scales, já existe um Range criado. Pode-se 
alterar as propriedades deste range para suprir um dos intervalos que 
serão criados. Altere as propriedades: 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 243 
Name: DesempenhoBaixo 
 
StartValue: 0 
 
EndValue: 300000 
 
FillGradienteEndColor: Selecione a cor Vermelho. 
 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 244 
 
Agora é necessário inserir mais 2 intervalos, para isso, clique no 
botão Add na parte inferior da tela. 
 
Configure o intervalo que foi criado, modificando as propriedades: 
Name: DesempenhoMedio 
 
StartValue: 300001 
 
EndValue: 350000 
 
FillGradienteEndColor: Selecione a cor Amarelo. 
 
Faça isso a terceira vez, mas informe as seguintes propriedades: 
Name: DesempenhoPositivo 
 
StartValue: 350001 
 
EndValue: 400000 
 
FillGradienteEndColor: Selecione a cor Verde. 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 245 
Após as configurações, confirme em OK até voltar à tela inicial. Os 
intervalos numéricos estão se sobrepondo e atrapalhando a visualização 
da informação. Para remover os números, acesse novamente as 
propriedades do Gauge, vá até a propriedade Label e altere a configuração 
de Hidden para True. 
 
 
 
Com esta alteração, o Gauge nãoirá plotar os números do 
intervalo. Seu gestor terá acesso à um resultado que aponta para o sucesso 
ou a falha do resultado que está analisando, simplesmente tendo a 
resposta visual. 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 246 
 
 
Para replicar as configurações nos outros tipos de Gauges 
existentes no Reporting Services é a mesma coisa, basta configurar o Scale 
e o Range adequar ao que melhor se encaixa para o relatório ou 
dashboard que está sendo desenvolvido. 
Veja alguns exemplos desses dados plotados em outros Gauges. 
 
 
 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 247 
No capítulo anterior o valor máximo do Gauge foi colocado 
manualmente mas isso nem sempre pode ser útil. Cada vez que este valor 
for atualizado, o relatório precisa ser modificado e publicado novamente. 
Para resolver este problema, pode-se utilizar o valor retornado de um 
Dataset, variável ou expressão, e o configurar o valor máximo do Gauge 
com base neste retorno. A proposta deste capítulo é ensinar esta 
configuração. Também será ensinado com incluir mais de um Dataset em 
um único relatório. 
 
Para começar, abra novamente o projeto de relatório do Gauge 
criado no capítulo anterior. Vá até a Solution Explorer, clique com o botão 
direito em Shared Datasets e aponte para Add New Dataset. 
 
Nomeie o Dataset como ValorMaximoGauge, mantenha 
selecionado o Shared Data Source CuboAdventureWorks, e clique mais 
uma vez em Query Designer. 
Repita os passos anteriores pra criar o filtro, mas desta vez, faça a 
seleção no Filter Expression para o total de vendas do membro Accessories 
e não Clothing. Isso é só um exemplo, para simular o planejamento do que 
deveria ter sido vendido. 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 248 
 
 
Clique em OK e verifique que o Total Vendas está na casa dos 700 
mil. Clique em OK novamente e volte para a tela inicial do Dataset. 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 249 
 
 
SELECT NON EMPTY { [Measures].[Sales Amount] } ON COLUMNS FROM 
( SELECT ( { [Dim Product].[English Product Category 
Name].&[Accessories] } ) ON COLUMNS FROM [Adventure Works 
DW2012]) WHERE ( [Dim Product].[English Product Category 
Name].&[Accessories] ) CELL PROPERTIES VALUE, BACK_COLOR, 
FORE_COLOR, FORMATTED_VALUE, FORMAT_STRING, FONT_NAME, 
FONT_SIZE, FONT_FLAGS 
Ao concluir, mais um Shared Dataset está criado no projeto, e 
pronto para adicionado ao relatório. Em um capítulo anterior foi dito de 
adicionar mais de um Dataset em um relatório, isso será feito agora. Para 
isso, abra novamente a opção de Report Data, se não estiver visualizando, 
acesse através do atalho CTRL+ALT+D. 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 250 
Nesta tela, vá até o item Datasets, clique com o botão direto e 
aponte para Add Dataset. 
 
Na tela que se abre, preencha o campo Name com TotalPlanejado, 
mantenha marcado a opção Use a shared dataset e selecione o Shared 
Dataset com o nome ValorMaximoGauge. Clique em Ok pra confirmar e 
voltar ao relatório. 
 
 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 251 
Após concluir, repare que o relatório está habilitado para trabalhar 
com mais de um Dataset. 
 
 
 
Voltando à edição do Gauge, selecione novamente o indicador e 
vá até a coleção da propriedade Scale por mais uma vez. No capítulo 
anterior foi configurado manualmente o valor de 400.000 como o 
MaximumValue desta coleção. Porém, agora existe um valor retornado do 
banco de dados, que é o responsável por manter este número variável, e 
de acordo com a informação do planejamento. Para isso, clique em 
<Expression...> na caixa de seleção da propriedade MaximumValue. 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 252 
 
 
Na tela de expressão, que já lhe foi apresentada ao trabalhar com 
linhas zebradas no relatório, é possível retornar os valores de um dataset. 
Para isso, clique em Dataset na coluna da esquerda (Category), em seguida 
escolha de qual dataset é a informação que será retornada na coluna 
central (Item) e por fim na coluna da direita (Values) clique duas vezes em 
Sum(Total_Vendas). 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 253 
 
 
Veja que onde estava 400000 na expressão, se transformou no 
código: 
 
=Sum(Fields!Total_Vendas.Value, "TotalPlanejado") 
 
Confirme no botão OK até voltar ao relatório. Ao clicar no botão 
Preview para verificar como está o relatório, veja que o valor máximo está 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 254 
na casa dos 700 mil, conforme é o resultado do Sum(Total_Vendas) 
informado. 
 
 
 
Esta mudança no valor máximo fez com que os ranges de cores 
fossem impactados, mantendo o valor fixo informado no capítulo anterior. 
Para resolver este problema também é possível trabalhar com expressões 
para formatar os valores dos intervalos. Para isso, abra novamente a 
coleção Scale do Gauge, e procure a coleção Range na janela de 
configuração do Scale. 
 
Da mesma forma que o valor máximo do Gauge foi criado, é 
preciso trabalhar com uma expressão nos valores dos Ranges. Selecione o 
range com nome DesempenhoBaixo, vá até a propriedade EndValue e 
selecione <Expression...> na lista de seleção. 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 255 
 
 
Não é necessário alterar o valor de StartValue pois este já é o 
menor desempenho, e o menor desempenho nunca será negativo. Então 
manter o valor zero é suficiente. Suponhamos que o intervalo para um 
desempenho baixo seja entre 0 e 70% do valor planejado. Com base nesta 
informação, pode-se dividir o valor total planejado por 10 e então 
multiplica-lo por 7. Esta formula resultará no valor de 70% a ser usado no 
EndValue deste intervalo. 
A formula ficaria assim: 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 256 
= ( (Sum(Fields!Total_Vendas.Value, 
"ResultadoDeVestuario")/10) *7) 
Confirme no botão OK e volte para a tela de configuração dos 
Ranges. No intervalo de nome DesempenhoMedio, o valor inicial deve ser 
idêntico ao valor final do primeiro intervalo. Para isso, faça a mesma 
expressão utilizada no EndValue do intervalo anterior na expressão 
StartValue deste intervalo. Para informar que um resultado intermediário 
é entre 70 e 90%, é necessário informar ao campo EndValue do segundo 
intervalo a formula abaixo: 
= ( (Sum(Fields!Total_Vendas.Value, 
"ResultadoDeVestuario")/10) *9) 
Esta formula também é utilizada como StartValue do range relativo 
ao DesempenhoPositivo. E a expressão do EndValue deste range será o 
valor sem cálculos de divisão e multiplicação, pois ele já é o valor total, 
ficando assim: 
=Sum(Fields!Total_Vendas.Value, "TotalPlanejado") 
Confirme clicando no botão OK até voltar à tela de edição do 
relatório e então clique no botão Preview e repare que os valores dos 
ranges estão contemplando 100% do intervalo do Gauge. 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 257 
 
 
 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 258 
Da mesma forma que é possível parametrizar o valor máximo de 
um Gauge, também é possível trabalhar com mais de um ponteiro em um 
único Gauge e comparar o desempenho dos dois indicadores. 
 
Esta é a proposta deste capítulo, continuar trabalhando com o 
Gauge e permitir analisar e comparar o desempenho de dois valores entresi. 
 
Para isso, abra novamente o projeto do Reporting Services que foi 
alterado no capítulo anterior. A proposta é adicionar mais um Shared 
Dataset filtrando pelo mesmo membro Clothing do capítulo de criação do 
Gauge, mas a measure neste caso é a Impostos. 
 
 
 
Com isso, é possível comparar o total de vendas da categoria 
Vestuário com o total de impostos que foram pagos nesta categoria. 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 259 
 
 
Com o código: 
SELECT NON EMPTY { [Measures].[Tax Amt] } ON COLUMNS FROM 
( SELECT ( { [Dim Product].[English Product Category 
Name].&[Clothing] } ) ON COLUMNS FROM [Adventure Works 
DW2012]) WHERE ( [Dim Product].[English Product Category 
Name].&[Clothing] ) CELL PROPERTIES VALUE, BACK_COLOR, 
FORE_COLOR, FORMATTED_VALUE, FORMAT_STRING, FONT_NAME, 
FONT_SIZE, FONT_FLAGS 
Confirme clicando em OK até voltar à tela inicial. Neste momento 
é hora de adicionar mais um Dataset ao relatório, abra o menu Report 
Data, clique com o botão direito do mouse em Datasets e aponte para Add 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 260 
Dataset. Na tela de configuração, inclua este novo Dataset com o nome 
do ImpostosVesturario no seu relatório. 
 
 
 
Veja que agora existem três Datasets no relatório: 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 261 
 
 
Para adicionar o segundo indicador no Gauge, clique com o botão 
direito no Gauge e aponte para Add Pointer. 
 
 
 
Neste momento, mais um ponteiro estará disponível no Gauge e 
na Smart Screen do Gauge Data. Selecione a opção Expression do segundo 
ponteiro. 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 262 
 
 
 
Nesta expressão, selecione o item Dataset na coluna da esquerda 
(Category), clique no Dataset ImpostoVestuario na coluna central (Item) e 
por fim dê dois cliques em Sum(Impostos) na coluna da direita (Values). 
Com isso, o campo expression é preenchido com o valor correto. 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 263 
 
 
Clique em Ok até voltar à tela de edição do Relatório. Ao clicar no 
botão Preview, é possível comparar o resultado de ambos ponteiros. 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 264 
 
 
Ambos ponteiros estão na cor amarelo, dificultando saber o que é 
Venda e o que é Imposto. Para diferencia-los, sugiro colocar o indicador 
de imposto com o ponteiro vermelho e o ponteiro de vendas na cor verde, 
assim, é possível saber o que é entrada de dinheiro e o que é saída de 
dinheiro. 
 
Para isso, clique em um dos ponteiros e veja o nome nas 
propriedades. Seguindo a lógica de criação do ponteiro, o primeiro é da 
venda e o segundo é do imposto. Selecione o primeiro ponteiro e altere a 
propriedade FillGradientEndColor de Orange para Green. Faça a mesma 
coisa com o segundo ponteiro, alterando de Orange para Red. 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 265 
 
 
Após a mudança, é possível identificar no Gauge o que é cada 
ponteiro. 
 
 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 266 
Por conceito, DrillDown é partir de uma informação mais ampla 
(sumarizada) para uma mais específica (detalhada). A imagem abaixo 
ajuda a explicar o conceito. Este tipo de detalhe poderia ser analisado 
utilizando Data Mining, mas nada sobre Data Mining será coberto neste 
livro. 
Repare que a imagem se inicia com as informações mais macro, 
contendo o nosso universo muito amplo (Participantes). Quando se desce 
um nível a partir deste box é possível encontrar quais grupos de 
informações compuseram o item anterior, estas informações mais 
detalhadas (no caso deste exemplo) são Homem e Mulher. A partir deste 
nível atual é possível especializar mais a informação, neste caso da Figura, 
a entidade Mulher é composta por outras três 
entidades Loira, Morena e Ruiva, que por sua vez, as informações da 
entidade Loira são compostas por separações de idades. 
 
 
Se for necessário detalhar ainda mais a questão de idade, pode por 
exemplo, abrir a derivação de Entre 18 e 65 anos e verificar o grau de 
instrução escolar. Quando você seleciona por exemplo, o Doutorado desta 
árvore que foi aberta, o seu universo estatístico é 5 níveis mais detalhado 
do que o inicial, permitindo que sua análise seja focada 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 267 
em PARTICIPANTES >> MULHERES >> LOIRAS >> ENTRE 18 E 65 
ANOS >> DOUTORAS. 
 
A mineração dos dados pode ocorrer até você encontrar o grupo 
ideal para fazer sua análise, ou no máximo, até chegar em um único item 
de resultado. 
Com base nesta explicação rápida sobre DrillDown, o propósito 
deste capítulo é montar um exemplo de vendas da empresa Adventure 
Works, e a partir do total de vendas de um País chegar ao detalhe do total 
de vendas das Cidades. Outra novidade que será utilizada neste capítulo é 
o acesso à Stored Procedures e também movimentação de valores entre 
os relatórios. Para exemplificar no ambiente AdventureWorkDW2012, 
foram criadas duas Stored Procedures com o código abaixo: 
 
CREATE PROC ContinenteVendas 
AS ( 
SELECT D.SalesTerritoryGroup, SUM(F.SalesAmount) Total 
FROM [dbo].[FactInternetSales] F 
INNER JOIN [DimSalesTerritory] D 
ON F.SalesTerritoryKey = D.SalesTerritoryKey 
GROUP BY D.SalesTerritoryGroup ) 
GO 
 
CREATE PROC PaisesVendas (@continente VARCHAR(15)) 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 268 
AS ( 
SELECT D.SalesTerritoryCountry, SUM(F.SalesAmount) Total 
FROM [dbo].[FactInternetSales] F 
INNER JOIN [DimSalesTerritory] D ON F.SalesTerritoryKey = 
D.SalesTerritoryKey 
WHERE D.SalesTerritoryGroup = @continente 
GROUP BY D.SalesTerritoryCountry ) 
 
 
Após criar ambas Stored Procedures no ambiente relacional do 
Data Warehouse, deve-se abrir o SSDT e criar um projeto do tipo Report 
Server. Nomeie como SSRS_DetalheDeVendas. Após iniciar o projeto, crie 
uma Shared Data Source apontando para o Data Warehouse 
AdventureWorksDW2012, não o cubo. 
 
 
 
Em seguida, crie duas Shared Dataset, uma apontando para cada Stored 
Procedure criada a pouco. Os nomes podem ser os mesmos das Stored 
Procedure. Para isso, clique com o botão direito em Shared Dataset e 
aponte para Add New Dataset. 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 269 
Na janela que se abre, selecione o Shared Data Source que aponta 
para o banco de dados AdventureWorksDW2012, e desta vez no Query 
Type, ao invés de usar a opção Text, use Stored Procedure e então 
selecione ContinenteVendas na lista disponível. 
 
 
 
Confirme no botão OK e volte para a tela principal. Repita os 
passos e faça a mesma coisa para PaisesVendas. 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 270 
 
 
Mais uma vez, confirme no botão OK e volte à tela principal. 
 
 
 
Repare que ambos Shared Dataset estão configurados. 
 
O próximo passo é criar um relatório que receberá o gráfico dos 
continentes. Este será um convencional gráfico de colunas orientado pelo 
Eixo X, também conhecido como Gráfico de Barras. Para isso, arraste o 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 271 
componente Chart para a tela do relatório em branco, e no momento que 
abrir o assistente para selecionar qual será o modelo do relatório, 
selecione o relatório de colunas. 
 
 
 
Após a seleção do tipo do relatório,o assistente lhe pergunta qual 
será a origem dos dados, neste momento, é necessário informar qual é o 
Dataset que possui os dados. Lembre-se que não foi criado nenhum 
dataset no menu Report Data. Mesmo assim, selecione o item 
ContinenteVendas que é a informação mais ampla que retorna do Data 
Warehouse, e nomeie como VendasPorContinente. 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 272 
 
 
Confirme com o botão OK. Neste momento um gráfico é plotado 
no relatório, mas ainda não possui nenhum campo configurado, apenas 
está vinculado à um dataset. Para configurar, como foi feito no Gauge, é 
necessário clicar sobre o relatório e trabalhar na Smart Screen que se abre 
à sua direita. 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 273 
 
 
Para adicionar itens às caixas, clique sobre o símbolo de positivo. 
Na caixa Value informe o Total e na Series Group informe o 
SalesTerritoryGroup. 
 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 274 
 
 
Após clicar no botão Preview, verifique se o relatório possui o 
gráfico. 
 
 
 
Este relatório está praticamente pronto, mas ainda precisará 
retornar à ele depois de criar o segundo relatório, para criar a conexão do 
gráfico de Continente com o outro relatório e o gráfico do País. 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 275 
Para criar o segundo relatório que irá mostrar os países de um 
determinado continente, crie o relatório VendasPorPais e arraste o 
controle Chart como foi feito no relatório anterior, selecione o tipo de 
gráfico que quer apresentar os dados, mais uma vez o Gráfico de Barras e 
em seguida clique em Ok. 
Ao informar a origem dos dados selecionado o Shared Dataset 
PaisesVendas você pode reparar no item Parameters que é possível passar 
um valor à ele. Na proposta do capítulo este parâmetro deve ser dinâmico 
e informado através do relatório anterior. Não faça nada neste momento. 
Ele será preenchido ao voltar e editar o relatório anterior. 
 
Para terminar de configurar este relatório, mais uma vez é 
necessário selecionar o gráfico dos países para abrir Smart Screen. Na 
caixa Value selecione Sum(Total) e na caixa Series Group adicione 
o SalesTerritoryCountry. 
Neste momento ambos gráficos estão configurados, mas ainda 
não tem uma ação que faz um gráfico chamar o outro. Para fazer esse 
vínculo, volte até o gráfico de VendasPorContinente e clique em uma das 
barras plotadas. Com as barras selecionadas, clique com o botão direito e 
aponte para Series Properties. 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 276 
 
 
Na janela que se abre, procure no menu da esquerda o 
item Action, ao clicar selecione a opção Go to Report. 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 277 
 
 
Neste momento, selecione na caixa de seleção Specify a Report o 
relatório VendasPorPais. Em seguida, clique no botão Add para informar 
um parâmetro para fazer a ligação entre os relatórios. Ao clicar, dois 
campos são apresentados. O primeiro é Name e o segundo é Value. Ao 
verificar o que existe na lista de seleção do campo Name é possível 
encontrar os nome Continente. Este é o nome do parâmetro que foi criado 
na Stored Procedure que irá plotar os dados dos países. Na lista de seleção 
do campo Value, existem dois registros, o SalesTerritoryGroup e o Total. 
Como o vínculo foi passado através do nome do continente, selecione 
SalesTerritoryGroup. 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 278 
 
 
No final, sua tela ficará como esta: 
 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 279 
Clique em OK até voltar à página inicial do relatório. Quando clicar 
no botão Preview do relatório VendasPorContinente será possível navegar 
entre o Continente e o País, apenas clicando na barra que possui o nome 
do continente. 
 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 280 
Vocês já se depararam com a necessidade de colocar uma 
determinada paleta de cores em um gráfico do relatório para encaixar na 
identidade visual do cliente? 
Uma forma é alterar elemento à elemento, porém, além de sofrer 
com o trabalho manual e repetitivo, pode não ficar da forma que se espera. 
A proposta deste capítulo é ensinar a criar uma paleta de cores 
personalizada e aplicar aos gráficos criados nos relatórios do capítulo 
anterior. 
 
A primeira coisa a se fazer é conversar com o time de designers do 
cliente e descobrir as cores que combinam ou que devem ser utilizadas. 
 
Uma saída, caso não tenha alguém de design para lhe ajudar na 
escolha das cores, existem alguns sites na internet que apresentam 
diversas paletas que ajudam neste processo de combinar as cores. Um site 
que consulto com frequência é o Colour 
Lovers: http://www.colourlovers.com/palettes. Neste site é possível 
encontrar paletas de cores que combinam, e o melhor, são gratuitas. 
 
Ao escolher as cores fique atento ao hexadecimal, será necessário 
para criar a paleta no relatório. 
 
Como já deve estar acostumado, abra o projeto dos gráficos de 
barras criado no capítulo anterior. É a partir dele que a paleta de cores será 
modificada. 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 281 
Abra o relatório VendasPorContinente, a modificação da paleta de 
cores será feita primeiro neste relatório, depois será feita também no 
relatório VendasPorPais. 
 
Por padrão, o Reporting Services mantém a paleta de cores 
chamada BrightPastel, é possível visualizar esta paleta na 
propriedade Palette do gráfico. 
 
 
 
Para criar uma nova paleta de cores com base na ordem correta 
de cores, é necessário alterar esta propriedade de BrightPastel 
para Custom, e na sequência, criar uma nova paleta na 
propriedade CustomPaletteColor. 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 282 
 
 
Esta propriedade permite criar uma coleção de cores em 
Hexadecimal. Para os exemplos deste capítulo utilizei a paleta Safari do 
site Colour Lovers, que pode ser acessada neste link: 
 
http://www.colourlovers.com/palette/3270209/Safari 
 
Para adicionar as cores em Hexadecimal, clique no botão ADD na 
parte de baixo da janela. Pode-se alternar as posições nas setas pra cima e 
pra baixo para posicionar a cor no elemento correto do seu gráfico. 
Finalize clicando em OK até voltar à tela principal. 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 283 
 
 
O gráfico já recebe as alterações baseadas nas cores existentes na 
nova paleta. 
 
O que antes era assim 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 284 
 
Depois da mudança da paleta, ficou assim 
 
 
Repita os mesmos passos para o relatório VendasPorPaises mas 
inverta a ordem das cores na nova paleta. Veja como fica o resultado para 
as lojas do continente Europeu. 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 285 
 
 
Do Banco de Dados Relacional à Tomada de Decisão 
 
 
MVTech · 286 
Ao concluir a leitura do livro espero que você tenha aprendido os 
primeiros passos para transformar seus dados transacionais em analíticos, 
permitindo uma melhor tomada de decisão para a empresa. 
Quando se pensa em trabalhar com Business Intelligence 
geralmente as pessoas ficam assustadas, algumas situações podem gerar 
este desconforto pela delicadeza dos dados a serem geradospara as 
tomadas de decisões. Com este livro esta sensação deve ser diminuída, e 
se tudo foi estudado com calma, você sentirá confiança em executar 
tarefas como: 
 Movimentar dados com SQL Server Integration Services 
para montar seu Data Warehouse 
 Criar cubo no Analysis Services a partir do Data Warehouse 
 Analisar dados do Cubo com cálculos de measures do 
Analysis Services 
 Também criar KPIs a partir do Analysis Services 
 Gerar e disponibilizar relatórios com dados do BI através 
do Reporting Services 
 Entre outras coisas importantes. 
 
Bons resultados a sua empresa!

Mais conteúdos dessa disciplina