head	1.14;
access;
symbols
	REL7_4_29:1.1.2.1
	REL8_0_25:1.6.4.1
	REL8_1_21:1.7.2.1
	REL8_2_17:1.9.2.1
	REL8_3_11:1.12
	REL7_4_28:1.1.2.1
	REL8_0_24:1.6.4.1
	REL8_1_20:1.7.2.1
	REL8_2_16:1.9.2.1
	REL8_3_10:1.12
	REL7_4_27:1.1.2.1
	REL8_0_23:1.6.4.1
	REL8_1_19:1.7.2.1
	REL8_2_15:1.9.2.1
	REL8_3_9:1.12
	REL7_4_26:1.1.2.1
	REL8_0_22:1.6.4.1
	REL8_1_18:1.7.2.1
	REL8_2_14:1.9.2.1
	REL8_3_8:1.12
	REL8_4_STABLE:1.13.0.2
	REL8_4_0:1.13
	REL8_4_RC2:1.13
	REL8_4_RC1:1.13
	REL8_4_BETA2:1.13
	REL8_4_BETA1:1.13
	REL7_4_25:1.1.2.1
	REL8_0_21:1.6.4.1
	REL8_1_17:1.7.2.1
	REL8_2_13:1.9.2.1
	REL8_3_7:1.12
	REL7_4_24:1.1.2.1
	REL8_0_20:1.6.4.1
	REL8_1_16:1.7.2.1
	REL8_2_12:1.9.2.1
	REL8_3_6:1.12
	REL7_4_23:1.1.2.1
	REL8_0_19:1.6.4.1
	REL8_1_15:1.7.2.1
	REL8_2_11:1.9.2.1
	REL8_3_5:1.12
	REL7_4_22:1.1.2.1
	REL8_0_18:1.6.4.1
	REL8_1_14:1.7.2.1
	REL8_2_10:1.9.2.1
	REL8_3_4:1.12
	REL7_4_21:1.1.2.1
	REL8_0_17:1.6.4.1
	REL8_1_13:1.7.2.1
	REL8_2_9:1.9.2.1
	REL8_3_3:1.12
	REL7_4_20:1.1.2.1
	REL8_0_16:1.6.4.1
	REL8_1_12:1.7.2.1
	REL8_2_8:1.9.2.1
	REL8_3_2:1.12
	REL8_2_7:1.9.2.1
	REL8_3_1:1.12
	REL8_3_STABLE:1.12.0.2
	REL8_3_0:1.12
	REL8_3_RC2:1.12
	REL7_4_19:1.1.2.1
	REL8_0_15:1.6.4.1
	REL8_1_11:1.7.2.1
	REL8_2_6:1.9.2.1
	REL8_3_RC1:1.12
	REL8_3_BETA4:1.10
	REL8_3_BETA3:1.10
	REL8_3_BETA2:1.10
	REL8_3_BETA1:1.10
	REL7_4_18:1.1.2.1
	REL8_0_14:1.6.4.1
	REL8_1_10:1.7.2.1
	REL8_2_5:1.9.2.1
	REL7_4_17:1.1.2.1
	REL8_0_13:1.6.4.1
	REL8_1_9:1.7.2.1
	REL8_2_4:1.9.2.1
	REL8_0_12:1.6.4.1
	REL8_1_8:1.7.2.1
	REL8_2_3:1.9.2.1
	REL7_4_16:1.1.2.1
	REL8_0_11:1.6.4.1
	REL8_1_7:1.7.2.1
	REL8_2_2:1.9.2.1
	REL8_0_10:1.6.4.1
	REL8_1_6:1.7.2.1
	REL8_2_1:1.9
	REL7_4_15:1.1.2.1
	REL8_2_STABLE:1.9.0.2
	REL8_2_0:1.9
	REL8_2_RC1:1.9
	REL8_2_BETA3:1.8
	REL8_2_BETA2:1.8
	REL8_1_5:1.7.2.1
	REL8_0_9:1.6.4.1
	REL7_4_14:1.1.2.1
	REL8_2_BETA1:1.8
	REL7_4_13:1.1.2.1
	REL8_0_8:1.6.4.1
	REL8_1_4:1.7.2.1
	REL7_4_12:1.1.2.1
	REL8_0_7:1.6.4.1
	REL8_1_3:1.7
	REL7_4_11:1.1.2.1
	REL8_0_6:1.6.4.1
	REL8_1_2:1.7
	REL7_4_10:1.1.2.1
	REL8_0_5:1.6.4.1
	REL8_1_1:1.7
	REL8_1_STABLE:1.7.0.2
	REL8_1_0:1.7
	REL8_1_0RC1:1.7
	REL8_1_0BETA4:1.7
	REL8_1_0BETA3:1.7
	REL7_4_9:1.1.2.1
	REL8_0_4:1.6.4.1
	REL8_1_0BETA2:1.7
	REL8_1_0BETA1:1.7
	REL7_4_8:1.1.2.1
	REL8_0_3:1.6.4.1
	REL8_0_2:1.6.4.1
	REL7_4_7:1.1.2.1
	REL8_0_1:1.6
	REL8_0_STABLE:1.6.0.4
	REL8_0_0:1.6.0.2
	REL8_0_0RC5:1.5
	REL8_0_0RC4:1.5
	REL8_0_0RC3:1.5
	REL8_0_0RC2:1.5
	REL8_0_0RC1:1.4
	REL8_0_0BETA5:1.2
	REL8_0_0BETA4:1.2
	REL7_4_6:1.1.2.1
	REL8_0_0BETA3:1.1
	REL8_0_0BETA2:1.1
	REL7_4_5:1.1.2.1
	REL7_4_4:1.1.2.1
	REL8_0_0BETA1:1.1
	REL7_4_3:1.1.2.1
	REL7_4_STABLE:1.1.0.2;
locks; strict;
comment	@# @;


1.14
date	2009.07.21.19.20.32;	author petere;	state dead;
branches;
next	1.13;

1.13
date	2009.01.01.17.23.32;	author momjian;	state Exp;
branches
	1.13.2.1;
next	1.12;

1.12
date	2008.01.01.19.45.45;	author momjian;	state Exp;
branches;
next	1.11;

1.11
date	2007.12.10.00.34.06;	author momjian;	state Exp;
branches;
next	1.10;

1.10
date	2007.01.05.22.19.19;	author momjian;	state Exp;
branches;
next	1.9;

1.9
date	2006.11.20.20.58.40;	author momjian;	state Exp;
branches
	1.9.2.1;
next	1.8;

1.8
date	2006.03.05.15.58.19;	author momjian;	state Exp;
branches;
next	1.7;

1.7
date	2005.03.11.21.46.52;	author momjian;	state Exp;
branches
	1.7.2.1;
next	1.6;

1.6
date	2005.01.15.22.14.05;	author momjian;	state Exp;
branches
	1.6.4.1;
next	1.5;

1.5
date	2004.12.13.03.37.08;	author momjian;	state Exp;
branches;
next	1.4;

1.4
date	2004.12.02.15.49.22;	author momjian;	state Exp;
branches;
next	1.3;

1.3
date	2004.11.29.01.58.08;	author momjian;	state Exp;
branches;
next	1.2;

1.2
date	2004.09.30.03.50.32;	author momjian;	state Exp;
branches;
next	1.1;

1.1
date	2004.06.10.03.46.08;	author momjian;	state Exp;
branches
	1.1.2.1;
next	;

1.1.2.1
date	2004.06.10.03.46.40;	author momjian;	state Exp;
branches;
next	;

1.6.4.1
date	2005.03.11.21.47.35;	author momjian;	state Exp;
branches;
next	;

1.7.2.1
date	2006.04.05.22.56.11;	author momjian;	state Exp;
branches;
next	;

1.9.2.1
date	2007.02.01.04.56.41;	author momjian;	state Exp;
branches;
next	;

1.13.2.1
date	2009.07.21.19.21.02;	author petere;	state dead;
branches;
next	;


desc
@@


1.14
log
@Remove translated FAQs

The English FAQ has been moved to the wiki, so the translated versions should
have been removed at that point as well.

The FAQ_MINGW.html should have been removed when the platform FAQs were
integrated into the documentation (or earlier).

