Chave primária

Origem: Wikipédia, a enciclopédia livre.
Ir para: navegação, pesquisa
Ambox rewrite.svg
Esta página precisa ser reciclada de acordo com o livro de estilo (desde fevereiro de 2012).
Sinta-se livre para editá-la para que esta possa atingir um nível de qualidade superior.
Searchtool.svg
Esta página ou secção foi marcada para revisão, devido a inconsistências e/ou dados de confiabilidade duvidosa (desde fevereiro de 2008). Se tem algum conhecimento sobre o tema, por favor, verifique e melhore a consistência e o rigor deste artigo. Considere utilizar {{revisão-sobre}} para associar este artigo com um WikiProjeto e colocar uma explicação mais detalhada na discussão.

"Chaves primárias" (em inglês, "Primary Keys" ou "PK"), sob o ponto de vista de um banco de dados relacional, referem-se aos conjuntos de um ou mais campos, cujos valores, considerando a combinação de valores de todos os campos da dupla, nunca se repetem e que podem ser usadas como um índice para os demais campos da tabela do banco de dados. Em chaves primárias, não pode haver valores nulos nem repetição de duplas.

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 não 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).

Ao criarmos uma chave primária, criamos automaticamente um índice do tipo aglomerado (CLUSTERED). Este é o tipo criado por padrão, mas caso já exista um índice desse tipo em sua tabela, então é necessário ser criado um índice do tipo não-aglomerado (NONCLUSTERED).

Podemos inserir uma chave primária durante ou após a criação da tabela. Com a tabela já criada, o campo que escolhermos para ser a chave primária deve ter a opção NOT NULL adicionada. Para inserirmos durante a criação usamos a seguinte sintaxe:

 CREATE TABLE nome_tabela
  (
    Codigo int CONSTRAINT nome_constraint PRIMARY KEY CLUSTERED,
    Nome nvarchar(17)
  )

Nessa estrutura, escolhemos um índice do tipo CLUSTERED e resolvemos nomear com algum nome desejado a constraint de primary key. O índice poderia ser do tipo Nonclustered e poderíamos deixar o próprio SQL Server nomear a constraint (restrição http://db.apache.org/derby/docs/dev/pt_BR/ref/rrefsqlj13590.html), da seguinte forma:

 CREATE TABLE nome_tabela
  (
    Codigo int PRIMARY KEY NONCLUSTERED,
    Nome nvarchar(17)
  )

Além disso, pode-se definir a chave primária após a declaração dos campos, como segue:

 CREATE TABLE nome_tabela
  (
    campo1 <tipo> NOT NULL,
    campo2 <tipo> NOT NULL,
    campoX <tipo>,
    PRIMARY KEY (campo1, campo2)
  )

Na definição de chave primária, usamos o comando ALTER TABLE para inserirmos e excluirmos uma primary key. As sintaxes respectivamente são:

 ALTER TABLE nome_tabela
 ADD CONSTRAINT nome_constraint PRIMARY KEY NONCLUSTERED(nome_campo)
 ALTER TABLE nome_tabela
 DROP CONSTRAINT nome_constraint

Uma "chave candidata" consiste em um atributo ou grupo de atributos cujo valor identifica unicamente cada tupla em uma relação e para o qual nenhum dos atributos pode ser removido sem destruir a identificação única.

Ver também[editar | editar código-fonte]


Ícone de esboço Este artigo sobre banco de dados é um esboço. Você pode ajudar a Wikipédia expandindo-o.