Relações entre tabelas em um Modelo de Dados

Observação: Desejamos fornecer o conteúdo da Ajuda mais recente no seu idioma da forma mais rápida possível. Esta página foi traduzida de forma automatizada e pode conter imprecisões ou erros gramaticais. Nosso objetivo é que este conteúdo seja útil para você. No final da página, deixe sua opinião se estas informações foram úteis para você. Aqui está o artigo em inglês para facilitar a referência.

Seu navegador não oferece suporte a vídeo. Instale o Microsoft Silverlight, o Adobe Flash Player ou o Internet Explorer 9.

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

CustomerID

Name

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

Há relações dentro de um modelo de dados: uma que você cria explicitamente ou uma que o Excel cria automaticamente em seu nome quando você importa simultaneamente várias tabelas. 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.

As relações se baseiam em colunas de cada tabela que contenham os mesmos dados. Por exemplo, você pode relacionar uma tabela de clientes com uma tabela pedidos se cada uma contiver uma coluna que armazena uma ID de 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. Uma chave geralmente é uma coluna 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.

Embora existam muitos tipos de chave, estes são os mais importantes para a nossa finalidade aqui:

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

  • Chave alternativa (ou tecla candidata): uma coluna que não seja a 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 Lookup). 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.

A relação entre um cliente e um pedido é uma relação um-para-muitos. Todo cliente pode ter várias ordens, mas uma ordem não pode ter vários clientes. Outra relação de tabela importante é um-para-um. Em nosso exemplo, a tabela CustomerDiscounts , que define uma única taxa de desconto para cada cliente, tem uma relação um-para-um com a tabela clientes.

Esta tabela mostra as relações entre as três tabelas (clientes, CustomerDiscountse pedidos):

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.

Após a criação de qualquer relação, o Excel geralmente 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. Para obter mais detalhes, consulte Recalcular fórmulas.

Um Modelo de Dados pode ter várias relações entre duas tabelas. Para criar cálculos precisos, o Excel precisa de um único caminho de uma tabela para a seguinte. Por isso, apenas uma relação entre cada par de tabelas é ativa de cada vez. Embora os outros estejam inativos, você pode especificar uma relação inativa em fórmulas e consultas.

No modo de exibição de diagrama, a relação ativa é uma linha sólida e os itens inativos são linhas tracejadas. Por exemplo, no AdventureWorksDW2012, a tabela DimDate contém uma coluna, DateKey, relacionada a três colunas diferentes na tabela FactInternetSales: DataDoPedido, DueDatee 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.

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 tipos de dados, consulte tipos de dados com suporte em modelos de dados.

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 sempre deve ter exatamente uma coluna que identifica exclusivamente cada linha na tabela. Se você importar tabelas que têm 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 poderá 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. Você pode fazer isso antes de importar os dados ou criar 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.

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 empresarial, muitas vezes você tem variações dos nomes das colunas que contêm essencialmente os mesmos dados: ID EMP, EmployeeID, ID do funcionário, emp_ide 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.

Expanda suas habilidades no Office
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.

×