applied to both 8.4 and 8.5
@
text
@
                  Perguntas Frequentes (FAQ) sobre PostgreSQL
                                       
   ltima atualizao: Sex Nov 16 10:53:50 EST 2007
   
   Mantenedor atual: Bruce Momjian (bruce@@momjian.us)
   
   Traduzido por: Euler Taveira de Oliveira (euler@@timbira.com)
   
   A verso mais recente desse documento pode ser vista em
   http://www.postgresql.org/files/documentation/faqs/FAQ.html (EN).
   http://www.postgresql.org/files/documentation/faqs/FAQ_brazilian.html
   (pt_BR).
   
   Perguntas sobre plataformas especficas so respondidas em
   http://www.postgresql.org/docs/faq/.
     _________________________________________________________________
   
                              Perguntas Gerais
                                      
   1.1) O que  PostgreSQL? Como ele  pronunciado? O que  Postgres?
   1.2) Quem controla o PostgreSQL?
   1.3) Qual  a licena do PostgreSQL?
   1.4) Quais plataformas o PostgreSQL pode ser executado?
   1.5) Onde eu posso conseguir o PostgreSQL?
   1.6) Qual  a ltima verso?
   1.7) Onde eu posso conseguir suporte?
   1.8) Como eu posso submeter um relato de um bug?
   1.9) Como eu posso saber quais so os bugs conhecidos ou
   caractersticas ausentes?
   1.10) Que documentao est disponvel?
   1.11) Como eu posso aprender SQL?
   1.12) Como posso submeter uma correo (patch) ou me juntar a equipe
   de desenvolvimento?
   1.13) Como  o PostgreSQL comparado a outros SGBDs?
   1.14) O PostgreSQL gerenciar as mudanas de horrio devido ao horrio
   de vero em vrios pases?
   
                          Perguntas sobre Clientes
                                      
   2.1) Quais interfaces esto disponveis para PostgreSQL?
   2.2) Quais ferramentas esto disponveis para utilizar o PostgreSQL
   com pginas Web?
   2.3) O PostgreSQL tem interfaces grficas para interagir com usurio?
   
                         Perguntas Administrativas
                                      
   3.1) Como eu instalo o PostgreSQL em um local diferente de
   /usr/local/pgsql?
   3.2) Como eu controlo conexes de outras mquinas?
   3.3) Como eu ajusto o servidor de banco de dados para obter uma
   performance melhor?
   3.4) Quais caractersticas de depurao esto disponveis?
   3.5) Por que eu recebo "Sorry, too many clients" quando eu tento
   conectar?
   3.6) Qual  o processo de atualizao do PostgreSQL?
   3.7) Que tipo de hardware eu devo usar?
   
                           Perguntas Operacionais
                                      
   4.1) Como eu fao um SELECT somente dos primeiros registros de uma
   consulta? Um registro randmico?
   4.2) Como eu descubro quais tabelas, ndices, bancos de dados e
   usurios esto definidos? Como eu vejo as consultas utilizadas pelo
   psql para mostr-los?
   4.3) Como voc muda o tipo de dado de uma coluna?
   4.4) Qual  o tamanho mximo de um registro, uma tabela e um banco de
   dados?
   4.5) Quanto espao em disco  necessrio para armazenar dados de um
   arquivo texto?
   4.6) Por que minhas consultas esto lentas? Por que elas no esto
   utilizando meus ndices?
   4.7) Como eu vejo como o otimizador de consultas est avaliando minha
   consulta?
   4.8) Como eu fao buscas com expresses regulares e buscas com
   expresses regulares sem diferenciar mausculas de minsculas? Como eu
   utilizo um ndice para buscas sem distinguir maisculas de minsculas?
   4.9) Em uma consulta, como eu detecto se um campo  NULL? Como eu
   posso concatenar possveis NULLs? Como eu posso ordenar por um campo
   que  NULL ou no?
   4.10) Qual  a diferena entre os vrios tipos de dado de caracteres?
   4.11.1) Como eu crio um campo serial/auto incremento?
   4.11.2) Como eu consigo o valor de um campo SERIAL?
   4.11.3) currval() no lida com condio de corrida com outros
   usurios?
   4.11.4) Por que os nmeros da minha sequncia no so reutilizados
   quando uma transao  abortada? Por que h intervalos nos nmeros da
   minha sequncia/coluna SERIAL?
   4.12) O que  um OID? O que  um CTID?
   4.13) Por que eu recebo o erro "ERROR: Memory exhausted in
   AllocSetAlloc()"?
   4.14) Como eu informo qual verso do PostgreSQL eu estou utilizando?
   4.15) Como eu crio uma coluna que conter por padro a hora atual?
   4.16) Como eu fao uma juno externa (outer join)?
   4.17) Como eu fao consultas utilizando mltiplos bancos de dados?
   4.18) Como eu retorno mltiplos registros ou colunas de uma funo?
   4.19) Por que eu obtenho erros "relation with OID ###### does not
   exist" ao acessar tabelas temporrias em funes PL/PgSQL?
   4.20) Quais solues de replicao esto disponveis?
   4.21) Por que os nomes de minhas tabelas e colunas no so
   reconhecidos em minha consulta? Por que as maisculas no so
   preservadas?
     _________________________________________________________________
   
                              Perguntas Gerais
                                      
  1.1) O que  PostgreSQL? Como ele  pronunciado? O que  Postgres?
  
   PostgreSQL  pronunciado Post-Gres-Q-L. (Para os curiosos que querem
   saber como se diz "PostgreSQL", um arquivo de udio est disponvel).
   
   O PostgreSQL  um sistema de banco de dados objeto-relacional que tem
   as caractersticas de sistemas de bancos de dados comerciais
   tradicionais com melhoramentos encontrados nos sistemas SGBDs de
   prxima gerao. PostgreSQL  livre e o cdigo-fonte completo est
   disponvel.
   
   O desenvolvimento do PostgreSQL  feito por um grupo de
   desenvolvedores voluntrios (na sua maioria) espalhados pelo mundo e
   que se comunicam via Internet.  um projeto da comunidade e no 
   controlado por nenhuma empresa. Para se envolver, veja a FAQ do
   desenvolvedor em http://www.postgresql.org/docs/faqs.FAQ_DEV.html
   
   Postgres  um apelido para o PostgreSQL amplamente utilizado. Era o
   nome original do projeto em Berkeley e dentre os outros apelidos  o
   preferido. Se voc acha 'PostgreSQL' difcil de pronunciar, diga
   apenas 'Postgres'.
   
  1.2) Quem controla o PostgreSQL?
  
   Se voc est procurando por um mantenedor, comit central ou empresa
   controladora do PostgreSQL, desista --- no h um(a). Ns temos um
   comit core e committers CVS, mas estes grupos so mais para questes
   administrativas do que controle. O projeto  direcionado pela
   comunidade de desenvolvedores e usurios, que qualquer um pode se
   juntar. Tudo o que voc precisa  se inscrever nas listas de discusso
   e participar das discusses. Veja a FAQ do desenvolvedor para obter
   informaes como se envolver com o desenvolvimento do PostgreSQL.
   
  1.3) Qual  a licena do PostgreSQL?
  
   O PostgreSQL  distribudo sob a licena BSD clssica. Basicamente,
   ela permite que usurios faam qualquer coisa com o cdigo, incluindo
   revender os binrios sem o cdigo-fonte. A nica restrio  que voc
   no nos responsabilize legalmente por problemas com o programa de
   computador. H tambm a exigncia de que esta licena aparea em todas
   as cpias do programa de computador. Aqui est a licena BSD que
   usamos atualmente:
   
   PostgreSQL est sujeito a seguinte licena:
   
   PostgreSQL Data Base Management System
   
   Portions Copyright (c) 1996-2009, PostgreSQL Global Development Group
   Portions Copyright (c) 1994-1996 Regents of the University of
   California
   
   Permission to use, copy, modify, and distribute this software and its
   documentation for any purpose, without fee, and without a written
   agreement is hereby granted, provided that the above copyright notice
   and this paragraph and the following two paragraphs appear in all
   copies.
   
   IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY
   FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES,
   INCLUDING LOST PROFITS, ARISING OUT OF THE USE OF THIS SOFTWARE AND
   ITS DOCUMENTATION, EVEN IF THE UNIVERSITY OF CALIFORNIA HAS BEEN
   ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
   
   THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES,
   INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
   MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE
   PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE UNIVERSITY OF
   CALIFORNIA HAS NO OBLIGATIONS TO PROVIDE MAINTENANCE, SUPPORT,
   UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
   
  1.4) Quais plataformas o PostgreSQL pode ser executado?
  
   Em geral, qualquer plataforma moderna compatvel com Unix deve ser
   capaz de executar o PostgreSQL. As plataformas que foram testadas
   antes do lanamento de uma verso so listadas nas instrues de
   instalao.
   
   O PostgreSQL tambm executa nativamente nos sistemas operacionais
   Microsoft Windows baseados no NT tais como Win200 SP4, WinXP e
   Win2003. Um instalador pr-empacotado est disponvel em
   http://pgfoundry.org/projects/pginstaller. Verses do Windows baseadas
   no MS-DOS (Win95, Win98, WinMe) podem executar o PostgreSQL utilizando
   o Cygwin.
   
   H tambm uma verso para o Novell Netware 6 em
   http://forge.novell.com e uma verso para OS/2 (eComStation) em
   http://hobbes.nmsu.edu/cgi-bin/h-search?sh=1&button=Search&key=postgre
   SQL&stype=all&sort=type&dir=%2F.
   
  1.5) Onde eu posso conseguir o PostgreSQL?
  
   Via navegador web, utilize http://www.postgresql.org/ftp/ e via ftp,
   utilize ftp://ftp.postgresql.org/pub/.
   
  1.6) Qual  a ltima verso?
  
   A ltima verso do PostgreSQL  a verso 8.2.5.
   
   Ns planejamos lanar verses novas a cada ano com verses corretivas
   em alguns meses.
   
  1.7) Onde eu posso conseguir suporte?
  
   A comunidade do PostgreSQL fornece assistncia a muitos de seus
   usurios via e-mail. O principal stio web para inscrio nas listas
   de e-mail  http://www.postgresql.org/community/lists/. As listas
   general e bugs so um bom lugar para incio.
   
   O principal canal de IRC  o #postgresql na Freenode
   (irc.freenode.net). Para se conectar voc pode utilizar o comando Unix
   irc -c '#postgresql' "$USER" irc.freenode.net ou utilizar qualquer
   outro cliente de IRC. Um canal hispnico (#postgresql-es) e um francs
   (#postgresqlfr) tambm existem na mesma rede. H tambm um canal
   PostgreSQL na EFNet.
   
   Uma lista de empresas que prestam suporte comercial est disponvel em
   http://www.postgresql.org/support/professional_support.
   
  1.8) Como eu informo a existncia de um bug?
  
   Visite o formulrio que reporta bugs do PostgreSQL em
   http://www.postgresql.org/support/submitbug.
   
   Verifique tambm o nosso ftp ftp://ftp.postgresql.org/pub para ver se
   h uma verso mais recente do PostgreSQL.
   
   Bugs submetidos utilizando o formulrio ou informado a qualquer lista
   de discusso do PostgreSQL tipicamente gera uma das seguintes
   respostas:
     * No  um bug e o porqu
     *  um bug conhecido e j est na lista de AFAZERES
     * O bug foi corrigido na verso atual
     * O bug foi corrigido mas no foi empacotado em um verso oficial
     * Um pedido foi feito para obter informaes detalhadas:
          + Sistema Operacional
          + Verso do PostgreSQL
          + Exemplo de teste que reproduz o bug
          + Informaes sobre depurao
          + Sada reconstituidora de vestgios (backtrace) do depurador
     * O bug  novo. O seguinte pode ocorrer:
          + Uma correo  criada e ser includa na prxima verso
          + O bug no pode ser corrigido imediatamente e  adicionado a
            lista de AFAZERES
       
  1.9) Como eu posso saber quais so os bugs conhecidos ou funcionalidades
  ausentes?
  
   O PostgreSQL suporta um subconjunto extendido do SQL:2003. Veja nossa
   lista de AFAZERES que contm bugs conhecidos, funcionalidades ausentes
   e planos futuros.
   
   Uma solicitao de funcionalidade geralmente resulta em uma das
   seguintes respostas:
     * A funcionalidade j est na lista de AFAZERES
     * A funcionalidade no  desejvel porque:
          + Ela duplica uma funcionalidade existente que j segue o
            padro SQL
          + A funcionalidade aumentar a complexidade do cdigo mas
            adicionar pouco benefcio
          + A funcionalidade ser insegura ou no-confivel
     * A nova funcionalidade  adicionada a lista de AFAZERES
       
   O PostgreSQL no utiliza sistema de acompanhamento de bugs porque ns
   achamos mais eficiente responder diretamente o e-mail e manter a lista
   de AFAZERES atualizada. Na prtica, bugs no duram muito no programa;
   e bugs que afetam uma grande quantidade de usurios so corrigidos
   rapidamente. O nico lugar para encontrar todas as mudanas, melhorias
   e correes em uma verso do PostgreSQL  ler as mensagens de log do
   CVS. At mesmo as notas de lanamento no listam todas as mudanas
   feitas no programa.
   
  1.10) Que documentao est disponvel?
  
   O PostgreSQL inclui vasta documentao, incluindo um manual extenso,
   pginas de manuais (man pages) e alguns exemplos teste. Veja o
   diretrio /doc. Voc tambm pode pesquisar os manuais online em
   http://www.postgresql.org/docs.
   
   H dois livros sobre PostgreSQL disponveis online em
   http://www.postgresql.org/docs/books/awbook.html e
   http://www.commandprompt.com/ppbook/. H uma lista de livros sobre
   PostgreSQL disponveis para compra. Um dos mais populares  o do Korry
   Douglas. Uma lista de anlise sobre os livros pode ser encontrada em
   http://www.postgresql.org/docs/books/. H tambm uma coleo de
   artigos tcnicos sbore PostgreSQL em
   http://www.postgresql.org/docs/techdocs/.
   
   O programa cliente de linha de comando psql tem alguns comandos \d
   para mostrar informaes sobre tipos, operadores, funes, agregaes,
   etc. - utilize \? para mostrar os comandos disponveis.
   
   Nosso stio web contm ainda mais documentao.
   
  1.11) Como eu posso aprender SQL?
  
   Primeiro, considere os livros especficos sobre PostgreSQL mencionados
   acima. Muitos de nossos usurios gostam do The Practical SQL Handbook,
   Bowman, Judith S., et al., Addison-Wesley. Outros do The Complete
   Reference SQL, Groff et al., McGraw-Hill.
   
   H tambm bons tutoriais disponveis online:
     * http://www.intermedia.net/support/sql/sqltut.shtm
     * http://sqlcourse.com
     * http://www.w3schools.com/sql/default.asp
     * http://mysite.verizon.net/Graeme_Birchall/id1.html
       
  1.12) Como posso submeter uma correo (patch) ou me juntar a equipe de
  desenvolvimento?
  
   Veja a FAQ do Desenvolvedor.
   
  1.13) Como  o PostgreSQL comparado a outros SGBDs?
  
   H vrias maneiras de se medir um software: funcionalidades,
   performance, confiabilidade, suporte e preo.
   
   Funcionalidades
          PostgreSQL tem muitas caractersticas presentes em muitos SGBDs
          comerciais como transaes, subconsultas, gatilhos, vises,
          integridade referencial de chave estrangeira e bloqueio (lock)
          sofisticado. Ns temos algumas funcionalidades que eles no
          tem, como tipos definidos pelo usurio, herana, regras e
          controle de concorrncia de mltiplas verses para reduzir
          bloqueios (locks).
          
   Performance
          A performance do PostgreSQL  comparvel a outros bancos de
          dados comerciais e de cdigo livre. Ele  mais rpido em
          algumas coisas, mais lento em outras. Nossa performance 
          geralmente +/- 10% comparada a de outros bancos de dados.
          
   Confiabilidade
          Ns sabemos que um SGBD deve ser confivel ou ele  intil. Ns
          empenhamos em lanar verses bem testadas, de cdigo estvel e
          que tenha o mnimo de bugs. Cada verso tem no mnimo um ms de
          teste em verso beta, e nosso histrico de verses mostra que
          ns podemos fornecer verses estveis e slidas que esto
          prontas para uso em produo. Ns acreditamos que somos
          comparados a nosso favor com outros sistemas de bancos de dados
          nessa rea.
          
   Suporte
          Nossas listas de discusso fornecem contato com um grupo de
          desenvolvedores e usurios para ajudar a resolver muitos
          problemas encontrados. Enquanto ns no podemos garantir o
          conserto, SGBDs comerciais nem sempre fornecem tambm. Com
          acesso direto aos desenvolvedores, a comunidade de usurios,
          manuais e o cdigo fonte faz com que o suporte do PostgreSQL
          seja superior ao de outros SGBDs. H suporte comercial por
          incidente disponveis para aqueles que precisam de um. (Veja
          seo 1.7 da FAQ).
          
   Preo
          Ns somos livres para uso dele tanto comercial quanto no
          comercial. Voc pode adicionar nosso cdigo ao seu produto sem
          limitaes, exceto aquelas descritas na nossa licena BSD
          mencionada acima.
          
  1.14) O PostgreSQL gerenciar mudanas no horrio devido ao horrio de vero
  em vrios pases?
  
   Mudanas no horrio de vero dos USA foram includas nas verses 8.0
   .[4+] do PostgreSQL e em todas as verses grandes, i.e. 8.1. Mudanas
   no Canad e Austrlia Oeste foram includas na 8.0.[10+], 8.1.[6+] e
   em todas as verses grandes subsequentes. Verses do PostgreSQL
   anteriores a 8.0 utilizam o banco de dados de zona horria do sistema
   operacional para informaes sobre horrio de vero.
     _________________________________________________________________
   
                          Perguntas sobre Clientes
                                      
  2.1) Quais interfaces esto disponveis para PostgreSQL?
  
   A instalao do PostgreSQL inclui somente as interfaces C e C
   embutida. Todas as outras interfaces so projetos independentes que
   podem ser obtidos separadamente; sendo separados permitem que eles
   tenham suas prprias datas de lanamento e time de desenvolvedores.
   
   Algumas linguagens de programao como PHP incluem uma interface para
   PostgreSQL. Interfaces para linguagens como Perl, TCL, Python e muitas
   outras esto disponveis em http://www.pgfoundry.org.
   
  2.2) Quais ferramentas esto disponveis para utilizar o PostgreSQL com
  pginas Web?
  
   Uma boa introduo para pginas web que utilizam bancos de dados pode
   ser vista em: http://www.webreview.com
   
   Para integrao na Web, PHP (http://www.php.net)  uma excelente
   interface.
   
   Para casos complexos, muitos usam a Interface Perl e DBD::Pg com
   CGI.pm ou mod_perl.
   
  2.3) O PostgreSQL tem interfaces grficas para iteragir com o usurio?
  
   H um vasto nmero de Ferramentas Grficas (GUI), que esto
   disponveis para o PostgreSQL, comerciais e de desenvolvedores de
   cdigo aberto. Uma lista detalhada pode ser encontrada em Documentao
   da Comunidade PostgreSQL
     _________________________________________________________________
   
                         Perguntas Administrativas
                                      
  3.1) Como eu instalo o PostgreSQL em um local diferente de /usr/local/pgsql?
  
   Especifique a opo --prefix quando executar o configure.
   
  3.2) Como eu controlo conexes de outras mquinas?
  
   Por padro, o PostgreSQL s permite conexes da mquina local
   utilizando soquetes de domnio Unix ou conexes TCP/IP. Outras
   mquinas no podero conectar-se a menos que voc modifique
   listen_addresses no postgresql.conf, habilite a autenticao por
   mquina modificando o arquivo $PGDATA/pg_hba.conf e reinicie o
   servidor PostgreSQL.
   
  3.3) Como eu ajusto o servidor de banco de dados para obter uma performance
  melhor?
  
   H trs grandes reas para melhorar a performance em potencial:
   
   Mudana de Consultas
          Isto involve modificar consultas para obter melhor performance:
          
          + Criao de ndices, incluir expresses e ndices parciais
          + Utilizao o COPY ao invs de mltiplos comandos INSERTs
          + Agrupamento de mltiplos comandos em uma nica transao para
            diminuir a despesa com efetivaes (commit)
          + Utilizao do CLUSTER quando recuperar vrios registros de um
            ndice
          + Utilizao do LIMIT para retornar um subconjunto da sada da
            consulta
          + Utilizao de Consultas preparadas
          + Utilizao de ANALYZE para manter as estatsticas do
            otimizador corretas
          + Utilizao regular do VACUUM ou pg_autovacuum
          + Remoo de ndices durante grande mudana de dados
            
   Configurao do Servidor
          Um grande nmero de configuraes que afetam a performance.
          Para obter detalhes adicionais, veja Administration
          Guide/Server Run-time Environment/Run-time Configuration para
          listagem completa, e para comentrios veja
          http://www.varlena.com/varlena/GeneralBits/Tidbits/annotated_co
          nf_e.html e
          http://www.varlena.com/varlena/GeneralBits/Tidbits/perf.html.
          
   Seleo do Hardware
          O efeito do hardware na performance  detalhado em
          http://www.powerpostgresql.com/PerfList/ e
          http://momjian.us/main/writings/pgsql/hw_performance/index.html
          .
          
  3.4) Quais caractersticas de depurao esto disponveis?
  
   H muitas variveis de configurao do servidor log_* que habilitam a
   exibio de consultas e estatsticas que podem ser muito teis para
   depurao e medidas de performance.
   
  3.5) Por que eu recebo "Sorry, too many clients" quando eu tento conectar?
  
   Voc atingiu o limite padro de 100 sesses. Voc precisa aumentar o
   limite do servidor PostgreSQL, que diz quantos processos servidor
   concorrentes ele pode iniciar, alterando o valor max_connections no
   postgresql.conf e reiniciando o postmaster.
   
  3.6) Qual  o processo de atualizao do PostgreSQL?
  
   Veja http://www.postgresql.org/support/versioning para discusso geral
   sobre atualizaes e
   http://www.postgresql.org/docs/current/static/install-upgrading.html
   para instrues especficas.
   
  3.7) Que tipo de hardware eu devo usar?
  
   Por causa do hardware de PC ser em sua maioria compatvel, pessoas
   tendem a acreditar que todos os hardwares de PC so de mesma
   qualidade. No  verdade. ECC RAM, SCSI e placas me de qualidade so
   mais confiveis e tm uma melhor performance do que hardwares mais
   baratos. O PostgreSQL executar em quase todo hardware, mas se a
   confiabilidade e a performance forem importantes  prudente pesquisar
   sobre as opes de hardware. Nossas listas de discusso podem ser
   usadas para discutir opes de hardware e dilemas.
     _________________________________________________________________
   
                           Perguntas Operacionais
                                      
  4.1) Como eu fao um SELECT somente dos primeiros registros de uma consulta?
  Um registro randmico?
  
   Para obter somente alguns registros, se voc sabe o nmero de
   registros necessrios ao executar o SELECT utilize o LIMIT. Se um
   ndice corresponde no ORDER BY  possvel que a consulta toda no
   tenha que ser executada. Se voc no sabe o nmero de registros ao
   executar o SELECT, utilize um cursor e o FETCH.
   
   Para obter um registro randmico, utilize:
    SELECT col
    FROM tab
    ORDER BY random()
    LIMIT 1;

  4.2) Como eu descubro quais tabelas, ndices, bancos de dados e usurios
  esto definidos? Como eu vejo as consultas utilizadas pelo psql para
  mostr-los?
  
   Utilize o comando \dt para ver tabelas no psql. Para obter uma lista
   completa dos comandos no psql voc pode utilizar \?. Alternativamente,
   voc pode ler o cdigo-fonte do psql no arquivo
   pgsql/src/bin/psql/describe.c, ele contm os comandos SQL que geram a
   sada para os comandos de contrabarra do psql. Voc tambm pode
   iniciar o psql com a opo -E para que as consultas utilizadas para
   executar os comandos que voc informou seja exibida. O PostgreSQL
   tambm fornece uma inteface compatvel com SQL do INFORMATION SCHEMA
   que voc pode consultar para obter informao sobre o banco de dados.
   
   H tambm tabelas do sistema que comeam com pg_ que os descrevem
   tambm.
   
   Utilizando o psql -l listar todos os bancos de dados.
   
   Veja tambm o arquivo pgsql/src/tutorial/syscat.source. Ele ilustra
   muitos dos comandos SELECTs necessrios para obter informao das
   tabelas de sistema do banco de dados.
   
  4.3) Como voc muda o tipo de dado de uma coluna?
  
   Mudar o tipo de dado de uma coluna pode ser feito facilmente na verso
   8.0 ou superior com ALTER TABLE ALTER COLUMN TYPE.
   
   Em verses anteriores, faa isso:
    BEGIN;
    ALTER TABLE tab ADD COLUMN col_nova novo_tipo_dado;
    UPDATE tab SET col_nova = CAST(col_antiga AS novo_tipo_dado);
    ALTER TABLE tab DROP COLUMN col_antiga;
    COMMIT;

   Voc pode ento querer fazer um VACUUM FULL tab para recuperar o
   espao em disco utilizado pelos registros expirados.
   
  4.4) Qual  o tamanho mximo de um registro, uma tabela e um banco de dados?
  
   Estes so os limites:
   
   Tamanho mximo de um banco de dados? ilimitado (existem bancos de
   dados de 32 TB)
   Tamanho mximo de uma tabela? 32 TB
   Tamanho mximo de um registro? 400 GB
   Tamanho mximo de um campo? 1 GB
   Nmero mximo de registros em uma tabela? ilimitado
   Nmero mximo de colunas em uma tabela? 250-1600 dependendo dos tipos
   das colunas
   Nmero mximo de ndices em uma tabela? ilimitado
   
    claro, que eles no so ilimitados, mas limitados ao espao em disco
   disponvel e espao em memria/swap. A Performance ser penalizada
   quando estes valores se tornarem grandes.
   
   O tamanho mximo de uma tabela com 32 TB no requer suporte a arquivos
   grandes do sistema operacional. Tabelas grandes so armazenadas como
   mltiplos arquivos de 1 GB ento o limite do sistema de arquivos no 
   importante.
   
   O tamanho mximo de uma tabela, o tamanho de um registro e o nmero
   mximo de colunas podem ser quadruplicados aumentando-se o tamanho
   padro do bloco para 32k. O tamanho mximo de uma tabela pode tambm
   ser aumentado utilizando particionamento de tabela.
   
   Uma limitao  que ndices no podem ser criados em colunas maiores
   do que 2.000 caracteres. Felizmente, tais ndices so raramente
   necessrios. Unicidade  melhor garantida por um ndice de uma funo
   de um hash MD5 de uma coluna longa, e indexao de texto longo permite
   a busca de palavras dentro da coluna.
   
  4.5) Quanto espao em disco  necessrio para armazenar dados de um arquivo
  texto?
  
   Um banco de dados PostgreSQL ir requerer at cinco vezes a quantidade
   de espao requerida para armazenar dados em um arquivo texto.
   
   Como um exemplo, considere um arquivo com 100.000 linhas contendo um
   inteiro e uma descrio em cada linha. Suponha que o tamanho mdio da
   descrio  de vinte bytes. O arquivo ter 2,8 MB. O tamanho do
   arquivo do banco de dados PostgreSQL que contm esses dados pode ser
   estimado em 5,2 MB:
    24 bytes: cada cabealho de registro (aproximadamente)
    24 bytes: um campo int e um campo texto
   + 4 bytes: ponteiro na pgina para a tupla
   -------------------------------------------
    52 bytes por registro

   O tamanho de uma pgina de dados no PostgreSQL  8192 bytes (8 KB), ento:

   8192 bytes por pgina
   ------------------------   =  158 registros por pgina do banco de dados (arredondado para baixo)
     52 bytes por registro

   100000 registros de dados
   ----------------------------  =  633 pginas do banco de dados (arredondadopara cima)
      158 registros por pgina

