Blogger templates

Comunidade java aberto - Participe da nossa comunidade no facebook (clique aqui)

Visitas

sábado, 20 de outubro de 2012

Chave Primária Simples e Composta

,

Chave Primária Simples e Composta
Uma das características mais importantes da modelagem de dados é compreender o conceito de chave primária. A chave primária é usada para criar um mecanismo de controle que permite com que os dados inseridos em uma tabela do banco de dados seja consistente, isto é, que não haja dados duplicados.
Chave primária simples
O exemplo abaixo mostra como criar uma tabela com uma chave primária simples. Perceba que a chave primária foi criada no campo cidade.
create table cidades(
 cidade varchar(100) primary key,
 estado varchar(10),
 populacao int
)
Agora considere o exemplo abaixo que irá inserir os dados das cidades de Rio Claro/SP e Rio Claro/RJ na tabela criada.
insert into cidades values('Rio Claro','SP',185421)
insert into cidades values('Rio Claro','RJ',17216)
No exemplo acima teremos um erro, pois há uma violação da chave primária, já que o nome Rio Claro será duplicado e isto não é permitido.
Chave primária composta
A solucão para o problema acima é criarmos uma chave primária composta. É muito importante entendermos que não existe duas chaves primárias e sim chave primária composta.
A chave primária composta é aquela que é criada em dois campos e desta forma passa a utilizar a junção dos dados dos dois campos indicados para formar um valor único e assim aplicar o bloqueio de duplicidade.
No nosso exemplo, poderemos usar o campo estado junto com o campo cidade para formar uma chave composta. Desta forma Rio Claro/SP será diferente de Rio claro/RJ. Veja o exemplo abaixo:
create table cidades(
 cidade varchar(100),
 estado varchar(10),
 populacao int,
 CONSTRAINT pk_CE primary key(cidade,estado)
)
Constraint é o mesmo que restrição, já que a chave primária é uma restrição. pk_CE é o nome da restrição. Cidade e  estado são os campos que usei para criar a chave composta.
Se executarmos novamente o exemplo do insert, como mostrado abaixo, não teremos erro já que a junção dos nomes das cidades com o estado gerou termos diferentes.
insert into cidades values('Rio Claro','SP',185421)
insert into cidades values('Rio Claro','RJ',17216)
Simples não?
Alguém poderia perguntar: Não seria melhor criar um campo de código da cidade e usá-lo como chave primária simples? Sim. Quando isso for possível, creio que seria mesmo melhor, mas nem sempre é. Outro ponto impostante é que muitos bancos já estão constituídos e outros são objetos de sistemas legados. Enfim, há casos e casos.

0 comentários to “Chave Primária Simples e Composta”

Postar um comentário

Insira seu comentário

 

Java Aberto Copyright © 2011 -- Template created by O Pregador -- Powered by Blogger