Sunteți pe pagina 1din 13

POSTGRESQL

Contedo
1.

POSTGRESQL.............................................................................................................................1
2.

Arquitetura Bsica do PostgreSQL...........................................................................................1

3.

Estrutura Fsica..........................................................................................................................2

4.

Estrutura Lgica........................................................................................................................3

5.

Iniciando o Servidor..................................................................................................................4

6.

Conexo com Postgresql...........................................................................................................4

7.

Administrando Usurios e Privilgios.......................................................................................5

8.

Transaes.................................................................................................................................5

9.

BACKUPS.................................................................................................................................6

10.

VACUUM..............................................................................................................................6

11.

ANALYZE.............................................................................................................................7

12.

VIEWS...................................................................................................................................8

13.

Herana no Postgres..................................................................................................................8

14.

Configurao Bsica de Driver ODBC para PostgreSQL.........................................................9

15.

TRIGGERS...............................................................................................................................9

1. POSTGRESQL
O PostgreSQL um sistema de gerenciamento de banco de dados objeto-relacional
(SGBDOR) baseado no POSTGRES.
O PostgreSQL uma SGBD relacional e orientado a objetos. um software de livre
distribuio se tem seu cdigo fonte aberto. Oferece suporte a SQL de acordo com os padres
SQL92 / SQL99. Em termos de recurso pode ser comparado aos melhores bancos de dados
comerciais existentes, sendo inclusive superior em alguns aspectos, como ao introduzir conceitos do
modelo objeto-relacional que hoje esto disponveis em alguns bancos de dados comerciais.

2. Arquitetura Bsica do PostgreSQL

importante que haja a compreenso de sua arquitetura bsica. Quando aberta uma sesso do
Postgres, trs processos so abertos.
um processo daemon (postmaster);
a aplicao do cliente (por exemplo, sua aplicao em PHP);
um ou mais servidores de banco de dados (processo postgres);

Um nico processo postmaster gerencia os bancos de dados existentes em uma maquina.

As aplicaes do cliente(frontend) que desejam acessar determinado banco de dados fazem


chamadas a uma requisio do usurio pela rede para o processo postmaster, que cria um novo
processo-servidor(backend) e conecta o processo-cliente ao servidor(frontend e backend) se
comuniam sem a interveno do postmaster.

O Postgres usa um simples "processo por usurio" no modelo cliente/servidor. Uma sesso Postgres
consiste nos seguintes processos cooperando entre si:

POSTMASTER: processo servidor, responsvel pelas requisies de fluxo de dados, estabelecendo


a comunicao direta entre uma aplicao cliente e o banco de dados;

FRONTEND: uma aplicao cliente que pode ser uma ferramenta no modo caractere, um aplicativo
grfico, um servidor Web, ou uma ferramenta especializada para manuteno do banco de dados;

E um ou mais servidores backend do prprio banco de dados PostgreSQL.

O aplicativo cliente do usurio (frontend) que deseja executar operaes de banco de dados. Os
aplicativos cliente podem ter naturezas muito diversas: o cliente pode ser uma ferramenta no modo caractere,
um aplicativo grco, um servidor Web que acessa o banco de dados para mostrar pginas da Web, ou uma
ferramenta especializada para manuteno do banco de dados.
O servidor PostgreSQL pode tratar mltiplas conexes concorrentes dos clientes. Para esta nalidade
iniciado (fork) um novo processo para cada conexo. Deste ponto em diante, o cliente e o novo processo
servidor passam a se comunicar sem a interveno do processo original postmaster.
Portanto, o postmaster est sempre executando aguardando por novas conexes dos clientes,
enquanto os processos servidores associados aos clientes surgem e desaparecem (tudo isso, obviamente,
invisvel para o usurio sendo somente mencionado para car completo).

PARSER

O estgio de anlise verifica o comando transmitido pelo programa aplicativo


com relao correo da sintaxe, e cria a rvore de comando (Query Tree).
A consulta SQL indexada e analisada de acordo com a linguagem SQL padro.
A string de entrada analisada, retornando uma estrutura de consulta (Query
Tree) para o executor. Erros de sintaxe so analisados nesta fase.

REWRITER