633 pginas do banco de dados * 8192 bytes por pgina  =  5.185.536 bytes (5,2MB)

   ndices no requerem muito espao, mas contm dados que foram
   indexados, ento eles podem ocupar algum espao.
   
   NULLs so armazenados como bitmaps, ento eles utilizam muito pouco
   espao.
   
  4.6) Por que minhas consultas esto lentas? Por que elas no esto utilizando
  meus ndices?
  
   ndices no so utilizados por toda consulta. ndices so utilizados
   somente se a tabela  maior do que um tamanho mnimo, e a consulta
   seleciona somente uma pequena porcentagem dos registros da tabela.
   Isto porque o acesso randmico ao disco causado pela busca indexada
   pode ser mais lento do que uma leitura ao longo da tabela ou busca
   sequencial.
   
   Para determinar se um ndice deveria ser utilizado, o PostgreSQL deve
   ter estatsticas sobre a tabela. Estas estatsticas so coletadas
   utilizando o VACUUM ANALYZE ou simplesmente o ANALYZE. Utilizando
   estatsticas, o otimizador sbae quantos registros esto na tabela, e
   pode melhor determinar se ndices deveriam ser utilizados.
   Estatsticas tambm so teis para determinar a ordem de juno tima
   e mtodos de juno. Coleo de estatsticas deveriam ser feitas
   periodicamente a medida que o contedo da tabela muda.
   
   ndices no so normalmente utilizados para ORDER BY ou para fazer
   junes. Uma busca sequencial seguido por uma ordenao explcita 
   geralmente mais rpida do que uma busca indexada em uma tabela grande.
   Contudo, LIMIT combinado com ORDER BY frequentemente utilizar ndice
   porque somente uma pequena poro da tabela ser retornada.
   
   Se voc acredita que o otimizador est incorreto ao escolher uma busca
   sequencial, utilize SET enable_seqscan TO 'off' e execute a consulta
   novamente para ver se uma busca indexada  realmente mais rpida.
   
   Ao utilizar operadores curinga tais como LIKE ou ~, ndices podem ser
   utilizados somente em algumas condies:
     * O incio da cadeia de caracteres da busca deve ser iniciar com uma
       cadeia de caracteres, i.e.
          + modelos LIKE no devem iniciar com %.
          + modelos ~ (expresses regulares) devem iniciar com ^.
     * A cadeia de caracteres utilizada na busca no pode iniciar com a
       classe de caracteres e.g. [a-e].
     * Busca que no diferenciam maisculas de minsculas tais como ILIKE
       e ~* no utilizam ndices. Em vez disso, utilize ndice de
       expresso, que  descrito na seo 4.8.
     * O idioma padro C deve ser usando durante o initdb porque no 
       possvel saber o prximo caracter em idiomas que no sejam o C.
       Voc pode criar um ndice especial text_pattern_ops para tais
       casos que funcionam somente para indexao com LIKE. Tambm 
       possvel utilizar indexao de busca textual para buscas por
       palavras.
       
   Em verses anteriores a 8.0, ndices frequentemente no podem ser
   utilizados a menos que os tipos de dados correspondam aos tipos de
   coluna do ndice. Isto era particularmente verdadeiro para ndices de
   coluna int2, int8 e numeric.
   
  4.7) Como eu vejo como o otimizador de consulta est avaliando a minha
  consulta?
  
   Veja o comando EXPLAIN no manual.
   
  4.8) Como eu fao buscas com expresses regulares e buscas com expresses
  regulares sem diferenciar maisculas de minsculas? Como eu utilizo um ndice
  para buscas que no diferenciam maisculas de minsculas?
  
   O operador ~ faz avaliao de expresses regulares, e ~* faz avaliao
   no sensvel a maisculas de expresses regulares. A variante no
   sensvel a maisculas do LIKE  chamada de ILIKE.
   
   Comparaes de igualdade no sensveis a maisculas so normalmente
   expressadas como:
    SELECT *
    FROM tab
    WHERE lower(col) = 'abc';

   Isso no ir utilizar o ndice padro. Contudo, se voc criar um
   ndice de expresso, ele ser utilizado:
    CREATE INDEX tabindex ON tab (lower(col));

   Se o ndice acima  criado como UNIQUE, embora a coluna possa
   armazenar caracteres maisculos e minsculos, ele no pode ter valores
   idnticos que diferem apenas em letras maisculas e minsculas. Para
   forar uma letra maiscula ou minscula a ser armazenada na coluna,
   utilize uma restrio CHECK ou um gatilho.
   
  4.9) Em uma consulta, como eu detecto se um campo  NULL? Como eu posso
  concatenar possveis NULLs? Como eu posso ordenar por um campo que  NULL ou
  no?
  
   Voc testa a coluna com IS NULL e IS NOT NULL, como a seguir:
   SELECT *
   FROM tab
   WHERE col IS NULL;

   Para concatenar com possveis NULLs, utilize COALESCE(), assim:
   SELECT COALESCE(col1, '') || COALESCE(col2, '')
   FROM tab

   Para ordenar pelo status NULL, utilize os modificadores IS NULL e IS
   NOT NULL na sua clusula ORDER BY. Coisas que so verdadeiro sero
   ordenadas acima das coisas que so falso, ento a consulta a seguir
   ir colocar entradas NULL no incio da lista de resultados:
   SELECT *
   FROM tab
   ORDER BY (col IS NOT NULL)

  4.10) Qual  a diferena entre os vrios tipos de dado de caracteres?
  
   Tipo Nome Interno Observao
   VARCHAR(n) varchar tamanho especifica o tamanho mximo, sem
   preenchimento
   CHAR(n) bpchar preenchimento em branco para comprimento fixo
   especfico
   TEXT text nenhum limite superior especfico no comprimento
   BYTEA bytea vetor de bytes de comprimento varivel (seguro a byte
   nulo)
   "char" char um caracter
   
   Voc ver o nome interno quando examinar o catlogo do sistema e em
   algumas mensagens de erro.
   
   Os primeiros quatro tipos acima so do tipo "varlena" (i.e., os
   primeiros quatro bytes no disco so o comprimento seguido pelos
   dados). Consequentemente o espao atual utilizado  ligeiramente maior
   do que o tamanho declarado. Contudo, valores longos so tambm
   sujeitos a compresso, ento o espao em disco pode tambm ser bem
   menor do que o esperado.
   VARCHAR(n)  melhor quando est armazenando cadeias de caracteres de
   comprimento varivel e h um limite de tamanho desta cadeia. TEXT 
   para cadeias de caracteres de comprimento ilimitado, com o mximo de
   um gigabyte.
   
   CHAR(n)  para armazenar cadeias de caracteres que so todas do mesmo
   tamanho. CHAR(n) preenche com espaos em branco at o tamanho
   especificado, enquanto o VARCHAR(n) armazena somente os caracteres
   fornecidos. BYTEA  para armazenar dados binrios, particularmente
   valores que incluem bytes NULL. Todos os tipos descritos aqui tem
   caractersticas de performance similares.
   
  4.11.1) Como eu crio um campo serial/auto incremento?
  
   PostgreSQL suporta o tipo de dados SERIAL. Ele cria automaticamente
   uma sequncia. Por exemplo:
    CREATE TABLE pessoa (
        id   SERIAL,
        nome TEXT
    );

    automaticamente traduzido em:
    CREATE SEQUENCE pessoa_id_seq;
    CREATE TABLE pessoa (
        id   INT4 NOT NULL DEFAULT nextval('pessoa_id_seq'),
        nome TEXT
    );

   Sequncias automaticamente criadas so nomeadas como
   <tabela>_<colunaserial>_seq, onde tabela e colunaserial so os nomes
   da tabela e da coluna serial, respectivamente. Veja a pgina sobre
   create_sequence no manual para obter informaes adicionais sobre
   sequncias.
   
  4.11.2) Como eu consigo o valor de um campo SERIAL?
  
   A maneira mais simples de obter o prximo valor SERIAL de uma
   sequncia  com RETURNING. Utilizando o exemplo da tabela em 4.11.1,
   ele ficaria assim:
    INSERT INTO pessoa (nome) VALUES ('Blaise Pascal') RETURNING id;

   Voc tambm pode chamar nextval() e utilizar o valor no INSERT ou
   chamar currval() aps o INSERT.
   
  4.11.3) currval() no lida com condio de corrida com outros usurios?
  
   No. currval() retorna o valor atual atribuido pela sua sesso, e no
   por todas as sesses.
   
  4.11.4) Por que os nmeros da minha sequncia no so reutilizados quando uma
  transao  abortada? Por que h intervalos nos nmeros da minha
  sequncia/coluna SERIAL?
  
   Para melhorar a concorrncia, valores da sequncia so atribudos a
   transaes correntes e no so travados at que a transao seja
   finalizada. Isso causa intervalos na numerao por causa de transaes
   abortadas.
   
  4.12) O que  um OID? O que  um CTID?
  
   Se uma tabela  criada com WITH OIDS, cada registro recebe um OID
   nico. OIDs so automaticamente atribudos como inteiros de 4 bytes
   que so nicos ao longo de toda instalao. Contudo, eles so
   limitados em 4 bilhes e, ento, os OIDs comeam a ser duplicados. O
   PostgreSQL utiliza OIDs para ligar as tabelas do sistema.
   
   Para numerar registros nas tabelas do usurios,  melhor utilizar
   SERIAL ao invs de OIDs porque sequncias SERIAL so nicas somente em
   uma tabela; e so menos propcias a atingir o limite. SERIAL8 est
   disponvel para armazenar valores de sequncias com oito bytes.
   
   CTIDs so utilizados para identificar registros fsicos especficos
   com valores de block e deslocamento. CTIDs mudam aps registros serem
   modificados ou recarregados. Eles so utilizados por ndices para
   apontar registros fsicos.
   
  4.13) Por que eu recebo o erro "ERROR: Memory exhausted in AllocSetAlloc()"?
  
   Voc provavelmente est sem memria virtual no seu sistema, ou o seu
   ncleo (kernel) tem um limite baixo para certos recursos. Tente isto
   antes de iniciar o servidor PostgreSQL:
    ulimit -d 262144
    limit datasize 256m

   Dependendo da sua shell, somente um desses comando ter sucesso, mas
   ele definir o segmento de dados do seu processo com um limite maior e
   talvez permita que a consulta seja feita. Este comando  aplicado ao
   processo atual e todos os subprocessos criados depois do comando ser
   executado. Se voc tiver problemas com o cliente SQL porque o processo
   servidor retornou muitos dados, tente-o antes de iniciar o cliente.
   
  4.14) Como eu informo qual verso do PostgreSQL eu estou utilizando?
  
   No psql, digite SELECT version();
   
  4.15) Como eu crio uma coluna que conter por padro a hora atual?
  
   Utilize CURRENT_TIMESTAMP:
        CREATE TABLE teste (x int, modtime timestamp DEFAULT CURRENT_TIMESTAMP);

  4.16) Como eu fao uma juno externa (outer join)?
  
   PostgreSQL suporta junes externas utilizando a sintaxe padro do
   SQL. Aqui temos dois exemplos:
    SELECT *
    FROM t1 LEFT OUTER JOIN t2 ON (t1.col = t2.col);

   or
    SELECT *
    FROM t1 LEFT OUTER JOIN t2 USING (col);

   Essas duas consultas indnticas juntam t1.col com t2.col, e tambm
   retornam qualquer registro que no foi juntado em t1 (aqueles que no
   combinaram com t2). Uma juno a direita RIGHT adicionaria registros
   que no foram juntados da tabela t2. Uma juno completa (FULL)
   retornaria os registros combinados mais todos os registros no
   combinados de t1 e t2. A palavra OUTER  opcional e  assumida nas
   junes LEFT, RIGHT e FULL. Junes ordinrias so chamadas junes
   internas (INNER).
   
  4.17) Como eu fao consultas utilizando mltiplos bancos de dados?
  
   No h outra maneira de consultar um banco de dados caso ele no seja
   o atual. Porque o PostgreSQL carrega catlogos do sistema especficos
   do banco de dados,  incerto como uma consulta em banco de dados
   distintos pode se comportar.
   
   contrib/dblink permite consultas em bancos de dados distintos
   utilizando chamadas de funes.  claro, que um cliente pode fazer
   conexes simultneas em bancos de dados diferentes e juntar os
   resultados no cliente.
   
  4.18) Como eu retorno mltiplos registros ou colunas de uma funo?
  
    fcil utilizando funes que retornam conjunto,
   http://www.postgresql.org/docs/techdocs.17.
   
  4.19) Por que eu obtenho erros "relation with OID ###### does not exist" ao
  acessar tabelas temporrias em funes PL/PgSQL?
  
   Em verses do PostgreSQL < 8.3, PL/PgSQL armazena o contedo da
   funo, e o efeito indesejado  que se uma funo PL/PgSQL acessa uma
   tabela temporria, e aquela tabela  removida e criada novamente, e a
   funo  chamada novamente, a funo ir falhar porque o contedo
   armazenado da funo ainda apontar para a tabela temporria antiga. A
   soluo  utilizar o EXECUTE para acesso a tabelas temporrias no
   PL/PgSQL. Isto ir fazer com que a consulta seja avaliada toda vez.
   
   Este problema no ocorre no PostgreSQL 8.3 ou superior.
   
  4.20) Quais solues de replicao esto disponveis?
  
   Embora "replicao" seja um termo simples, h vrias tecnologias para
   fazer replicao, com vantagens e desvantagens para cada um.
   
   Replicao mestre/escravo permite que um mestre receba consultas de
   leitura e escrita, enquanto os escravos s podem aceitar
   leitura/consultas SELECT. A soluo mais popular de replicao
   mestre-escravo para PostgreSQL disponvel livremente  Slony-I.
   
   Replicao com mltiplos mestres permite que consultas leitura/escrita
   sejam enviadas para mltiplos computadores replicadores. Esta
   capacidade tambm tem um srio impacto na performance por causa da
   necessidade de sincronizar as mudanas entre os servidores. PGCluster
    a soluo mais popular disponvel livremente para PostgreSQL.
   
   H tambm solues de replicao comerciais e baseadas em hardware
   disponveis que suportam uma variedade de modelos de replicao.
   
  4.21) Por que os nomes de minhas tabelas e colunas no so reconhecidos em
  minha consulta? Por que as maisculas no so preservadas?
  
   A causa mais comum de nomes desconhecidos  o uso de aspas ao redor
   dos nomes da tabela ou coluna durante a criao da tabela. Ao utilizar
   aspas, nomes de tabela e coluna (chamados de identificadores) so
   armazenados como especificado, significando que voc deve utilizar
   aspas quando se referir aos nomes na consulta. Algumas interfaces,
   como pgAdmin, automaticamente colocam aspas nos identificadores
   durante a criao da tabela. Ento, para identificadores serem
   reconhecidos, voc deve:
     * Evitar colocar aspas no identificador ao criar tabelas
     * Utilizar somente caracteres minsculos em identificadores
     * Colocar aspas em identificadores ao referenci-los nas consultas
