- 1. Fernando Ike Fbio Telles PostgreSQLConceitos e aplicaes
2. Agenda
- Histrico - Caractersticas - Ferramentas - Instalao -
Objetos
3. Histrico
- 1980 inicio do Ingres pela Berkeley e Computer Associates
- 1986 inicio do Postgres pela Berkeley
- 1987 primeira verso do Postgres
- 1989 liberao para usurios restritos da verso 1
- 1991 verso 3com as principais funcionalidades atuais.
- 1993 verso 4.2, ltima lanada pela Berkeley
- 1994 Andrew Yu e Jolly Chen criaram a verso conhecida como
Postgre95 (verso 5) com interpretador para a linguagem SQL.
- 1997 nome do projeto muda para PostgreSQL, a verso 6
lanada
- 2000 verso 7 lanada com suporte a Foreign Key
- 2005 verso 8 lanada com verso nativa (sem uso do CYGWIN) para
Windows, TABLESPACES, SAVEPOINTS, POINT-IN-TIME-RECOVERY. etc.
- 2005 em verso 8.1 Commit Two Phases, Autovacuum, Roles
- 2006 em verso 8.2 Novembro lanamento
4. Caractersticas
- Melhor suporte: independente do fornecedor
- Baixo custo de manuteno e tunning
- Extensibilidade: pode ser customisado com funes, tipos ou
atravs acesso ao cdigo fonte. Extenses na pasta /contrib
- Flexibilidade: roda em vrias plataformas (inclusive BSD)
- Robusto: criado para suportar grande volume de dados e transaes
concorrentes.
- Controle de transaes utilizando MVCC ou Locks explcitos
- Funes em SQL, C, C ++ , PLpg/SQL, PL/Perl, PL/Python, PL/TCL
suportadas nativamente alm dePL/Java, PL/PHP, PL/R, PL/Ruby, PL/sh,
PL/Mono.
5. (algumas) Ferramentas
- Ferramentas grficas de administrao:
- Ferramentas de modelagem:
6. Uso do psql
- Parmetros ao invocar o psql:
- -U : usurio que se conectar ao banco
- -h : local onde o Banco de Dados se conectar
- Comandos utilizados dentro do psql:
- ? ajuda para comandos do psql
- d lista objetos existentes
- l lista bancos de dados disponveis
7. Instalao
- Compilar (estabelece alguns parmetros intrnsecos)
- Criar cluster (estabelece local padro de dados, localizao e
codificao)
- Criar um banco de dados (estabelece variveis de desempenho,
localizao e codificao)
- Configurao de path e inicializao
- Configurao do controle de acesso
8. Objetos SQL
- ndices: btree, hash, rtree e gist, bitmap (8.2)
- Views (podem receber UPDATE, INSERT e UPDATE atravs de
RULES)
- Esquemas (podem estar atrelados ou no aos usurios)
- Funes de converso de caracteres
- Funes de converso de tipo de dados
- Funes de utilizao de ndices
- Trigger, Constraint Trigger
9. Autenticao
- local (usando socket UNIX)
- host (TCP/IP com ou sem SSL)
- hostnossl (TCP/IP sem SSL)
- TRUST (aceita incondicionalmente)
- REJECT (rejeita incondicionalmente)
10. Localizao
- Formatao de quantias monetrias
- Suporte a conjunto de caracteres:
- Suporte a ASCII, ISO, EUC, MULE, UTF8
- Converso automtica de codificao no servidor e cliente.
11. Transaes
- Possibilidade de usar modo auto-commited
- Uso de controle de multiverso (MMVC) permite acesso simuntneo
de leitura e escrita utilizando um snapshot separado
- Uso de isolamentoRead CommitedouSerializable
- Possibilidade de utilizarLockexplcito do tipo Acces Share, Row
Share, Row Exclusive, Share Update Exclusive, Share, Share Row
Exclusive, Exclusive e Access Exclusive.
- Facilita a manuteno do sistema pois quando um domnio alterado,
todos campos baseados nele so alterados autimticamente.
- Transao pode utilizar SAVEPOINT para retornar a trasao at
pontos especficos.
12. Backup
- Realiza dump consistente com o banco de dados on-line sem
bloquear usurios
- pg_dump gera dump em modo texto (em formato SQL), binrio e
compactado por GZIP.
- Podem ser selecionados parte dos objetos na exportao ou
importao como permisses, dados, esquemas, etc.
- um dump pode ser exportado ou compactado diretamente para outro
banco utilizando pipe!
- Objetos binrios s podem ser exportados no modo binrio.
13. Backup
- S pode ser realizado com o banco off-line ou com snapshot
(atravs do SO) de todos tablespaces e log (WAL)
simultaneamente.
- Cpia do datafile + cpia de log (WAL)
- Permite a cpia dos datafiles com o banco de dados on-line sem o
uso de snapshot.
- Permite a recuperao uma data e hora especfica ou at o a
realizao de determinada transao.
- Permite o controle de histricos paralelos de recuperaes at um
ponto especfico.
- Necessita de espao para arquivamento do WAL a partir da
realizao da ltima cpia dos datafiles.
- Permite a criao de um Stand By em outro servidor.
14. Storage
- Uso de Table Spaces para tabelas e ndices
- Cada Table Space define um diretrio vazio onde o PostgreSQL
cria arquivos automaticamente. Estes diretrios so ligados por links
simblicos
- rea para catlogo do sistema e armazenamento temporrio definido
na criao do Cluster e no pode ser modificado
- Mecanismo TOAST gerencia o armazenamento de tabelas com mais de
1GB e colunas de comprimento varivel.
- Colunas de tamanho varivel podem ser comprimidas ou no e
armazenadas em arquivo separado da tabela ou no.
15. Storage
- Tamanho mximo do Banco de Dados: Ilimitado
- Tamanho mximo de tabela: 32 TB
- Tamanho mximo de linha: 1,6 TB
- Tamanho mximo de campo: 1 GB
- Nmero mximo de linhas por tabela: Ilimitado
- Nmero mximo de colunas por tabela: 250 1600 (dependendo dos
tipos de dados utilizados)
- Nmero de ndices por tabela: Ilimitado
- * Estes valores podem variar devido a restries do sistema
operacional ou plataforma utilizada
16. Administrao
- Recupera espao em disco utilizado pelo MMVC
- Atualiza estatsticas utilizadas pelo planejador
- Estatsticas podem ser diferenciadas para colunas especficas de
tabelas
- Previne reinicio no id de transaes
- Pode ser executado com o Banco de Dados on-line com ajustes no
impacto de desempenho.
17. Administrao
- Estatsticas e bloqueios no servidor so visveis em tabelas do
catlogo ou atravs de funes.
- Quantidade de estatsticas coletadas pode ser alterada para todo
o servidor ou para sees especficas.
- Espao em disco ocupado por tabelas e ndices podem ser
monitorados atravs de tabelas do catlogo ou atravs da ferramenta
oid2toname
18. Tunning
- Acesso ao cdigo fonte permite otimizao para casos
especiais
- Compilao permite habilitar ou no caratctersticas que afetam o
desempenho
- postgresql.conf possui vrios parmetros que controlam:
-
- uso de recursos do sistema
-
- local, quantidade de informaes e formato de log
-
- uso de ndices, controle de custo, e otimizador gentico
-
- controle de coleta de estatsticas do servidor
-
- Parmetros de postgresql.conf podem ser alterados reiniciando o
servidor, ou podem ser personalizados para um Banco de Dados, seco
ou usurio especfico.
19. Comunidade
- Site oficial:http://www.postgresql.org
-
- Documentao de todas verses
-
- Projetos relacionados:http://gborg.postgresql.org
-
- Outros projetos:http://pgfoundry.org/
-
- Certificao:
http://osb.sra.co.jp/postgresql-ce/news_en.html
-
- Diretrio Contrib no cdigo-fonte
-
- Projetos em destaque: GiST, pg_pool, pg_cluster, xml, etc.
-
- Site nacional: http://postgresql.org.br
-
- Canais em irc.freenodes.net:
-
-
- #POSTGRESQL, #POSTGRESQL-BR