Definindo uma relação muitos para muitos
Ao definir uma dimensão, cada fato normalmente se une a somente um membro de dimensão, apesar de um único membro de dimensão poder ser associado a vários fatos diferentes. Por exemplo, cada cliente pode ter muitos pedidos, mas cada pedido pertence a somente um cliente. Na terminologia do banco de dados relacional, isso é conhecido como uma relação um-para-muitos. Porém, algumas vezes, um único fato pode se unir a vários membros de dimensão. Na terminologia de banco de dados relacional, isso é chamado de relação muitos-para-muitos. Por exemplo, um cliente tem vários motivos para efetuar uma compra, e um motivo de compra pode ser associado a várias compras. Uma tabela de junção é usada para definir os motivos de vendas relacionados a cada compra. Uma dimensão Motivo de Vendas formada por tais relações pode ter, então, vários membros relacionados a uma única transação de vendas. As dimensões muitos para muitos expandem o modelo dimensional além do esquema em estrela clássico e oferecem suporte a análises complexas quando as dimensões não estão relacionadas diretamente a uma tabela de fatos.
No Analysis Services, você define uma relação muitos para muitos entre uma dimensão e um grupo de medidas especificando uma tabela de fatos intermediária que é unida à tabela de dimensões. Uma tabela de fatos intermediária é unida, por sua vez, à tabela de dimensão intermediária à qual a tabela de fatos é unida. As relações muitos para muitos entre uma tabela de fatos intermediária e ambas as tabelas de dimensão na relação e a dimensão intermediária criam relações muitos para muitos entre membros da dimensão primária e medidas do grupo de medidas especificado pela relação. Para definir uma relação muitos para muitos entre uma dimensão e um grupo de medidas usando um grupo de medidas intermediário, esse grupo de medidas intermediário deve compartilhar uma ou mais dimensões com o grupo de medidas original.
Com uma dimensão muitos para muitos, os valores são somados distintamente, o que significa que eles não se agregam mais de uma vez ao membro Todos.
Observação
Para dar suporte a uma relação de dimensão muitos para muitos, uma relação chave-chave primária-estrangeira deve ser definida na exibição da fonte de dados entre todas as tabelas envolvidas. Caso contrário, não será possível selecionar o grupo de medidas intermediário correto ao estabelecer a relação na guia Uso da Dimensão do Designer de Cubo.
Para obter mais informações, consulte Relações de dimensãoe Definir uma relação muitos-para-muitos e as propriedades da relação muitos-para-muitos.
Nas tarefas deste tópico, você definirá a dimensão Motivos de Vendas e o grupo de medidas Motivos de Vendas, além de uma relação muitos para muitos entre a dimensão Motivos de Vendas e o grupo de medidas Vendas pela Internet usando o grupo de medidas Motivos de Vendas.
Adicionando tabelas necessárias à exibição da fonte de dados
Abra o Designer de Exibição da Fonte de Dados para a exibição da fonte de dados do Adventure Works DW 2012
Clique com o botão direito do mouse em qualquer lugar no painel Organizador de Diagramas , clique em Novo Diagrama e especifique
Internet Sales Order Reasons
como o nome deste novo diagrama.Arraste a tabela InternetSales do painel Tabelas para o painel Diagrama .
Clique com o botão direito do mouse em qualquer lugar no painel Diagrama e clique em Adicionar/Remover Tabelas.
Na caixa de diálogo Adicionar/Remover Tabelas , adicione as tabelas DimSalesReason e FactInternetSalesReason à lista Objetos incluídos e clique em OK.
Observe que as principais relações chave-chave estrangeira entre as tabelas envolvidas são estabelecidas automaticamente porque essas relações são definidas no banco de dados relacional subjacente. Se essas relações não foram definidas em um banco de dados relacional subjacente, talvez seja necessário defini-las na exibição da fonte de dados.
No menu Formatar , aponte para Layout Automáticoe, em seguida, clique em Diagrama.
No janela Propriedades, altere a propriedade FriendlyName da tabela DimSalesReason para
SalesReason
e altere a propriedade FriendlyName da tabela FactInternetSalesReason paraInternetSalesReason
.No painel Tabelas , expanda InternetSalesReason (dbo.FactInternetSalesReason), clique em SalesOrderNumbere examine a propriedade DataType desta coluna de dados na janela Propriedades.
Observe que o tipo de dados da coluna SalesOrderNumber é cadeia de caracteres.
Examine os tipos de dados das outras colunas na
InternetSalesReason
tabela.Observe que os tipos de dados das outras duas colunas nessa tabela são numéricos.
No painel Tabelas , clique com o botão direito do mouse em InternetSalesReason (dbo.FactInternetSalesReason)e clique em Explorar Dados.
Observe que, para cada número de linha dentro de cada pedido, um valor de chave identifica o motivo das vendas para a compra daquele item de linha, como mostra a imagem a seguir:
Definindo o grupo de medidas intermediário
Alterne para o Cubo Designer para o cubo tutorial do Analysis Services e clique na guia Estrutura do Cubo.
Clique com o botão direito do mouse em qualquer lugar do painel Medidas e clique em Novo Grupo de Medidas. Para obter mais informações, consulte Criar medidas e grupos de medidas em modelos multidimensionais.
Na caixa de diálogo Novo Grupo de Medidas , selecione
InternetSalesReason
na lista Selecionar uma tabela na exibição da fonte de dados e clique em OK.Observe que o grupo de medidas Motivo de Vendas pela Internet agora é exibido no painel Medidas .
Expanda o grupo de medidas Motivo de Vendas pela Internet .
Observe que somente uma única medida está definida para esse novo grupo de medidas, a medida Contagem de Motivo de Vendas pela Internet .
Selecione Contagem de Motivo de Vendas pela Internet e revise as propriedades dessa medida na janela Propriedades.
Observe que a propriedade AggregateFunction dessa medida é definida como Contagem em vez de Soma. O Analysis Services escolheu Contar porque o tipo de dados subjacente é um tipo de dados de cadeia de caracteres. As outras duas colunas na tabela de fatos subjacente não foram selecionadas como medidas porque o Analysis Services as detectou como chaves numéricas em vez de como medidas reais. Para obter mais informações, consulte Definir um comportamento semiaditivo.
Na janela Propriedades, altere a propriedade Visible da medida Contagem do Motivo de Vendas pela Internet para False.
Essa medida só será usada para unir a dimensão Motivo de Vendas que você definirá próxima ao grupo de medidas Vendas pela Internet. Os usuários não navegarão nessa medida diretamente.
A imagem a seguir mostra as propriedades da medida Contagem do Motivo de Vendas pela Internet .
Definindo a dimensão muitos para muitos
Em Gerenciador de Soluções, clique com o botão direito do mouse em Dimensões e clique em Nova Dimensão.
Na página Bem-vindo ao Assistente para Dimensões , clique em Avançar.
Na página Selecionar Método de Criação , verifique se a opção Usar uma tabela existente está selecionada e clique em Avançar.
Na página Especificar Informações da Fonte , verifique se a exibição da fonte de dados Adventure Works DW 2012 está selecionada.
Na lista Tabela principal , selecione
SalesReason
.Na lista Colunas de chave , verifique se SalesReasonKey está listado.
Na lista Coluna de nome , selecione SalesReasonName.
Clique em Próximo.
Na página Selecionar Atributos de Dimensão , o atributo Chave do Motivo de Vendas é selecionado automaticamente, pois se trata de um atributo de chave. Selecione a caixa marcar ao lado do atributo Tipo de Motivo do Motivo de Vendas, altere seu nome para
Sales Reason Type
e clique em Avançar.Na página Concluindo o Assistente , clique em Concluir para criar a dimensão Motivo de Vendas.
No menu Arquivo , clique em Salvar Tudo.
No painel Atributos da Dimensão Designer para a dimensão Razão de Vendas, selecione Chave de Motivo de Vendas e altere a propriedade Name no janela Propriedades para
Sales Reason.
No painel Hierarquias do Designer dimensão, crie uma hierarquia de usuários de Motivos de Vendas que contenha o
Sales Reason Type
nível e o nível Razão de Vendas, nessa ordem.No janela Propriedades, defina
All Sales Reasons
como o valor da propriedade AllMemberName da hierarquia Motivos de Vendas.Defina
All Sales Reasons
como o valor para a propriedade AttributeAllMemberName da dimensão Razão de Vendas.Para adicionar a dimensão recém-criada ao cubo do Tutorial do Analysis Services como uma dimensão de cubo, alterne para o Cube Designer. Na guia Estrutura do Cubo , clique com o botão direito do mouse no painel Dimensões e selecione Adicionar Dimensão do Cubo.
Na caixa de diálogo Adicionar Dimensão do Cubo , selecione Motivo de Vendas e então clique em OK.
No menu Arquivo , clique em Salvar Tudo.
Definindo a relação muitos para muitos
Alterne para a Designer do Cubo do Tutorial do Analysis Services e clique na guia Uso da Dimensão.
Observe que a dimensão Motivo de Vendas tem uma relação regular definida com o grupo de medidas Motivo de Vendas pela Internet , mas não tem relação definida com o grupo de medidas Vendas pela Internet ou Vendas do Revendedor . Observe também que a dimensão Detalhes do Pedido de Vendas pela Internet tem uma relação regular definida com a dimensão Motivo de Vendas pela Internet que, por sua vez, tem uma Relação de Fato com o grupo de medidas Vendas pela Internet . Se essa dimensão não existir (ou outra dimensão com uma relação com os grupos de medidas Motivo de Vendas pela Internet e Vendas pela Internet não existir), você não conseguirá definir a relação muitos-para-muitos.
Clique na célula na interseção do grupo de medidas Vendas pela Internet e da dimensão Motivo de Vendas e clique no botão Procurar (...).
Na caixa de diálogo Definir Relação , selecione Muitos-para-Muitos na lista Selecionar tipo de relação .
Você tem que definir o grupo de medidas intermediário que conecta a dimensão Motivo de Vendas ao grupo de medidas Vendas pela Internet.
Na lista Grupo de medidas intermediário , selecione Motivo de Vendas pela Internet.
A imagem a seguir mostra as alterações na caixa de diálogo Definir Relação :
Clique em OK.
Observe o ícone muitos para muitos que representa a relação entre a dimensão Motivo de Vendas e o grupo de medidas Vendas pela Internet.
Navegando no cubo e na dimensão muitos para muitos
No menu Compilar , clique em Implantar Tutorial do Analysis Services.
Quando a implantação for concluída com êxito, alterne para a guia Navegador no Cubo Designer para o cubo tutorial do Analysis Services e clique em Reconectar.
Adicione a medida Vendas pela Internet/Valor das Vendas à área de dados do painel de dados.
Adicione a hierarquia definida pelo usuário Motivos de Vendas da dimensão Motivo de Vendas à área de linha do painel de dados.
No painel de metadados, expanda Cliente, Local, Geografia do Cliente, Membros, Todos os Clientes, Austrália, clique com o botão direito do mouse em Queenslande, por fim, clique em Adicionar ao Filtro.
Expanda cada membro do
Sales Reason Type
nível para examinar os valores em dólar associados a cada motivo que um cliente em Queensland deu para comprar um produto adventure works pela Internet.Observe que os totais associados a cada motivo de vendas são maiores do que as vendas totais. Isso acontece porque alguns clientes citaram vários motivos para suas compras.
A imagem a seguir mostra os painéis Filtro e Dados do Designer de Cubo:
Próxima tarefa da lição
Definindo a granularidade da dimensão dentro de um grupo de medidas
Consulte Também
Trabalhar com diagramas no modo de exibição de fonte de dados Designer (Analysis Services)Relações de dimensãoDefinem uma relação muitos para muitos e propriedades de relacionamento muitos para muitos