A Chave candidata faz parte de uma chave conhecida como Superchave ( discutido na seção anterior ), onde a superchave é o superconjunto de todos os atributos que podem identificar exclusivamente uma tabela.
Aqui discutiremos sobre a chave candidata, sua função, bem como seu uso. Veremos também alguns exemplos que nos farão compreender melhor o conceito de chave candidata.
np.histograma
O que é uma chave candidata
Uma chave candidata é um subconjunto de um conjunto de superchaves onde a chave que não contém nenhum atributo redundante não é outra senão um Chave candidata . Para selecionar as chaves candidatas do conjunto de superchaves, precisamos observar o conjunto de superchaves.
Papel de uma chave candidata
A função de uma chave candidata é identificar exclusivamente uma linha ou coluna da tabela. Além disso, o valor de uma chave candidata não pode ser Nulo. A descrição de uma chave candidata é 'sem atributos redundantes' e sendo uma 'representação mínima de uma tupla', de acordo com os Especialistas.
Como uma chave candidata é diferente de uma chave primária
Embora o objetivo do candidato e da chave primária seja o mesmo, ou seja, identificar exclusivamente as tuplas, e elas também são diferentes umas das outras. É porque, em uma tabela, podemos ter uma ou mais chaves candidatas, mas podemos criar apenas uma chave primária para uma tabela. Assim, a partir do número de chaves candidatas obtidas, podemos identificar a chave primária apropriada. No entanto, se houver apenas uma chave candidata em uma tabela, ela poderá ser considerada para ambas as restrições de chave.
quantas cidades nos estados unidos da américa
Exemplo de chave candidata
Vejamos o mesmo exemplo usado ao discutir a Super Key para entender o funcionamento de uma chave candidata.
Nós temos um EMPLOYEE_DETAIL tabela onde temos os seguintes atributos:
Emp_SSN: O número SSN é armazenado neste campo.
Emp_Id: Um atributo que armazena o valor do número de identificação do funcionário.
string para int java
Emp_name: Um atributo que armazena o nome do funcionário que possui o ID de funcionário especificado.
Emp_email: Um atributo que armazena o ID de email dos funcionários especificados.
O EMPLOYEE_DETAIL tabela é fornecida abaixo para ajudá-lo a entender melhor:
Assim, a partir da tabela acima, obtivemos as superchaves fornecidas abaixo (discutidas na seção anterior):
Agora, a partir desses conjuntos de superchaves, podemos concluir as chaves candidatas. Para escolher as chaves candidatas, a melhor maneira é analisar e formar as chaves primárias o máximo que pudermos. Portanto, precisamos identificar aqueles conjuntos dos conjuntos de superchaves que sozinhos podem identificar a tabela inteira, ou podemos dizer os outros atributos da tabela. Assim, o resultado é:
binário para bcd
Então, esses são os três atributos obtidos que podem identificar os demais atributos não primos da tabela. Todas estas são as chaves candidatas e das quais podemos escolher o atributo mais adequado que pode facilmente identificar todos os registros da tabela, que será descrita como chave primária.
Diferença entre chave candidata e superchave
A partir das discussões acima, podemos ter os seguintes pontos de diferença:
Superchave | Chave candidata |
---|---|
É o superconjunto de todos esses atributos que podem identificar exclusivamente a tabela. | É o subconjunto ou parte da chave Super. |
Não é de todo obrigatório que todas as superchaves sejam chaves candidatas. | Por outro lado, todas as chaves candidatas são superchaves. |
O atributo superchave pode ser NULL, o que significa que seus valores podem ser nulos. | Um atributo que contém uma chave candidata nunca pode ser NULL, o que significa que seus valores não podem ser nulos. |
Todas as superchaves se formaram juntas para trazer as chaves candidatas. | Da mesma forma, as chaves candidatas são reunidas para criar chaves primárias. |
O número de superchaves formadas é sempre maior. | Aqui, as chaves candidatas são menores que as superchaves. |
Assim, a superchave é o superconjunto, a chave candidata é o subconjunto e a chave primária é o subsubconjunto da superchave.