Introdução aos relacionamentos muitos para muitos no SSAS

Introdução aos relacionamentos muitos para muitos no SSAS

Cube Data Model
cupom com desconto - o melhor site de cupom de desconto cupomcomdesconto.com.br


Neste artigo, explicarei quais são os relacionamentos muitos para muitos no SSAS e como implementá-los em um projeto do SQL Server Analysis Services (SSAS). Para fins deste artigo, consideraremos apenas o Cubo Multidimensional e não o Tabular. Além disso, este artigo pressupõe que você tenha algum conhecimento justo sobre a criação de cubos SSAS do zero.

Freqüentemente, na modelagem de dimensões e fatos, os desenvolvedores de BI enfrentam o problema de lidar com relacionamentos muitos-para-muitos no modelo de dados. Em um banco de dados SQL ou data warehouse, é mais fácil implementar o mesmo; no entanto, fica complicado quando o mesmo modelo também precisa ser implementado em um cubo multidimensional.

Noções básicas sobre relacionamentos muitos para muitos

Vamos primeiro entender o que são muitos para muitos. Considere um exemplo simples de Alunos e Classe. Como você sabe, um aluno pode se inscrever em uma ou mais classes e uma classe pode ter um ou mais de um aluno. Este é um exemplo simples de relacionamento muitos para muitos. Outros casos semelhantes podem ser considerados entre Produtos e clientes. Um cliente pode comprar um ou mais produtos, enquanto um produto pode ser comprado por um ou vários clientes.

No entanto, não podemos definir esses tipos de relacionamentos muitos para muitos diretamente no SQL. Para implementar essas relações muitos-para-muitos em um modelo de dados relacionais, precisamos introduzir um mesa intermediária que tenha relações um-para-muitos com ambas as entidades. Vamos entender seguindo a figura abaixo:

Exemplo de relacionamento muitos para muitos

Figura 1 – Exemplo de relação muitos para muitos

Se você vê na figura acima, a tabela intermediária da ponte, neste caso, é a “Inscrição“, Que tem uma relação muitos-para-um com ambos Alunos e a Classe mesas. Da mesma forma, essa abordagem pode ser considerada para o design de qualquer outro modelo de dados em que os relacionamentos muitos-para-muitos precisem ser implementados.

Implementando relacionamentos muitos para muitos no SSAS

Agora que temos alguma idéia, vamos implementar relacionamentos muitos para muitos no SSAS. Para fins de demonstração, vou usar o banco de dados AdventureWorksDW2017, conforme fornecido pela Microsoft. Esse banco de dados está disponível para download gratuito e você pode instalar o mesmo na sua máquina local. Nesse data warehouse, também existem relações muitos para muitos, que indicam o motivo da compra ou venda de um item. Por exemplo, uma venda pode ter um ou mais motivos vinculados a ela e um motivo de vendas também pode ser vinculado a várias vendas. No armazém, a tabela Fato é a “FactInternetSales”(marcado em amarelo) e as dimensões são “DimSalesReason“E”DimProduct”(marcado em azul) Embora existam muitas outras dimensões e fatos no armazém, ele está fora do escopo deste artigo e não será abordado aqui. A tabela de ponte é criada usando o “FactInternetSalesReason”(destacado em vermelho)

Modelo AdventureWorksDW para muitos para muitos relacionamentos em ssas

Figura 2 – Modelo do AdventureWorksDW

Vamos agora avançar e construir relacionamentos muitos para muitos no SSAS. Você pode seguir as etapas mencionadas abaixo e criar o projeto.

Criando o projeto SSAS

Crie um novo Projeto multidimensional no SSAS.

Conecte-o ao AdventureWorksDW2017 banco de dados e crie o Visualização da fonte de dados adequadamente.

No Assistente de exibição da fonte de dados que aparecer, selecione as quatro tabelas, conforme ilustrado na figura abaixo.

Assistente de exibição da fonte de dados

Figura 3 – Assistente de exibição da fonte de dados

Clique em Próximo e complete o assistente.

Concluindo o Assistente de Exibição da Fonte de Dados

Figura 4 – Concluindo o Assistente de exibição da fonte de dados

Quando a Visualização da fonte de dados estiver pronta, o próximo passo é criar o Dimensões.

Criando as dimensões

Clique com o botão direito do mouse no Dimensão e selecione Nova dimensão.

Adicionando nova dimensão para muitos e muitos relacionamentos em ssas

Figura 5 – Adicionando nova dimensão

Selecione Use uma tabela existente e clique em Próximo.

Usando uma tabela existente

Figura 6 – Usando uma tabela existente

Selecione DimProduct como mesa e Chave do produto Enquanto o Coluna da chave e clique em Próximo.

Especificar dimensão de origem

Figura 7 – Especifique a dimensão da fonte

Selecione Nome do produto em inglês como o atributo e clique em Próximo e termine o assistente.