@


1.13
log
@Update copyright for 2009.
@
text
@@


1.13.2.1
log
@Remove translated FAQs

The English FAQ has been moved to the wiki, so the translated versions should
have been removed at that point as well.

The FAQ_MINGW.html should have been removed when the platform FAQs were
integrated into the documentation (or earlier).

applied to both 8.4 and 8.5
@
text
@@


1.12
log
@Update copyrights in source tree to 2008.
@
text
@d154 1
a154 1
   Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group
@


1.11
log
@Update Brazilian FAQ.

Euler Taveira de Oliveira
@
text
@d154 1
a154 1
   Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
@


1.10
log
@Update CVS HEAD for 2007 copyright.  Back branches are typically not
back-stamped for this.
@
text
@d4 1
a4 1
   ltima atualizao: Sb Out 14 19:08:19 EDT 2006
d21 1
a21 1
   1.1) O que  PostgreSQL? Como ele  pronunciado?
d36 2
d56 2
a57 2
   3.6) Qual  o processo de atualizao do PostgreSQL? 3.7) Que tipo de
   hardware eu devo usar?
d79 2
a80 1
   posso ordenar por um campo que  NULL ou no?
d101 2
a102 1
   reconhecidos em minha consulta?
d107 1
a107 1
  1.1) O que  PostgreSQL? Como ele  pronunciado?
d109 2
a110 3
   PostgreSQL  pronunciado Post-Gres-Q-L, e , s vezes, referido apenas
   como Postgres. Um arquivo de udio est disponvel em formato MP3 para
   aqueles que gostariam de ouvir a pronncia.
d122 6
a127 2
   desenvolvedor em
   http://www.postgresql.org/files/documentation/faqs/FAQ_DEV.html
d199 1
a199 1
   utilize ftp://ftp.PostgreSQL.org/pub/.
d203 1
a203 1
   A ltima verso do PostgreSQL  a verso 8.1.5.
d230 1
a230 1
   Verifique tambm o nosso ftp ftp://ftp.PostgreSQL.org/pub para ver se
d237 1
a237 1
     *  um bug conhecido e j est na lista de AFAZERES (TODO)
d249 1
a249 1
            lista de AFAZERES (TODO)
d255 2
a256 2
   lista de AFAZERES (TODO) que contm bugs conhecidos, funcionalidades
   ausentes e planos futuros.
d260 1
a260 1
     * A funcionalidade j est na lista de AFAZERES (TODO)
d267 1
a267 1
     * A nova funcionalidade  adicionada a lista de AFAZERES (TODO)
d271 6
a276 6
   de AFAZERES (TODO) atualizada. Na prtica, bugs no duram muito no
   programa; e bugs que afetam uma grande quantidade de usurios so
   corrigidos rapidamente. O nico lugar para encontrar todas as
   mudanas, melhorias e correes em uma verso do PostgreSQL  ler as
   mensagens de log do CVS. At mesmo as notas de lanamento no listam
   todas as mudanas feitas no programa.
d283 1
a283 1
   http://www.PostgreSQL.org/docs.
d290 3
a292 1
   http://techdocs.PostgreSQL.org/techdocs/bookreviews.php.
d303 3
a305 5
   acima. Outro  o "Teach Yourself SQL in 21 Days, Second Edition" e
   http://members.tripod.com/er4ebus/sql/index.htm. Muitos de nossos
   usurios gostam do The Practical SQL Handbook, Bowman, Judith S., et
   al., Addison-Wesley. Outros do The Complete Reference SQL, Groff et
   al., McGraw-Hill.
d357 1
a357 1
          seo 1.7 da FAQ.)
d364 10
d387 1
a387 2
   outras esto disponveis em http://gborg.postgresql.org na seo de
   Drivers/Interfaces ou via busca na Internet.
d469 2
a470 2
   Voc atingiu o limite padro que  de 100 sesses. Voc precisa
   aumentar o limite do postmaster, que diz quantos processos servidor
d476 4
a479 16
   O time do PostgreSQL faz somente pequenas mudanas entre verses
   corretivas, ento atualizar da verso 7.4.8 para 7.4.9 no requer uma
   exportao e uma importao; basta para o servidor de banco de dados,
   instalar os binrios atualizados e reiniciar o servidor.
   
   Todos os usurios devem atualizar para as verses corretivas mais
   recentes assim que elas estiverem disponveis. Enquanto cada
   atualizao tem algum risco, verses corretivas do PostgreSQL so
   projetadas para corrigir somente bugs comuns com um risco mnimo. A
   comunidade considera no atualizar mais perigoso do que atualizar.
   
   Verses novas (i.e. da 7.3 para 7.4) geralmente muda-se o formato
   interno das tabelas de sistema e dos arquivo de dados. Essas mudanas
   geralmente so complexas, ento ns no mantemos compatibilidade para
   os arquivos de dados. Uma exportao/importao de um banco de dados 
   necessria para atualizaes entre verses.
d592 2
a593 2
   estimado em 5,6 MB:
    28 bytes: cada cabealho de registro (aproximadamente)
d597 1
a597 1
    56 bytes por registro
d602 2
a603 2
   ------------------------   =  146 registros por pgina do banco de dados (arredondado para baixo)
     56 bytes por registro
d606 2
a607 2
   ----------------------------  =  685 pginas do banco de dados (arredondadopara cima)
      146 registros por pgina
d609 1
a609 1
685 pginas do banco de dados * 8192 bytes por pgina  =  5.611.520 bytes (5,6MB)
d657 1
a657 1
     * O idioma padro C deve ser usando durante o initdb porque no 
d660 3
a662 1
       casos que funcionam somente para indexao com LIKE.
d699 2
a700 1
  ordenar por um campo que  NULL ou no?
d707 4
d768 5
a772 2
   Veja a pgina sobre create_sequence no manual para obter informaes
   adicionais sobre sequncias.
d776 4
a779 17
   Uma abordagem  obter o prximo valor SERIAL de uma sequncia com a
   funo nextval() antes de inserir e ento inserir com o valor
   explicitamente. Utilizando o exemplo da tabela em 4.11.1, um exemplo
   em pseudo-linguagem se pareceria com isto:
    novo_id = execute("SELECT nextval('pessoa_id_seq')");
    execute("INSERT INTO pessoa (id, nome) VALUES (novo_id, 'Blaise Pascal')");

   Voc poderia ento ter tambm o novo valor armazenado em novo_id para
   utilizar em outras consultas (i.e., como uma chave estrangeira da
   tabela pessoa). Note que o nome da SEQUENCE criada automaticamente
   ser <tabela>_<coluna>_seq, onde tabela e coluna so os nomes da
   tabela e da coluna SERIAL, respectivamente.
   
   Alternativamente, voc poderia obter o valor SERIAL atribudo com a
   funo currval() depois de t-lo inserido por padro, i.e.,
    execute("INSERT INTO pessoa (nome) VALUES ('Blaise Pascal')");
    novo_id = execute("SELECT currval('pessoa_id_seq')");
d781 3
d798 1
a798 1
  4.16) O que  um OID? O que  um CTID?
d800 5
a804 6
   Cada registro que  criado no PostgreSQL recebe um OID nico a menos
   que seja criado com WITHOUT OIDS. OIDs so automaticamente atribudos
   como inteiros de 4 bytes que so nicos ao longo de toda instalao.
   Contudo, eles so limitados em 4 bilhes, e ento os OIDs comeam a
   ser duplicados. O PostgreSQL utiliza OIDs para ligar as tabelas do
   sistema.
d820 1
a820 1
   antes de iniciar o postmaster:
d840 1
a840 1
  4.23) Como eu fao uma juno externa (outer join)?
d858 1
a858 1
   naturais (INNER).
d875 1
a875 1
   http://techdocs.postgresql.org/guides/SetReturningFunctions.
d880 9
a888 7
   PL/PgSQL armazena o contedo da funo, e o efeito indesejado  que se
   uma funo PL/PgSQL acessa uma tabela temporria, e aquela tabela 
   removida e criada novamente, e a funo  chamada novamente, a funo
   ir falhar porque o contedo armazenado da funo ainda apontar para
   a tabela temporria antiga. A soluo  utilizar o EXECUTE para acesso
   a tabelas temporrias no PL/PgSQL. Isto ir fazer com que a consulta
   seja avaliada toda vez.
d903 1
a903 1
   necessidade de sincronizar as mudanas entre os servidores. Pgcluster
d910 1
a910 1
  minha consulta?
d912 8
a919 7
   O caso mais comum  o uso de aspas ao redor dos nomes da tabela ou
   coluna durante a criao da tabela. Ao utilizar aspas, nomes de tabela
   e coluna (chamados de identificadores) so armazenados como
   especificado, significando que voc deve utilizar aspas quando se
   referir aos nomes na consulta. Algumas interfaces, como pgAdmin,
   automaticamente coloca aspas nos identificadores durante a criao da
   tabela. Ento, para identificadores serem reconhecidos, voc deve:
@


1.9
log
@Update Brazilian FAQ.

 Euler Taveira de Oliveira
@
text
@d147 1
a147 1
   Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
@


1.9.2.1
log
@Backpatch FAQs to stable branch.
@
text
@d147 1
a147 1
   Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
@


1.8
log
@Update copyright for 2006.  Update scripts.
@
text
@d4 1
a4 1
   ltima atualizao: Dom Jan 9 14:44:04 EDT 2005
d6 1
a6 1
   Mantenedor atual: Bruce Momjian (pgman@@candle.pha.pa.us)
d8 1
a8 1
   Traduzido por: Euler Taveira de Oliveira (eulerto@@yahoo.com.br)
d22 3
a24 3
   1.2) Qual  a licena do PostgreSQL?
   1.3) Quais plataformas Unix o PostgreSQL pode ser executado?
   1.4) Quais portabilidades no-Unix esto disponveis?
d26 3
a28 3
   1.6) Onde eu posso conseguir suporte?
   1.7) Qual  a ltima verso?
   1.8) Que documentao est disponvel?
d31 5
a35 6
   1.10) Como eu posso aprender SQL?
   1.11) O PostgreSQL est livre do Bug do Milnio?
   1.12) Como posso me juntar a equipe de desenvolvimento?
   1.13) Como eu informo a existncia de um bug?
   1.14) Como  o PostgreSQL comparado a outros SGBDs?
   1.15) Como eu posso ajudar financeiramente o projeto PostgreSQL?
d39 1
a39 1
   2.1) H drivers ODBC para PostgreSQL?
a42 2
   2.4) Quais linguagens esto disponveis para comunicar-se com o
   PostgreSQL?
d48 2
a49 7
   3.2) Quando eu inicio o postmaster, eu recebo a mensagem Bad System
   Call ou uma descarga de memria (core dump). Por que?
   3.3) Quando eu tento iniciar o postmaster, eu recebo erros
   IpcMemoryCreate. Por que? 3.4) Quando eu tento iniciar o postmaster,
   eu recebo erros IpcSemaphoreCreate. Por que? 3.5) Como eu controlo
   conexes de outras mquinas?
   3.6) Como eu ajusto o servidor de banco de dados para obter uma
d51 2
a52 2
   3.7) Quais caractersticas de depurao esto disponveis?
   3.8) Por que eu recebo "Sorry, too many clients" quando eu tento
d54 2
a55 4
   3.9) O que est no diretrio pgsql_tmp?
   3.10) O que eu preciso fazer para exportar e importar durante a
   atualizao de verses do PostgreSQL?
   3.11) Que tipo de hardware eu devo usar?
d59 1
a59 2
   4.1) Qual  a diferena entre cursores binrios e normais?
   4.2) Como eu fao um SELECT somente dos primeiros registros de uma
d61 5
a65 3
   4.3) Como eu obtenho a lista de tabelas ou outras coisas que eu posso
   ver no psql?
   4.4) Como eu removo uma coluna de uma tabela ou mudo o seu tipo de
d67 1
a67 3
   4.5) Qual  o tamanho mximo de um registro, uma tabela e um banco de
   dados?
   4.6) Quanto espao em disco  necessrio para armazenar dados de um
d69 3
a71 5
   4.7) Como eu descubro quais tabelas, ndices, bancos de dados e
   usurios esto definidos?
   4.8) Minhas consultas esto lentas ou no esto utilizando ndices.
   Por que?
   4.9) Como eu vejo como o otimizador de consultas est avaliando minha
