Banco de Dados - Chave Candidata, me ajuda?

Olá, estou com uma pequena duvida…
Como eu faço para que o CRM da tabela Medico seja uma Chave CANDIDATA?

create table Medico(
ID_Medico smallint auto_increment primary key,
Beneficio float,
CRM int,
Nome varchar(30) not null,
Salario float not null,
ID_Especialidade smallint,
CONSTRAINT ID_Especialidade FOREIGN KEY (ID_Especialidade) REFERENCES Especialidade(ID_Especialidade)
ON DELETE CASCADE
ON UPDATE CASCADE
);

Pensei em colocar o CRM como uma Primary Key também, mas não sei… enfim… como eu digo que o CRM é uma chave candidata?

Desde já obrigado pessoal!

Chave candidata é só um termo, por natureza CRM já pode ser considerada uma, não existe implementação nenhuma que diga que a coluna XYZ é uma chave candidata.

1 curtida

Então eu pensei nisso também, é que eu estou praticando, e em uma das atividades diz o seguinte:
Na tabela MEDICO crie uma constraint para CRM como chave candidata.
Eu até estava pesquisando antes de vir perguntar aqui, mas não encontrei nada de como definir.

Tu pode aplicar a restrição UNIQUE, que restringe a coluna a possuir valores únicos, com isso ela será uma chave candidata, pois através dela você conseguirá identificar registros únicos assim como já consegue pela PK.

1 curtida

Chave candidata, como o próprio nome diz é conjunto de chaves que são candidatas, ou seja, podem ser utilizadas como chave primária. Uma chave é um atributo ou um conjunto de atributos que podem relacionar uma relação de forma distinta. Isso significa que esse atributos pode estabelecer uma relação unívoca com essa relação. Uma relação pode ter um ou vários atributos que podem funcionar como chave primária. Essas chaves são ditas candidatas à chave primária. Com efeito, uma chave primária é uma dentre as várias chaves candidatas escolhidas pelo projetista do banco de dados.
Fonte 1: Professor Fernando De Siqueira - Banco de Dados I.
Fonte 2: IME-USP - Banco de Dados.

1 curtida

Era isso que ele queria que fizéssemos, UNIQUE… vlw…