Relações entre tabelas em um Modelo de Dados

Seu navegador não oferece suporte a vídeo. Instale o Microsoft Silverlight, o Adobe Flash Player ou o Internet Explorer 9.
Vídeo: Relações no Power View e PowerPivot

Adicione mais poder a sua análise de dados criando relações entre dados em tabelas diferentes. Uma relação é uma conexão entre duas tabelas de dados, com base em uma coluna em cada. Para saber por que as relações são úteis, imagine que você acompanhe dados para pedidos de clientes na empresa. Você poderia acompanhar todos os dados em uma única tabela com uma estrutura semelhante à seguinte:

CustomerID

Nome

Email

DiscountRate

OrderID

OrderDate

Produto

Quantidade

1

Ashton

nuno.farinha@contoso.com

0,05

256

2010-07-01

Compact Digital

11

1

Ashton

nuno.farinha@contoso.com

0,05

255

2010-03-01

Câmera SLR

15

2

Jaworski

fabio.pena@contoso.com

0,10

254

2010-03-01

Orçamento do Movie Maker

27

Esta abordagem pode funcionar, mas envolve o armazenamento de muitos dados redundantes, como o endereço de email do cliente para todos os pedidos. Embora o armazenamento seja barato, se o endereço de email for alterado, você deverá ter certeza de que atualizou todas as linhas desse cliente. Uma solução para esse problema é dividir os dados em várias tabelas e definir relações entre essas tabelas. Essa é a abordagem usada em bancos de dados relacionais como o SQL Server. Por exemplo, um banco de dados importado pode representar dados de pedidos usando três tabelas relacionadas:

Clientes

[CustomerID]

Nome

Email

1

Ashton

nuno.farinha@contoso.com

2

Jaworski

fabio.pena@contoso.com

CustomerDiscounts

[CustomerID]

DiscountRate

1

0,05

2

0,10

Pedidos

[CustomerID]

OrderID

OrderDate

Produto

Quantidade

1

256

2010-07-01

Compact Digital

11

1

255

2010-03-01

Câmera SLR

15

2

254

2010-03-01

Orçamento do Movie Maker

27

As relações existem dentro de um Modelo de Dados que você cria explicitamente, ou que o Excel cria em seu nome quando você importa várias tabelas ao mesmo tempo. Você também pode usar o suplemento Power Pivot para criar ou gerenciar o modelo. Consulte Criar um modelo de dados no Excel para ver detalhes.

Se você usar o suplemento Power Pivot para importar tabelas do mesmo banco de dados, o Power Pivot poderá detectar as relações entre as tabelas com base nas colunas que estão entre [colchetes], e poderá reproduzir essas relações em um Modelo de dados que ele cria nos bastidores. Para obter mais informações, consulte Detecção automática e inferência de relações neste artigo. Se você importar tabelas de várias fontes, poderá criar manualmente relações como as descritas em Criar uma relação entre duas tabelas.

Página Inicial

Neste artigo

Colunas e chaves

Tipos de relações

Relações e desempenho

Várias relações entre tabelas

Requisitos para uma relação de tabela

Sem suporte em uma relação de tabela

Chaves compostas e colunas de pesquisa

Relações muitos para muitos

Autojunções e junções de loops

Detecção automática e interferência de relações no PowerPivot

Detecção automática para Conjuntos Nomeados

Inferência de relações

Colunas e chaves

As relações se baseiam em colunas de cada tabela que contenham os mesmos dados. Por exemplo, as tabelas Customers e Orders podem estar relacionadas porque ambas contêm uma coluna que armazena uma ID do cliente. No exemplo, os nomes de coluna são os mesmos, mas isso não é um requisito. Uma pessoa poderia ser CustomerID e outra, CustomerNumber, desde que todas as linhas na tabela Orders contivessem uma ID que também é armazenada na tabela Customers.

Em um banco de dados relacional, há vários tipos de chaves, que normalmente são apenas colunas com propriedades especiais. Compreender a finalidade de cada chave pode ajudar a gerenciar um Modelo de Dados de várias tabelas que fornece dados para uma Tabela Dinâmica, um Gráfico Dinâmico, ou relatório do Power View.

As chaves a seguir são as mais interessantes para nossas finalidades:

  • Chave primária: identifica exclusivamente uma linha de uma tabela, como CustomerID na tabela Clientes.

  • Chave alternativa (ou chave candidata): uma coluna diferente da chave primária, que é exclusiva. Por exemplo, uma tabela Employees pode armazenar uma ID de funcionário e um cadastro de pessoas físicas, ambos sendo exclusivos.

  • Chave estrangeira: uma coluna que se refere a uma coluna exclusiva de outra tabela, como CustomerID na tabela Orders, que se refere a CustomerID na tabela Customers.

