Você está na página 1de 18

Introdução ao PostgreSQL

Autor: Nabucodonosor Coutinho


E-mail: coutinho.php@gmail.com
Introdução
● É um sistema de gerenciamento de banco de
dados objeto-relacional (SGBDOR)
desenvolvido no Departamento de Ciência da
Computação da Universidade da Califórnia em
Berkeley.

O PostgreSQL descende deste código original
de Berkeley, possuindo o código fonte aberto.
ACID
Atomicidade
Transações não podem ficar pela metade (tudo ou nada).

Consistência
As transações devem transformar um estado consistente
do banco em outro estado consistente.

Isolamento
As transações são isoladas umas das outras, elas não
“enxergam” dados gravados por transações concorrentes.

Durabilidade
Uma vez efetuada a transação os dados devem
permanecer no banco.
Funcionalidades Avançadas
No PostgreSQL você pode:
● Criar validações de dados usando qualquer das
linguagens procedurais suportadas;
● Criar validações usando restrições na coluna da
tabela
● Criar tipos de dados personalizados contendo
validações por restrição. Ex: CPF, CEP.
● Disparar stored procedures a partir de eventos
das tabelas
● Dividir o banco de dados em esquemas
● Alocar bases inteiras, esquemas ou tabelas em
locais diferentes (disco ou rede)
Funcionalidades Avançadas


Esquemas

Herança (especialização e generalização)

Views

Funções

Restrições

Gatilhos

Integridade da transação

Back-up on-line

Recuperação em ponto de tempo
Funcionalidades Avançadas
● Esquemas

Os esquemas são semelhantes a


pastas dos nossos sistemas de
arquivos.

Com os esquemas podemos dividir


uma base de dados para termos
mais controle sobre ela
Funcionalidades Avançadas
● Herança

CREATE TABLE pessoas (


id serial,
nome varchar(50),
email varchar(255)
);

CREATE TABLE clientes (


cpf varchar(14)
) INHERITS (pessoas);
Funcionalidades Avançadas
● Views (visualizações)
CREATE VIEW myview AS
SELECT clientes.nome, pedidos.cliente, vendedores.nome
FROM clientes
NATURAL JOIN pedidos
NATURAL JOIN vendedores
WHERE city = vendedores.id=502;

SELECT * FROM myview;


Funcionalidades Avançadas
● Funções
(PL/PgSQL)
CREATE FUNCTION populate() RETURNS integer AS $$
DECLARE
-- declarations
BEGIN
PERFORM my_function();
END;
$$ LANGUAGE plpgsql;

(PL/Python)
CREATE FUNCTION cpf(cpf) RETURNS boolean AS $$
# corpo da função
$$LANGUAGE plpythonu;
Funcionalidades Avançadas
● Restrições

CREATE TABLE produtos (


id_produto serial,
nome text,
preco numeric CHECK (preco > 0)
);

CREATE TABLE produtos (


id_produto serial,
nome text,
preco numeric CHECK (preco > 0),
com_desconto numeric CHECK (com_desconto > 0),
CHECK (preco > com_desconto)
);
Funcionalidades Avançadas
● Gatilhos
CREATE FUNCTION trigf() RETURNS trigger
AS 'papoca_tudo.c'
LANGUAGE C;

CREATE TRIGGER tbefore BEFORE INSERT OR UPDATE


OR DELETE ON pessoas
FOR EACH ROW EXECUTE PROCEDURE trigf();
Funcionalidades Avançadas
● Transações sempre atômicas

BEGIN;
UPDATE accounts SET balance = balance - 100.00
WHERE name = 'Alice';
SAVEPOINT my_savepoint;
UPDATE accounts SET balance = balance + 100.00
WHERE name = 'Bob';
-- oops ... não era bob era Coutinho
ROLLBACK TO my_savepoint;
UPDATE accounts SET balance = balance + 100.00
WHERE name = 'Coutinho';
COMMIT;
Portabilidade
O PostgreSQL está disponível para os
principais sistemas opracionais do mercado

● Linux
● Unix
● FreeBSD
● MacOS
● E até mesmo ele
Usabilidade
● Variedade de ferramentas

● PGAdmin 3
● PgAccess
● Zeus DD
● PDAdmin
● PhpPgAdmin
Usabilidade
● Variedade de ferramentas

● PGAdmin 3
● PgAccess
● Zeus DD
● PDAdmin
● PhpPgAdmin
Cenas do próximo capítulo

● Back-up On-line
● Recuperação em ponto de tempo

Fica para o próximo evento...


Projeto Brasil


Tradução de manuais

Tradução do PgAdmin

Tradução do PgInstaller

Tradução de versões

Material de apoio ao usuário brasileiro

Presença em eventos

Consultoria (O leitim das criaças)
Introdução ao PostgreSQL

Autor: Nabucodonosor Coutinho


E-mail: coutinho.php@gmail.com

Coordenador do Projeto PostgreSQL Brasil

Este material pode ser obtido no site do


PostgreSQL Brasil
http://www.postgresql.org.br

Você também pode gostar