Recomendado, 2024

Escolha Do Editor

Diferença entre chave primária e chave exclusiva

Já estudamos diferentes tipos de chaves usadas no banco de dados e no esquema nos artigos anteriores, ou seja, Diferença entre a chave primária e a chave estrangeira. Neste artigo, estamos distinguindo chave primária e chave exclusiva. Tanto a chave primária quanto a chave exclusiva são usadas para identificar uma tupla de forma exclusiva e impõe exclusividade em uma coluna ou combinação de uma coluna.

A diferença essencial entre a chave primária e a chave exclusiva é que a chave primária não aceita valores NULL, enquanto os valores NULL são permitidos dentro de restrições de chave exclusivas.

Gráfico de comparação

Base para comparaçãoChave primáriaChave única
BasicEle é usado para servir como um identificador exclusivo para cada linha de uma tabela.Ele também determina exclusivamente uma linha, que não é definida como uma chave primária.
Aceitação do valor NULLA chave primária não aceita valores NULL.Unique aceitará um valor NULL.
Número de chaves que podem ser definidas na tabelaApenas uma chave primáriaMais de um
ÍndiceCria um índice clusterizadoCria um índice não clusterizado

Definição da chave primária

Uma coluna pode ser chamada como uma chave primária de sua tabela se ela identifica exclusivamente cada tupla (linha) nessa tabela. Ele impõe restrições de integridade à tabela. Apenas uma chave primária é permitida em uma tabela. A chave primária não aceita os valores duplicados e NULL. A chave primária é escolhida com cuidado, onde as alterações podem ocorrer de forma raramente, significa que uma chave primária em uma tabela muda muito raramente.

Vamos entender a noção de chave primária com a ajuda de uma tabela. Aqui estamos criando uma tabela nomeada como tabela Student, que possui atributos como Roll_number, Name, Batch, Phone_number, Citizen_ID.

No exemplo dado, o número de rolo do atributo nunca pode ter valor idêntico e NULL, porque todos os alunos matriculados em uma universidade com um número único de Roll. Dois alunos não podem ter o mesmo número de cilindros e cada linha de uma tabela é identificada exclusivamente com o número do boletim dos alunos. Portanto, podemos fazer o atributo Roll_number como uma chave primária neste caso específico.

Uma chave primária pode ser referenciada por chave estrangeira. Ele cria um índice clusterizado exclusivo na tabela. Em um índice clusterizado, as linhas de dados são classificadas e armazenadas em uma tabela ou exibições com base em seus valores-chave. Pode haver apenas um índice clusterizado em uma tabela, a razão por trás disso é que as linhas de dados em uma tabela podem ser classificadas em apenas uma ordem.

Definição de chave exclusiva

Semelhante a uma chave primária, as restrições de chave exclusiva também identificam uma tupla individual em uma relação. Mas há certas diferenças entre eles. Uma tabela pode ter mais de uma chave exclusiva. Restrições de chave exclusivas podem aceitar apenas um valor NULL para uma coluna.

Vamos entender isso com o exemplo semelhante, em que tivemos uma tabela de alunos com os atributos Roll_number, Name, Batch, Phone_number e Citizen_ID. O atributo do número de rolo é atribuído com a chave primária.

Aqui Citizen_ID pode ser atribuído com restrições exclusivas, onde cada entrada em uma coluna Citizen_ID deve ser única, não duplicada, porque cada cidadão de um país deve ter seu número de identificação exclusivo. Mas, se um aluno migrar de outro país, nesse caso, ele não terá o ID_ID_cidadão e a entrada poderá ter um valor NULO, já que um NULO é permitido na restrição exclusiva.

Restrições exclusivas também são referenciadas pela chave estrangeira. Pode ser usado quando alguém deseja impor restrições a uma coluna e a um grupo de colunas que não é uma chave primária. Ao contrário da chave primária, gera o índice não agrupado . Índices não clusterizados têm uma estrutura distinta das linhas de dados. Cada entrada de valor-chave nela aponta para a linha de dados que contém o valor-chave, portanto, usa ponteiros.

Principais diferenças entre chave primária e chave única

  1. Quando um atributo é declarado como chave primária, ele não aceita valores NULL. Por outro lado, quando um atributo declarado como Unique, ele pode aceitar um valor NULL.
  2. Uma tabela pode ter apenas a chave primária, enquanto pode haver várias restrições exclusivas em uma tabela.
  3. Um índice em cluster criado automaticamente quando uma chave primária é definida. Por outro lado, a chave exclusiva gera o índice não agrupado.

Conclusão

A chave primária e a chave única servem a finalidade de um identificador exclusivo para as linhas de uma tabela com os valores exclusivos em uma coluna ou grupo de colunas. Essas principais restrições são significativamente diferenciadas, onde cada tabela pode ter no máximo uma chave primária, enquanto uma tabela pode ter várias chaves exclusivas que não são primárias.

Top