O sistema de reescrita, tambm conhecida como regras de sistemas recebe a


rvore de comando criada pelo estgio de anlise, e procura por
alguma regra (armazenada nos catlogos do sistema) a ser aplicada na rvore
de comando. Realiza as transformaes especificadas no corpo das regras.

PLANNER

O planejador ou otimizador recebe a rvore de comando (reescrita) e cria


o plano de comando que ser a entrada do executor. Isto feito criando
primeiro todos os caminhos possveis que levam ao mesmo resultado. O
caminho mais barato expandido em um plano completo para que o executor
possa utiliz-lo.

EXECUTOR

O executor caminha recursivamente atravs da rvore do plano, e traz as linhas


no caminho representado pelo plano. O executor faz uso dosistema de
armazenamento ao varrer as relaes, realiza classificaese junes, avalia
as qualificaes e, por fim, envia de volta as linhas derivadas. essencialmente
um mecanismo de canal de envio de informao sob demanda. Toda vez que o
nodo do plano chamado deve enviar mais uma linha, ou relatar que no h
mais linha a ser enviada.

Configurar o Postgres
A maioria dos parmetros podem ser configurados a partir de 2 arquivos:

POSTGRESQL.conf: aqui so ajustadas as configuraes do PostgreSQL que sero utilizadas em


todo o cluster (entenda aqui cluster como o conjunto de bases associadas uma nica instncia ou
conjunto de processos do PostgreSQL).
PG_HBA.conf: aqui so ajustadas configuraes de permisso de acesso e autenticao que sero
utilizadas para todo o cluster, por base, por usurio ou role.

A verso 9.4 do PostgreSQL adicionou uma nova clusula SQL chamada ALTER SYSTEM. Com este
comando, pode editar diretamente as configuraes do arquivo posqtgresql.conf.

3. Estrutura Fsica

A estrutura fsica de um SGBD trata da forma como os arquivos so criados, gerenciados e


organizados fisicamente no sistema de arquivos do sistema operacional. Por sua vez, a estrutura
lgica corresponde maneira como os objetos so organizados dentro dos bancos de dados.

A criao de um novo cluster (agrupamento) realizada pelo utilitrio initdb. Quando o programa
executado, o mesmo cria os arquivos que definem o agrupamento. O argumento mais importante do
comando initdb o pgdata, referenciado pelo argumento D.
o
o
o
o

-D : Especifica o diretrio onde o agrupamento de banco de dados ser armazenado


(pgdata).
-E : Seleciona a codificao do banco de dados modelo. Tambm ser a codificao padro
para todos os bancos de dados criados posteriormente.
--locale :Define o idioma padro para o agrupamento de banco de dados. Se esta opo no
for especificada, o idioma herdado do ambiente onde o initdb est executando.
-U : Especifica o nome de usurio do super-usurio do banco de dados.

O argumento pgdata diz ao initdb o nome do diretrio que dever conter o novo agrupamento.

Parmetros de Configurao:

postgresql.conf => o principal arquivo de configurao do servidor.

pg_hba.conf => o arquivo de configurao para o host-based authentication (hba).

pg_ident.conf => o arquivo de configurao para o user name mapping.

4. Estrutura Lgica
Tablespaces
Uma melhorias diz respeito ao gerenciamento dos discos, permitindo assim, selecionar os sistemas
de arquivos que iro armazenar as informaes e objetos das bases de dados como esquemas, tabelas e
ndices.
O conceito segue o mesmo princpio do Oracle, com uma diferena: um tablespace no Oracle
formado por um ou mais arquivos localizados em um determinado sistema de arquivos.
J no PostgreSQL, um tablespace apenas um lugar, onde sero armazenados os objetos.

Unidade lgica que altera armazenamento fsico;


O Postgresql cria automaticamente dois Tablespaces para cada Cluster;
Pg_global: contm o dicionrio de dados;
Pg_default: armazena os objetos criados no banco de dados;

Normalmente, no h necessidade de montar mais de um tablespace por sistema de arquivo lgico,


