Vídeo: Power BI (desktop) X Power Pivot 2016 - Relação de Muitos para Muitos (M2M) 2025
Você não precisa ser um modelador de banco de dados especializado para usar o Power Pivot. Mas é importante entender os relacionamentos. Quanto melhor você entender como os dados são armazenados e gerenciados em bancos de dados, mais efetivamente você alavancará o Power Pivot para relatórios.
A relacionamento é o mecanismo pelo qual tabelas separadas estão relacionadas entre si. Você pode pensar em um relacionamento como um VLOOKUP, no qual você relaciona os dados em um intervalo de dados com os dados em outro intervalo de dados usando um índice ou um identificador exclusivo. Nas bases de dados, os relacionamentos fazem o mesmo, mas sem o incômodo de escrever fórmulas.
Os relacionamentos são importantes porque a maioria dos dados que você trabalha se encaixa em uma hierarquia multidimensional. Por exemplo, você pode ter uma tabela mostrando os clientes que compram produtos. Esses clientes exigem faturas com números de fatura. Essas faturas têm várias linhas de transações listando o que eles compraram. Existe uma hierarquia lá.
Agora, no mundo de planilhas unidimensional, esses dados normalmente seriam armazenados em uma tabela plana, como a mostrada aqui.
Como os clientes têm mais de uma fatura, as informações do cliente (neste exemplo, CustomerID e CustomerName) devem ser repetidas. Isso causa um problema quando esses dados precisam ser atualizados.
Por exemplo, imagine que o nome da empresa Aaron Fitz Electrical muda para a Fitz and Sons Electrical. Olhando para a tabela, você vê que várias linhas contêm o nome antigo. Você teria que garantir que cada linha contendo o nome antigo da empresa fosse atualizada para refletir a alteração. Qualquer linha que você perca não irá mapear corretamente para o cliente certo.
Não seria mais lógico e eficiente registrar o nome e a informação do cliente apenas uma vez? Então, ao invés de ter que escrever a mesma informação do cliente repetidamente, você poderia simplesmente ter alguma forma de número de referência do cliente.
Esta é a idéia por trás dos relacionamentos. Você pode separar os clientes das faturas, colocando cada uma em suas próprias tabelas. Então, você pode usar um identificador exclusivo (como CustomerID) para relacioná-los.
A figura a seguir ilustra como esses dados seriam encontrados em um banco de dados relacional. Os dados seriam divididos em três tabelas distintas: Clientes, InvoiceHeader e InvoiceDetails. Cada tabela seria então relacionada usando identificadores exclusivos (CustomerID e InvoiceNumber, neste caso).
A tabela Clientes contém um registro exclusivo para cada cliente. Dessa forma, se você precisar mudar o nome de um cliente, você precisaria fazer a alteração apenas nesse registro. Claro, na vida real, a tabela Clientes inclui outros atributos, como o endereço do cliente, o número de telefone do cliente e a data de início do cliente. Qualquer um desses outros atributos também pode ser facilmente armazenado e gerenciado na tabela Clientes.
O tipo de relacionamento mais comum é um one-to-many relacionamento. Ou seja, para cada registro em uma tabela, um registro pode ser combinado com muitos registros em uma tabela separada. Por exemplo, uma tabela de cabeçalho de fatura está relacionada a uma tabela de detalhes da fatura. A tabela de cabeçalho da fatura possui um identificador exclusivo: número da factura. O detalhe da fatura usará o Número da Fatura para cada registro que represente um detalhe dessa fatura particular.
Outro tipo de tipo de relacionamento é o relacionamento one-to-one: para cada registro em uma tabela, um e somente um registro correspondente está em uma tabela diferente. Os dados de diferentes tabelas em um relacionamento um-para-um podem ser tecnicamente combinados em uma única tabela.
Finalmente, em um relacionamento muitos para muitos, os registros em ambas as tabelas podem ter qualquer número de registros correspondentes na outra tabela. Por exemplo, um banco de dados em um banco pode ter uma tabela dos vários tipos de empréstimos (empréstimo à habitação, empréstimo de carro e assim por diante) e uma tabela de clientes. Um cliente pode ter muitos tipos de empréstimos. Enquanto isso, cada tipo de empréstimo pode ser concedido a muitos clientes.
