Ir para conteúdo principal

O que é cardinalidade em bancos de dados?

Saiba o que é cardinalidade no banco de dados e como ela pode ajudar a entender melhor seus dados.

Os bancos de dados são essenciais para o mundo moderno. Todas as empresas em todos os setores podem se beneficiar de recursos de computador, e esses recursos são muitas vezes construídos sobre bancos de dados. Se você lida com qualquer tipo de transação, precisa criar um livro-razão para acompanhar isso, que se enquadra no mundo dos bancos de dados.

Se você quiser entender as ferramentas que gerenciam o rastreamento de dados (sem mencionar as análises que podem surgir ao longo do caminho), essa jornada começa com uma compreensão da cardinalidade do banco de dados.

O que é cardinalidade em bancos de dados?

Para definir a cardinalidade, é importante perceber que os bancos de dados são realmente planilhas no centro de tudo. É claro que eles podem ser enormes em termos de pontos de dados e complexidade, mas são apenas vastos livros de contabilidade de dados.

Dito isso, a cardinalidade é uma maneira de comparar o número de linhas na folha com o número de colunas. Especificamente em relação aos bancos de dados, a cardinalidade é geralmente uma medida de quantos valores distintos você tem em uma coluna em comparação com o número de linhas.

Vamos parar e observar que isso é diferente da cardinalidade na ciência de dados. A definição científica muitas vezes envolve conjuntos infinitos, colunas infinitas, conjuntos incontáveis e outros conceitos superiores que muitas vezes incluem "conjuntos infinitos" na descrição.

Isso pode parecer estranhamente específico e dificilmente útil, mas se você tiver em mente o conceito de comparar linhas e colunas, explicações adicionais sobre cardinalidade e seus usos esclarecerão tudo.

A primeira parte da clareza vem da ideia de cardinalidade alta e baixa. Se uma tabela tiver um grande número de elementos em relação ao número de linhas na coluna do banco de dados, isso significa alta cardinalidade. Você também pode ter baixa cardinalidade, o que sugere que muitos valores estão se repetindo.

Comparar cardinalidade alta e baixa pode ajudá-lo a calcular a variação e pensar sobre a qualidade de uma coluna rapidamente. Vamos considerar um exemplo simples.

Digamos que você esteja fazendo a folha de pagamento. Sua tabela de dados terá um identificador exclusivo para cada funcionário (geralmente um nome ou número de identificação fiscal). Você provavelmente verá as horas trabalhadas, a taxa de remuneração e o total devido. A lista de nomes terá alta cardinalidade, enquanto a taxa de pagamento por hora muitas vezes terá baixa cardinalidade. Isso dá uma ideia de que tipo de dados estão presentes em cada coluna.

Espero que este exemplo lhe dê uma ideia melhor do que é cardinalidade.

Por que a cardinalidade é benéfica em um banco de dados?

Em última análise, o valor da cardinalidade em um banco de dados não é realmente para a pessoa que visualiza os dados. Em vez disso, o valor é encontrado em pesquisas e consultas.

Se você quiser encontrar um ponto ou conjunto de dados específico em seu banco de dados, precisa que o sistema de computador o execute para você, mas em um banco de dados personalizado, alguém precisa criar essa função de pesquisa. A cardinalidade é usada pelo computador para descobrir se existem ou não várias respostas possíveis (ou qual é a probabilidade delas). Isso pode ajudar a criar resultados de pesquisa e hierarquias.

Isso significa que cardinalidade alta e baixa são conceitos usados pelos desenvolvedores para projetar sistemas de consulta eficientes.

Você também pode pensar em como isso pode ajudar na análise de dados. Os sistemas de computador precisam ser capazes de distinguir valores que podem ter entradas idênticas, e a cardinalidade pode ajudar um código de desenvolvedor em torno dessas redundâncias.

Tipos de cardinalidades

Até agora, falamos sobre cardinalidade alta e baixa em bancos de dados, mas o conceito também envolve um nível mais profundo. Você pode ter cardinalidade na modelagem de dados.

Agora, isso anda de mãos dadas com a cardinalidade que já discutimos. Ainda está comparando valores exclusivos em colunas com o número de linhas.

Mas, quando você considera a modelagem de dados, há mais algumas classificações de cardinalidade que se tornam importantes. Normalmente, eles são divididos em cardinalidades um para um, um para muitos e muitos para muitos.

Um para um

A correspondência individual é geralmente menos comum em bancos de dados modernos, mas existe e é importante entender como funciona.

No nível teórico, o nome diz tudo. Para qualquer item em uma coluna, há exatamente um item relacionado em outra coluna. Essa relação é bidirecional.

Isso não significa que as colunas precisam ter o mesmo tamanho. Uma coluna pode manter correspondências individuais mesmo que alguns itens não tenham um par. Olhar para o número de itens em cada coluna não revelará esse relacionamento.

Considere o exemplo a seguir.

