EDUCAÇÃO / TECNOLOGIA / UTILIDADE PÚBLICA

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.

 

Veja também

Comentários

Foi muito bom esta explicação...deu pra entender melhor o que seria essas chaves em BD.Agradeço Elaine // salgado
OIA EU NUM ENTENDI NADA DO Q OC FALA AI... AGORA VO PESQUIZA NO GUGOL TCHAU raimundão strapazzom // codó -MA
Muito bem, sua explicação e exemplos foram otimos , porém ainda temos uma dúvida! para quê se coloca uma chave primaria em outra tabela como estrangeira? qual o objetivo, para que serve essa pratica? - será que serve como ponte de acesso para outros campos que venham me interessar quando quero mais informações referente aos produtos que foram vendidos? é isso? abraço! David Pereira dos Santos // São Paulo
David: É isso mesmo. Chave primária liga com chave estrangeira e desta forma podemos unir os dados de uma tabela com a outra. Se não houvesse esta ligação entre as chaves primária e estrangeira, seria impossível saber quais produtos foram vendidos em um pedido, por exemplo. luis.blog.br // Limeira/SP
Poucas pessoas conseguem dar um definição rasoável de chave primária! Achei muito bom seu exemplo. Continue assim. Marcos // Várzea Paulista
Muito esclarecedora sua explicação. Estava buscando um conceito simples e objetivo e este foi o melhor encontrado até agora!! Gabi // Belo Horizonte
Excelente explicação Glauber // Natal
Sua explicação a respeito de chave primária e chave estrangeira é de excelente qualidade e esclarecedora.Parabéns!!! Sandro Silva // Olinda
Exelente explicação, eu já sabia o que era mas nao conseguia me recordar, o seu exeplo ajudou muito.. Obrigada tassia // São Paulo
Não gostei da sua explicação está vago. Wellington // ubatuba
Excelente comentário, principalmente para iniciantes como eu. Para o babaca acima, se quiser conteúdos mais aprofundados, que tal pagar um curso? Alexandre Gomes // São Paulo
Explicação simples e esclarecedora. Muito obrigado! Paulo Henrique // Sao Paulo
Exelente explicação. Não resta nenhuma duvida, e com o exemplo ficou mais claro. Parabénsss! Wanice Rodrigues // Lorena
Muito boa sua explicação de chave priméria e estrangeiira, já a cabdidata, não pude entender o que você quis dizer. Obrigado!!! Kleber Mourão // Brasilia
FOI MUITO BOM ESSE CONCEITO DE BANCO DE BADOS...EXPLICOU DE UMA FORMA CLARA E SIMPLES ALCANÇANDO SEU OBJETIVO VANESSA L ASS // BAURU
Ferah!!! Aprendi em poucas palavras o que seriam cada tipo de chave, Parabens Luis pelo Blog!!! Valeu pela ajuda. Rogerio // São Paulo
bastante esclarecedora sua explicação. e estou pesquisando sobre atributos e chaves washington // ubjara
adorei paloma // rio de janeiro
Muito eficiente sua explicação. Pode me explicar como proceder quando há uma chave primária como chave estrangeira em mais de uma tabela? Obrigada Cláudia // Uberaba - MG
Ótima explicação.... Entendi muito bem... Só gostaria de saber se os mesmos valores são atribuidos nas duas tabelas, por ex: tenho duas tabelas: ESTADO; CD_ESTADO;NM_ESTADO e MUNICIPIO:CD_MUNICIPIO;NM_MUNICIPIO, a chave estrangeira está dentro de MUNICPIO. Eu tenho que digitar todos os nomes dos municípios com o código correspondente, atribuido na tabela estado ? Celso Fernandes R. Junior // Bauru/SP
POR ENQUNTO ,,ACHEI MUITO BOA SUAS DEFINIÇOES . ESPERO Q ME AJUDE NOS MEUS TRABLHOSSSSSS OBRIGADO!!!!! VALEUUUU.. jair garcete // campo grande-ms
foi mt bom me ajudou pra caranba flws bruno matheusda silva ribeiro // ittajubá
Olá Luiz. Parabéns pelo blog. Continue escrevendo bons artigos como este. Sobre o tópico de Chave candidata, seria este o mesmo que Chave secundária? Não ficou claro o conceito e aplicação prática deles. Se possível, fale um pouco mais sobre Chave Secundária. Abraço! Vinicius // São Paulo
Parabéns simples e esclarecedor para aqueles que falaram que foi ruim e foi vago a explicação simples só procurar ler alguns livros depois de 1 capitulo você irá entender oque ele já explicou, parabéns gostei muito e ajudou bastante. Luan // recife
O objectivo é de manter para minha investigação cientificaca. Quem sabe ensina os que querem aprender os que não querem aprender mantenham na sua postura abitual. Tungabenvindo Bv // Uíge
Bacana,mas queria uma explicação objetiva, ou seja uma linguagem simples Marcus // Fortaleza
Olá rapaz, muito boa a explicação. Mas já teve conhecimento sobre chave SECUNDÁRIA? Pelo que eu li num livro é o campo indexado auxiliar, e em outras fontes ela foi denominada chave estrangeira Gustavo // GUARULHOS
podemos dizer então que na verdade no caso seria duas chaves primárias ? mas que leva o nome de chave estrangeira para não ficar com o nome igual ou eu estou enganado ? nilton cesar // são paulo
Muito bom, consegui entender bem melhor agora! Me confundia de mais com essas coisas, agora vou aprender legal outros detalhes! VAALEU :D Ronni // São Paulo
© 2008-2017 | LUIS.BLOG.BR | Política de Privacidade | Em Jesus Cristo eu confio