Relações entre tabelas num Modelo de Dados

Nota: Queremos fornecer-lhe os conteúdos de ajuda mais recentes o mais rapidamente possível e no seu idioma. Esta página foi traduzida automaticamente e pode conter erros gramaticais ou imprecisões. O nosso objetivo é que estes conteúdos lhe sejam úteis. Pode informar-nos se as informações foram úteis no final desta página? Eis o artigo em inglês para referência.

O seu browser não suporta vídeo. Instale o Microsoft Silverlight, o Adobe Flash Player ou o Internet Explorer 9.

Adicione mais energia à sua análise de dados ao criar relações amogn diferentes tabelas. Uma relação é uma ligação entre duas tabelas que contêm dados: uma coluna em cada tabela é a base para a relação. Para perceber o motivo pelo qual as relações são úteis, imagine que controla dados de encomendas de clientes na sua empresa. Pode monitorizar todos os dados numa única tabela com uma estrutura como esta:

IDDoCliente

Name

E-mail

TaxaDesconto

IDDaEncomenda

DataDaEncomenda

Produto

Quantidade

1

Andrade

jorge.andrade@contoso.com

0,05

256

07-01-2010

CD

11

1

Andrade

jorge.andrade@contoso.com

0,05

255

01-03-2010

Câmara SLR

15

2

Barbosa

paulo.barbosa@contoso.com

0,10

254

01-03-2010

Orçamento Editor de Vídeo

27

Esta abordagem pode funcionar, mas envolve o armazenamento de muitos dados redundantes, como o endereço de correio eletrónico do cliente para cada encomenda. O armazenamento é barato, mas se o endereço de correio eletrónico de um cliente for alterado, terá de garantir que atualiza todas as linhas relativas a esse cliente. Uma solução para este problema é dividir os dados em várias tabelas e definir relações entre essas tabelas. Esta é a abordagem utilizada em bases de dados relacionais como o SQL Server. Por exemplo, uma base de dados importada poderá representar dados de encomendas utilizando três tabelas relacionadas:

Clientes

[IDDoCliente]

Nome

E-mail

1

Andrade

jorge.andrade@contoso.com

2

Barbosa

paulo.barbosa@contoso.com

DescontosDeCliente

[IDDoCliente]

TaxaDesconto

1

0,05

2

0,10

Encomendas

[IDDoCliente]

IDDaEncomenda

DataDaEncomenda

Produto

Quantidade

1

256

07-01-2010

CD

11

1

255

01-03-2010

Câmara SLR

15

2

254

01-03-2010

Orçamento Editor de Vídeo

27

As relações existem dentro de um modelo de dados, um que pode criar explicitamente ou uma que o Excel cria automaticamente em seu nome quando importa várias tabelas em simultâneo. Pode igualmente utilizar o suplemento PowerPivot para criar ou gerir o modelo. Consulte Criar um Modelo de Dados no Excel para obter detalhes.

Se utilizar o suplemento PowerPivot para importar tabelas a partir da mesma base de dados, o PowerPivot poderá detetar as relações entre as tabelas com base nas colunas entre [parênteses retos] e poderá reproduzir essas relações num Modelo de Dados criado em segundo plano. Para mais informações, consulte Deteção Automática e Inferência de Relações neste artigo. Se importar tabelas a partir de várias origens, poderá criar relações manualmente conforme descrito em Criar uma relação entre duas tabelas.

As relações são baseadas em colunas em cada tabela que contêm os mesmos dados. Por exemplo, pode relacionar uma tabela de clientes com uma tabela encomendas, se cada uma tiver uma coluna que armazene um ID de cliente. No exemplo, os nomes das colunas são iguais, mas isto não é obrigatório. Uma poderia chamar-se IDDoCliente e outra NúmeroDeCliente, desde que todas as linhas da tabela Encomendas contenham um ID que também esteja armazenado na tabela Clientes.

Numa base de dados relacional, existem vários tipos de teclas. Uma chave é normalmente uma coluna com propriedades especiais. A compreensão do objetivo de cada chave pode ajudar a gerir um Modelo de Dados de várias tabelas que forneça dados a um relatório de Tabela Dinâmica, Gráfico Dinâmico ou Power View.

Apesar de existirem muitos tipos de teclas, estas são as mais importantes para o nosso objetivo aqui:

  • Chave primária: identifica exclusivamente uma linha numa tabela, tal como o CódigoDoCliente na tabela clientes .

  • Chave alternativa (ou chave de candidato): uma coluna que não seja a chave primária. Por exemplo, uma tabela Empregados poderá armazenar um ID de funcionário e um número de segurança social, sendo os dois exclusivos.

  • Chave externa: uma coluna que faz referência a uma coluna exclusiva de outra tabela, como o CódigoDoCliente na tabela encomendas , que se refere ao CódigoDoCliente na tabela clientes.

