Data warehouse: conheça seis tipos de chave de DW que evitam problemas
As chaves de um data warehouse identificam diferentes linhas de uma tabela e criam relacionamentos entre todas as tabelas do banco de dados.
Aprender os diferentes tipos de chaves para a construção de um data warehouse evita muita dor de cabeça, pois resolve muitos problemas e transforma o ambiente de dados em um lugar mais dinâmico.
Se você trabalha com dados e quer ter melhores relações nas suas tabelas e aperfeiçoar seus resultados na construção de um DW, esse artigo é para você.
Agora, se está começando na área de dados e ainda não sabe o que é um data warehouse, sugerimos que leia este artigo primeiro.
O que são chaves em um banco de dados?
As chaves de um data warehouse identificam diferentes linhas de uma tabela e criam relacionamentos entre todas as tabelas do banco de dados.
Esses valores são considerados registros únicos muitas vezes, mas podem aparecer mais de uma vez em uma tabela para relacionar o modelo de dados em questão com outras tabelas pertinentes para o negócio, principalmente quando tratamos os dados utilizando a organização entre tabelas de fatos e de dimensões.
Não sabe o que são tabelas de fatos e dimensões? Neste artigo que indicamos antes, você encontra esses conceitos.
A correta utilização das chaves é fundamental para você identificar os registros organizando o banco de dados e a normalização dele, evitando problemas sérios, como a perda de informação, redundância e outras anomalias no seu conjunto de dados.
Conheça 6 tipos de chave de DW que evitam problemas
Existem boas opções para identificar os registros em um banco de dados e formar relações consistentes entre as tabelas.
Separamos e vamos apresentar agora 6 tipos de chaves de data warehouse para você começar a entender mais sobre isso:
- primary key
- alternate key
- foreign key
- surrogate key
- compound key
- candidate key
Esses conceitos vão ajudar você na hora de decidir qual tipo de chave melhor atende a determinado problema de negócio que precise resolver ou à modelagem do seu banco de dados. Vamos lá!
1. Primary key
A primary key (PK) ou chave primária é a coluna utilizada no banco de dados para referir cada linha de forma única.
Por definição, tabelas de um banco de dados relacional não podem ter chaves primárias duplicadas ou nulas.
Além dessa, outras especificidades devem ser consideradas no uso das primary keys, como:
duas linhas não podem, de forma alguma, ter a mesma chave primária;em um banco de dados relacional, toda linha precisa obrigatoriamente ter uma chave primária, mas essa restrição não se aplica a DWs em geral;uma chave nunca pode ser nula;se alguma chave for referida utilizando-se determinada linha, a chave primária nunca pode ser mudada.Veja um exemplo de uso de chave primária na tabela a seguir.
Veja na tabela Exemplo de uso da chave primária que temos a coluna id_cliente como chave primária, com um valor único para cada registro.
Na construção de um data warehouse, não é recomendada a utilização das chaves primárias das tabelas fonte. Recomenda-se a construção de chaves surrogate a partir de colunas da tabela que gerem registros únicos. Vamos falar desse tipo depois.
2. Alternate key
As chaves secundárias ou alternate keys no banco de dados fazem referência a outra coluna da tabela que poderia servir como chave, não sendo a chave primária.
Observe no próximo exemplo a utilização de uma alternate key.
Repare que temos duas colunas que poderiam ser utilizadas como chave primária. Essa escolha deve ser feita por quem está modelando o banco de dados. E assim que a escolha for feita, a outra chave se torna a chave secundária.
Então, se tomarmos a coluna id_funcionario como chave primária, a coluna numero_funcionario se tornará a chave secundária por consequência.
3. Foreign key
A chave estrangeira ou foreign key tem um conceito um pouco diferente das chaves anteriores. Ela é utilizada para conectar diferentes tabelas, não dizendo respeito especificamente a uma tabela, mas a uma relação entre diferentes tabelas.
Algumas diferenças da chave estrangeira para as anteriores são:
- pode-se ter valores nulos;
- pode-se ter mais de uma ou nenhuma chave estrangeira;
- ela faz referência a um campo que é a chave primária de outra tabela.
Para exemplificar o uso das chaves estrangeiras, vamos considerar três tabelas diferentes: Produtos, Clientes e Pedidos.
Note que as tabelas Produtos e Clientes têm como chaves primárias id_produto e id_cliente, respectivamente. Vamos usar essas chaves para construir a tabela Pedidos do exemplo, mas elas não serão utilizadas como chaves primárias, e sim como chaves estrangeiras.
Aqui na tabela Pedidos, veja que, ao invés de colocar diretamente o nome de produtos e clientes, utilizamos a foreign key (FK) para fazer a relação entre as tabelas, tendo como chave primária a coluna id_pedido.
4. Surrogate key
O tipo surrogate key (SK) é muito semelhante à chave primária em sua utilização, porém se aplica de forma mais geral em DWs.
Trata-se de uma chave criada de forma artificial e incrementada de forma automática pelo SGBD (sistema de gerenciamento de banco de dados), ou seja, o sistema cria uma chave nova para cada novo registro inserido na tabela.
Um uso interessante para esse tipo de chave é, através da sua construção pelas funções hash, gerar um número aleatório e uma chave única a partir de alguns parâmetros, utilizando uma função matemática para isso.
No geral, essa função é mais apropriada para a construção de um data warehouse, uma vez que permite uma quantidade maior de combinações de parâmetros e colunas.
Veja um exemplo do tipo de chave surrogate em uma tabela de categorias do ramo imobiliário.
5. Compound key
As chaves compostas ou compound keys identificam registros únicos em um banco de dados, mas não da forma que vimos até agora. Elas são combinações de duas ou mais colunas que tornam o registro único, não necessariamente sendo identificado por uma chave primária.
Veja, por exemplo, as chaves compostas em uso em uma tabela de pedidos para uma loja de informática.
Nesse exemplo, as colunas num_pedido e id_produto não necessariamente apontam para valores únicos. Já a combinação desses dois campos tornam o registro único e pode ser utilizada para identificá-lo.
6. Candidate key
E, por fim, as chaves candidatas ou candidate keys são todas as colunas que podem identificar de forma única um registro. O campo em questão não pode ser nulo nem se repetir ao longo da tabela.
Podemos ter várias candidate keys, mas apenas uma primary key.
Para entender melhor a aplicação das chaves candidatas em um banco de dados, veja a tabela a seguir.
Nesse exemplo, as colunas id_estudante, numero_linha e email podem identificar o registro de forma única. Entre as três colunas, devemos escolher uma chave primária e, em seguida, todas as outras chaves se tornarão chaves secundárias. Ainda sim, todas serão também chaves candidatas por garantirem a unicidade do registro.
Continue aprendendo sobre data warehouse na Indicium Academy
Gostou do que leu? Quer se desafiar e investir em uma carreira de sucesso na área de dados?
Este tema e muitos conceitos da modelagem de dados e do mundo de analytics e data science você pode aprender na Formação em Analytics Engineering da Indicium Academy, pioneira no Brasil!
Até mais!
Bianca Santos
Redatora