Home » Tecnologia
Chave primária, chave estrangeira e candidata
Conceitos de restrições com o uso de chave primária, chave estrangeira e candidata
Gostou? Recomende:
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.
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. Veja os post Primeira forma normal, segunda forma normal e terceira forma normal.
Chave estrangeira
A chave estrangeira ocorre quando um atributo de uma relação for chave primária em outra relação.
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
Chaves Candidatas
Ocorrem quando em uma relação existe mais de uma combinação de atributos possuindo a propriedade de identificação única.
Ex: Matrícula, CPF, RG, Titulo Eleitor
Participe do Simulado de HTML
Veja também:
Compartilhe com seus amigos:
// Comentários
Elaine // salgado // 10/10/2008 15:01:00
Foi muito bom esta explicação...deu pra entender melhor o que seria essas chaves em BD.Agradeço
raimundão strapazzom // codó -MA // 15/10/2008 19:38:00
OIA EU NUM ENTENDI NADA DO Q OC FALA AI...
AGORA VO PESQUIZA NO GUGOL
TCHAU
David Pereira dos Santos // São Paulo // 14/02/2009 18:57:00
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!
luis.blog.br // Limeira/SP // 21/02/2009 23:59:00
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.
Marcos // Várzea Paulista // 03/05/2009 11:27:00
Poucas pessoas conseguem dar um definição rasoável de chave primária!
Achei muito bom seu exemplo.
Continue assim.
Gabi // Belo Horizonte // 28/05/2009 16:32:00
Muito esclarecedora sua explicação. Estava buscando um conceito simples e objetivo e este foi o melhor encontrado até agora!!
Glauber // Natal // 19/06/2009 17:01:00
Sandro Silva // Olinda // 29/07/2009 22:32:00
Sua explicação a respeito de chave primária e chave estrangeira é de excelente qualidade e esclarecedora.Parabéns!!!
tassia // São Paulo // 25/08/2009 12:49:00
Exelente explicação, eu já sabia o que era mas nao conseguia me recordar, o seu exeplo ajudou muito..
Obrigada
Wellington // ubatuba // 20/09/2009 14:32:00
Não gostei da sua explicação está vago.
Alexandre Gomes // São Paulo // 24/09/2009 09:58:00
Excelente comentário, principalmente para iniciantes como eu. Para o babaca acima, se quiser conteúdos mais aprofundados, que tal pagar um curso?
Paulo Henrique // Sao Paulo // 06/11/2009 10:16:00
Explicação simples e esclarecedora.
Muito obrigado!
Wanice Rodrigues // Lorena // 24/03/2010 14:15:00
Exelente explicação.
Não resta nenhuma duvida,
e com o exemplo ficou mais claro.
Parabénsss!
Kleber Mourão // Brasilia // 24/03/2010 18:12:00
Muito boa sua explicação de chave priméria e estrangeiira, já a cabdidata, não pude entender
o que você quis dizer.
Obrigado!!!
VANESSA L ASS // BAURU // 23/04/2010 14:59:00
FOI MUITO BOM ESSE CONCEITO DE BANCO DE BADOS...EXPLICOU DE UMA FORMA CLARA E SIMPLES ALCANÇANDO SEU OBJETIVO
Rogerio // São Paulo // 21/07/2010 14:01:00
Ferah!!!
Aprendi em poucas palavras o que seriam cada tipo de chave, Parabens Luis pelo Blog!!!
Valeu pela ajuda.
washington // ubjara // 16/09/2010 13:46:00
bastante esclarecedora sua explicação. e estou pesquisando sobre atributos e chaves
paloma // rio de janeiro // 16/09/2010 13:47:00
Cláudia // Uberaba - MG // 03/10/2010 17:53:00
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
Celso Fernandes R. Junior // Bauru/SP // 03/10/2010 18:22:00
Ó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 ?
jair garcete // campo grande-ms // 28/10/2010 22:42:00
POR ENQUNTO ,,ACHEI MUITO BOA SUAS DEFINIÇOES . ESPERO Q ME AJUDE NOS MEUS TRABLHOSSSSSS
OBRIGADO!!!!! VALEUUUU..
bruno matheusda silva ribeiro // ittajubá // 23/09/2011 15:26:00
foi mt bom me ajudou pra caranba
flws