Saiba a importância das Chaves Primárias no Access

Desde que comecei a utilizar Banco de Dados, principalmente o Access, na sua 1ª versão que foi a 2.0, uma das tarefas mais importantes estão na criação e estruturação das tabelas.

Por esse motivo, estou trazendo um conteúdo interessante criado por Osmar José Correia Júnior do extinto site Ativo Access, para que você tenha um desenvolvimento melhor em seus projetos.

Saiba a importância das Chaves Primárias no Access

A função essencial da chave primária de uma tabela é:

Identificar unicamente as suas linhas – nem mais nem menos.

Cada valor de chave primária deve ser único dentro de uma tabela, de modo que o motor da base de dados possa saber a diferença entre as linhas.

O mesmo valor de chave primária pode aparecer em outra tabela, mas não pode ser duplicado dentro dela. E a chave primária não pode ter um valor Nulo pois o motor de base de dados exige um valor para poder localizar o registro.

A segunda maior função da chave primária é fornecer um “gancho” para a criação de relacionamentos entre tabelas. Um campo chave primária é relacionado a um campo correspondente, a chave estrangeira, em outra tabela.

Os valores da chave primária e da chave estrangeira são os mesmos para registros ligados por meio de um relacionamento.

A chave primária de uma tabela é sempre indexada.

Não há exceções a esta regra. A chave primária deve ser idexada de forma que o motor da base de dados possa localizar rapidamente as linhas baseando-se nos valores das chaves.

A sugestão que diz que a indexação de chaves primárias é opcional está totalmente errada.

Uma ID de Replicação é uma escolha terrível para chave primária.

O Access fornece o tipo de dados Replication ID para identificar unicamente os registros em uma base de dados replicada. Uma Replicaton ID (que na verdade é um GUID, ou ID Globalmente Única) está garantida como sendo única no universo.

Um número GUID é gerado a partir de diversos bits de informação, incluindo, entre outros, o nome do computador, a data e a hora e quantos bytes estão livres no Drive C:.

Números GUID são difíceis de ler. Você consegue dizer rapidamente se {8EC7B8E3-3B51-4C0C-8481-7AEEF9074EBE} e {8EC7B8E3-3B51-4C0C-8481-7AEEF9074FBE} têm o mesmo valor? (Não têm). Mas é fácil dizer que 7817 é diferente de 7819.

Números GUID são difíceis de usar como chaves primárias pois são difíceis para nós, humanos, fazermos a comparação entre eles.

Além disso, um ID de Replicação ocupa 16 bytes de memória e de espaço em disco, enquanto que um inteiro longo utiliza apenas 4 bytes.

Geralmente menor é melhor por que um computador trabalha 4 bytes muito mais rapidamente do que consegue trabalhar um Id de Replicação de 16 bytes.


O comentário que uma ID de Replicação é a chave primária ideal porque “o campo será usado automaticamente como Identificação” não é correto. Não vejo nenhuma vantagem na utilização do tipo de dados ID de Replicação sobre a utilização de um tipo de dados inteiro longo.

A Microsoft fornece o tipo de dados NumeraçãoAutomática nas bases de dados Access (e o atributo Identity no SQL Server) para que tenhamos uma chave primária conveniente e eficiente para nossas tabelas.

Sei que algumas pessoas dizem que devemos utilizar sempre “chaves naturais” (números de CPF, Números de CNPJ, ID do Funcionário, etc) como chaves primárias, mas eu uso sempre campos NumeraçãoAutomática ou Identity como minhas chaves primárias.

As tabelas são compostas de elementos de dados e de criação. A criação inclui nomes de campos, índices, restrições (como as regras de validação) e definições de chaves.

Na minha opinião a escolha da chave primária é uma decisão de criação e não tem nada a ver com os dados.

Nunca existe a necessidade do usuário “ver” a chave primária. Ela existe apenas para identificar unicamente os registros e ancorar os relacionamentos entre as tabelas.

Autonumeração com inteiros longos são chaves primárias ideais, pois são automáticos, não podem ser alterados e, com certeza, são únicos em uma tabela.

Espero que você tenha gostado desta dica e caso este artigo fez sentido para você, compartilhe para que outros usuários possam aprender também.

E caso tenha alguma dúvida, não hesite em colocar nos comentários aqui abaixo, blz?

Até o próximo artigo!

Aldir Oliveira

2 comentários

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *