SlideShare uma empresa Scribd logo
1 de 20
Baixar para ler offline
PostgreSQL
       postgresql.org.br




ivo.nascimento@ianntech.com.br
   http://www.ianntech.com.br
Cronograma

1) PostgreSQL e sua história.
2)Conectando-se ao servidor
3)Como é organizado os dados
4)Trabalhando com Objetos do banco de dados
5)Trabalhando com o Catálogo
6)Utilizando o Pgbench para teste de perf.
7)Trabalhando com o Contrib
Um pouco de história...
O sistema gerenciador de banco de dados objeto-relacional hoje
conhecido por PostgreSQL, é derivado do pacote POSTGRES escrito na
Universidade da Califórnia em Berkeley. Com mais de uma década de
desenvolvimento por trás, o PostgreSQL é atualmente o mais avançado
banco de dados de código aberto disponível em qualquer lugar.
Michael Stonebraker patrocinado pela ARPA,ARO,NSF criou o
Postgres.
A primeira apresentação foi em 1988.
Versão 2 liberada em 1990.
Versão 3 em 1991.
Andrew Yu e Jolly Chen adicionaram o interpretador da linguagem
SQL e o produto se tornou Postgres95.
Em 1996 torna-se o postgreSQL e chega a versão 6.0
A versão 7.0 2000-05-08.
A versão 7.4 em 2003-11-17.
A versão 8.0 em 2005-01-19.
Conectando-se ao Servidor(login/senha it:it)

As máquinas utilizadas neste treinamento rodam o ubuntu
6.06 desktop(apesar da ubuntu disponibilizar o ubuntu
server) em uma virtual machine onde estão instalados os
recursos do postgreSQL sendo.
➔O servidor na versão 8.1(por que não 8.2?)

➔A contrib

➔O aplicativo PgAdmin

➔O aplicativo PgVisio(beta)
PostgreSQL(login/senha postgres:postgres)
Aplicativos postgreSQL

psql: aplicativo de terminal utilizado para acessar um
servidor postgreSQL.
Para usar:
Psql -d [dbname] -Uusuario -h host

pgAdmin: Aplicativo gráfico mantido pelo projeto para
acessar o servidor postgreSQL.
Para usar:
clique no ícone do postgreSQL no painel superior
Como é Organizado os dados




1.Estrutura de arquivo


2.Organização de Objetos
Estrutura de arquivo
Diretório Principal:
/etc/postgresql/8.1/main/

Diretório de executáveis:
  /usr/postgresql/lib/8.1/bin

diretorio de dados
  /var/lib/postgresql/8.1/main
  /etc/postgresql/8.1/main/pgdata(link)

diretorio de log
  /var/log/postgresql/
  /etc/postgresql/8.1/main/log(link)
Subdiretórios de pgdata
1.base: bases de dados
2.blobal: data acessíveis para todo o cluster
3.pg_clog: status das transações
4.pg_subtrans: status de subtransações
5.pg_multixact: status de transação para
shared row lock
6.pg_tblspc: links simbolicos de tablespace
7.pg_xlog: arquivos do wal
8.pg_twophase: status dos procedimentos
preparados.
Dica - Como melhorar a performance...

Coloque em discos diferentes pastas e arquivos
que tenham bastante IO como:
log
indices
pg_xlog

Em alguns casos pode proceder com links e em
outros pode utilizar tablespaces.
Organização dos Objetos


Tablespace
   schema
       table
       indice
       stored procedure
       operator
       sequence
       type
       view
Trabalhando com Objeto


1.Tablespace

3.Sequence

5.Tipo de Dados

7.Domínio
Tablespace



CREATE TABLESPACE
tablespacename [ OWNER
username ] LOCATION 'directory'
Domain



CREATE DOMAIN name [ AS ]
data_type
   [ DEFAULT expression ]
   [ constraint [ ... ] ]
Sequence


CREATE [ TEMPORARY | TEMP ] SEQUENCE
name [ INCREMENT [ BY ] increment ]
[ MINVALUE minvalue | NO MINVALUE ]
[ MAXVALUE maxvalue | NO MAXVALUE ]
[ START [ WITH ] start ] [ CACHE cache ]
[ [ NO ] CYCLE ]
Type



CREATE TYPE name AS
( attribute_name data_type [, ... ] )
Localizando Objetos
Monitorando o Servidor
pgbench
Contrib



1.DBLink

2.pgstattuple
Type
CREATE TYPE name (
INPUT = input_function,
OUTPUT = output_function
[ , RECEIVE = receive_function ]
[ , SEND = send_function ]
[ , ANALYZE = analyze_function ]
[ , INTERNALLENGTH = { internallength |
VARIABLE } ]
[ , PASSEDBYVALUE ]
[ , ALIGNMENT = alignment ]
[ , STORAGE = storage ]
[ , DEFAULT = default ]
[ , ELEMENT = element ]
[ , DELIMITER = delimiter ]

Mais conteúdo relacionado

Mais procurados

pgBouncer: um aglomerador de conexões para PostgreSQL
pgBouncer: um aglomerador de conexões para PostgreSQLpgBouncer: um aglomerador de conexões para PostgreSQL
pgBouncer: um aglomerador de conexões para PostgreSQL
elliando dias
 
Oficina postgresql basico_consegi2010
Oficina postgresql basico_consegi2010Oficina postgresql basico_consegi2010
Oficina postgresql basico_consegi2010
Fabrízio Mello
 
Migrate linux user password to postfix vmail database
Migrate linux user password to postfix vmail databaseMigrate linux user password to postfix vmail database
Migrate linux user password to postfix vmail database
Carlos Eduardo
 
Principais comandos do terminal no linux tecnologia para todos!
Principais comandos do terminal no linux   tecnologia para todos!Principais comandos do terminal no linux   tecnologia para todos!
Principais comandos do terminal no linux tecnologia para todos!
Fábio Fernando
 

Mais procurados (20)

pgBouncer: um aglomerador de conexões para PostgreSQL
pgBouncer: um aglomerador de conexões para PostgreSQLpgBouncer: um aglomerador de conexões para PostgreSQL
pgBouncer: um aglomerador de conexões para PostgreSQL
 
Oficina postgresql basico_consegi2010
Oficina postgresql basico_consegi2010Oficina postgresql basico_consegi2010
Oficina postgresql basico_consegi2010
 
Python e bancos NoSQL
Python e bancos NoSQLPython e bancos NoSQL
Python e bancos NoSQL
 
Criando um site com LAMP e Joomla em 30 minutos
Criando um site com LAMP e Joomla em 30 minutosCriando um site com LAMP e Joomla em 30 minutos
Criando um site com LAMP e Joomla em 30 minutos
 
PHP Básico - Parte 4
PHP Básico - Parte 4PHP Básico - Parte 4
PHP Básico - Parte 4
 
Gerência de Configurações com o Puppet
Gerência de Configurações com o PuppetGerência de Configurações com o Puppet
Gerência de Configurações com o Puppet
 
Mongo DB
Mongo DBMongo DB
Mongo DB
 
Shell Scipt - Comandos
Shell Scipt - ComandosShell Scipt - Comandos
Shell Scipt - Comandos
 
Migrate linux user password to postfix vmail database
Migrate linux user password to postfix vmail databaseMigrate linux user password to postfix vmail database
Migrate linux user password to postfix vmail database
 
Python no Power BI pelo SQL Server?
Python no Power BI pelo SQL Server?Python no Power BI pelo SQL Server?
Python no Power BI pelo SQL Server?
 
6 curso-titanium-dados
6 curso-titanium-dados6 curso-titanium-dados
6 curso-titanium-dados
 
Linux - Instalação de Programas
Linux - Instalação de ProgramasLinux - Instalação de Programas
Linux - Instalação de Programas
 
Principais comandos do terminal no linux tecnologia para todos!
Principais comandos do terminal no linux   tecnologia para todos!Principais comandos do terminal no linux   tecnologia para todos!
Principais comandos do terminal no linux tecnologia para todos!
 
Linux shell
Linux shellLinux shell
Linux shell
 
Apresentação interbase (atualização 2)
Apresentação interbase (atualização 2)Apresentação interbase (atualização 2)
Apresentação interbase (atualização 2)
 
Coisas que aprendi e quero passar adiante - RubyConf Brasil 2010
Coisas que aprendi e quero passar adiante - RubyConf Brasil 2010Coisas que aprendi e quero passar adiante - RubyConf Brasil 2010
Coisas que aprendi e quero passar adiante - RubyConf Brasil 2010
 
Como o elasticsearch salvou minhas buscas
Como o elasticsearch salvou minhas buscasComo o elasticsearch salvou minhas buscas
Como o elasticsearch salvou minhas buscas
 
Pdo do PHP Palestra
Pdo do PHP PalestraPdo do PHP Palestra
Pdo do PHP Palestra
 
Shell Script - Controle de fluxo
Shell Script - Controle de fluxoShell Script - Controle de fluxo
Shell Script - Controle de fluxo
 
Aula de Node
Aula de NodeAula de Node
Aula de Node
 

Semelhante a Maonamassa Pga

Gerenciamento de projetos com o Apache Ant
Gerenciamento de projetos com o Apache AntGerenciamento de projetos com o Apache Ant
Gerenciamento de projetos com o Apache Ant
Denis L Presciliano
 
Oficina postgresql avançado_consegi2010
Oficina postgresql avançado_consegi2010Oficina postgresql avançado_consegi2010
Oficina postgresql avançado_consegi2010
Fabrízio Mello
 
Livropythonmysql 091022073751-phpapp01
Livropythonmysql 091022073751-phpapp01Livropythonmysql 091022073751-phpapp01
Livropythonmysql 091022073751-phpapp01
julianabdpaiva
 

Semelhante a Maonamassa Pga (20)

Implementação de
Implementação de Implementação de
Implementação de
 
ZEO/RelStorage/PostgreSQL
ZEO/RelStorage/PostgreSQLZEO/RelStorage/PostgreSQL
ZEO/RelStorage/PostgreSQL
 
Bancos de dados open source
Bancos de dados open sourceBancos de dados open source
Bancos de dados open source
 
Aula05 android persistencia
Aula05 android persistenciaAula05 android persistencia
Aula05 android persistencia
 
Gerenciamento de projetos com o Apache Ant
Gerenciamento de projetos com o Apache AntGerenciamento de projetos com o Apache Ant
Gerenciamento de projetos com o Apache Ant
 
Gerenciamento de projetos com o Apache Ant
Gerenciamento de projetos com o Apache AntGerenciamento de projetos com o Apache Ant
Gerenciamento de projetos com o Apache Ant
 
PostgreSQL-Prático.pdf
PostgreSQL-Prático.pdfPostgreSQL-Prático.pdf
PostgreSQL-Prático.pdf
 
Minicurso PostgreSQL
Minicurso PostgreSQLMinicurso PostgreSQL
Minicurso PostgreSQL
 
Oficina postgresql avançado_consegi2010
Oficina postgresql avançado_consegi2010Oficina postgresql avançado_consegi2010
Oficina postgresql avançado_consegi2010
 
Acessando o MySql com o Python
Acessando o MySql com o PythonAcessando o MySql com o Python
Acessando o MySql com o Python
 
Livropythonmysql 091022073751-phpapp01
Livropythonmysql 091022073751-phpapp01Livropythonmysql 091022073751-phpapp01
Livropythonmysql 091022073751-phpapp01
 
Dsi 015 - poo e php - conexão com bancos de dados usando pdo
Dsi   015 - poo e php - conexão com bancos de dados usando pdoDsi   015 - poo e php - conexão com bancos de dados usando pdo
Dsi 015 - poo e php - conexão com bancos de dados usando pdo
 
PostgreSQL - Visão Geral - Pedro Vieira
PostgreSQL - Visão Geral - Pedro VieiraPostgreSQL - Visão Geral - Pedro Vieira
PostgreSQL - Visão Geral - Pedro Vieira
 
Desenvolvimento Agil Com Doctrine Orm
Desenvolvimento Agil Com Doctrine OrmDesenvolvimento Agil Com Doctrine Orm
Desenvolvimento Agil Com Doctrine Orm
 
Palestra Elasticsearch - The Developers Conference - Floripa - 2017
Palestra Elasticsearch - The Developers Conference - Floripa - 2017Palestra Elasticsearch - The Developers Conference - Floripa - 2017
Palestra Elasticsearch - The Developers Conference - Floripa - 2017
 
Por que PostgreSQL?
Por que PostgreSQL?Por que PostgreSQL?
Por que PostgreSQL?
 
Desenvolvimento de Aplicações para o Google App Engine (CPBR5)
Desenvolvimento de Aplicações para o Google App Engine (CPBR5)Desenvolvimento de Aplicações para o Google App Engine (CPBR5)
Desenvolvimento de Aplicações para o Google App Engine (CPBR5)
 
Desenvolvimento de aplicações para o Google App Engine
Desenvolvimento de aplicações para o Google App EngineDesenvolvimento de aplicações para o Google App Engine
Desenvolvimento de aplicações para o Google App Engine
 
Detectando e Respondendo Incidentes de Segurança em Frontends Nginx utilizand...
Detectando e Respondendo Incidentes de Segurança em Frontends Nginx utilizand...Detectando e Respondendo Incidentes de Segurança em Frontends Nginx utilizand...
Detectando e Respondendo Incidentes de Segurança em Frontends Nginx utilizand...
 
Doctrine for dummies
Doctrine for dummiesDoctrine for dummies
Doctrine for dummies
 

Último

Assessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdfAssessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdf
Natalia Granato
 

Último (6)

ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
Assessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdfAssessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdf
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 

Maonamassa Pga

  • 1. PostgreSQL postgresql.org.br ivo.nascimento@ianntech.com.br http://www.ianntech.com.br
  • 2. Cronograma 1) PostgreSQL e sua história. 2)Conectando-se ao servidor 3)Como é organizado os dados 4)Trabalhando com Objetos do banco de dados 5)Trabalhando com o Catálogo 6)Utilizando o Pgbench para teste de perf. 7)Trabalhando com o Contrib
  • 3. Um pouco de história... O sistema gerenciador de banco de dados objeto-relacional hoje conhecido por PostgreSQL, é derivado do pacote POSTGRES escrito na Universidade da Califórnia em Berkeley. Com mais de uma década de desenvolvimento por trás, o PostgreSQL é atualmente o mais avançado banco de dados de código aberto disponível em qualquer lugar. Michael Stonebraker patrocinado pela ARPA,ARO,NSF criou o Postgres. A primeira apresentação foi em 1988. Versão 2 liberada em 1990. Versão 3 em 1991. Andrew Yu e Jolly Chen adicionaram o interpretador da linguagem SQL e o produto se tornou Postgres95. Em 1996 torna-se o postgreSQL e chega a versão 6.0 A versão 7.0 2000-05-08. A versão 7.4 em 2003-11-17. A versão 8.0 em 2005-01-19.
  • 4. Conectando-se ao Servidor(login/senha it:it) As máquinas utilizadas neste treinamento rodam o ubuntu 6.06 desktop(apesar da ubuntu disponibilizar o ubuntu server) em uma virtual machine onde estão instalados os recursos do postgreSQL sendo. ➔O servidor na versão 8.1(por que não 8.2?) ➔A contrib ➔O aplicativo PgAdmin ➔O aplicativo PgVisio(beta)
  • 5. PostgreSQL(login/senha postgres:postgres) Aplicativos postgreSQL psql: aplicativo de terminal utilizado para acessar um servidor postgreSQL. Para usar: Psql -d [dbname] -Uusuario -h host pgAdmin: Aplicativo gráfico mantido pelo projeto para acessar o servidor postgreSQL. Para usar: clique no ícone do postgreSQL no painel superior
  • 6. Como é Organizado os dados 1.Estrutura de arquivo 2.Organização de Objetos
  • 7. Estrutura de arquivo Diretório Principal: /etc/postgresql/8.1/main/ Diretório de executáveis: /usr/postgresql/lib/8.1/bin diretorio de dados /var/lib/postgresql/8.1/main /etc/postgresql/8.1/main/pgdata(link) diretorio de log /var/log/postgresql/ /etc/postgresql/8.1/main/log(link)
  • 8. Subdiretórios de pgdata 1.base: bases de dados 2.blobal: data acessíveis para todo o cluster 3.pg_clog: status das transações 4.pg_subtrans: status de subtransações 5.pg_multixact: status de transação para shared row lock 6.pg_tblspc: links simbolicos de tablespace 7.pg_xlog: arquivos do wal 8.pg_twophase: status dos procedimentos preparados.
  • 9. Dica - Como melhorar a performance... Coloque em discos diferentes pastas e arquivos que tenham bastante IO como: log indices pg_xlog Em alguns casos pode proceder com links e em outros pode utilizar tablespaces.
  • 10. Organização dos Objetos Tablespace schema table indice stored procedure operator sequence type view
  • 12. Tablespace CREATE TABLESPACE tablespacename [ OWNER username ] LOCATION 'directory'
  • 13. Domain CREATE DOMAIN name [ AS ] data_type [ DEFAULT expression ] [ constraint [ ... ] ]
  • 14. Sequence CREATE [ TEMPORARY | TEMP ] SEQUENCE name [ INCREMENT [ BY ] increment ] [ MINVALUE minvalue | NO MINVALUE ] [ MAXVALUE maxvalue | NO MAXVALUE ] [ START [ WITH ] start ] [ CACHE cache ] [ [ NO ] CYCLE ]
  • 15. Type CREATE TYPE name AS ( attribute_name data_type [, ... ] )
  • 20. Type CREATE TYPE name ( INPUT = input_function, OUTPUT = output_function [ , RECEIVE = receive_function ] [ , SEND = send_function ] [ , ANALYZE = analyze_function ] [ , INTERNALLENGTH = { internallength | VARIABLE } ] [ , PASSEDBYVALUE ] [ , ALIGNMENT = alignment ] [ , STORAGE = storage ] [ , DEFAULT = default ] [ , ELEMENT = element ] [ , DELIMITER = delimiter ]