Selecionando atributos de dimensão para DimProduct

Figura 8 – Selecionando atributos de dimensão para DimProduct

Conclua as etapas semelhantes para DimSalesReason e complete o assistente.

Selecionando atributos de dimensão para DimSalesReason

Figura 9 – Selecionando atributos de dimensão para DimSalesReason

Criando o cubo

Agora que as dimensões estão prontas, o próximo passo é criar o cubo.

Clique com o botão direito do mouse em Cubo e selecione New Cube:

Adicionar um novo cubo

Figura 10 – Adicionar novo cubo

Selecione FactInternetSales e FactInternetSalesReason como grupos de medidas e clique em Próximo.

Selecione Grupos de medidas

Figura 11 – Selecionar grupos de medidas

Selecione Quantidade de vendas e Contagem de motivos de vendas na Internet como medida e clique Próximo.

Selecionar medidas

Figura 12 – Selecionar medidas

Quando todas as etapas acima estiverem concluídas, clique em Terminar para concluir e fechar o assistente.

Conclua o assistente de cubo

Figura 13 – Conclua o assistente de cubo

O cubo agora está criado e você pode ver o modelo de dados da seguinte maneira.

Modelo de Dados do Cubo

Figura 14 – Modelo de dados do cubo

Depois que o cubo for criado, implante o cubo no servidor. Clique com o botão direito do mouse no cubo e selecione Implantar.

Implantar o cubo

Figura 15 – Implantar o cubo

E finalmente, clique Processo para processar o cubo:

Processar o cubo

Figura 16 – Processar o cubo

Agora que nosso cubo foi processado, navegue pelo cubo e veja quais são os resultados. Arraste e solte o botão “Nome do Motivo de Vendas“,”Quantidade de vendas“E”Contagem de motivos de vendas na Internet”No designer de consulta. Como você pode ver na imagem abaixo, os valores para o Valor das vendas são os mesmos por todos os motivos incorretos. O motivo desse erro é que as relações muitos-para-muitos entre as tabelas de fatos ainda não estão definidas.

Navegando no Cubo

Figura 17 – Navegando no cubo

Definindo relacionamentos muitos para muitos no SSAS

Vamos agora definir relacionamentos muitos para muitos no SSAS. Você pode seguir as etapas abaixo.

Adicione uma nova dimensão para SalesOrderNumber. Como essa é a coluna que vamos usar na coluna da ponte, precisamos criar uma dimensão separada para a mesma.

Adicionando a nova dimensão

Figura 18 – Adicionando a nova dimensão

Deixe a coluna chave ser a mais SalesOrderNumber. Conclua o assistente clicando em Próximo e finalmente Terminar.

Concluindo o assistente

Figura 19 – Concluindo o assistente

Depois que a dimensão é criada, a próxima etapa é adicionar essa nova dimensão ao cubo.

Clique com o botão direito do mouse no Dimensões e selecione Adicionar dimensão do cubo.

Adicionar uma dimensão de cubo

Figura 20 – Adicionar dimensão do cubo

Navegue até o Uso da dimensão guia, e você verá a nova dimensão agora disponível na lista. Selecione SalesOrderNumber adjacente ao FactInternetSales e clique na pequena caixa à direita. Na janela que se abre, selecione o Tipo de Relacionamento Como Facto.

Definindo o tipo de relação de fatos

Figura 21 – Definindo o tipo de relação de fato

Selecione o grupo de medidas FactInternetSalesReason para SalesReason. Clique na pequena caixa à direita e, na caixa de diálogo exibida, selecione o Tipo de relação Como Muitos para muitos.

Definindo muitos para muitos relacionamentos em ssas

Figura 22 – Definindo relacionamentos muitos para muitos

Navegando no Cubo

Agora que implementamos as alterações necessárias necessárias para estabelecer relacionamentos muitos-para-muitos no SSAS, agora podemos prosseguir e começar a navegar no cubo, como fizemos na etapa anterior.

Navegando no Cubo

Figura 23 – Navegando no cubo

Se você vir a figura acima, agora poderá ver que os valores do Valor das vendas estão sendo exibidos corretamente agora. Além disso, se você o comparar com o exemplo anterior, poderá ver que alguns dos campos que não tinham relações apropriadas também são eliminados do cubo.

Conclusão

Neste artigo, expliquei como podemos implementar relacionamentos muitos para muitos no SSAS. O design de modelos de dados que incluam relações muitos-para-muitos é bastante complexo e precisa ser definido adequadamente. Se as relações não forem definidas corretamente, isso poderá levar a dados incorretos e, finalmente, informações enganosas.

Aveek Das
Últimas mensagens de Aveek Das (ver todos)

cupom com desconto - o melhor site de cupom de desconto cupomcomdesconto.com.br
Leia Também  Rastrear sinalizadores que agora são comportamentos padrão no SQL Server - Uma foto do SQLEspresso