d73 9
a81 11
   4.10) O que  um ndice de rvore R (R-tree)?
   4.11) O que  um Otimizador Gentico de Consultas?
   4.12) Como eu fao buscas com expresses regulares e buscas com
   expresses regulares sem diferenciar maisculas de minsculas? Como eu
   utilizo um ndice para buscas que no diferenciam maisculas de
   minsculas?
   4.13) Em uma consulta, como eu detecto se um campo  NULL?
   4.14) Qual  a diferena entre os vrios tipos de dados de caracteres?
   4.15.1) Como eu crio um campo serial/auto incremento?
   4.15.2) Como eu consigo o valor de um campo SERIAL?
   4.15.3) currval() no lida com condio de corrida com outros
d83 1
a83 1
   4.15.4) Por que os nmeros da minha sequncia no so reutilizados
d86 2
a87 3
   4.16) O que  um OID? O que  um TID?
   4.17) Qual  o significado de alguns termos utilizados no PostgreSQL?
   4.18) Por que eu recebo o erro "ERROR: Memory exhausted in
d89 10
a98 21
   4.19) Como eu informo qual verso do PostgreSQL eu estou utilizando?
   4.20) Por que minhas operaes com objetos grandes retorna "invalid
   large obj descriptor"?
   4.21) Como eu crio uma coluna que conter por padro a hora atual?
   4.22) Por que as minhas subconsultas que utilizam IN esto to lentas?
   4.23) Como eu fao uma juno externa (outer join)?
   4.24) Como eu fao consultas utilizando mltiplos bancos de dados?
   4.25) Como eu retorno mltiplos registros ou colunas de uma funo?
   4.26) Por que eu no posso confiar na criao/remoo de tabelas
   temporrias em funes PL/PgSQL?
   4.27) Que opes para encriptao esto disponveis?
   
                          Extendendo o PostgreSQL
                                      
   5.1) Eu escrevi uma funo. Quando eu executo-a no psql, por que ela
   finaliza o programa com descarga de memria (core dump)?
   5.2) Como eu posso contribuir com alguns tipos e funes novas para o
   PostgreSQL?
   5.3) Como eu escrevo uma funo em C que retorna uma tupla?
   5.4) Eu alterei um arquivo do cdigo-fonte. Por que a recompilao no
   surtiu efeito?
d103 11
a113 11
    1.1) O que  PostgreSQL? Como ele  pronunciado?
    
   PostgreSQL  pronunciado Post-Gres-Q-L.
   
   PostgreSQL  um melhoramento do sistema de gerncia de banco de dados
   POSTGRES (e tambm , s vezes, chamado simplesmente de "Postgres"),
   um prottipo de pesquisa de um SGBD de ltima gerao. Enquanto o
   PostgreSQL retm a modelagem de dados poderosa e a grande quantidade
   de tipos de dados do POSTGRES, ele substituiu a linguagem de consulta
   PostQuel com um subconjunto extendido do SQL. PostgreSQL  livre e o
   cdigo-fonte completo est disponvel.
d116 4
a119 6
   desenvolvedores que esto inscritos na lista de e-mails de
   desenvolvimento do PostgreSQL. O coordenador atual  Marc G. Fournier
   (scrappy@@PostgreSQL.org). (Veja a seo 1.6 para saber como se juntar
   ao grupo). O grupo  responsvel por todo o desenvolvimento do
   PostgreSQL.  um projeto da comunidade e no  controlado por nenhuma
   empresa. Para se juntar ao grupo, veja a FAQ do desenvolvedor em
d122 20
a141 10
   Os autores do PostgreSQL 1.01 foram Andrew Yu e Jolly Chen. Muitos
   outros contribuiram para portar, testar, depurar e melhorar o cdigo.
   O cdigo original do Postgres, do qual o PostgreSQL foi derivado, foi
   um esforo de muitos estudantes de graduao e ps-graduao e uma
   equipe de programadores trabalhando sobre a direo do Professor
   Michael Stonebraker na Universidade da Califnia em Berkeley.
   
   O nome original do software em Berkeley era Postgres. Quando o SQL foi
   adicionado em 1995, seu nome foi mudado para Postgres95. O nome foi
   mudado no fim de 1996 para PostgreSQL.
a142 2
    1.2) Qual  a licena do PostgreSQL?
    
d145 1
a145 1
   PostgreSQL Sistema de Gerncia de Banco de Dados
d148 2
a149 1
   Portions Copyright (c) 1994-6 Regents of the University of California
d151 18
a168 22
   Permisso de uso, cpia, modificao e distribuio desse software e
   sua documentao para qualquer propsito, sem taxa, e sem um acordo
   escrito est concedida por esse meio, contanto que a nota da licena
   acima, esse pargrafo e os dois pargrafos seguintes apaream em todas
   as cpias.
   
   EM NENHUM EVENTO A UNIVERSIDADE DA CALIFRNIA SER RESPONSVEL POR
   QUALQUER PARTIDO EM DANOS DIRETOS, INDIRETOS, ESPECIAIS, INCIDENTAIS
   OU CONSEQUENTES, INCLUINDO PERDA DE LUCROS, SURGIDOS A PARTIR DO USO
   DO SOFTWARE E DE SUA DOCUMENTAO, MESMO SE A UNIVERSIDADE DA
   CALIFRNIA ESTIVER SIDO AVISADA DA POSSIBILIDADE DE TAL DANO.
   
   A UNIVERSIDADE DA CALIFRNIA ESPECIFICADAMENTE NO D NENHUMA
   GARANTIA, INCLUINDO, MAS NO LIMITADO A, GARANTIAS IMPLCITAS DE
   COMERCIALIZAO E ATENDIMENTO DE PROPSITO PARTICULAR. O SOFTWARE 
   FORNECIDO ABAIXO "COMO ", E A UNIVERSIDADE DA CALIFRNIA NO TEM
   OBRIGAO DE FORNECER MANUTENO, SUPORTE, ATUALIZAES, MELHORIAS OU
   MODIFICAES.
   
   O que est descrito acima  a licena BSD, uma licena de cdigo
   aberto clssica. Ela no tem restries de como o cdigo pode ser
   utilizado. Ns gostamos dela e no temos intenes de mud-la.
d170 2
a171 2
    1.3) Quais plataformas Unix o PostgreSQL pode ser executado?
    
d177 5
a181 7
    1.4) Quais portabilidades no-Unix esto disponveis?
    
   Iniciando com a verso 8.0, o PostgreSQL agora pode ser executado
   nativamente nos sistemas operacionais Microsoft Windows baseados no NT
   tais como Win2000, WinXP e Win2003. Um instalador est disponvel em
   http://pgfoundry.org/projects/pginstaller Verses do Windows baseados
   no MSDOS (Win95, Win98, WinMe) podem executar o PostgreSQL utilizando
d184 2
a185 2
   H tambm um porte para Novell Netware 6 em http://forge.novell.com e
   uma verso para OS/2 (eComStation) em
d189 18
a206 40
    1.5) Onde eu posso conseguir o PostgreSQL?
    
   O servidor ftp principal do PostgreSQL  ftp://ftp.PostgreSQL.org/pub.
   Para obter a relao de servidores espelhos (mirrors), consulte nosso
   website.
   
    1.6) Onde eu posso conseguir suporte?
    
   A lista de discusso principal : pgsql-general@@PostgreSQL.org. Ela
   est disponvel para discusses relacionadas ao PostgreSQL. Para se
   inscrever, envie um e-mail com as seguintes linhas no corpo (no envie
   no assunto):
    subscribe
    end

   para pgsql-general-request@@PostgreSQL.org.
   
   H tambm uma lista sntese (digest) disponvel. Para se inscrever,
   envie um e-mail para: pgsql-general-digest-request@@PostgreSQL.org com
   o seguinte corpo:
    subscribe
    end

   Snteses (Digests) so enviadas aos membros dessa lista quando a lista
   receber cerca de 30k em mensagens.
   
   A lista de discusso sobre bugs est disponvel. Para se inscrever,
   envie um e-mail para pgsql-bugs-request@@PostgreSQL.org com o seguinte
   corpo:
    subscribe
    end

   H tambm uma lista de discusso dos desenvolvedores disponvel. Para
   se inscrever, envie um e-mail para
   pgsql-hackers-request@@PostgreSQL.org com o seguinte corpo:
    subscribe
    end

   Outras listas de discusses e informaes sobre o PostgreSQL podem ser
   encontradas na homepage do PostgreSQL em:
a207 2
     http://www.PostgreSQL.org
     
d216 1
a216 1
   http://techdocs.postgresql.org/companies.php.
d218 59
a276 11
    1.7) Qual  a ltima verso?
    
   A ltima verso do PostgreSQL  a verso 7.4.6.
   
   Ns planejamos lanar verses novas a cada seis ou oito meses.
   
    1.8) Que documentao est disponvel?
    
   Vrios manuais, pginas de manuais (man pages) e alguns exemplos para
   teste esto includos na distribuio. Veja o diretrio /doc. Voc
   pode acessar os manuais online em http://www.PostgreSQL.org/docs.
d279 1
a279 1
   http://www.PostgreSQL.org/docs/awbook.html e
d281 3
a283 4
   PostgreSQL disponveis para compra em
   http://techdocs.PostgreSQL.org/techdocs/bookreviews.php. H tambm uma
   coleo de artigos tcnicos sobre PostgreSQL em
   http://techdocs.PostgreSQL.org/.
d286 2
a287 2
   para mostrar informao sobre tipos, operadores, funes, agregaes,
   etc. Use \? para mostrar os comandos disponveis.
d289 1
a289 1
   Nosso web site contm ainda mais documentao.
d291 23
a313 53
    1.9) Como eu posso saber quais so os bugs conhecidos ou caractersticas
    ausentes?
    
   PostgreSQL suporta um subconjunto extendido do SQL-92. Veja a nossa
   lista de afazeres (TODO) para saber sobre bugs conhecidos,
   caractersticas ausentes e planos futuros.
   
    1.10) Como eu posso aprender SQL?
    
   O livro "The PostgreSQL book" em
   http://www.PostgreSQL.org/docs/awbook.html ensina SQL. H outro livro
   sobre PostgreSQL em http://www.commandprompt.com/ppbook. H bons
   tutoriais em http://www.intermedia.net/support/sql/sqltut.shtm, ,
   http://ourworld.compuserve.com/homepages/graeme_birchall/HTM_COOK.HTM,
   e em http://sqlcourse.com.
   
   Outro  o "Teach Yourself SQL in 21 Days, Second Edition" em
   http://members.tripod.com/er4ebus/sql/index.htm
   
   Muitos dos nossos usurios gostam do The Practical SQL Handbook,
   Bowman, Judith S., et al., Addison-Wesley. Outros gostam do The
   Complete Reference SQL, Groff et al., McGraw-Hill.
   
    1.11) O PostgreSQL est livre do Bug do Milnio?
    
   Sim, ns podemos manipular datas aps o ano 2000 AD e antes do ano
   2000 BC.
   
    1.12) Como posso me juntar a equipe de desenvolvimento?
    
   Primeiramente, faa o download do cdigo-fonte e leia a documentao
   para Desenvolvedores do PostgreSQL no nosso website ou na
   distribuio. Depois, se inscreva nas lista de discusso pgsql-hackers
   e pgsql-patches. Ento submeta patches de alta qualidade para
   pgsql-patches.
   
   H algumas pessoas que tem privilgios para fazer mudanas (commit) na
   rvore CVS do PostgreSQL. Cada um deles submeteram tantos patches de
   alta qualidade que foi impossvel para os committers continuarem a
   fazerem as mudanas, e ento ns confiamos que os patches que eles
   submetem so de alta qualidade.
   
    1.13) Como eu informo a existncia de um bug?
    
   Visite o formulrio que reporta bugs do PostgreSQL em
   http://www.postgresql.org/support/submitbug.
   
   Verifique tambm o nosso ftp ftp://ftp.PostgreSQL.org/pub para ver se
   h uma verso mais recente do PostgreSQL ou patches.
   
    1.14) Como  o PostgreSQL comparado a outros SGBDs?
    
   H vrias maneiras de se medir um software: caractersticas,
d316 1
a316 1
   Caractersticas
d319 3
a321 3
          integridade referencial de chave estrangeira e travamento
          (lock) sofisticado. Ns temos algumas caractersticas que eles
          no tem, como tipos definidos pelo usurio, herana, regras e
d323 1
a323 1
          travamentos (locks).
d328 2
a329 9
          algumas coisas, mais lento em outras. Comparado ao MySQL ou
          sistemas de bancos de dados "leves", ns somos mais rpidos com
          mltiplos usurios, consultas complexas e carga de consultas de
          leitura/escrita. MySQL  mais rpido para consultas simples com
          SELECT feitas por poucos usurios.  claro que o MySQL no tem
          muitas das caractersticas mencionadas na seo Caractersticas
          acima. Ns desenvolvemos buscando confiabilidade e
          caractersticas, e ns continuamos a melhorar a performance a
          cada verso.
d350 1
a350 1
          seo 1.6 da FAQ.)
d355 2
a356 25
          limitaes, exceto aquelas descritas na nossa licena
          compatvel com a licena BSD mencionada acima.
          
    1.15) Como eu posso ajudar financeiramente o projeto PostgreSQL?
    
   PostgreSQL teve sua primeira infra-estrutura em 1996 quando iniciamos.
   Somos todos gratos ao Marc Fournier, que criou e gerenciou esta
   infra-estrutura ao longo dos anos.
   
   Infra-estrutura de qualidade  muito importante em um projeto de
   cdigo aberto. Ela previne descontinuidades que podem facilmente
   descontinuar o andamento do projeto.
   
    claro, que a infra-estrutura no  barata. H vrios custos iniciais
   e mensais que so necessrios para mant-la. Se voc ou sua empresa
   tem dinheiro que pode ser doado para ajudar a financiar esse esforo,
   acesse http://store.pgsql.com/shopping/ e faa uma doao.
   
   Embora a pgina mencione PostgreSQL, Inc, a "contribuio"  somente
   para apoiar o projeto PostgreSQL e no financia nenhuma empresa
   especfica. Se voc preferir, voc pode enviar um cheque para o
   endereo de contato.
   
   Se voc tiver uma histria de sucesso sobre o PostgreSQL, envie-a para
   nossa lista advocacy em pgsql-advocacy@@postgresql.org.
d361 15
a375 19
    2.1) H drivers ODBC para PostgreSQL?
    
   H dois drivers ODBC disponveis, PsqlODBC e o OpenLink ODBC.
   
   Voc pode fazer o download do PsqlODBC em
   http://gborg.postgresql.org/project/psqlodbc/projdisplay.php.
   
   OpenLink ODBC pode ser conseguido em http://www.openlinksw.com. Ele
   trabalha com cliente ODBC padro, ento voc poder ter o ODBC para
   PostgreSQL disponvel em toda plataforma que eles suportam (Win, Mac,
   Unix, VMS).
   
   Eles provavelmente vendero seu produto para pessoas que precisam de
   um suporte de qualidade, mas uma verso gratuita estar sempre
   disponvel. Por favor envie perguntas para postgres95@@openlink.co.uk.
   
    2.2) Quais ferramentas esto disponveis para utilizar o PostgreSQL com
    pginas Web?
    
d379 2
a380 2
   Para integrao na Web, PHP  uma excelente interface. Ele est em
   http://www.php.net.
d382 2
a383 2
   Para casos complexos, muitos usam a Interface Perl e CGI.pm ou
   mod_perl.