Em Modelo de Dados, a chave primária ou a chave alternativa é referenciada como a coluna relacionada. Se uma tabela tiver uma chave primária e outra alternativa, você poderá usar qualquer uma como base de uma relação de tabela. A chave estrangeira é referenciada como a coluna de origem ou apenas coluna. Em nosso exemplo, uma relação seria definida entre CustomerID na tabela Orders (a coluna) e CustomerID na tabela Customers (a coluna de pesquisa). Se você importar dados de um banco de dados relacional, por padrão, o Excel escolherá a chave estrangeira de uma tabela e a chave primária correspondente de outra tabela. Entretanto, você pode usar qualquer coluna com valores exclusivos como a coluna de pesquisa.

Tipos de relações

A relação entre Customers e Orders é uma relação um-para-muitos. Todo cliente pode ter várias ordens, mas uma ordem não pode ter vários clientes. Os outros tipos de relação são um para um e muitos para muitos. A tabela CustomerDiscounts, que define uma única taxa de desconto para cada cliente, está em uma relação um-para-um com a tabela Customers.

A tabela a seguir mostra as relações entre as três tabelas:

Relação

Tipo

Coluna de pesquisa

Coluna

Customers-CustomerDiscounts

um para um

Customers.CustomerID

CustomerDiscounts.CustomerID

Customers-Orders

um-para-muitos

Customers.CustomerID

Orders.CustomerID

Observação :  Relações de muitos para muitos não têm suporte em um Modelo de Dados. Um exemplo de uma relação muitos para muitos é uma relação direta entre Products e Customers, na qual um cliente pode comprar muitos produtos e o mesmo produto pode ser comprado por muitos clientes.

Relações e desempenho

Após a criação de uma relação, o Excel normalmente deve recalcular todas as fórmulas que usam colunas de tabelas na relação recém-criada. O processamento pode ser demorado, dependendo da quantidade de dados e da complexidade das relações. Consulte Recalcular Fórmulas para obter detalhes.

Várias relações entre tabelas

Um Modelo de Dados pode ter várias relações entre duas tabelas. Para criar cálculos exatos, o Excel precisa de um único caminho de uma tabela para a próxima. Por isso, apenas uma relação entre cada par de tabelas é ativa de cada vez. As outras são inativas, mas você pode especificar uma relação inativa em fórmulas e consultas. Na Exibição de Diagrama, a relação ativa é uma linha sólida e a inativa são linhas tracejadas. Por exemplo, no AdventureWorksDW2012, a tabela, DimDate, contém uma coluna, DateKey, que está relacionada a três colunas diferentes da tabela FactInternetSales: OrderDate, DueDate e ShipDate. Se a relação ativa estiver entre DateKey e OrderDate, essa será a relação padrão em fórmulas, a menos que você especifique em contrário.

Página Inicial

Requisitos para uma relação de tabela

Uma relação poderá ser criada quando os seguintes requisitos forem atendidos:

Critérios

Descrição

Identificador exclusivo para cada tabela

Cada tabela deve ter uma única coluna que identifica exclusivamente cada linha nessa tabela. Essa coluna geralmente é chamada de chave primária.

Colunas de pesquisa exclusivas

Os valores de dados na coluna de pesquisa devem ser exclusivos. Em outras palavras, a coluna não pode conter duplicatas. Em um Modelo de Dados, as cadeias de caracteres nulas e vazias equivalem a um espaço em branco, que é um valor de dados distinto. Isso significa que não pode haver vários nulos na coluna de pesquisa.

Tipos de dados compatíveis

Os tipos de dados da coluna de origem e da coluna de pesquisa devem ser compatíveis. Para obter mais informações sobre os tipos de dados, consulte Tipos de dados com suporte em Modelos de Dados.

Sem suporte em uma relação de tabela

Em um Modelo de Dados, você não poderá criar uma relação de tabela se a chave for uma chave composta. Você também está restrito para criar relações de um para um e um para muitos. Outros tipos de relação não têm suporte.

Chaves compostas e colunas de pesquisa

Uma chave composta é uma chave composta de mais de uma coluna. Os Modelos de dados não podem usar chaves compostas; uma tabela deve sempre ter exatamente uma coluna que identifique exclusivamente cada linha da tabela. Se você importar tabelas que tenham uma relação existente com base em uma chave composta, o Assistente de Importação de Tabela no Power Pivot ignorará essa relação porque ela não pode ser criada no modelo.

Para criar uma relação entre duas tabelas que têm várias colunas que definam as chaves primária e estrangeira, primeiro combine os valores para criar uma coluna de chave única antes de criar a relação. Isso pode ser feito antes de você importar os dados, ou criando uma coluna calculada no Modelo de Dados usando o suplemento Power Pivot.

Relações muitos para muitos

Um Modelo de Dados não pode ter relações de muitos para muitos. Você não pode simplesmente adicionar tabelas de junção no modelo. No entanto, você pode usar funções DAX para modelar relações muitos para muitos.

Autojunções e loops

Não são permitidas autojunções em um Modelo de Dados. Uma autojunção é uma relação recursiva entre uma tabela e ela mesma. Autojunções costumam ser usadas para definir hierarquias pai-filho. Por exemplo, você pode unir uma tabela Employees a ela própria para produzir uma hierarquia que mostra a cadeia de gerenciamento em uma empresa.

O Excel não permite criar loops entre relações em uma pasta de trabalho. Em outras palavras, o conjunto de relações a seguir é proibido.

  • Tabela 1, coluna a   a   Tabela 2, coluna f

  • Tabela 2, coluna f   a   Tabela 3, coluna n

  • Tabela 3, coluna n   a   Tabela 1, coluna a

Se você tentar criar uma relação que resulte na criação de um loop, será gerado um erro.

Página Inicial

Detecção automática e interferência de relações no Power Pivot

Uma das vantagens para importar dados usando o suplemento Power Pivot é que o Power Pivot pode detectar relações e criar novas relações no Modelo de dados que cria no Excel.

Quando você importa várias tabelas, o Power Pivotautomaticamente detecta todas as relações existentes entre as tabelas. Além disso, quando você cria uma Tabela Dinâmica, o Power Pivot  analisa os dados nas tabelas. Ele detecta possíveis relações que não foram definidas e sugere colunas apropriadas a serem incluídas nessas relações.

O algoritmo de detecção usa dados estatísticos sobre os valores e metadados de colunas para criar inferências sobre a probabilidade das relações.

  • Os tipos de dados em todas as colunas relacionadas devem ser compatíveis. Para a detecção automática, apenas os tipos de dados de número inteiro e de texto têm suporte. Para obter mais informações sobre tipos de dados, consulte Tipos de dados com suporte em Modelos de Dados.

  • Para que a relação seja detectada com êxito, o número de chaves exclusivas na coluna de pesquisa deve ser maior que os valores na tabela no lado muitos. Em outras palavras, a coluna de chave no lado muitos da relação não deve conter valores que não constem na coluna de chave da tabela de pesquisa. Por exemplo, digamos que você tenha uma tabela que liste produtos com suas IDs (a tabela de pesquisa) e uma tabela de vendas que liste vendas para cada produto (o lado muitos da relação). Se seus registros de vendas contiverem a ID de um produto sem uma ID correspondente na tabela Products, a relação não poderá ser criada automaticamente, mas você poderá criá-la manualmente. Para que o Excel detecte a relação, primeiro atualize a tabela de pesquisa Product com as IDs dos produtos ausentes.

  • Verifique se o nome da coluna de chave no lado muitos é semelhante ao nome da coluna de chave na tabela de pesquisa. Os nomes não precisam ser exatamente iguais. Por exemplo, em uma configuração comercial, com frequência, há variações nos nomes das colunas que contêm basicamente os mesmos dados: Emp ID, EmployeeID, Employee ID, EMP_ID e assim por diante. O algoritmo detecta nomes semelhantes e atribui uma probabilidade maior às colunas com nomes semelhantes ou exatamente iguais. Por isso, para aumentar a probabilidade de criar uma relação, experimente renomear as colunas nos dados importados com nomes semelhantes aos das colunas nas tabelas existentes. Se o Excel encontrar várias relações possíveis, ele não criará uma relação.

Essas informações podem ajudá-lo a compreender por que nem todas as relações são detectadas ou como as alterações feitas nos metadados (como o nome de campo e os tipos de dados) podem melhorar os resultados da detecção automática de relações. Para obter mais informações, consulte Solucionar problemas de relações.

Detecção automática para conjuntos nomeados

As relações não são detectadas automaticamente entre Conjuntos Nomeados e campos relacionados em uma Tabela Dinâmica. Você pode criar essas relações manualmente. Se você desejar usar a detecção automática de relações, remove cada Conjunto Nomeado e adicione os campos individuais do Conjunto Nomeado diretamente à Tabela Dinâmica.

Inferência de relações

Em alguns casos, as relações entre as tabelas são encadeadas automaticamente. Por exemplo, se você criar uma relação entre os dois primeiros conjuntos de tabelas abaixo, uma relação será inferida como existente entre as outras duas tabelas, e uma relação será estabelecida automaticamente.

  • Products e Category -- criada manualmente

  • Category e SubCategory -- criada manualmente

  • Products e SubCategory -- a relação é inferida

Para que sejam encadeadas automaticamente, as relações devem seguir em uma direção, conforme mostrado acima. Se as relações iniciais fossem entre, por exemplo, Sales e Products e Sales e Customers, uma relação não seria inferida. Isso ocorre porque a relação entre Products e Customers é uma relação muitos para muitos.

Página Inicial

Expanda suas habilidades
Explore o treinamento
Obtenha novos recursos primeiro
Ingressar no Office Insider

Essas informações foram úteis?

Obrigado por seus comentários!

Agradecemos pelos seus comentários! Parece que pode ser útil conectar você a um de nossos agentes de suporte do Office.

×