Chave primária vs Chave exclusiva
Uma coluna ou um conjunto de colunas, que pode ser usado para identificar ou acessar uma linha ou um conjunto de linhas em um banco de dados, é chamado de chave. Uma chave exclusiva é uma chave que pode identificar exclusivamente uma linha em uma tabela no contexto de bancos de dados relacionais. Uma chave exclusiva é composta de uma única coluna ou um conjunto de colunas. Uma chave primária também é uma combinação de colunas em uma tabela que identifica exclusivamente uma linha. Mas é considerado um caso especial da chave exclusiva.
O que é chave exclusiva?
Como mencionado anteriormente, a chave exclusiva é uma única coluna ou conjunto de colunas que podem identificar exclusivamente uma linha em uma tabela. Portanto, uma chave exclusiva é restringida de forma que não haja dois valores iguais. Uma propriedade importante é que as chaves exclusivas não impõem a restrição NOT NULL. Como NULL representa a falta de um valor, se duas linhas tiverem NULL em uma coluna, isso não significa que os valores sejam iguais. A coluna definida como uma chave exclusiva permite apenas um único valor NULL nessa coluna. Em seguida, isso pode ser usado para identificar essa linha específica exclusivamente. Por exemplo, em uma tabela que contém informações do aluno, o ID do aluno pode ser definido como uma chave exclusiva. Como nenhum aluno pode ter o mesmo ID, ele identifica exclusivamente um aluno. Portanto, a coluna ID do aluno atende a todas as propriedades de uma chave exclusiva. Dependendo do design de um banco de dados, uma tabela pode ter mais de uma chave exclusiva.
O que é chave primária?
A chave primária também é uma coluna ou uma combinação de colunas que define exclusivamente uma linha em uma tabela de um banco de dados relacional. Uma tabela pode ter no máximo uma chave primária. A chave primária impõe a restrição implícita NOT NULL. Portanto, uma coluna definida como chave primária não pode ter valores NULL nela. A chave primária pode ser um atributo normal na tabela que é garantido como exclusivo, como número de segurança social ou um valor exclusivo gerado pelo sistema de gerenciamento de banco de dados, como um GUID (Identificador Exclusivo Globalmente) no Microsoft SQL Server. Chaves primárias são definidas através da restrição PRIMARY KEY no ANSI SQL Standard. A chave primária também pode ser definida ao criar a tabela. O SQL permite que a chave primária seja composta de uma ou mais colunas e cada coluna incluída na chave primária é implicitamente definida como NOT NULL. Mas alguns sistemas de gerenciamento de banco de dados exigem que as colunas da chave primária sejam explicitamente NÃO NULAS.
Diferença entre chave primária e chave exclusiva
Embora a chave primária e a chave exclusiva sejam uma ou mais colunas que podem identificar exclusivamente uma linha em uma tabela, elas apresentam algumas diferenças importantes. Mais importante, uma tabela pode ter apenas uma única chave primária, enquanto pode ter mais de uma chave exclusiva. A chave primária pode ser considerada como um caso especial da chave exclusiva. Outra diferença é que as chaves primárias têm uma restrição implícita NOT NULL, enquanto a chave exclusiva não possui essa restrição. Portanto, colunas de chave exclusivas podem ou não conter valores NULL, mas as colunas de chave primária não podem conter valores NULL.