pois no podemos controlar o local dos arquivos individuais dentro do filesystem.
O uso do parmetro default_tablespace particularmente til quando desejamos que qualquer objeto
criado, que no possua uma clusula TABLESPACE explcita, seja direcionado para um tablespace default
da nossa escolha, e no do SGBD, controlando assim, a organizao dos objetos.
Existe tambm um parmetro no postgresql.conf chamado temp_tablespaces. Trata-se de uma lista de

tablespaces que podem ser configurados para armazenar ndices e tabelas temporrias, bem como arquivos
temporrios utilizados pelas operaes de ordenaes de grandes quantidades de dados.

5. Iniciando o Servidor
Antes que os usurios possam acessar o banco de dados, o servidor de banco de dados deve ser colocado em
execuo. O programa servidor de banco de dados chama-se postmaster.
O postmaster precisa saber onde se encontram os dados a serem utilizados. Isto feito atravs da
opo -D.
Portanto, a maneira mais simples de colocar o servidor em execuo usando que deixa o servidor
processando em primeiro plano.
$ postmaster -D /usr/local/pgsql/data

Sem a opo -D o servidor tenta utilizar o diretrio de dados especificado na varivel de ambiente PGDATA.
Se esta varivel tambm no existir, ento a inicializao falha.
Normalmente melhor executar o postmaster em segundo plano, e neste caso a sintaxe usual para o
interpretador de comandos :
$ postmaster -D /usr/local/pgsql/data >arquivo_de_log 2>&1 &

importante armazenar as sadas stdout e stderr do servidor em algum lugar, conforme mostrado acima.
A sintaxe do interpretador de comandos pode se tornar entediante em pouco tempo. Por isso fornecido o
programa pg_ctl para simplificar algumas tarefas.
pg_ctl start -l arquivo_de_log

Inicializa o servidor em segundo plano, e envia a sada para o arquivo de log especificado. A opo -D possui
o mesmo significado para este programa que no postmaster.

6. Conexo com Postgresql