d385 6
a390 28
    2.3) O PostgreSQL tem interfaces grficas para iteragir com o usurio?
    
   Sim, h vrias interfaces grficas para PostgreSQL disponveis. Entre
   elas o PgAccess http://www.pgaccess.org), pgAdmin III
   (http://www.pgadmin.org, RHDB Admin (http://sources.redhat.com/rhdb/
   ), TORA (http://www.globecom.net/tora/, parcialmente comercial) e o
   Rekall ( http://www.thekompany.com/products/rekall/, proprietria). H
   tambm o PhpPgAdmin ( http://phppgadmin.sourceforge.net/ ), uma
   interface web para PostgreSQL.
   
   Veja http://techdocs.postgresql.org/guides/GUITools para uma lista
   mais detalhada.
   
    2.4) Quais linguagens esto disponveis para comunicar-se com PostgreSQL?
    
   Muitas linguagens de programao populares contm uma interface para
   PostgreSQL. Verifique a lista de extenses (mdulos) da sua linguagem
   de programao.
   
   As seguintes interfaces esto includas na distribuio do PostgreSQL:
     * C (libpq)
     * Embedded C (ecpg)
     * Java (jdbc)
     * Python (PyGreSQL)
     * TCL (libpgtcl)
       
   Interfaces adicionais esto disponveis em http://gborg.postgresql.org
   na seo de Drivers/Interfaces.
d395 2
a396 3
    3.1) Como eu instalo o PostgreSQL em um local diferente de
    /usr/local/pgsql?
    
d399 2
a400 40
    3.2) Quando eu inicio o postmaster, eu recebo a mensagem Bad System Call ou
    uma descarga de memria (core dump). Por que?
    
   Isto pode ser vrios problemas, mas primeiro verifique se voc tem
   extenses do System V instaladas no seu kernel. PostgreSQL requer
   suporte no kernel a memria compartilhada e semforos.
   
    3.3) Quando eu tento iniciar o postmaster, eu recebo erros IpcMemoryCreate.
    Por que?
    
   Voc no configurou a memria compartilhada corretamente no seu kernel
   ou voc precisa aumentar a memria compartilhada disponvel no seu
   kernel. A quantidade exata que voc precisa vai depender da
   arquitetura e de quantos buffers e processos do servidor voc
   configurou para o postmaster. Muitos sistemas, com o nmero padro de
   buffers e processos, precisam de aproximadamente 1 MB. Veja a seo
   PostgreSQL Administrator's Guide/Server Run-time Environment/Managing
   Kernel Resources para mais informao sobre memria compartilhada e
   semforos.
   
    3.4) Quando eu tento iniciar o postmaster, eu recebo erros
    IpcSemaphoreCreate. Por que?
    
   Se a mensagem de erro  IpcSemaphoreCreate: semget failed (No space
   left on device) ento o seu kernel no est configurado com o nmero
   de semforos suficientes. O Postgres precisa de um semforo por
   processo do servidor. Uma soluo temporria  iniciar o postmaster
   com um limite pequeno de processos do servidor. Utilize -N com o
   parmetro menor do que o padro (32). Uma soluo permanente seria
   aumentar os parmetros do kernel SEMMNS e SEMMNI.
   
   Semforos inoperantes podem tambm causar danos durante intenso acesso
   ao banco de dados.
   
   Se a mensagem  outra coisa, voc possivelmente no tem suporte a
   semforo configurado no seu kernel. Veja o Guia do Administrador para
   mais informao sobre memria compartilhada e semforos.
   
    3.5) Como eu controlo conexes de outras mquinas?
    
d404 8
a411 2
   listen_addresses no postgresql.conf, e habilite a autenticao por
   mquina modificando o arquivo $PGDATA/pg_hba.conf.
d413 47
a459 127
    3.6) Como eu ajusto o servidor de banco de dados para obter uma performance
    melhor?
    
   Certamente, ndices podem acelerar consultas. O comando EXPLAIN
   ANALYZE permite que voc veja como o PostgreSQL est interpretando a
   consulta, e quais os ndices so utilizados.
   
   Se voc est fazendo muitos INSERTs, considere faz-los em lote
   utilizando o comando COPY. Isso  mais rpido do que INSERTs
   individuais. Segundo, sentenas que no esto em um bloco de transao
   BEGIN WORK/COMMIT so consideradas com se estivessem em sua prpria
   transao. Considere executar vrias sentenas em um mesmo bloco de
   transao. Isso reduz a quantidade de transaes. Tambm, considere
   remover e criar ndices novamente quando estiver fazendo muitas
   mudanas nos dados.
   
   H vrias opes de ajuste em Administration Guide/Server Run-time
   Environment/Run-time Configuration. Voc pode desabilitar o fsync()
   utilizando a opo fsync. Isso ir impedir que fsync()s enviem os
   dados para disco aps cada transao.
   
   Voc pode utilizar a opo shared_buffers para aumentar o nmero de
   buffers de memria compartilhada utilizados pelos processos do
   servidor. Se voc definiu este parmetro com um valor muito alto, o
   postmaster pode no iniciar porque voc excedeu o limite de espao de
   memria compartilhada do kernel. Cada buffer  de 8K e o padro  de
   1000 buffers.
   
   Voc tambm pode utilizar a opo sort_mem (no PostgreSQL 8.0:
   work_mem) para aumentar a mxima quantidade de memria utilizada pelo
   processo servidor para cada ordenao temporria. O valor padro 
   1024 (ou seja 1MB).
   
   Voc tambm pode utilizar o comando CLUSTER para agrupar dados em
   tabelas para combinar um ndice. Veja o manual sobre CLUSTER para mais
   informao.
   
    3.7) Quais caractersticas de depurao esto disponveis?
    
   PostgreSQL tem vrias caractersticas que relatam informaes que
   podem ser valiosas para fins de depurao.
   
   Primeiro, execute o configure com a opo --enable-cassert, muitos
   assert()s monitoram o progresso do ncleo (backend) e finalizam o
   programa quando alguma coisa inesperada acontece.
   
   O postmaster e o postgres tem vrias opes de depurao disponveis.
   Primeiro, quando iniciar o postmaster, tenha certeza que voc enviou a
   saida padro e a sada de erro padro para um arquivo de log, como em:
    cd /usr/local/pgsql
    ./bin/postmaster >server.log 2>&1 &

   Isso ir criar um arquivo server.log no diretrio raiz do PostgreSQL.
   Este arquivo conter informaes teis sobre problemas ou erros
   encontrados pelo servidor. O Postmaster tem uma opo -d que permite
   que informaes mais detalhadas sejam relatadas. A opo -d 
   acompanhada por um nmero que indica o nvel de depurao. Esteja
   alerta de que alto nvel de depurao gera grandes arquivos de log.
   
   Se o postmaster no est sendo executado, voc pode executar o ncleo
   do postgres a partir da linha de comando, e digitar a sua sentena SQL
   diretamente. Isso  recomendado somente para fins de depurao. Note
   que uma nova linha termina a consulta, e no um ponto-e-vrgula. Se
   voc compilou com smbolos de depurao, voc pode utilizar um
   depurador para ver o que est acontecendo. Como o ncleo (backend) no
   foi iniciado a partir do postmaster, ele no est executando em um
   ambiente idntico e problemas de iterao com o ncleo/travamento no
   podem ser reproduzidos.
   
   Se o postmaster est sendo executado, inicie o psql em uma janela, e
   ento encontre o PID do processo postgres utilizado pelo psql
   utilizando SELECT pg_backend_pid(). Utilize um depurador para anexar
   ao PID do postgres. Voc pode definir pontos de parada (breakpoints)
   no depurador e digitar consultas no psql. Se voc est depurando a
   inicializao do postgres, voc pode definir PGOPTIONS="-W n" e ento
   iniciar o psql. Isto retardar a inicializao por n segundos ento
   voc pode anexar o depurador ao processo, definir quaisquer pontos de
   parada e continuar pela sequncia de inicializao.
   
   H vrias variveis de configurao do servidor log_* que habilitam a
   exibio de estatsticas que podem ser muito teis para depurao e
   medidas de performance.
   
   Voc tambm pode compilar com perfil para ver que funes esto
   demandando tempo de execuo. Os arquivo de perfil do ncleo (backend)
   sero colocados no diretrio pgsql/data/base/dbname. O arquivo de
   perfil do cliente ser colocado no diretrio atual do cliente. O Linux
   requer uma compilao com -DLINUX_PROFILE para criao dos perfis.
   
    3.8) Por que eu recebo "Sorry, too many clients" quando eu tento conectar?
    
   Voc precisa aumentar o limite do postmaster de quantos processos do
   servidor concorrentes ele pode iniciar.
   
   O limite padro  de 32 processos. Voc pode aument-lo reiniciando o
   postmaster com o valor conveniente de -N ou modificar o
   postgresql.conf.
   
   Note que se voc definir o -N com um valor maior do que 32, voc
   tambm deve aumentar -B cujo padro  64; -B deve ser pelo menos duas
   vezes -N, e provavelmente deve ser mais do que isso para uma melhor
   performance. Para um grande nmero de processos do servidor, voc
   tambm precisa aumentar vrios parmetros de configurao do kernel do
   Unix. Coisas para serem observadas incluem o tamanho mximo de blocos
   de memria compartilhada, SHMMAX; o nmero mximo de semforos, SEMMNS
   e SEMMNI; o nmero mximo de processos, NPROC; o nmero mximo de
   processos por usurio, MAXUPRC; e o nmero mximo de arquivos abertos,
   NFILE e NINODE. A razo na qual o PostgreSQL tem um limite de nmero
   de processos do servidor permitidos  para que o seu sistema no fique
   sem recursos disponveis.
   
    3.9) O que est no diretrio pgsql_tmp?
    
   Este diretrio contm arquivos temporrios gerados pelo executor de
   uma consulta. Por exemplo, se uma ordenao  necessria para
   satisfazer um ORDER BY e a ordenao requer mais espao do que o
   parmetro -S do servidor permite, ento arquivos temporrios so
   criados para abrigar os dados extras.
   
   Os arquivos temporrios geralmente so apagados automaticamente, mas
   podem persistir caso o servidor termine anormalmente durante a
   ordenao. Uma parada e um reincio do postmaster remover os arquivos
   destes diretrios.
   
    3.10) O que eu preciso fazer para exportar e importar durante a atualizao
    entre verses do PostgreSQL?
    
d461 15
a475 11
   menores, ento atualizar da verso 7.2 para 7.2.1 no requer uma
   exportao e uma importao. Contudo, verses maiores (i.e. da 7.2
   para 7.3) geralmente muda-se o formato interno das tabelas de sistema
   e dos arquivo de dados. Essas mudanas geralmente so complexas, ento
   ns no mantemos compatibilidade para os arquivos de dados. Uma
   exportao em um formato genrico que pode ser importada utilizando o
   novo formato interno.
   
   Em verses onde o formato em disco no muda, o script pg_upgrade pode
   ser utilizado para atualizar sem precisar de um dump/restore. As notas
   da verso mencionam se pg_upgrade est disponvel para a verso.
d477 2
a478 2
    3.11) Que tipo de hardware eu devo usar?
    
d480 7
a486 7
   tendem a acreditar que todos os hardwares de PC satilde;o de mesma
   qualidade. Natilde;o  verdade. ECC RAM, SCSI e placas me de
   qualidade so mais confiveis e tm uma melhor performance do que
   hardwares mais baratos. O PostgreSQL executar em quase todo hardware,
   mas se a confiabilidade e a performance forem importantes  prudente
   pesquisar sobre as opes de hardware. Nossas listas de discusso
   podem ser usadas para discutir opes de hardware e dilemas.
d491 8
a498 15
    4.1) Qual  a diferena entre cursores binrios e normais?
    
   Veja o comando DECLARE no manual para uma descrio.
   
    4.2) Como eu fao um SELECT somente dos primeiros registros de uma
    consulta? Um registro randmico?
    
   Veja o manual do FETCH, ou utilize SELECT ... LIMIT....
   
   Toda a consulta tem que ser avaliada, mesmo se voc s quer os
   primeiros registros. Considere utilizar uma consulta que tenha um
   ORDER BY. Se h um ndice que combina com o ORDER BY, o PostgreSQL
   pode ser capaz de avaliar somente os primeiros registros requisitados,
   ou toda consulta tem que ser avaliada at que os registros desejados
   tenham sido gerados.
d506 4
a509 3
    4.3) Como eu obtenho a lista de tabelas ou outras coisas que eu posso ver
    no psql?
    
d511 1
a511 1
   completa de comandos no psql voc pode utilizar \?. Alternativamente
d513 22
a534 21
   pgsql/src/bin/psql/describe.c. Ele contm comandos SQL que geram a
   sada para os comandos do psql. Voc tambm pode iniciar o psql com a
   opo -E ento sero mostradas as consultas utilizadas para executar
   os comandos que voc digitou. PostgreSQL tambm fornece uma interface
   para o INFORMATION SCHEMA SQLi na qual voc pode consultar informaes
   sobre o banco de dados.
   
    4.4) Como eu removo uma coluna de uma tabela ou mudo o seu tipo de dados?
    
   A funcionalidade DROP COLUMN foi adicionada a verso 7.3 com comando
   ALTER TABLE DROP COLUMN. Em verses anteriores, voc pode fazer isto:
    BEGIN;
    LOCK TABLE old_table;
    SELECT ...  -- selecione todas colunas mas no aquela que voc quer remover
    INTO TABLE new_table
    FROM old_table;
    DROP TABLE old_table;
    ALTER TABLE new_table RENAME TO old_table;
    COMMIT;

   Para alterar o tipo de dados de uma coluna, faa isto:
d536 3
a538 3
    ALTER TABLE tab ADD COLUMN new_col new_data_type;
    UPDATE tab SET new_col = CAST(old_col AS new_data_type);
    ALTER TABLE tab DROP COLUMN old_col;
d541 1
a541 1
   Voc pode querer executar o comando VACUUM FULL tab para recuperar o
d544 2
a545 3
    4.5) Qual  o tamanho mximo de um registro, uma tabela e um banco de
    dados?
    
d547 11
a557 8
Tamanho mximo de um banco de dados?           ilimitado (existem bancos de dados de 32 TB)
Tamanho mximo de uma tabela?                  32 TB
Tamanho mximo de um registro?                 1.6TB
Tamanho mximo de um campo?                    1 GB
Nmero mximo de registros em uma tabela?      ilimitado
Nmero mximo de colunas em uma tabela?        250-1600 dependendo dos tipos das colunas
Nmero mximo de ndices em uma tabela?        ilimitado

d567 14
a580 6
   O tamanho mximo de uma tabela e o nmero mximo de colunas pode ser
   quadruplicadas aumentando-se o tamanho dos blocos para 32k.
   
    4.6) Quanto espao em disco  necessrio para armazenar dados de um arquivo
    texto?
    
d586 1
a586 1
   descrio  de vinte bytes. O arquivo ter 2.8 MB. O tamanho do
d588 2
a589 2
   estimado em 6.4 MB:
    32 bytes: cada cabealho de registro (aproximadamente)
d593 1
a593 1
    60 bytes por registro
d598 2
a599 2
   ------------------------   =  136 registros por pgina do banco de dados (arredondado para baixo)
     60 bytes por registro
d602 2
a603 2
   ----------------------------  =  735 pginas do banco de dados (arredondadopara cima)
      128 registros por pgina
d605 1
a605 1
735 pginas do banco de dados * 8192 bytes por pgina  =  6,021,120 bytes (6 MB)
d613 18
a630 7
    4.7) Como eu descrubo quais tabelas, ndices, bancos de dados e usurios
    esto definidos?
    
   psql tem uma variadade de comandos com barra invertida que mostram
   tais informaes. Utilize \? para v-los. H tambm tabelas do sistema
   que comeam com pg_ e que os descrevem tambm. Tambm, psql -l listar
   todos os bancos de dados.
