Chaves primárias (em inglês, Primary keys ou "PK"), sob o ponto de vista de um , referem-se aos conjuntos de um ou mais campos, cujos valores, considerando a combinação de valores em caso de mais de uma chave primária, nunca se repetem na mesma tabela e, desta forma, podem ser usadas como um índice de referência para criar relacionamentos com as demais tabela do banco de dados (daí vem o nome ). Portanto, uma chave primária nunca pode ter valor nulo, nem repetição.
Simplificando, quando a chave primária é simples, ou seja, é formada por um único campo da tabela, esse campo não pode ter dois ou mais registros de mesmo valor e também não pode conter nenhum registro nulo. Se a chave primária é composta, ou seja, formada por mais de um campo, os valores de cada campo podem se repetir, mas nunca a combinação desses valores. Exemplo: a tabela 'Livros_Autores' tem como chave primária (cod_livro, cod_autor). Podem existir nessa tabela os registros:
- (5, 9);
- (5, 10);
- (4, 9);
- (9, 5).
mas não podem existir dois registros (5, 9).
No contexto dos , o conceito de chave estrangeira ou chave externa se refere ao tipo de relacionamento entre distintas tabelas de do banco de dados.
Uma chave estrangeira é chamada quando há o relacionamento entre duas tabelas.
Sempre em chave estrangeira vai haver relacionamentos entre tabelas, por exemplo, se uma tabela que tem uma chave primária de outra tabela.
https://pt.wikipedia.org/wiki/Chave_estrangeira
Em relação a alternativa "B" acrescentando o comentário de Leoph
O entendimento do CESPE é de que a chave estrangeira de uma tabela se liga logicamente à chave primária de outra tabela e, não, à chave candidata
Sendo assim, se a banca fosse CESPE a letra "B" estaria correta, se não tivesse a restrição de "sempre" vide comentário do Leoph.
Entretanto, esse entendimento é só da CESPE, pois a chave estrangeira faz referência à uma chave candidata de outra tabela ou da mesma tabela.
Fonte: estratégia
Espero ter ajudado, qualquer coisa, corrijam-me.