Integridade Referencial no PostgreSQL

O postgreSQL nos permite impor às tabelas restrições que nos garantam integridade das informações.

Veremos agora como criar restrições que nos garantam a integridade dos dados no relacionamento entre tabelas.

Integridade Referencial no PostgreSQL

Para que referencias sejam feitas é necessário o uso de chaves primárias e estrangeiras.

A tabela cujos registros devemser associados a uma “tabela pai” deve ter uma chave estrangeira, esta faráreferência a uma chave primária na tabela pai.

Integridade Referencial no PostgreSQL

Os relacionamentos podem ser:

1 para n: Um registro da tabela pai pode ter uma ou mais referencias nas tabelas filhas;

1 para 1: Um registro pai pode ter apenas um registro dependente;

n para n: Um registro da tabela 1 tem vários correspondentes na tabela 2 e o inverso também é verdadeiro

Integridade Referencial no PostgreSQL

A ultima linha na definição abaixo indica que o campo id é a chave primária desta tabela

CREATE TABLE pessoa

(

id serial NOT NULL,

nome varchar(50),

rg varchar(10) NOT NULL,

cpf varchar(20) NOT NULL,

CONSTRAINT pessoa_pkey PRIMARY KEY (id)

);

Integridade Referencial no PostgreSQL

Tanto a chave primária quanto a estrangeira podemser definidas tanto durante a criação da tabela como no exemplo acima ou adicionadas posteriormente como no exemplo a seguir:

ALTER TABLE EMAIL

ADD CONSTRAINT email_pkey PRIMARY KEY (id);

ALTER TABLE EMAIL ADD CONSTRAINT email_pessoa_fkey FOREIGN KEY (pessoa)

REFERENCES pessoa (id)

ON UPDATE NO ACTION ON DELETE NO ACTION

Integridade Referencial no PostgreSQL

Os passos a seguir ilustram a criação de relacionamentos usando o pgadmin3

Integridade Referencial no PostgreSQL

Primeiro definimos a estrutura física da tabela adicionando os campos;

No nosso caso o campo pessoa fará o relacionamento sendo ligado ao campo id da tabela pessoa

Integridade Referencial no PostgreSQL

Na aba constraints selecione a opção ForeignKey e clique em Add

Em Refences Selecione a tabela com a qual a tabela de veículos terá ligação.

Em Local column (campos da tabela veiculo) selecione pessoa

Em Referencing (campos da tabela pessoa) selecione o campo id

Clique em Add

Integridade Referencial no PostgreSQL

Definido as ações que irão forçar a integridade

Em On Update selecione cascade

Em On Delete selecione cascade

Integridade Referencial no PostgreSQL

Integridade Referencial no PostgreSQL

Na aba SQL é possível visualizar o SQL gerado pelo pgAdmin para criar a tabela veiculo contendo o relacionamento com a tabela pessoa

Integridade Referencial no PostgreSQL

Pronto agora sua tabela veiculo tem relacionamento com a tabela pessoa e ao ser excluído um registro da tabela pessoa os registros relacionados na tabela de veiculo também serão excluídos de forma a manter a integridade dos dados

Integridade Referencial no PostgreSQL

F13 Tecnologia

www.f13.com.br

Nabucodonosor Coutinho

E-mail: Coutinho.php@gmail.com

Nabucodonosor Coutinho

2006-01-12T23:33:50