Num Modelo de Dados, a chave primária ou a chave alternativa é chamada coluna relacionada. Se uma tabela tiver uma chave primária e uma chave alternativa, poderá utilizar uma das duas como base de uma relação entre tabelas. A chave externa é referenciada como coluna de origem ou apenas como coluna. No nosso exemplo, uma relação seria definida entre o CódigoDoCliente na tabela encomendas (a coluna) e o CódigoDoCliente na tabela clientes (a coluna de pesquisa). Se importar dados a partir de uma base de dados relacional, o Excel escolhe por predefinição a chave externa a partir de uma tabela e a chave primária correspondente a partir da outra tabela. No entanto, pode utilizar qualquer coluna que tenha valores únicos para a coluna de referência.

A relação entre um cliente e uma encomenda é uma relação um-para-muitos. Cada cliente pode ter várias encomendas, mas uma encomenda não pode ter vários clientes. Outra relação de tabela importante é um-para-um. No nosso exemplo aqui, a tabela CustomerDiscounts , que define uma única tarifa 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 encomendas):

Relação

Tipo

Coluna de Referência

Coluna

Clientes-DescontosDeClientes

um-para-um

Clientes.IDDoCliente

DescontosClientes.IDDoCliente

Clientes-Encomendas

um-para-muitos

Clientes.IDDoCliente

Encomendas.IDDoCliente

Nota: As relações muitos-para-muitos não são suportadas num 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.

Depois de criar uma relação, o Excel tem de recalcular as fórmulas que utilizam colunas de tabelas na relação recém-criada. O processamento pode demorar algum tempo, dependendo da quantidade dos dados e da complexidade das relações. Para obter mais detalhes, consulte o artigo 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. Consequentemente, só existe uma relação ativa entre cada par de tabelas de cada vez. Apesar de as outras pessoas estarem inativas, pode especificar uma relação inativa em fórmulas e consultas.

Na vista de diagrama, a relação ativa é uma linha contínua e os itens inativos são linhas tracejadas. Por exemplo, no AdventureWorksDW2012, a tabela DimDate contém uma coluna, chavededata, que está relacionada com três colunas diferentes na tabela FactInternetSales: DataDoPedido, DueDatee ShipDate. Se a relação ativa for a relação entre CódigoDeData e DataDaEncomenda, esta é a relação predefinida nas fórmulas, a menos que especifique outra.

Uma relação pode ser criada quando os seguintes requisitos são preenchidos:

Critérios

Descrição

Identificador Exclusivo para Cada Tabela

Cada tabela tem de ter uma coluna única que identifique exclusivamente cada linha dessa tabela. Esta coluna é frequentemente chamada chave primária.

Colunas de Referência Exclusivas

Os valores de dados existentes na coluna de referência têm de ser exclusivos. Por outras palavras, a coluna não pode conter duplicados. Num Modelos de Dados, os nulos e as cadeias vazias são equivalente a um valor em branco, que é um valor de dados distinto. Isto significa que não pode ter vários valores nulos na coluna de referência.

Tipos de Dados Compatíveis

Os tipos de dados existentes nas colunas de origem e de pesquisa têm de ser compatíveis. Para obter mais informações sobre tipos de dados, consulte tipos de dados suportados em modelos de dados.

No Modelo de Dados, não é possível criar uma relação entre tabelas se a chave for uma chave composta. Está também restringido a criar relações um-para-um ou um-para-muitos. Os outros tipos de relação não são suportados.

Chaves Compostas e Colunas de Referência

Uma chave composta é uma chave que é composta por mais de uma coluna. Os modelos de dados não podem utilizar chaves compostas: uma tabela tem de ter exatamente uma coluna que identifica exclusivamente cada linha na tabela. Se importar tabelas que tenham uma relação existente com base numa chave composta, o assistente de importação de tabelas no Power pivot irá ignorar essa relação porque não pode ser criada no modelo.

Para criar uma relação entre duas tabelas que tenham várias colunas que definam as chaves primária e externa, combine primeiro os valores para criar uma única coluna de chave antes de criar a relação. Pode fazê-lo antes de importar os dados ou ao criar uma coluna calculada no modelo de dados utilizando o suplemento Power pivot.

Relações Muitos-para-Muitos

Um Modelo de Dados não pode ter relações muitos-para-muitos. Não é possível adicionar simplesmente tabelas de junção no modelo. No entanto, pode utilizar funções do DAX para modelar relações muitos-para-muitos.

Associações Automáticas e Ciclos

