Chave candidata

Definição - o que significa a chave do candidato?

Uma chave candidata é um tipo específico de campo em um banco de dados relacional que pode identificar cada registro exclusivo independentemente de quaisquer outros dados.

Os especialistas descrevem uma chave candidata que "não tem atributos redundantes" e é uma "representação mínima de uma tupla" em uma tabela de banco de dados relacional.

Uma das questões mais comuns em torno do uso de uma chave candidata é como a chave candidata se relaciona com as superchaves e as chaves primárias no design do banco de dados.

Definirtec explica a chave do candidato

Chaves candidatas e chaves primárias

A relação entre a chave candidata e a chave primária é mais fácil de descrever - basicamente, um banco de dados relacional pode ter mais de uma chave candidata, mas apenas uma dessas chaves candidatas será a chave primária que será usada principalmente para identificar cada registro de forma exclusiva.

A melhor maneira de definir as chaves candidatas é com um exemplo: O banco de dados de um banco está sendo projetado. Para definir de forma única a conta de cada cliente, uma combinação da data de nascimento do cliente e um número sequencial para cada uma de suas contas pode ser usada.

Portanto, a conta corrente do Sr. Andrew Smith pode ser numerada 120344-1, e sua conta poupança 120344-2. Uma chave candidata acaba de ser criada.

Isso pode causar problemas.

E se mais de uma pessoa com a mesma data de nascimento quiser abrir uma conta no banco?

Devido a essas armadilhas em potencial, uma opção freqüentemente usada é criar uma chave candidata exclusiva. Nesse caso, o banco de dados do banco pode emitir números de contas exclusivos que garantem evitar o problema que acabamos de destacar. Para uma boa avaliação, esses números de conta podem ter alguma lógica interna.

Por exemplo, contas correntes podem começar com um "C", seguido pelo ano e mês de criação e, dentro desse mês, um número sequencial. Portanto, a conta corrente de Andrew Smith agora pode ser C-200805-22.

Mesmo sem se referir a outro lugar, um caixa pode identificar que esta foi a 22ª conta corrente criada em maio de 2008. As contas de poupança seguem a mesma lógica, mas com um "S" em vez de "C".

Portanto, se uma tabela de banco de dados tiver dois ou mais identificadores exclusivos, o administrador ou engenheiro do banco de dados escolherá um deles para ser a chave primária.

Super Chaves e Chaves Candidatas

O uso de superchaves e chaves candidatas é mais complicado.

Essencialmente, uma superchave é composta de um conjunto de atributos (e por proxy, geralmente um conjunto de colunas da tabela) que identifica um registro único.

A chave candidata também identifica um registro único, mas é composta por um campo ou coluna individual

Freqüentemente, você verá a chave candidata chamada de “mínimo” de uma superchave.

Por exemplo, considere uma fábrica com dois terminais, onde apenas um produto pode ser construído em um determinado terminal em um determinado momento.

Como o banco de dados registra a criação de produtos em uma tabela, referenciando hora e terminal, a superchave, a combinação de hora e terminal, será única para cada registro individual. No entanto, as colunas individuais de tempo e terminal terão redundâncias.

Se o engenheiro de banco de dados anexar uma chave candidata à tabela composta de entrada alfanumérica arbitrária, essa chave candidata fará a mesma coisa que a combinação de atributo de superchave de tempo e terminal faz, com apenas uma coluna.

Com tudo isso em mente, o uso de uma chave candidata pode determinar como os registros são acessados ​​e como os assuntos desses registros são identificados.

Como outros tipos de conteúdo de banco de dados, as chaves candidatas podem ser tratadas com criptografia hash para aumentar a segurança cibernética. O hash envolve pegar um campo de string original e transformá-lo em uma string menor para abstraí-lo e ocultá-lo da visualização para limitar o acesso não autorizado.

Os engenheiros têm que avaliar a possibilidade de colisões de hash e outros fatores limitantes em como hash esses dados - como substituir uma string mais curta para um determinado conjunto de dados para tornar o conteúdo da tabela de banco de dados menos acessível aos hackers.

A ideia de hashing pode ser eficaz nesses designs tradicionais de banco de dados relacional. Enquanto isso, a chave candidata atua como um identificador exclusivo e um foco principal de SQL e outras consultas.