Saltar para o conteúdo

Chave primária: diferenças entre revisões

Origem: Wikipédia, a enciclopédia livre.
Conteúdo apagado Conteúdo adicionado
Dbastro (discussão | contribs)
Linha 56: Linha 56:
* [[Banco de Dados]]
* [[Banco de Dados]]


{{banco de dados}}
{{banco de dados HAHA}}





Revisão das 13h05min de 20 de maio de 2014

"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 tupla, 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 tuplas.

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

Predefinição:Banco de dados HAHA


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