d632 5
a636 22
   Veja tambm o arquivo pgsql/src/tutorial/syscat.source. Ele ilustra
   muitos SELECTs necessrios para obter informao das tabelas do
   sistema de banco de dados.
   
    4.8) Minhas consultas esto lentas ou no esto utilizando ndices. Por
    que?
    
   ndices no so automaticamente utilizados por toda consulta. ndices
   s so utilizados se uma tabela  maior do que o tamanho mnimo e uma
   consulta seleciona somente uma porcentagem pequena de registros de uma
   tabela. Isto porque o acesso randmico ao disco causado por uma busca
   por ndice pode ser mais lento do que uma leitura ao longo da tabela
   ou uma busca sequencial.
   
   Para determinar se um ndice pode ser utilizado, o PostgreSQL deve ter
   estatsticas sobre a tabela. Estas estatsticas so coletadas
   utilizando VACUUM ANALYZE ou simplesmente ANALYZE. Utilizando
   estatsticas, o otimizador saber quantos registros h na tabela e pode
   determinar melhor se um ndice deve ser utilizado. Estatsticas tambm
   so teis para determinar a ordem de juno tima e mtodos de juno.
   Coleo de estatsticas deve ser feita periodicamente a medida que o
   contedo da tabela muda.
a637 13
   ndices no so normalmente utilizados para ORDER BY ou para fazer
   junes. Uma busca sequencial seguida por uma ordenao explcita 
   usualmente mais rpida do que uma busca por ndice em uma tabela
   grande.
   Contudo, LIMIT combinado com ORDER BY frequentemente utilizar um
   ndice porque somente uma pequena poro da tabela  retornada. De
   fato, embora MAX() e MIN() no utilizem ndices,  possvel obter tais
   valores utilizando um ndice com ORDER BY e LIMIT:
    SELECT col
    FROM tab
    ORDER BY col [ DESC ]
    LIMIT 1;

d639 2
a640 2
   sequencial, utilize SET enable_seqscan TO 'off' e execute testes para
   ver se uma busca por ndice  de fato  mais rpida.
d642 15
a656 15
   Quando  utilizado operadores com curingas tais como LIKE ou ~,
   ndices s podem ser utilizados em certas circunstncias:
     * O ncio de uma string de busca deve ser o incio da string, i.e.
          + modelos no LIKE no devem comear com %.
          + modelos no ~ (expresso regular) no devem comear com ^.
     * A string de busca no pode iniciar com uma classe de caracteres,
       i.e. [a-e].
     * Buscas que no diferenciam maisculas de minsculas tais como
       ILIKE e ~* no utilizam ndices. Ao invs, utilize ndices
       funcionais, que so descritos na seo 4.12.
     * A localidade padro C deve ser utilizada durante o initdb porque
       no  possvel saber o prximo/maior caracter em uma localidade
       que no seja a C. Voc pode criar um ndice especial
       text_pattern_ops para tais casos que funcionam somente para
       indexao utilizando LIKE.
d658 3
a660 3
   Em verses anteriores a 8.0, ndices frequentemente no podiam ser
   usados a menos que os tipos de dados correspodessem aos tipos da
   coluna do ndice. Isto  particularmente verdadeiro para ndices de
d663 3
a665 3
    4.9) Como eu vejo como o otimizador de consulta est avaliando a minha
    consulta?
    
d668 4
a671 37
    4.10) O que  um ndice de rvore R?
    
   Um ndice de rvore B  utilizado para indexao de dados espaciais.
   Um ndice do tipo hash no pode manipular buscas em intervalos. Um
   ndice de rvore B manipula somente buscas em intervalos em uma
   dimenso. Um ndice de rvore R pode manipular dados
   multidimensionais. Por exemplo, se um ndice de rvore R pode ser
   contruido em um atributo do tipo point, o sistema pode responder mais
   eficientemente consultas tais como "busque todos os pontos dentro dos
   limites do retngulo."
   
   A pesquisa cannica que descreve o modelo original da rvore R est
   em:
   
   Guttman, A. "R-trees: A Dynamic Index Structure for Spatial
   Searching." Proceedings of the 1984 ACM SIGMOD Int'l Conf on Mgmt of
   Data, 45-57.
   
   Voc tambm pode encontrar esse documento em "Readings in Database
   Systems" do Stonebraker
   
   rvores R podem manipular polgonos e caixas. Na teoria, rvores R
   podem ser extendidos para manipular um grande nmero de dimenses. Na
   prtica, extendendo rvores R requer um pouco de trabalho e ns no
   temos atualmente nenhuma documentao de como faz-lo.
   
    4.11) O que  um Otimizador Gentico de Consultas?
    
   O mdulo GEQO acelera a otimizao de consultas quando se faz uma
   juno de vrias tabelas utilizando o conceito de Algoritmo Gentico
   (AG). Isso permite a manipulao de consultas com muitas junes
   utilizando buscas no exaustivas.
   
    4.12) Como eu fao buscas com expresses regulares e buscas com expresses
    regulares sem diferenciar maisculas de minsculas? Como eu utilizo um
    ndice para buscas que no diferenciam maisculas de minsculas?
    
d683 1
a683 1
   ndice funcional, ele ser utilizado:
d686 34
a719 14
    4.13) Em uma consulta, como eu detecto se um campo  NULL?
    
   Voc pode testar a coluna com IS NULL e IS NOT NULL.
   
    4.14) Qual  a difenrena entre os vrios tipos de dados de caracteres?
    
Tipo            Nome Interno    Notas
--------------------------------------------------
VARCHAR(n)      varchar         tamanho especifica o comprimento mximo, sem preenchimento
CHAR(n)         bpchar          preenchimento em branco para comprimento fixo especfico
TEXT            text            nenhum limite superior especfico no comprimento
BYTEA           bytea           vetor de bytes de comprimento varivel (null-byte safe)
"char"          char            um caracter

d726 3
a728 4
   do que o tamanho declarado. Contudo, esses tipos de dados tambm so
   sujeitos a compresso ou a serem armazenados fora do padro utilizando
   o TOAST, ento o espao em disco pode tambm ser bem menor do que o
   esperado.
d734 6
a739 5
   CHAR(n) preenche com espaos em branco at o tamanho especificado,
   enquanto o VARCHAR(n) armazena somente os caracteres fornecidos. BYTEA
    para armazenar dados binrios, particularmente valores que incluem
   bytes NULL. Todos os tipos descritos aqui tem caractersticas de
   performance similares.
d741 2
a742 2
    4.15.1) Como eu crio um campo serial/auto incremento?
    
d757 2
a758 5
   Veja a pgina sobre create_sequence no manual para mais informao
   sobre sequncias. Voc tambm pode utilizar o campo OID para cada
   registro como um valor nico. Contudo, se voc precisar exportar e
   importar o banco de dados, voc precisa utilizar a opo -o do pg_dump
   ou a opo COPY WITH OIDS para preservar os OIDs.
d760 2
a761 2
    4.15.2) Como eu consigo o valor de um campo SERIAL?
    
d764 1
a764 1
   explicitamente. Utilizando o exemplo da tabela em 4.15.1, um exemplo
d780 9
a788 15
   Finalmente, voc poderia utilizar o OID retornado da sentena INSERT
   para obter o valor padro, embora este seja a abordagem menos
   portvel, pois o valor do oid no ultrapassa 4 bilhes. Em Perl,
   utilizando DBI com o mdulo DBD::Pg, o valor do oid est disponvel
   via $sth->{pg_oid_status} depois de $sth->execute().
   
    4.15.3) currval() no lida com condio de corrida com outros usurios?
    
   No. currval() retorna o valor atual atribuido pelo seu ncleo
   (backend), e no por todos os usurios.
   
    4.15.4) Por que os nmeros da minha sequncia no so reutilizados quando
    uma transao  abortada? Por que h intervalos nos nmeros da minha
    sequncia/coluna SERIAL?
    
d794 13
a806 30
    4.16) O que  um OID? O que  um TID?
    
   OIDs so a resposta do PostgreSQL a ids nicos de registros. Cada
   registro que  criado no PostgreSQL recebe um OID nico. Todos OIDs
   produzidos durante o initdb so menores do que 16384 (de
   include/access/transam.h). Todos os OIDs criados pelo usurio so
   iguais ou maiores do que este valor. Por padro, todos estes OIDs so
   nicos no somente na tabela ou no banco de dados, mas na instalao
   do PostgreSQL.
   
   PostgreSQL utiliza OIDs nas tabelas internas do sistema para ligar
   registros entre tabelas. Estes OIDs podem ser utilizados para
   identificar registros de usurios especficos e podem ser utilizados
   em junes.  recomendado que voc utilize o tipo de coluna OID para
   armazenar valores OID. Voc pode criar um ndice no campo OID para
   acesso rpido.
   
   OIDs so atribudos para todas os registros novos de uma rea central
   que  utilizada por todos os bancos de dados. Se voc quer mudar o OID
   de alguma coisa, ou se voc quer fazer uma cpia da tabela, com os
   OIDs, no h razo para que voc no possa faz-la:
        CREATE TABLE nova_tabela(minha_coluna int);
        SELECT oid as oid_antigo, minha_coluna INTO tabela_tmp FROM tabela_antiga;
        COPY tabela_tmp TO '/tmp/pgtable';
        DROP TABLE tabela_tmp;
        COPY nova_tabela WITH OIDS FROM '/tmp/pgtable';

   OIDs so armazenados como inteiros de 4 bytes, e no ultrapassam 4
   bilhes. Ningum nunca reportou que isso tenha ocorrido, e ns
   planejamos remover o limite antes que algem o alcane.
d808 2
a809 2
   TIDs so utilizados para identificar registros fsicos especficos com
   valores de bloco e deslocamento. TIDs mudam aps registros serem
d811 1
a811 1
   apontar para registros fsicos.
d813 3
a815 22
    4.17) Qual  o significado de alguns termos utilizados no PostgreSQL?
    
   O cdigo-fonte e documentao antiga utiliza termos de uso comum. Aqui
   esto alguns deles:
     * tabela, relao, classe
     * linha, registro, tupla
     * coluna, campo, atributo
     * recupera, seleciona
     * altera, atualiza
     * incrementa, insere
     * OID, valor serial
     * portal, cursor
     * intervalo varivel, nome da tabela, alias de tabela
       
   Uma lista de termos gerais de bancos de dados pode ser encontrada em:
   http://hea-www.harvard.edu/MST/simul/software/docs/pkgs/pgsql/glossary
   /glossary.html
   
    4.18) Por que eu recebo o erro "ERROR: Memory exhausted in
    AllocSetAlloc()"?
    
   Voc provavelmente est sem memria virtual no sistema, ou o seu
d818 2
a819 3
            ulimit -d 262144
            limit datasize 256m

d825 2
a826 2
   executado. Se voc tiver problemas com o cliente SQL porque o ncleo
   (backend) retornou muitos dados, tente-o antes de iniciar o cliente.
d828 2
a829 2
    4.19) Como eu informo qual verso do PostgreSQL eu estou utilizando?
    
d832 2
a833 16
    4.20) Por que minhas operaes com objetos grandes retorna "invalid large
    obj descriptor"?
    
   Voc precisa colocar BEGIN WORK e COMMIT ao redor de qualquer uso de
   operaes com objetos grandes, isto , ao redor de lo_open ...
   lo_close.
   
   Atualmente PostgreSQL obriga o fechamento de manipulao de um objeto
   grande quando uma transao  submetida (commit). Ento a primeira
   tentativa de fazer qualquer coisa com o manipulador ir retornar
   invalid large obj descriptor. Ento o cdigo que funcionava (ao menos
   a algum tempo atrs) agora ir retornar uma mensagem de erro se voc
   no utilizar uma transao.
   
    4.21) Como eu crio uma coluna que conter por padro a hora atual?
    
d835 1
a835 1
CREATE TABLE teste (x int, modtime timestamp DEFAULT CURRENT_TIMESTAMP );
d837 2
a838 24
    4.22) Por que as minhas subconsultas que utilizam IN esto to lentas?
    
   Em verses anteriores a 7.4, subconsultas eram agrupadas em consultas
   externas utilizando uma busca sequencial no resultado da subconsulta
   de cada registro da consulta externa. Se uma subconsulta retorna
   somente alguns registros e a consulta externa retorna muitos
   registros, IN  mais rpido. Para acelerar consultas externas,
   substitua IN por EXISTS:
    SELECT *
    FROM tab
    WHERE col IN (SELECT subcol FROM subtab);

   por:
    SELECT *
    FROM tab
    WHERE EXISTS (SELECT subcol FROM subtab WHERE subcol = col);

   Para isto ser rpido, subcol deve ser uma coluna indexada.
   
   A partir da verso 7.4, IN utiliza a mesma tcnica de agrupamento do
   que consultas normais, e  recomendado utilizar EXISTS.
   
    4.23) Como eu fao uma juno externa (outer join)?
    
d857 2
a858 14
   Em verses anteriores, junes externas podiam ser simuladas
   utilizando UNION e NOT IN. Por exemplo, quando juntar tab1 e tab2, a
   consulta a seguir faz uma juno externa de duas tabelas:
    SELECT tab1.col1, tab2.col2
    FROM tab1, tab2
    WHERE tab1.col1 = tab2.col1
    UNION ALL
    SELECT tab1.col1, NULL
    FROM tab1
    WHERE tab1.col1 NOT IN (SELECT tab2.col1 FROM tab2)
    ORDER BY col1

    4.24) Como eu fao consultas utilizando mltiplos bancos de dados?
    
d869 3
a871 4
    4.25) Como eu retorno mltiplos registros ou colunas de uma funo?
    
   No 7.3, voc pode facilmente retornar mltiplos registros ou colunas
   de uma funo,
d874 3
a876 3
    4.26) Por que eu no posso confiar na criao/remoo de tabelas
    temporrias em funes PL/PgSQL?
    
d885 32
a916 46
    4.27) Que opes para encriptao esto disponveis?
    
     * No contrib/pgcrypto contm muitas funes de encriptao para
       serem utilizados em consultas SQL.
     * Para encriptar a transmisso do cliente ao servidor, o servidor
       deve ter a opo ssl definida como true no postgresql.conf, e um
       registro host ou hostssl deve existir no pg_hba.conf, e o sslmode
       no cliente no deve estar disable. (Note que tambm  possvel
       utilizar outros esquemas de transporte encriptado, tais como
       stunnel ou ssh, ao invs da conexo SSL nativa do PostgreSQL.)
     * Senhas dos usurios do banco de dados so automaticamente
       encriptadas quando armazenadas na verso 7.3. Em verses
       anteriores, voc deve habilitar a opo PASSWORD_ENCRYPTION no
       postgresql.conf.
     * O servidor pode executar utilizando um sistema de arquivos
       encriptado.
     _________________________________________________________________
   
                          Extendendo o PostgreSQL
                                      
    5.1) Eu escrevi uma funo. Quando eu executo-a no psql, por que ela
    finaliza o programa com descarga de memria (core dump)?
    
   O problema pode ser vrias coisas. Tente testar sua funo em um
   programa independente.
   
    5.2) Como eu posso contribuir com alguns tipos e funes novas para o
    PostgreSQL?
    
   Envie as suas extenses para a lista de discusso pgsql-hackers, e
   elas eventualmente sero colocadas no subdiretrio contrib/.
   
    5.3) Como eu escrevo uma funo em C que retorna uma tupla?
    
   Em verses do PostgreSQL a partir da 7.3, funes que retornam tuplas
   so suportadas em C, PL/PgSQL e SQL. Veja o Guia do Programador para
   mais informao. Um exemplo de uma funo escrita em C e que retorna
   tuplas pode ser encontrada em contrib/tablefunc.
   
    5.4) Eu alterei um arquivo do cdigo-fonte. Por que a recompilao no
    surtiu efeito?
    
   Os arquivos Makefiles no tem as dependncias corretas para incluir
   arquivos. Voc deve executar um make clean e ento o make. Se voc
   est utilizando o GCC voc pode utilizar a opo --enable-depend do
   configure para o compilador computar as dependncias automaticamente.
@


1.7
log
@Here's the patch to fix a lot of markup errors in the HTML FAQs. Doesn't
change content (at least not supposed to).