Primeiramente vamos testar a conectividade com o banco PostGreSQL usando o script abaixo:
<?php
if(!@($conexao=pg_connect ("host=HOST dbname=BANCO port=5432 user=LOGIN
password=SENHA"))) {
print "No foi possvel estabelecer uma conexo com o banco de dados.";
} else {
pg_close ($conexao);
print "Conexo OK!"; }?>

pg_connect(); funo para conexo ao PostGreSQL.


pg_close(); fecha a conexo ao banco.
Banco: nome do banco de dados PostGreSQL
Host: caminho do servidor ( no utilize 'localhost' e sim postgres01.DOMINIO )
Login: usurio utilizado na conexo ao banco de dados PostGreSQL
Senha: senha do banco de dados PostGreSQL

7. Administrando Usurios e Privilgios


A DCL controla os aspectos de autorizao de dados e licenas de usurios para controlar quem tem
acesso para ver ou manipular dados dentro do banco de dados. Os nomes dos usurios de banco de dados so
globais para todo o agrupamento de bancos de dados (e no apenas prprio de cada banco de dados).

Criando usurio no Postgresql

CREATE USER nome [ [ WITH ] opo [ ... ] ]

Remover usurio
Alterar usurios
Alterar o nome do usurio
Criar grupo
Adicionar usurio ao grupo
Criar um ROLE
Apagar um ROLE

DROP USER nome_usurio


ALTER USER nome [ [ WITH ] opo [ ... ] ]
ALTER USER nome RENAME TO novo_nome
CREATE GROUP nome_do_grupo;
ALTER GROUP nome_do_grupo ADD USER nome_do_usurio;
CREATE ROLE nome [ [WITH] opo [...]];
DROP ROLE [ IF EXISTS ] nome [, ...]

Concedendo e Revogando Privilgios no PostgreSQL


Quando um objeto do banco de dados criado, atribudo um dono ao mesmo. O dono o usurio
que executou o comando de criao do objeto. Para mudar o dono de uma tabela, ndice, seqncia ou viso
deve ser utilizado o comando ALTER TABLE.

Por padro apenas o dono e o super-usurio pode fazer alguma coisa com o objeto.

Comando GRANT, possui duas funcionalidades bsicas: conceder privilgios para um objeto do
banco de dados (tabela, viso, seqncia, banco de dados, funo, linguagem procedural, esquema
e espao de tabelas) e conceder o privilgio de ser membro de um papel.
Comando REVOKE necessrio para revogar alguns privilgios de acesso a usurios ou grupos de
usurios.

Comando para alterar um dono de uma tabela no PostgreSQL


ALTER TABLE nome_da_tabela OWNER TO novo_dono

8. Transaes
Transao - a realizao de um conjunto de comandos de uma s vez. Uma transao acontece
por completo (todas as operaes) ou nada acontece. Tambm a transao deve garantir um nvel de
isolamento das demais transaes, de maneira que as demais transaes somente enxerguem as
operaes aps a transao concluda.

Caso haja um erro qualquer na transao ou falha no sistema o SGBR ir executar um


comando ROLLBACK.
Transaes so uma forma de dar suporte s operaes concorrentes, garantindo a segurana
e integridade das informaes. Garantir que duas solicitaes diferentes no efetuaro uma
mesma operao ao mesmo tempo.

O PostgreSQL trata a execuo de qualquer comando SQL como sendo executado dentro de uma
transao.

Na verso 8 apareceram os SAVEPOINTS (pontos de salvamento) , que guardam as informaes at


eles. Isso salva as operaes existentes antes do SAVEPOINT e basta um ROLLBACK TO para
continuar comas demais operaes.

O PostgreSQL mantm a consistncia dos dados utilizando o modelo multiverso MVCC (Multiversion
Com currency Control), que permite que leitura no bloqueie escrita nem escrita bloqueie leitura.

Uma transao dita um processo atmico, o que signica que ou acontecem todas as suas
operaes ou ento nenhuma ser salva.
Isolamento de Transaes

O nvel de isolamento padro do PostgreSQL o Read Committed (leitura efetivada). Uma


consulta SELECT realizada com este nvel perceber os registros existente no incio da consulta.
Este o nvel mais exvel.

Existe tambm o nvel serializable, mais rigoroso. Os nveis Read uncommitted e Repeatable
read so suportados, mas assumem a forma de um dos dois anteriores.

9. BACKUPS
Para efetuar backup e restore utilizamos o comando pg_dump em conjunto com o psql.
O pg_dump um utilitrio para fazer cpia de segurana de um banco de dados do
PostgreSQL. So feitas cpias de segurana consistentes mesmo que o banco de dados esteja sendo
utilizado concorrentemente. O pg_dump no bloqueia os outros usurios que esto acessando o
banco de dados (leitura ou escrita).
O pg_dump no faz backup de objetos grandes (lo) por default. Caso desejemos tambm estes
objetos no backup devemos utilizar uma sada no formato tar e utilizar a opo b.
Backup local de um nico banco:
pg_dump -U usuario -d banco > banco.sql
pg_dump -Ft banco > banco.tar
Restore de um banco local:
psql -U usuario -d banco < banco.sql
pg_restore -d banco banco.sql
pg_restore -d banco banco.tar
-a
--data-only
-b
--blobs
-c
--clean
-C
--create

Salva somente os dados, no salva o esquema (definies de dado).


Esta opo s faz sentido para o formato texto-puro. Para os formatos
alternativos esta opo pode ser especificada ao chamar o pg_restore.
Inclui os objetos grandes na cpia de segurana. Deve ser selecionado um
formato de sada no-texto.
Inclui comandos para remover (drop) os objetos do banco de dados antes dos
comandos para cri-los.
Inicia a sada por um comando para criar o banco de dados e conectar ao banco
de dados criado (Com um script assim no importa qual banco de dados se est
conectado antes de executar o script).

-d
--inserts
-D
--columninserts
--attributeinserts
-f arquivo
--file=arquivo
-F formato
format=format
o

Salva os dados como comandos INSERT, em vez de COPY. Torna a restaurao


muito lenta; sua utilizao principal para fazer cpias de segurana que possam
ser carregadas em outros bancos de dados que no o PostgreSQL
Salva os dados como comandos INSERT explicitando os nomes das colunas
(INSERT INTO tabela (coluna, ...)
VALUES ...). Torna a restaurao muito lenta; sua utilizao principal para
fazer cpias de segurana que possam ser carregadas em outros bancos de dados
que no o PostgreSQL.
Envia a sada para o arquivo especificado. Se for omitido usada a sada padro.
Seleciona o formato da sada. O formato pode ser um dos seguintes:

--p
Gera um arquivo de script SQL no formato texto-puro (padro)

--t
Gera um arquivo tar adequado para servir de entrada para o pg_restore. A
utilizao deste formato de arquivo permite reordenar e/ou excluir objetos do
banco de dados ao fazer a restaurao

--c
Gera um arquivo personalizado adequado para servir de entrada para o g_restore.
Este o formato mais flexvel, porque permite a reordenao da restaurao dos
dados, assim como das definies dos objetos. Tambm, este formato
comprimido por padro.
Exemplo: pg_dump -Ft -b trt13 > tribunal.tar Fazer a cpia do banco grande trt13 para o arquivo
em .tar chamado tribunal.tar.

10.

VACUUM

O utilitrio VACUUM recupera espao em disco ocu pado pelos registros excludos e atualizados,
atualiza os dados para as estatsticas usadas pelo planejador de consultas e tambm protege contra perda de
dados quando atingir um bilho de transaes.
O comando VACUUM do PostgreSQL deve ser executado regularmente por diversos motivos:
1. Para recuperar o espao em disco ocupado pelas linhas atualizadas e removidas.
2. Para atualizar as estatsticas dos dados utilizadas pelo planejador de comandos do PostgreSQL.
3. Para proteger contra perda de dados muito antigos devido ao recomeo do ID de transao.
A forma padro do comando VACUUM pode executar em paralelo com as operaes normais do banco de
dados (selees, inseres, atualizaes, excluses, mas sem modificao de definio de tabela).
Existem duas variaes do comando VACUUM.

Lazy vacuum
o limpeza preguiosa (lazy vacuum), ou simplesmente VACUUM, marca os dados
expirados das tabelas para reutilizao posterior; no tenta recuperar o espao utilizado pelos
dados expirados imediatamente. Portanto, o arquivo da tabela no encurtado, e o espao
no utilizado no arquivo no devolvido ao sistema operacional. Esta variante do VACUUM
pode ser executada simultaneamente com as operaes normais do banco de dados.

Vacuum Full.

o Esta forma utiliza um algoritmo mais agressivo para recuperar o espao consumido
pelas verses de linha expiradas. Todo espao liberado pelo VACUUM FULL
imediatamente devolvido ao sistema operacional. Infelizmente, esta variante do
comando VACUUM obtm um bloqueio exclusivo de cada tabela enquanto esta
processada pelo comando VACUUM FULL. Portanto, a utilizao freqente do
comando VACUUM FULL pode ter um efeito extremamente negativo sobre o
desempenho dos comandos simultneos no banco de dados.
Se for necessrio devolver espao em disco para o sistema operacional, pode ser utilizado o
comando VACUUM FULL

A prtica recomendada para a maioria das instalaes agendar o comando VACUUM para
todo o banco de dados uma vez por dia em horrio de pouca utilizao,

O comando VACUUM FULL recomendado para os casos onde se sabe que foi excluda a
maior parte das linhas da tabela e, portanto, o tamanho estvel da tabela pode ser reduzido
substancialmente pela abordagem mais agressiva do comando VACUUM FULL.

Deve ser utilizado o VACUUM SIMPLES, e no o Vacuum Full, para recuperao rotineira
de espao.

11.

ANALYZE

O Analyze coleta informaes precisas sobre o contedo das tabelas para o planejador de comandos
do PostgreSQL poder gerar bons planos para os comandos.
importante que as estatsticas estejam razoavelmente precisas, seno o desempenho do banco de
dados poder ser degradado por planos mal escolhidos.
O comando ANALYZE em tabelas especficas, e mesmo em colunas especficas da tabela. Portanto,
existe flexibilidade para atualizar algumas estatsticas com mais freqncia que outras se for
requerido pelo aplicativo.

A prtica recomendada, para a maioria das instalaes, agendar a execuo do comando ANALYZE para
todo o banco de dados uma vez por dia, em horrio de pouca utilizao; til sua combinao com a
execuo do comando VACUUM todas as noites.

12.

VIEWS
Uma View consiste de uma consulta armazenada acessvel como uma tabela virtual em um
banco de dados relacional ou um conjunto de documentos em um banco de dados orientado a
documentos composta pelo conjunto de resultados de uma consulta ou um mapa e reduzir
funes.
Em termos mais simples a vista simplesmente uma tabela lgica que conecta automaticamente
os pedaos de dados subjacentes. Na verdade, no duplicar ou persistirem os dados como o
viram em uma forma lgica.
So uma maneira simples de executar e exibir dados selecionados de consultas complexas em
bancos. Em que elas so teis? Elas economizam grande quantidade de digitao e esforo e
apresentam somente os dados que desejamos.

Criar uma View.


CREATE VIEW minha_view
AS
SELECT nome, salario

FROM FUNCIONARIO;

O comando criar uma VIEW nomeada de minha_view e poder ser utilizada nas buscas como uma
tabela da seguinte forma:
SELECT * FROM minha_view;

Assim, ser exibido somente o nome e o salrio para os usurios que tiverem acesso a essa VIEW.

View pg_setting
Fornece acesso aos parmetros do servidor de tempo de gerncia. essencialmente uma interface
alternativa para o show e SET comandos. Ele tambm fornece acesso a alguns fatos sobre cada parmetro
que no esto diretamente disponveis de SHOW, como valores mnimos e mximos.
A Viso pg_settings que contm dados sobre os parmetros run-time do servidor..

13.

Herana no Postgres

Herana um conceito de banco de dados orientado a objeto, que abre novas possibilidades
interessantes ao projeto de banco de dados.
Vamos criar duas tabelas: a tabela cidades e a tabela capitais. Como natural, as capitais tambm so
cidades e, portanto, deve existir alguma maneira para mostrar implicitamente as capitais quando todas as
cidades so mostradas.
CREATE TABLE cidades (
nome
text,
populacao real,
altitude int -- (em ps) );
CREATE TABLE capitais (
estado
char(2)
) INHERITS (cidades);

Neste caso, as linhas da tabela capitais herdam todas as colunas (nome, populacao e altitude) da
sua tabela ancestral cidades.

14.
Configurao Bsica de Driver ODBC para
PostgreSQL
Standard
Driver={PostgreSQL};Server=IP address;Port=5432;Database=myDataBase;
Uid=myUsername;Pwd=myPassword;

ANSI
Driver={PostgreSQL ANSI};Server=IP address;Port=5432;Database=myDataBase;
Uid=myUsername;Pwd=myPassword;

15.

TRIGGERS

Triggers so procedimentos armazenados que so acionados por algum evento e em determinado


momento. Na maioria dos bancos de dados estes eventos podem ser inseres (INSERT), atualizaes
(UPDATE) e excluses (DELETE), e os momentos podem ser dois: antes da execuo do evento (BEFORE)
ou depois (AFTER). E isso tambm vale para o PostgreSQL.

PostgreSQL as triggers so sempre associadas a funes de trigger.


O PostgreSQL possui dois tipos de triggers: triggers-por-linha e triggers-por-instruo.

TRIGGER-POR-LINHA disparada uma vez para cada registro afetado pela instruo que
disparou a trigger.

TRIGGER-POR-INSTRUO disparada somente uma vez quando a instruo executada.

Funes de triggers so funes que no recebem nenhum parmetro e retornam o tipo trigger. Essas funes
recebem uma estrutura chamada TriggerData, e esta passada internamente para a funo pelo PostgreSQL.
O PostgreSQL disponibiliza duas variveis importantes para serem usadas em conjunto com as triggers-porlinha: NEW e OLD.

A varivel NEW, no caso do INSERT, armazena o registro que est sendo inserido.
No caso do UPDATE, armazena a nova verso do registro depois da atualizao.

A varivel OLD, no caso do DELETE, armazena o registro que est sendo excludo.
No caso do UPDATE, armazena a antiga verso do registro depois da atualizao.

Criando uma trigger


A sintaxe para a criao de uma trigger apresentada abaixo:
CREATE TRIGGER nome { BEFORE | AFTER } { evento [ OR ... ] }
ON tabela [ FOR [ EACH ] { ROW | STATEMENT } ]
EXECUTE PROCEDURE
nome_da_funo ()

NOME: o nome da trigger.


BEFORE | after: determina se a funo ser chamada antes ou depois do evento.
EVENTO: indica em que momento a trigger ser disparada. a trigger pode ser dispara antes ou
depois de um evento de delete, update ou insert.
TABELA: indica em qual tabela a trigger estar associada.
ROW | STATEMENT: especifica se a trigger deve ser disparada uma vez para cada linha afetada
pelo evento ou apenas uma vez por comando sql. se no for especificado nenhum dos dois, o padro
for each statement.
nome_da_funo: especifica a funo de trigger.

Ordem de execuo de triggers


Podemos ter mais de uma trigger associada ao mesmo evento e momento, neste caso a ordem de execuo
das triggers definida pela ordem alfabtica de seus nomes.

Triggers recursivas
Se uma funo de trigger executar comandos SQL, estes comandos podem disparar triggers novamente. Isto
conhecido como cascatear triggers.

ALTERANDO UMA TRIGGER


ALTER TRIGGER nome ON tabela RENAME TO novo_nome.

NOME nome do gatilho existente a ser alterado.


TABELA o nome da tabela onde o gatilho atua.
NOVO_NOME o novo nome do gatilho.

EXCLUINDO UMA TRIGGER


DROP TRIGGER nome ON tabela [ CASCADE | RESTRICT ]

NOME o nome do gatilho a ser removido.


TABELA o nome da tabela para a qual o gatilho est definido.
[ CASCADE | RESTRICT ] indica se ao remover a trigger vamos remover tambm todos os
objetos que dependem dela (CASCADE) ou recusaremos sua excluso (RESTRICT).

Catlogo de Sistema do PostgreSQL


Finalidade

Nome do catlogo
pg_aggregate

funes de agregao

pg_am

mtodos de acesso de ndice

pg_amop

operadores de mtodo de acesso

pg_amproc

procedimentos de suporte de mtodo de acesso

pg_attrdef

valor padro das colunas

pg_attribute

colunas de tabela ("atributos")

pg_cast

casts (converses de tipos de dado)

pg_class

tabelas, ndices, seqncias, vises ("relaes")

pg_constraint

restries de verificao, restries de unicidade, restries de


chave primria, restries de chave estrangeira

pg_conversion

informaes sobre converso de codificao

pg_database

bancos de dados que fazem parte deste agrupamento de bancos de


dados

pg_depend

dependncias entre objetos do banco de dados

pg_description

descries ou comentrios sobre os objetos do banco de dados

pg_group

grupos de usurios do banco de dados

pg_index

informaes adicionais sobre ndices

pg_inherits

hierarquia de herana de tabela

pg_language

linguagens para escrever funes

pg_largeobject

objetos grandes

pg_listener

suporte a notificao assncrona

pg_namespace

esquemas

pg_opclass

classes de operador de mtodo de acesso de ndice

pg_operator

operadores

pg_proc

funes e procedimentos

pg_rewrite

regras de reescrita dos comandos

pg_shadow

usurios do banco de dados

pg_statistic

estatsticas do planejador

Finalidade

Nome do catlogo
pg_tablespace

espaos de tabelas do agrupamento de bancos de dados

pg_trigger

gatilhos

pg_type

tipos de dado

pg_table_size(regclas
s)

retornaro espao em disco utilizado pela tabela processo,

Questes:
1. A instruo SQL em PostgreSQL est mal formulada: CREATE VIEW Vista AS SELECT Hello
Word;

a.

por padro, o tipo de dado ser considerado indefinido ( unknown ) e a coluna ir utilizar
o nome padro ?column?.

i.
2.

sintaxe CREATE VIEW nome [ ( nome_da_coluna [, ...] ) AS comando.

O Comando. CREATE USER MAPPING FOR.

a.

Define um novo mapeamento de usuario para um servidor externo/estrangeiro Synopsis

i.

CREATE USER MAPPING FOR { user_name | USER | CURRENT_USER | PUBLIC }

ii.

SERVER server_name

iii.

CREATE USER MAPPING FOR bob SERVER foo OPTIONS (user 'bob', password 'secret');

[ OPTIONS ( option 'value' [ , ... ] ) ]

S-ar putea să vă placă și