Educação e Utilidade Pública Educação e Utilidade Pública

O que é chave primária, chave estrangeira e candidata?

Entenda os conceitos de restrições com o uso de chave primária, chave estrangeira e candidata no processo de modelagem e consistência de um banco de dados.

Chave primária, chave estrangeira e chave candidata são conceitos importantes na modelagem de dados, pois implementam restrições que garantirá ao futuro banco de dados a integridade dos dados.

Na análise de entidade e na identificação dos relacionamentos, teremos que definir as chaves que irão impor as restrições de integridade no banco de dados. Essas chaves serão vistas abaixo:

Chave primária

Atributo ou combinação de atributos que possuem a propriedade de identificar de forma única uma linha da tabela. Corresponde a um atributo determinante.

Cada tabela deve incluir um campo ou conjunto de campos que identifique de forma exclusiva, cada registro armazenado na tabela. Essas informações são chamadas de chave primária da tabela.

Desta forma, com a chave primária cria-se uma identificação única, o que dá total segurança para que aplicações possam acessar, alterar e excluir dados sem correr o risco de apagar ou alterar dois campos da tabela ao mesmo tempo.

Chave primária é um importante objeto quando se aplica regras de normalização de dados, muitas das formas normais são baseadas nas relações dos demais atributos com a chave primária da tabela.

Chave estrangeira

A chave estrangeira ocorre quando um atributo de uma relação for chave primária em outra relação. Em outras palavras sempre que houver o relacionamento 1:N entre duas tabelas, a tabela 1 receberá a chave primária e a tabela N receberá a chave estrangeira.

Vamos ver um exemplo:

Tabela Produtos 

- Codigo_produto

- Produto

- Categoria

- Preço Data

- Quantidade

- Descricao

Tabela Itens do Pedido

- Numero_pedido

- Codigo_produto

- Quantidade

Nas tabelas acima temos um caso de chaves primária e estrangeira.

Observe que o codigo_produto consta nas duas tabelas. Em Produtos ele é o campo identificador, ou seja, cada produto deverá ser exclusivo, portanto, uma chave primária. Já em Itens do Pedido o campo codigo_produto poderá constar várias vezes e como ele já é chave primária em Produtos, aqui ele será uma chave estrangeira.

Portanto as tabelas ficarão assim:

Tabela Produtos

- Codigo_produto (chave primária)

- Produto

- Categoria

- Preço Data

- Quantidade

- Descricao

Tabela Itens do Pedido

- Numero_pedido

- Codigo_produto (chave estrangeira)

- Quantidade

Veja abaixo um diagrama de banco de dados com várias tabelas relacionadas. Perceba a presença de chaves primárias, identificadas por PK (primary key) e as chaves estrangeiras, identificadas por FK (foreign key).

diagrama de banco de dados

Chaves Candidatas

Ocorrem quando em uma relação existe mais de uma combinação de atributos possuindo a propriedade de identificação única. A chave candidata é apenas conceitual, ou seja, ela não é implementada. O que acontece é que os atributos com essa características poderiam ser primária já que possuem por natureza a identificação única.

Alguns exemplos: Matrícula, CPF, RG, Titulo Eleitor, entre outros.

Algumas considerações:

Veja também