As associações automáticas não são permitidas num Modelo de Dados. Uma associação automática é uma relação recursiva entre uma tabela e ela própria. As associações automáticas são frequentemente utilizadas para definir hierarquias principal-subordinado. Por exemplo, pode associar uma tabela Empregados a ela própria para produzir uma hierarquia que mostra a cadeia de gestão de uma empresa.

O Excel não permite a criação de ciclos entre relações num livro. Por outras palavras, o conjunto de relações seguinte é 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 tentar criar uma relação que resulte na criação de um ciclo, é gerado um erro.

Uma das vantagens da importação de dados com o suplemento PowerPivot é que o PowerPivot pode, por vezes, detetar relações e criar novas relações no Modelo de Dados que cria no Excel.

Quando importa várias tabelas, o PowerPivot deteta automaticamente quaisquer relações que existam entre as tabelas. Quando cria uma Tabela Dinâmica, o PowerPivot analisa os dados existentes nas tabelas. Ele deteta relações possíveis que possam não ter sido definidas e sugere colunas adequadas para incluir nessas relações.

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

  • Os tipos de dados existentes em todas as colunas relacionadas devem ser compatíveis. Na deteção automática, são suportados os tipos de dados de número inteiro e os tipos de dados de texto. Para mais informações sobre tipos de dados, consulte Tipos de dados suportados em Modelos de Dados.

  • Para que a relação seja detetada com êxito, o número de chaves exclusivas na coluna de pesquisa tem de ser maior que os valores na tabela no lado de muitos. Por outras palavras, a coluna chave no lado de muitos da relação não pode conter quaisquer valores que não estejam na coluna chave da tabela de pesquisa. Por exemplo, suponha que tem uma tabela que lista produtos com os seus IDs (a tabela de pesquisa) e uma tabela de vendas para cada produto (o lado de muitos da relação). Se os registos de vendas contiverem o ID de um produto que não tenha um ID correspondente na tabela Produtos, a relação não pode ser criada automaticamente, mas poderá conseguir criá-la manualmente. Para que o Excel detete a relação, tem de atualizar primeiro a tabela de referência Produto com os IDs dos produtos em falta.

  • Certifique-se de que o nome da coluna de chave no lado muitos é semelhante ao nome da coluna de chave na tabela de pesquisa. Os nomes não têm de ser exatamente os mesmos. Por exemplo, numa definição empresarial, muitas vezes tem variações sobre os nomes das colunas que contêm basicamente os mesmos dados: EMP ID, CódigoDoFuncionário, ID de funcionário, emp_id, entre outros. O algoritmo detecta nomes semelhantes e atribui uma probabilidade maior às colunas que têm nomes semelhantes ou exatamente correspondentes. Por isso, para aumentar a probabilidade de criar uma relação, pode tentar mudar o nome das colunas nos dados que importa para algo semelhante às colunas nas suas tabelas existentes. Se o Excel encontrar várias relações possíveis, significa que não cria uma relação.

Estas informações poderão ajudar a compreender o motivo pelo qual não são detetadas todas as relações ou de que modo as alterações nos metadados (por exemplo, nome do campo e tipos de dados) poderiam melhorar os resultados da deteção automática de relações. Para obter mais informações, consulte Resolução de Problemas de Relações.

Deteção Automática para Conjuntos com Nomes

As relações são criadas automaticamente sempre que adiciona campos novos a uma Tabela Dinâmica ou Gráfico Dinâmico. Também pode configurar relações manualmente. Se pretender utilizar a deteção automática de relações, remova cada Conjunto com Nome e adicione os campos individuais do Conjunto com Nome diretamente à Tabela Dinâmica.

Inferência de Relações

Em alguns casos, as relações entre tabelas são automaticamente encadeadas. Por exemplo, se criar uma relação entre os dois primeiros conjuntos de tabelas abaixo, é inferida a existência de uma relação entre as outras duas tabelas e é automaticamente estabelecida uma relação.

Produtos e Categoria -- criada manualmente

Categoria e Subcategoria -- criada manualmente

Produtos e Subcategoria -- a relação é inferida

Para que as relações sejam encadeadas automaticamente, as relações têm de ser um sentido, conforme mostrado acima. Por exemplo, se as relações iniciais fossem entre Vendas e Produtos e Vendas e Clientes, não seria inferida nenhuma relação. Isto acontece porque a relação entre Produtos e Clientes é uma relação de muitos-para-muitos.

Aumente os seus conhecimentos do Office
Explore as formações
Seja o primeiro a obter novas funcionalidades
Adira ao Office Insider

As informações foram úteis?

Obrigado pelos seus comentários!

Obrigado pelo seu feedback! Parece que poderá ser benéfico reencaminhá-lo para um dos nossos agentes de suporte do Office.

×