Digamos que uma grande empresa tenha milhares de funcionários e todos os funcionários precisem de um e-mail comercial. Se você fosse acompanhar isso em um banco de dados, precisaria de um nome exclusivo para cada funcionário (geralmente usando um número de identificação) e seu endereço de e-mail exclusivo no livro razão. Cada nome está relacionado a um e-mail e vice-versa.

Um para muitos

Agora que você sabe o significado de cardinalidade e tem uma ideia do que é um relacionamento um para um, o conceito de um para muitos será fácil de entender.

Nesse caso, você tem uma coluna com entradas exclusivas (coluna “A”). Cada entrada pode estar relacionada a várias entradas em outra coluna (coluna “B”). Como tal, qualquer coisa na coluna A pode se vincular a várias coisas na B, mas cada item na B se vinculará apenas a uma coisa na A.

Um exemplo fácil de entender seria combinar representantes de vendas com seus clientes. Cada representante pode ter dezenas de clientes, mas para manter os relacionamentos estáveis, cada cliente tem apenas um representante de vendas. É um relacionamento de um para muitos.

Muitos para muitos

Por fim, podemos falar sobre o relacionamento de muitos para muitos. Qualquer item na coluna A pode ter vários pares na coluna B e o inverso também é verdadeiro.

Na verdade, podemos usar o exemplo do representante de vendas para pensar em relacionamentos de muitos para muitos.

E se a empresa for uma fabricante de microchip com clientes massivos e multibilionários? Essa empresa provavelmente tem equipes de vendas bem definidas, e cada equipe pode lidar com alguns clientes. Nesse caso, qualquer cliente tem vários representantes individuais e cada agente pode trabalhar em alguns contratos diferentes.

Essa é a ideia de um relacionamento de muitos para muitos.

Exemplos de cardinalidade

Nas seções anteriores, você aprendeu sobre diferentes tipos de aritmética cardeal e relações com alguns exemplos simplificados. Agora, podemos ver algumas aplicações reais de cardinalidade para ver exatamente como ela pode funcionar em um banco de dados.

Uber

Vamos pensar em projetar nosso próprio banco de dados que funcionaria para a Uber.

É uma empresa bem conhecida com um modelo bem conhecido, mas se você não estiver familiarizado, veja como funciona. Uber é um aplicativo para smartphone. Você pode abrir o aplicativo e solicitar uma viagem do seu local atual para qualquer outro lugar. O aplicativo conecta você a um motorista, atribui a tarifa, estabelece a navegação e lida com toda a logística. Seu motorista irá acompanhá-lo para onde você quiser ir e você paga pela viagem pelo aplicativo.

Para um aplicativo tão grande e complicado, bancos de dados criados a partir de dados de intenção estão definitivamente em jogo, e um que é fácil de imaginar é um banco de dados que acompanha clientes e motoristas. Nesse caso, cada motorista e cliente precisa de um identificador exclusivo.

Isso significa que a nossa coluna de motoristas (D) e a coluna de clientes (C) têm alta cardinalidade (na verdade, têm infinita cardinalidade). Cada item em cada coluna é único.

Também podemos pensar nas relações entre as colunas. Em resumo, pode parecer que qualquer motorista pode ter vários passageiros e vice-versa, mas na verdade temos relacionamentos individuais para uma transação. Um motorista só pode ter um cliente por vez. Mesmo que o cliente seja tecnicamente um grupo de pessoas, haverá apenas uma ID de cliente na transação. Precisamos de um banco de dados individual para corresponder a clientes e motoristas para qualquer transação individual.

Amazon

Se alguma empresa no mundo usa bancos de dados, é a Amazon. Para este exemplo, vamos considerar a loja on-line da Amazon. Há muitos varejistas que têm lojas no site, e há bilhões de pessoas que compram via Amazon.

Mais uma vez, cada loja e cada comprador precisa de uma ID exclusiva para gerenciar cada transação. No entanto, esse caso é mais complicado do que o exemplo da Uber.

Ao comprar na Amazon, você pode comprar coisas de vários varejistas, tudo na mesma transação. A Amazon lida com a logística, para que você não precise saber se seus itens se originam de diferentes locais. Para você, é uma única transação.

Enquanto isso, as lojas também podem vender para vários usuários simultaneamente, mas cada transação será apenas com um usuário.

Nesse caso, temos um relacionamento de um para muitos. Você pode comprar de várias lojas, mas cada loja está vendendo apenas para você nessa transação específica.

Melhore a modelagem de dados com cardinalidade

Agora que você sabe mais sobre cardinalidade de dados e como ela funciona com bancos de dados e modelagem de dados, o próximo passo é mergulhar e explorar ferramentas que possam aprofundar sua compreensão e capacitá-lo a trabalhar diretamente com bancos de dados.

Os relatórios da Mailchimp facilitam a avaliação de dados e a medição da cardinalidade com um painel de fácil leitura. Experimente a Mailchimp hoje mesmo.

Compartilhar este artigo