Buscar

Chave Estrangeira - Complemento

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Centro Universitário Estácio do Ceará
Profa Josyane Lannes Florenzano de Souza
Fonte: http://marcelo.todoinfo.com.br/sql-server-criacao-de-tabelas-com-chave-estrangeira/
SQL Server – Criação de tabelas com chave estrangeira
- O que é uma chave estrangeira (FK)?
- Por que usar?
Bom pra começar chave estrangeira ou foreign key, é a relação entre duas tabelas tendo na tabela “mãe” a referência da tabela “filho”.
Ficou confuso?
Vamos exemplificar..... todos nós sabemos que um cliente precisa morar em uma cidade, então temos a tabela “mãe” que é a Cliente, onde nos atributos tem a referência da tabela filho que é a Cidade, conforme mostro a seguir:
Cliente
(ClienteId(PK),
Nome,
Endereco,
CidadeId(FK))
Cidade
(CidadeId(PK)
Cidade
Estado)
Observem que coloquei uma coluna chamada CidadeId, o que é essa CidadeId? Nada mais é que a chave primaria da tabela Cidade e a chave estrangeira da tabela Clientes.
Pois na hora de inserir registros na tabela de Clientes, ao invés de inserirmos Campinas, Vinhedo, Valinhos, nós armazenaremos a referência delas na tabela de Cidade.
CidadeId Cidade Estado
1 Campinas SP
2 Valinhos SP
3 Vinhedo SP
Na tabela de Cliente só iremos armazenar 1,2 ou 3, que são os registros existentes na tabela de Cidade, caso um “engraçadinho” tente inserir um 4 por exemplo, sem que ele esteja na tabela de Cidade dará um erro de chave estrangeira, não sendo possível a gravação.
Entendeu agora, certo? Mas, como crio uma chave estrangeira?
Simples, iremos criar as tabelas Cliente e Cidade primeiro. Uma boa prática para criação de tabelas, é sempre começar pelas tabelas simples, ou seja, aquelas que não possuem chave estrangeira.
CREATE TABLE Cidade
(
CidadeId int not null IDENTITY(1,1),
Cidade varchar(64) not null CONSTRAINT Q_Cidade_Cidade UNIQUE,
Estado char(2) not null,
CONSTRAINT PK_Cidade_CidadeId PRIMARY KEY(CidadeId)
)
CREATE TABLE Cliente
(
ClienteId int not null IDENTITY(1,1),
Nome varchar (128) not null,
Endereco varchar(128) not null,
CidadeId int not null,
CONSTRAINT PK_Cidade_ClienteId PRIMARY KEY(ClienteId),
CONSTRAINT FK_Cliente_Cidade_CidadeId FOREIGN KEY(CidadeId) REFERENCES Cidade(CidadeId)
)
Observe que na tabela Cliente, eu crio a chave estrangeira, mas esse não é o único jeito de criar. Poderíamos ter criado as tabelas Cliente/Cidade, e depois usar a keyword ALTER TABLE para adicionar a chave, conforme mostro abaixo:
ALTER TABLE Cliente
ADD CONSTRAINT FK_Cliente_Cidade_CidadeId
FOREIGN KEY(CidadeId)
REFERENCES Cidade(CidadeId)
Bom, já entendi o que é, já criei a chave, mas por que utilizá-la?
Pois bem, utilizamos ela para:
* Manter a consistência do banco de dados
* Para criação de índices, na qual estaremos vendo adiante.
* Para otimização do banco de dados.
* Para facilitar a manutenção.

Continue navegando