Magnus Hagander
@
text
@d168 1
a168 1
   Portions Copyright (c) 1996-2005, PostgreSQL Global Development Group
@


1.7.2.1
log
@Update AIX FAQ to show readline options more clearly.

Backpatch FAQ's to 8.1.X.
@
text
@d168 1
a168 1
   Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
@


1.6
log
@Update Brazilian FAQ.

Euler Taveira de Oliveira
@
text
@d606 11
a616 16
   utilizando
SELECT pg_backend_pid()

   . Utilize um depurador para anexar ao PID do postgres. Voc pode
   definir pontos de parada (breakpoints) no depurador e digitar
   consultas no psql. Se voc est depurando a inicializao do postgres,
   voc pode definir PGOPTIONS="-W n" e ento iniciar o psql. Isto
   retardar a inicializao por n segundos ento voc pode anexar o
   depurador ao processo, definir quaisquer pontos de parada e continuar
   pela sequncia de inicializao.
   
   H vrias variveis de configurao do servidor
log_*

   que habilitam a exibio de estatsticas que podem ser muito teis
   para depurao e medidas de performance.
d678 7
a684 7
   tendem a acreditar que todos os hardwares de PC so de mesma
   qualidade. No  verdade. ECC RAM, SCSI e placas me de qualidade so
   mais confiveis e tm uma melhor performance do que hardwares mais
   baratos. O PostgreSQL executar em quase todo hardware, mas se a
   confiabilidade e a performance forem importantes  prudente pesquisar
   sobre as opes de hardware. Nossas listas de discusso podem ser
   usadas para discutir opes de hardware e dilemas.
d751 1
a751 2
Tamanho mximo de um banco de dados?           ilimitado (existem bancos de dad
os de 32 TB)
d756 1
a756 2
Nmero mximo de colunas em uma tabela?        250-1600 dependendo dos tipos da
s colunas
d791 1
a791 2
   ------------------------   =  136 registros por pgina do banco de dados (ar
redondado para baixo)
d795 1
a795 2
   ----------------------------  =  735 pginas do banco de dados (arredondado
para cima)
d798 1
a798 2
735 pginas do banco de dados * 8192 bytes por pgina  =  6,021,120 bytes (6 MB
)
d867 2
a868 4
text_pattern_ops
       para tais casos que funcionam somente para indexao utilizando
LIKE
       .
d939 4
a942 8
VARCHAR(n)      varchar         tamanho especifica o comprimento mximo, sem pr
eenchimento
CHAR(n)         bpchar          preenchimento em branco para comprimento fixo e
specfico
TEXT            text            nenhum limite superior especfico no compriment
o
BYTEA           bytea           vetor de bytes de comprimento varivel (null-by
te safe)
d1050 1
a1050 2
        SELECT oid as oid_antigo, minha_coluna INTO tabela_tmp FROM tabela_anti
ga;
@


1.6.4.1
log
@Here's the patch to fix a lot of markup errors in the HTML FAQs. Doesn't
change content (at least not supposed to).

Magnus Hagander
@
text
@d606 16
a621 11
   utilizando SELECT pg_backend_pid(). Utilize um depurador para anexar
   ao PID do postgres. Voc pode definir pontos de parada (breakpoints)
   no depurador e digitar consultas no psql. Se voc est depurando a
   inicializao do postgres, voc pode definir PGOPTIONS="-W n" e ento
   iniciar o psql. Isto retardar a inicializao por n segundos ento
   voc pode anexar o depurador ao processo, definir quaisquer pontos de
   parada e continuar pela sequncia de inicializao.
   
   H vrias variveis de configurao do servidor log_* que habilitam a
   exibio de estatsticas que podem ser muito teis para depurao e
   medidas de performance.
d683 7
a689 7
   tendem a acreditar que todos os hardwares de PC satilde;o de mesma
   qualidade. Natilde;o  verdade. ECC RAM, SCSI e placas me de
   qualidade so mais confiveis e tm uma melhor performance do que
   hardwares mais baratos. O PostgreSQL executar em quase todo hardware,
   mas se a confiabilidade e a performance forem importantes  prudente
   pesquisar sobre as opes de hardware. Nossas listas de discusso
   podem ser usadas para discutir opes de hardware e dilemas.
d756 2
a757 1
Tamanho mximo de um banco de dados?           ilimitado (existem bancos de dados de 32 TB)
d762 2
a763 1
Nmero mximo de colunas em uma tabela?        250-1600 dependendo dos tipos das colunas
d798 2
a799 1
   ------------------------   =  136 registros por pgina do banco de dados (arredondado para baixo)
d803 2
a804 1
   ----------------------------  =  735 pginas do banco de dados (arredondadopara cima)
d807 2
a808 1
735 pginas do banco de dados * 8192 bytes por pgina  =  6,021,120 bytes (6 MB)
d877 4
a880 2
       text_pattern_ops para tais casos que funcionam somente para
       indexao utilizando LIKE.
d951 8
a958 4
VARCHAR(n)      varchar         tamanho especifica o comprimento mximo, sem preenchimento
CHAR(n)         bpchar          preenchimento em branco para comprimento fixo especfico
TEXT            text            nenhum limite superior especfico no comprimento
BYTEA           bytea           vetor de bytes de comprimento varivel (null-byte safe)
d1066 2
a1067 1
        SELECT oid as oid_antigo, minha_coluna INTO tabela_tmp FROM tabela_antiga;
@


1.5
log
@Update FAQ.

Euler Taveira de Oliveira
@
text
@d4 1
a4 1
   ltima atualizao: Sat Nov 20 17:28:23 EDT 2004
d11 3
a13 2
   http://www.PostgreSQL.org/docs/faqs/FAQ.html (EN).
   http://www.PostgreSQL.org/docs/faqs/FAQ_brazilian.html (pt_BR).
d16 1
a16 1
   http://www.PostgreSQL.org/docs/index.html.
d96 2
a97 2
   4.15.3) currval() e nextval() no lidam com condio de corrida com
   outros usurios?
d132 1
a132 3
   PostgreSQL  pronunciado Post-Gres-Qui-El. Um arquivo de udio est
   disponvel em http://www.postgresql.org/postgresql.mp3 para aqueles
   que gostariam de ouvir a pronncia.
d149 1
a149 1
   http://www.PostgreSQL.org/docs/faqs/FAQ_DEV.html
d168 1
a168 1
   Portions copyright (c) 1996-2004, PostgreSQL Global Development Group
d206 8
a213 3
   http://pgfoundry.org/projects/pginstaller.
   
   H tambm um porte para Novell Netware 6 em http://forge.novell.com.
d258 6
a263 3
   H tambm um canal de IRC na Freenode e EFNet, canal PostgreSQL. Voc
   pode utilizar o comando Unix irc -c '#PostgreSQL' "$USER"
   irc.phoenix.net. ou irc -c '#PostgreSQL' "$USER" irc.freenode.net.
d270 1
a270 1
   A ltima verso do PostgreSQL  a verso 7.4.5.
d288 3
a290 2
   psql tem alguns comandos \d para mostrar informao sobre tipos,
   operadores, funes, agregaes, etc.
d338 2
a339 3
   Por favor visite a pgina da ferramenta que reporta bugs em
   http://www.PostgreSQL.org/bugs/bugs.php, que ir lher dar as
   instrues e direes de como submeter um bug.
d359 5
a363 5
          PostgreSQL tem a performance similar a outros bancos de dados
          comerciais e de cdigo livre. Ele  mais rpido em algumas
          coisas, mais lento em outras. Comparado ao MySQL ou sistemas de
          bancos de dados "leves", ns somos mais rpidos com mltiplos
          usurios, consultas complexas e carga de consultas de
d369 1
a369 7
          cada verso. H uma pgina interessante comparando o PostgreSQL
          com o MySQL em
          http://openacs.org/philosophy/why-not-mysql.html. MySQL  uma
          empresa que distribui seu produto via cdigo livre, e requer
          uma licena comercial para software de cdigo fechado, e no
          uma comunidade de desenvolvimento de cdigo livre como o
          PostgreSQL.
a416 1
     _________________________________________________________________
d419 2
a420 1
   nosso website em http://advocacy.postgresql.org.
d455 6
a460 6
   elas o PgAccess http://www.pgaccess.org), PgAdmin III
   (http://www.pgadmin.org, RHDB Admin (http://sources.redhat.com/rhdb/ )
   e o Rekall ( http://www.thekompany.com/products/rekall/,
   proprietria). H tambm o PhpPgAdmin (
   http://phppgadmin.sourceforge.net/ ), uma interface web para
   PostgreSQL.
d504 4
a507 3
   buffers e processos, precisam de aproximadamente 1 MB. Veja o Guia do
   Administrador do PostgreSQL para mais informao sobre memria
   compartilhada e semforos.
d551 8
a558 7
   H vrias opes de ajuste. Voc pode desabilitar o fsync() iniciando
   o postmaster com a opo -o -F. Isso ir impedir que fsync()s enviem
   os dados para disco aps cada transao.
   
   Voc tambm pode utilizar a opo -B do postmaster para aumentar o
   nmero de buffers de memria compartilhada utilizados pelos processos
   do servidor. Se voc definiu este parmetro com um valor muito alto, o
d561 1
a561 1
   64 buffers.
d563 4
a566 4
   Voc tambm pode utilizar a opo -S do backend para aumentar a mxima
   quantidade de memria utilizada pelo processo servidor para ordenaes
   temporrias. O valor de -S  medido em kilobytes e o padro  de 512
   (ou seja 512K).
d604 18
a621 2
   O programa postgres possue as opes -s, -A, e -t que podem ser muito
   teis para depurao e medidas de performance.
d874 7
a880 1
     * A localidade padro C deve ser utilizada durante o initdb.
d1027 2
a1028 2
   utilizando DBI com o mdulo DBD::Pg de Edmund Mergl, o valor do oid
   est disponvel via $sth->{pg_oid_status} depois de $sth->execute().
d1030 1
a1030 2
    4.15.3) currval() e nextval() no lidam com condio de corrida com outros
    usurios?
@


1.4
log
@Update Brazilian FAQ.

Euler Taveira de Oliveira
@
text
@d8 1
a8 1
   Traduzido por: Euler Taveira de Oliveira (euler@@ufgnet.ufg.br)
@


1.3
log
@Typo fixes.

Euler Taveira de Oliveira
@
text
@d4 1
a4 1
   ltima atualizao: Ter Ago 31 23:28:02 EDT 2004
d114 1
a114 2
   4.27) Que opes para replicao esto disponveis?
   4.28) Que opes para encriptao esto disponveis?
d1198 1
a1198 10
    4.27) Que opes para replicao esto disponveis?
    
   H vrias opes de replicao mestre/escravo disponveis. Isto
   permite somente que o mestre faa mudanas no banco de dados e o
   escravo s pode ler o banco de dados. Abaixo em
   http://gborg.PostgreSQL.org/genpage?replication_research lista-os. Uma
   soluo de replicao de mltiplos mestres est sendo desenvolvida em
   http://gborg.PostgreSQL.org/project/pgreplication/projdisplay.php.
   
    4.28) Que opes para encriptao esto disponveis?
@


1.2
log
@Update Brazilian FAQ.

Euler Taveira de Oliveira
@
text
@d174 1
a174 1
   sua documentao para qualquer propsito, sem taxa, e sem um acordo
d215 2
a216 1
   Para relao de servidores espelhos (mirrors), consulte nosso website.
@


1.1
log
@Add Brazilian version of FAQ.

Euler Taveira de Oliveira
@
text
@d4 1
a4 1
   ltima atualizao: Sex Jun 4 00:09:16 EDT 2004
d64 1
d205 4
a208 21
   Cliente
   
    possvel compilar a biblioteca libpq, o psql e outras interfaces e
   aplicaes clientes para executar em plataformas MS Windows. Neste
   caso, o cliente est sendo executado no MS Windows e comunica via
   TCP/IP com um servidor executando em uma das plataformas Unix
   suportadas. O arquivo win32.mak est presente na distribuio para que
   seja possvel compilar a biblioteca libpq e o psql para Win32. O
   PostgreSQL tambm se comunica com clientes ODBC.
   
   Servidor
   
   O Servidor de banco de dados pode ser executado em Windows NT e Win2k
   utilizando o Cygwin, uma biblioteca de portabilidade Unix/NT da
   Cygnus. Veja pgsql/doc/FAQ_MSWIN na distribuio ou a FAQ do MS
   Windows em http://www.PostgreSQL.org/docs/faqs/text/FAQ_MSWIN.
   
   Um porte nativo para MS Win NT/2000/XP est sendo desenvolvido. Para
   maiores detalhes sobre o status do PostgreSQL no Windows veja
   http://techdocs.postgresql.org/guides/Windows e
   http://momjian.postgresql.org/main/writings/pgsql/win32.html.
d263 1
a263 1
   A ltima verso do PostgreSQL  a verso 7.4.2.
d528 4
a531 4
   utilizando soquetes de domnio Unix. Outras mquinas no podero
   conectar-se a menos que voc habilite tcpip_sockets no
   postgresql.conf, e habilite a autenticao por mquina modificando o
   arquivo $PGDATA/pg_hba.conf. Isso ir permitir conexes TCP/IP.
d660 11
d770 1
a770 1
    36 bytes: cada cabealho de registro (aproximadamente)
d774 1
a774 1
    64 bytes por registro
d779 1
a779 1
   ------------------------   =  128 registros por pgina do banco de dados (ar
d781 1
a781 1
     64 bytes por registro
d784 1
a784 1
   ----------------------------  =  782 pginas do banco de dados (arredondado
d788 2
a789 2
782 pginas do banco de dados * 8192 bytes por pgina  =  6,406,144 bytes (6.4
MB)
d857 5
@


1.1.2.1
log
@Add Brazilian version of FAQ.

Euler Taveira de Oliveira
@
text
@d4 1
a4 1
   ltima atualizao: Sab Fev 7 22:16:21 EST 2004
d131 3
a133 2
   PostgreSQL  pronunciado Post-Gres-Qui-El. O nome "Postgres" 
   utilizado frequentemente em conversaes.
d136 6
a141 5
   POSTGRES, um prottipo de pesquisa de um SGBD de ltima gerao.
   Enquanto o PostgreSQL retm a modelagem de dados poderosa e a grande
   quantidade de tipos de dados do POSTGRES, ele substituiu a linguagem
   de consulta PostQuel com um subconjunto extendido do SQL. PostgreSQL 
   livre e o cdigo-fonte completo est disponvel.
d149 1
a149 1
   empresa. Para se juntar ao grupo, veja a FAQ do desenvolvedor
d169 1
a169 1
   Portions copyright (c) 1996-2002, PostgreSQL Global Development Group
d197 4
a200 3
   Em geral, uma plataforma moderna compatvel com Unix deve ser capaz de
   executar o PostgreSQL. As plataformas que foram testadas antes do
   lanamento de uma verso so listadas nas instrues de instalao.
d279 1
a279 1
   A ltima verso do PostgreSQL  a verso 7.4.1.
d473 1
a473 1
   proprietria). H tambm o PHPPgAdmin (
d545 3
a547 3
   conectar-se a menos que voc adicione a opo -i no postmaster, e
   habilite a autenticao por mquina modificando o arquivo
   $PGDATA/pg_hba.conf. Isso ir permitir conexes TCP/IP.
d553 2
a554 2
   permite que voc veja como o PostgreSQL est interpretando a consulta,
   e quais os ndices so utilizados.
d705 3
a707 1
   Voc pode ler o cdigo-fonte do psql no arquivo
d711 3
a713 1
   os comandos que voc digitou.
d1041 5
a1045 4
        CREATE TABLE nova_tabela(oid_antigo oid, minha_coluna int);
        SELECT oid_antigo, minha_coluna INTO novo FROM tabela_antiga;
        COPY novo TO '/tmp/pgtable';
        DELETE FROM novo;
@

