Commit 535b0787 authored by Bruce Momjian's avatar Bruce Momjian

Update Brazilian FAQ.

Euler Taveira de Oliveira
parent 30b6622e
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
alink="#0000ff"> alink="#0000ff">
<H1>Perguntas Frequentes (FAQ) sobre PostgreSQL</H1> <H1>Perguntas Frequentes (FAQ) sobre PostgreSQL</H1>
<P>&Uacute;ltima atualiza&ccedil;&atilde;o: S&aacute;b Out 14 19:08:19 EDT 2006</P> <P>&Uacute;ltima atualiza&ccedil;&atilde;o: Qui Set 27 02:14:24 EDT 2007</P>
<P>Mantenedor atual: Bruce Momjian (<A href= <P>Mantenedor atual: Bruce Momjian (<A href=
"mailto:bruce@momjian.us">bruce@momjian.us</A>) "mailto:bruce@momjian.us">bruce@momjian.us</A>)
...@@ -43,6 +43,7 @@ ...@@ -43,6 +43,7 @@
<A href="#item1.11">1.11</A>) Como eu posso aprender <SMALL>SQL</SMALL>?<BR> <A href="#item1.11">1.11</A>) Como eu posso aprender <SMALL>SQL</SMALL>?<BR>
<A href="#item1.12">1.12</A>) Como posso submeter uma corre&ccedil;&atilde;o (patch) ou me juntar a equipe de desenvolvimento?<BR> <A href="#item1.12">1.12</A>) Como posso submeter uma corre&ccedil;&atilde;o (patch) ou me juntar a equipe de desenvolvimento?<BR>
<A href="#item1.13">1.13</A>) Como &eacute; o PostgreSQL comparado a outros <SMALL>SGBD</SMALL>s?<BR> <A href="#item1.13">1.13</A>) Como &eacute; o PostgreSQL comparado a outros <SMALL>SGBD</SMALL>s?<BR>
<A href="#item1.14">1.14</A>) O PostgreSQL gerenciará as mudan&ccedil;as de hor&aacute;rio devido ao hor&aacute;rio de ver&atilde;o em v&aacute;rios pa&iacute;ses?<BR>
<H2 align="center">Perguntas sobre Clientes</H2> <H2 align="center">Perguntas sobre Clientes</H2>
...@@ -57,7 +58,7 @@ ...@@ -57,7 +58,7 @@
<A href="#item3.3">3.3</A>) Como eu ajusto o servidor de banco de dados para obter uma performance melhor?<BR> <A href="#item3.3">3.3</A>) Como eu ajusto o servidor de banco de dados para obter uma performance melhor?<BR>
<A href="#item3.4">3.4</A>) Quais caracter&iacute;sticas de depura&ccedil;&atilde;o est&atilde;o dispon&iacute;veis?<BR> <A href="#item3.4">3.4</A>) Quais caracter&iacute;sticas de depura&ccedil;&atilde;o est&atilde;o dispon&iacute;veis?<BR>
<A href="#item3.5">3.5</A>) Por que eu recebo <I>"Sorry, too many clients"</I> quando eu tento conectar?<BR> <A href="#item3.5">3.5</A>) Por que eu recebo <I>"Sorry, too many clients"</I> quando eu tento conectar?<BR>
<A href="#item3.6">3.6</A>) Qual &eacute; o processo de atualiza&ccedil;&atilde;o do PostgreSQL?</H3> <A href="#item3.6">3.6</A>) Qual &eacute; o processo de atualiza&ccedil;&atilde;o do PostgreSQL?<BR>
<A href="#item3.7">3.7</A>) Que tipo de hardware eu devo usar?<BR> <A href="#item3.7">3.7</A>) Que tipo de hardware eu devo usar?<BR>
...@@ -70,7 +71,7 @@ ...@@ -70,7 +71,7 @@
<A href="#item4.6">4.6</A>) Por que minhas consultas est&atilde;o lentas? Por que elas n&atilde;o est&atilde;o utilizando meus &iacute;ndices?<BR> <A href="#item4.6">4.6</A>) Por que minhas consultas est&atilde;o lentas? Por que elas n&atilde;o est&atilde;o utilizando meus &iacute;ndices?<BR>
<A href="#item4.7">4.7</A>) Como eu vejo como o otimizador de consultas est&aacute; avaliando minha consulta?<BR> <A href="#item4.7">4.7</A>) Como eu vejo como o otimizador de consultas est&aacute; avaliando minha consulta?<BR>
<A href="#item4.8">4.8</A>) Como eu fa&ccedil;o buscas com express&otilde;es regulares e buscas com express&otilde;es regulares sem diferenciar mau&uacute;sculas de min&uacute;sculas? Como eu utilizo um &iacute;ndice para buscas sem distinguir mai&uacute;sculas de min&uacute;sculas?<BR> <A href="#item4.8">4.8</A>) Como eu fa&ccedil;o buscas com express&otilde;es regulares e buscas com express&otilde;es regulares sem diferenciar mau&uacute;sculas de min&uacute;sculas? Como eu utilizo um &iacute;ndice para buscas sem distinguir mai&uacute;sculas de min&uacute;sculas?<BR>
<A href="#item4.9">4.9</A>) Em uma consulta, como eu detecto se um campo &eacute; <SMALL>NULL</SMALL>? Como eu posso ordenar por um campo que &eacute; <SMALL>NULL</SMALL> ou n&atilde;o?<BR> <A href="#item4.9">4.9</A>) Em uma consulta, como eu detecto se um campo &eacute; <SMALL>NULL</SMALL>? Como eu posso concatenar poss&iacute;veis <SMALL>NULL</SMALL>s? Como eu posso ordenar por um campo que &eacute; <SMALL>NULL</SMALL> ou n&atilde;o?<BR>
<A href="#item4.10">4.10</A>) Qual &eacute; a diferen&ccedil;a entre os v&aacute;rios tipos de dado de caracteres?<BR> <A href="#item4.10">4.10</A>) Qual &eacute; a diferen&ccedil;a entre os v&aacute;rios tipos de dado de caracteres?<BR>
<A href="#item4.11.1">4.11.1</A>) Como eu crio um campo serial/auto incremento?<BR> <A href="#item4.11.1">4.11.1</A>) Como eu crio um campo serial/auto incremento?<BR>
<A href="#item4.11.2">4.11.2</A>) Como eu consigo o valor de um campo <A href="#item4.11.2">4.11.2</A>) Como eu consigo o valor de um campo
...@@ -88,7 +89,7 @@ ...@@ -88,7 +89,7 @@
does not exist" ao acessar tabelas tempor&aacute;rias em fun&ccedil;&otilde;es PL/PgSQL?<BR> does not exist" ao acessar tabelas tempor&aacute;rias em fun&ccedil;&otilde;es PL/PgSQL?<BR>
<A href="#item4.20">4.20</A>) Quais solu&ccedil;&otilde;es de replica&ccedil;&atilde;o est&atilde;o dispon&iacute;veis?<BR> <A href="#item4.20">4.20</A>) Quais solu&ccedil;&otilde;es de replica&ccedil;&atilde;o est&atilde;o dispon&iacute;veis?<BR>
<A href="#item4.21">4.21</A>) Por que os nomes de minhas tabelas e colunas n&atilde;o <A href="#item4.21">4.21</A>) Por que os nomes de minhas tabelas e colunas n&atilde;o
s&atilde;o reconhecidos em minha consulta?<BR> s&atilde;o reconhecidos em minha consulta? Por que as mai&uacute;sculas n&atilde;o s&atilde;o preservadas?<BR>
<HR> <HR>
...@@ -97,10 +98,9 @@ ...@@ -97,10 +98,9 @@
<H3 id="item1.1">1.1) O que &eacute; PostgreSQL? Como ele &eacute; pronunciado?</H3> <H3 id="item1.1">1.1) O que &eacute; PostgreSQL? Como ele &eacute; pronunciado?</H3>
<P>PostgreSQL &eacute; pronunciado <I>Post-Gres-Q-L</I>, e &eacute;, &agrave;s vezes, referido apenas como <P>PostgreSQL &eacute; pronunciado <I>Post-Gres-Q-L</I>, mas tamb&eacute;m pode ser referido apenas como <I>Postgres</I> principalmente em conversa&ccedil;&otilde;es.
<I>Postgres</I>. Um arquivo de &aacute;udio est&aacute; dispon&iacute;vel em (Para os curiosos que querem saber como se diz "PostgreSQL", um
<a href="http://www.postgresql.org/files/postgresql.mp3">formato MP3</a> para <a href="http://www.postgresql.org/files/postgresql.mp3">arquivo de &aacute;udio</a> est&aacute; dispon&iacute;vel).</P>
aqueles que gostariam de ouvir a pron&uacute;ncia.</P>
<P>O PostgreSQL &eacute; um sistema de banco de dados objeto-relacional que tem as <P>O PostgreSQL &eacute; um sistema de banco de dados objeto-relacional que tem as
caracter&iacute;sticas de sistemas de bancos de dados comerciais tradicionais com caracter&iacute;sticas de sistemas de bancos de dados comerciais tradicionais com
...@@ -125,7 +125,7 @@ ...@@ -125,7 +125,7 @@
voc&ecirc; precisa &eacute; se inscrever nas listas de discuss&atilde;o e participar das voc&ecirc; precisa &eacute; se inscrever nas listas de discuss&atilde;o e participar das
discuss&otilde;es. Veja a <a href="http://www.postgresql.org/docs/faqs.FAQ_DEV.html"> discuss&otilde;es. Veja a <a href="http://www.postgresql.org/docs/faqs.FAQ_DEV.html">
FAQ do desenvolvedor</A> para obter informa&ccedil;&otilde;es como se envolver com o FAQ do desenvolvedor</A> para obter informa&ccedil;&otilde;es como se envolver com o
desenvolvimento do PostgreSQL.</P> desenvolvimento do Postgres.</P>
<H3 id="item1.3">1.3) Qual &eacute; a licen&ccedil;a do PostgreSQL?</H3> <H3 id="item1.3">1.3) Qual &eacute; a licen&ccedil;a do PostgreSQL?</H3>
...@@ -169,7 +169,7 @@ ...@@ -169,7 +169,7 @@
baseados no NT tais como Win200 SP4, WinXP e Win2003. Um instalador pr&eacute;-empacotado est&aacute; baseados no NT tais como Win200 SP4, WinXP e Win2003. Um instalador pr&eacute;-empacotado est&aacute;
dispon&iacute;vel em <a href= "http://pgfoundry.org/projects/pginstaller"> dispon&iacute;vel em <a href= "http://pgfoundry.org/projects/pginstaller">
http://pgfoundry.org/projects/pginstaller</a>. Vers&otilde;es do Windows baseadas no MS-DOS http://pgfoundry.org/projects/pginstaller</a>. Vers&otilde;es do Windows baseadas no MS-DOS
(Win95, Win98, WinMe) podem executar o PostgreSQL utilizando o Cygwin.</P> (Win95, Win98, WinMe) podem executar o Postgres utilizando o Cygwin.</P>
<p>H&aacute; tamb&eacute;m uma vers&atilde;o para o Novell Netware 6 em <p>H&aacute; tamb&eacute;m uma vers&atilde;o para o Novell Netware 6 em
<a href="http://forge.novell.com">http://forge.novell.com</a> <a href="http://forge.novell.com">http://forge.novell.com</a>
...@@ -181,13 +181,13 @@ ...@@ -181,13 +181,13 @@
<P>Via navegador web, utilize <a href="http://www.postgresql.org/ftp/"> <P>Via navegador web, utilize <a href="http://www.postgresql.org/ftp/">
http://www.postgresql.org/ftp/</a> e via ftp, utilize http://www.postgresql.org/ftp/</a> e via ftp, utilize
<A href="ftp://ftp.PostgreSQL.org/pub/"> <A href="ftp://ftp.postgresql.org/pub/">
ftp://ftp.PostgreSQL.org/pub/</A>.</P> ftp://ftp.postgresql.org/pub/</A>.</P>
<H3 id="item1.6">1.6) Qual &eacute; a &uacute;ltima vers&atilde;o?</H3> <H3 id="item1.6">1.6) Qual &eacute; a &uacute;ltima vers&atilde;o?</H3>
<P>A &uacute;ltima vers&atilde;o do PostgreSQL &eacute; a vers&atilde;o 8.1.5.</P> <P>A &uacute;ltima vers&atilde;o do PostgreSQL &eacute; a vers&atilde;o 8.2.5.</P>
<P>N&oacute;s planejamos lan&ccedil;ar vers&otilde;es novas a cada ano com vers&otilde;es <P>N&oacute;s planejamos lan&ccedil;ar vers&otilde;es novas a cada ano com vers&otilde;es
corretivas em alguns meses.</P> corretivas em alguns meses.</P>
...@@ -211,8 +211,8 @@ ...@@ -211,8 +211,8 @@
<P>Visite o formul&aacute;rio que reporta bugs do PostgreSQL em <A href= <P>Visite o formul&aacute;rio que reporta bugs do PostgreSQL em <A href=
"http://www.postgresql.org/support/submitbug">http://www.postgresql.org/support/submitbug</A>.</P> "http://www.postgresql.org/support/submitbug">http://www.postgresql.org/support/submitbug</A>.</P>
<P>Verifique tamb&eacute;m o nosso ftp <A href= <P>Verifique tamb&eacute;m o nosso ftp <A href=
"ftp://ftp.PostgreSQL.org/pub">ftp://ftp.PostgreSQL.org/pub</A> para "ftp://ftp.postgresql.org/pub">ftp://ftp.postgresql.org/pub</A> para
ver se h&aacute; uma vers&atilde;o mais recente do PostgreSQL.</P> ver se h&aacute; uma vers&atilde;o mais recente do Postgres.</P>
<P>Bugs submetidos utilizando o formul&aacute;rio ou informado a qualquer <P>Bugs submetidos utilizando o formul&aacute;rio ou informado a qualquer
lista de discuss&atilde;o do PostgreSQL tipicamente gera uma das seguintes lista de discuss&atilde;o do PostgreSQL tipicamente gera uma das seguintes
...@@ -220,7 +220,7 @@ ...@@ -220,7 +220,7 @@
<ul> <ul>
<li>N&atilde;o &eacute; um bug e o porqu&ecirc;</li> <li>N&atilde;o &eacute; um bug e o porqu&ecirc;</li>
<li>&Eacute; um bug conhecido e j&aacute; est&aacute; na lista de <li>&Eacute; um bug conhecido e j&aacute; est&aacute; na lista de
<A href="http://www.postgresql.org/docs/faqs.TODO.html">AFAZERES (TODO)</A></li> <A href="http://www.postgresql.org/docs/faqs.TODO.html">AFAZERES</A></li>
<li>O bug foi corrigido na vers&atilde;o atual</li> <li>O bug foi corrigido na vers&atilde;o atual</li>
<li>O bug foi corrigido mas n&atilde;o foi empacotado em um vers&atilde;o oficial</li> <li>O bug foi corrigido mas n&atilde;o foi empacotado em um vers&atilde;o oficial</li>
<li>Um pedido foi feito para obter informa&ccedil;&otilde;es detalhadas: <li>Um pedido foi feito para obter informa&ccedil;&otilde;es detalhadas:
...@@ -236,7 +236,7 @@ ...@@ -236,7 +236,7 @@
<ul> <ul>
<li>Uma corre&ccedil;&atilde;o &eacute; criada e ser&aacute; inclu&iacute;da na pr&oacute;xima vers&atilde;o</li> <li>Uma corre&ccedil;&atilde;o &eacute; criada e ser&aacute; inclu&iacute;da na pr&oacute;xima vers&atilde;o</li>
<li>O bug n&atilde;o pode ser corrigido imediatamente e &eacute; adicionado <li>O bug n&atilde;o pode ser corrigido imediatamente e &eacute; adicionado
a lista de <A href="http://www.postgresql.org/docs/faqs.TODO.html">AFAZERES (TODO)</A></li> a lista de <A href="http://www.postgresql.org/docs/faqs.TODO.html">AFAZERES</A></li>
</ul> </ul>
</li> </li>
</ul> </ul>
...@@ -245,13 +245,13 @@ ...@@ -245,13 +245,13 @@
ou funcionalidades ausentes?</H3> ou funcionalidades ausentes?</H3>
<P>O PostgreSQL suporta um subconjunto extendido do <SMALL>SQL:2003</SMALL>. <P>O PostgreSQL suporta um subconjunto extendido do <SMALL>SQL:2003</SMALL>.
Veja nossa lista de <A href="http://www.postgresql.org/docs/faqs.TODO.html">AFAZERES (TODO)</A> Veja nossa lista de <A href="http://www.postgresql.org/docs/faqs.TODO.html">AFAZERES</A>
que cont&eacute;m bugs conhecidos, funcionalidades ausentes e planos futuros.</P> que cont&eacute;m bugs conhecidos, funcionalidades ausentes e planos futuros.</P>
<P>Uma solicita&ccedil;&atilde;o de funcionalidade geralmente resulta em uma das <P>Uma solicita&ccedil;&atilde;o de funcionalidade geralmente resulta em uma das
seguintes respostas:</P> seguintes respostas:</P>
<ul> <ul>
<li>A funcionalidade j&aacute; est&aacute; na lista de <A href="http://www.postgresql.org/docs/faqs.TODO.html">AFAZERES (TODO)</A></li> <li>A funcionalidade j&aacute; est&aacute; na lista de <A href="http://www.postgresql.org/docs/faqs.TODO.html">AFAZERES</A></li>
<li>A funcionalidade n&atilde;o &eacute; desej&aacute;vel porque: <li>A funcionalidade n&atilde;o &eacute; desej&aacute;vel porque:
<ul> <ul>
<li>Ela duplica uma funcionalidade existente que j&aacute; segue o <li>Ela duplica uma funcionalidade existente que j&aacute; segue o
...@@ -262,16 +262,16 @@ ...@@ -262,16 +262,16 @@
</ul> </ul>
</li> </li>
<li>A nova funcionalidade &eacute; adicionada a lista de <li>A nova funcionalidade &eacute; adicionada a lista de
<A href="http://www.postgresql.org/docs/faqs.TODO.html">AFAZERES (TODO)</A></li> <A href="http://www.postgresql.org/docs/faqs.TODO.html">AFAZERES</A></li>
</ul> </ul>
<P>O PostgreSQL n&atilde;o utiliza sistema de acompanhamento de bugs porque <P>O PostgreSQL n&atilde;o utiliza sistema de acompanhamento de bugs porque
n&oacute;s achamos mais eficiente responder diretamente o e-mail e manter a n&oacute;s achamos mais eficiente responder diretamente o e-mail e manter a
lista de <A href="http://www.postgresql.org/docs/faqs.TODO.html">AFAZERES (TODO)</A> lista de <A href="http://www.postgresql.org/docs/faqs.TODO.html">AFAZERES</A>
atualizada. Na pr&aacute;tica, bugs n&atilde;o duram muito no programa; e bugs que afetam atualizada. Na pr&aacute;tica, bugs n&atilde;o duram muito no programa; e bugs que afetam
uma grande quantidade de usu&aacute;rios s&atilde;o corrigidos rapidamente. O &uacute;nico lugar uma grande quantidade de usu&aacute;rios s&atilde;o corrigidos rapidamente. O &uacute;nico lugar
para encontrar todas as mudan&ccedil;as, melhorias e corre&ccedil;&otilde;es em uma vers&atilde;o do para encontrar todas as mudan&ccedil;as, melhorias e corre&ccedil;&otilde;es em uma vers&atilde;o do
PostgreSQL &eacute; ler as mensagens de log do Postgres &eacute; ler as mensagens de log do
<a href="http://www.postgresql.org/developer/sourcecode/">CVS</a>. At&eacute; mesmo <a href="http://www.postgresql.org/developer/sourcecode/">CVS</a>. At&eacute; mesmo
as notas de lan&ccedil;amento n&atilde;o listam todas as mudan&ccedil;as feitas no programa.</P> as notas de lan&ccedil;amento n&atilde;o listam todas as mudan&ccedil;as feitas no programa.</P>
...@@ -280,7 +280,7 @@ ...@@ -280,7 +280,7 @@
<P>O PostgreSQL inclui vasta documenta&ccedil;&atilde;o, incluindo um manual extenso, <P>O PostgreSQL inclui vasta documenta&ccedil;&atilde;o, incluindo um manual extenso,
p&aacute;ginas de manuais (man pages) e alguns exemplos teste. Veja o diret&oacute;rio p&aacute;ginas de manuais (man pages) e alguns exemplos teste. Veja o diret&oacute;rio
<I>/doc</I>. Voc&ecirc; tamb&eacute;m pode pesquisar os manuais online em <A href= <I>/doc</I>. Voc&ecirc; tamb&eacute;m pode pesquisar os manuais online em <A href=
"http://www.PostgreSQL.org/docs">http://www.PostgreSQL.org/docs</A>. "http://www.postgresql.org/docs">http://www.postgresql.org/docs</A>.
</P> </P>
<P>H&aacute; dois livros sobre PostgreSQL dispon&iacute;veis online em <A href= <P>H&aacute; dois livros sobre PostgreSQL dispon&iacute;veis online em <A href=
...@@ -290,7 +290,8 @@ ...@@ -290,7 +290,8 @@
H&aacute; uma lista de livros sobre PostgreSQL dispon&iacute;veis para compra. Um dos mais H&aacute; uma lista de livros sobre PostgreSQL dispon&iacute;veis para compra. Um dos mais
populares &eacute; o do Korry Douglas. Uma lista de an&aacute;lise sobre os livros pode ser populares &eacute; o do Korry Douglas. Uma lista de an&aacute;lise sobre os livros pode ser
encontrada em <A href= encontrada em <A href=
"http://techdocs.postgresql.org/techdocs/bookreviews.php">http://techdocs.PostgreSQL.org/techdocs/bookreviews.php</A>. "http://techdocs.postgresql.org/techdocs/bookreviews.php">http://techdocs.postgresql.org/techdocs/bookreviews.php</A>.
H&aacute; tamb&eacute;m uma cole&ccedil;&atilde;o de artigos t&eacute;cnicos sbore PostgreSQL em <A href="http://techdocs.postgresql.org/">http://techdocs.postgresql.org/</A>.</P>
<P>O programa cliente de linha de comando <I>psql</I> tem alguns comandos \d para <P>O programa cliente de linha de comando <I>psql</I> tem alguns comandos \d para
mostrar informa&ccedil;&otilde;es sobre tipos, operadores, fun&ccedil;&otilde;es, agrega&ccedil;&otilde;es, etc. - utilize \? mostrar informa&ccedil;&otilde;es sobre tipos, operadores, fun&ccedil;&otilde;es, agrega&ccedil;&otilde;es, etc. - utilize \?
...@@ -352,7 +353,7 @@ ...@@ -352,7 +353,7 @@
<DT><B>Suporte</B></DT> <DT><B>Suporte</B></DT>
<DD>Nossas listas de discuss&atilde;o fornecem contato com um grupo de desenvolvedores e usu&aacute;rios para ajudar a resolver muitos problemas encontrados. Enquanto n&oacute;s n&atilde;o podemos garantir o conserto, <SMALL>SGBD</SMALL>s comerciais nem sempre fornecem tamb&eacute;m. Com acesso direto aos desenvolvedores, a comunidade de usu&aacute;rios, manuais e o c&oacute;digo fonte faz com que o suporte do PostgreSQL seja superior ao de outros <SMALL>SGBD</SMALL>s. H&aacute; suporte comercial por incidente dispon&iacute;veis para aqueles que precisam de um. (Veja <A href="#item1.7">se&ccedil;&atilde;o 1.7 da FAQ</A>.)<BR> <DD>Nossas listas de discuss&atilde;o fornecem contato com um grupo de desenvolvedores e usu&aacute;rios para ajudar a resolver muitos problemas encontrados. Enquanto n&oacute;s n&atilde;o podemos garantir o conserto, <SMALL>SGBD</SMALL>s comerciais nem sempre fornecem tamb&eacute;m. Com acesso direto aos desenvolvedores, a comunidade de usu&aacute;rios, manuais e o c&oacute;digo fonte faz com que o suporte do PostgreSQL seja superior ao de outros <SMALL>SGBD</SMALL>s. H&aacute; suporte comercial por incidente dispon&iacute;veis para aqueles que precisam de um. (Veja <A href="#item1.7">se&ccedil;&atilde;o 1.7 da FAQ</A>).<BR>
<BR> <BR>
</DD> </DD>
...@@ -363,6 +364,10 @@ ...@@ -363,6 +364,10 @@
</DD> </DD>
</DL> </DL>
<H3 id="item1.14">1.14) O PostgreSQL gerenciar&aacute; mudan&ccedil;as no hor&aacute;rio devido ao hor&aacute;rio de ver&atilde;o em v&aacute;rios pa&iacute;ses?</H3>
<P>Mudan&ccedil;as no hor&aacute;rio de ver&atilde;o dos USA foram inclu&iacute;das nas vers&otilde;es 8.0 .[4+] do PostgreSQL e em todas as vers&otilde;es grandes, i.e. 8.1. Mudan&ccedil;as no Canad&aacute; e Austr&aacute;lia Oeste foram inclu&iacute;das na 8.0.[10+], 8.1.[6+] e em todas as vers&otilde;es grandes subsequentes. Vers&otilde;es do PostgreSQL anteriores a 8.0 utilizam o banco de dados de zona hor&aacute;ria do sistema operacional para informa&ccedil;&otilde;es sobre hor&aacute;rio de ver&atilde;o.</P>
<HR> <HR>
<H2 align="center">Perguntas sobre Clientes</H2> <H2 align="center">Perguntas sobre Clientes</H2>
...@@ -482,15 +487,12 @@ ...@@ -482,15 +487,12 @@
<H3 id="item3.6">3.6) Qual &eacute; o processo de atualiza&ccedil;&atilde;o do PostgreSQL?</H3> <H3 id="item3.6">3.6) Qual &eacute; o processo de atualiza&ccedil;&atilde;o do PostgreSQL?</H3>
<P>O time do PostgreSQL faz somente pequenas mudan&ccedil;as entre vers&otilde;es corretivas, ent&atilde;o atualizar da vers&atilde;o 7.4.8 para 7.4.9 n&atilde;o requer uma exporta&ccedil;&atilde;o e uma importa&ccedil;&atilde;o; basta para o servidor de banco de dados, instalar os bin&aacute;rios atualizados e reiniciar o servidor.</P> <P>Veja <a
href="http://www.postgresql.org/support/versioning">http://www.postgresql.org/support/versioning</a>
<P>Todos os usu&aacute;rios devem atualizar para as vers&otilde;es corretivas mais recentes para discussão geral sobre atualizações e <a href=
assim que elas estiverem dispon&iacute;veis. Enquanto cada atualiza&ccedil;&atilde;o tem algum risco, "http://www.postgresql.org/docs/current/static/install-upgrading.html">
vers&otilde;es corretivas do PostgreSQL s&atilde;o projetadas para corrigir somente bugs comuns http://www.postgresql.org/docs/current/static/install-upgrading.html</a>
com um risco m&iacute;nimo. A comunidade considera <i>n&atilde;o</i> atualizar mais para instru&ccedil;&otilde;es espec&iacute;ficas.</P>
perigoso do que atualizar.</P>
<P>Vers&otilde;es 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 mudan&ccedil;as geralmente s&atilde;o complexas, ent&atilde;o n&oacute;s n&atilde;o mantemos compatibilidade para os arquivos de dados. Uma exporta&ccedil;&atilde;o/importa&ccedil;&atilde;o de um banco de dados &eacute; necess&aacute;ria para atualiza&ccedil;&otilde;es entre vers&otilde;es.</P>
<H3 id="item3.7">3.7) Que tipo de hardware eu devo usar?</H3> <H3 id="item3.7">3.7) Que tipo de hardware eu devo usar?</H3>
...@@ -589,29 +591,29 @@ ...@@ -589,29 +591,29 @@
melhor garantida por um &iacute;ndice de uma fun&ccedil;&atilde;o de um hash MD5 de uma coluna longa, e melhor garantida por um &iacute;ndice de uma fun&ccedil;&atilde;o de um hash MD5 de uma coluna longa, e
indexa&ccedil;&atilde;o de texto longo permite a busca de palavras dentro da coluna.</P> indexa&ccedil;&atilde;o de texto longo permite a busca de palavras dentro da coluna.</P>
<H3 name="item4.5">4.5) Quanto espa&ccedil;o em disco &eacute; necess&aacute;rio para armazenar dados de um arquivo texto?</H3> <H3 id="item4.5">4.5) Quanto espa&ccedil;o em disco &eacute; necess&aacute;rio para armazenar dados de um arquivo texto?</H3>
<P>Um banco de dados PostgreSQL ir&aacute; requerer at&eacute; cinco vezes a quantidade de espa&ccedil;o requerida para armazenar dados em um arquivo texto.</P> <P>Um banco de dados PostgreSQL ir&aacute; requerer at&eacute; cinco vezes a quantidade de espa&ccedil;o requerida para armazenar dados em um arquivo texto.</P>
<P>Como um exemplo, considere um arquivo com 100.000 linhas contendo um inteiro e uma descri&ccedil;&atilde;o em cada linha. Suponha que o tamanho m&eacute;dio da descri&ccedil;&atilde;o &eacute; de vinte bytes. O arquivo ter&aacute; 2,8 MB. O tamanho do arquivo do banco de dados PostgreSQL que cont&eacute;m esses dados pode ser estimado em 5,6 MB:</P> <P>Como um exemplo, considere um arquivo com 100.000 linhas contendo um inteiro e uma descri&ccedil;&atilde;o em cada linha. Suponha que o tamanho m&eacute;dio da descri&ccedil;&atilde;o &eacute; de vinte bytes. O arquivo ter&aacute; 2,8 MB. O tamanho do arquivo do banco de dados PostgreSQL que cont&eacute;m esses dados pode ser estimado em 5,2 MB:</P>
<PRE> <PRE>
28 bytes: cada cabe&ccedil;alho de registro (aproximadamente) 24 bytes: cada cabe&ccedil;alho de registro (aproximadamente)
24 bytes: um campo int e um campo texto 24 bytes: um campo int e um campo texto
+ 4 bytes: ponteiro na p&aacute;gina para a tupla + 4 bytes: ponteiro na p&aacute;gina para a tupla
------------------------------------------- -------------------------------------------
56 bytes por registro 52 bytes por registro
O tamanho de uma p&aacute;gina de dados no PostgreSQL &eacute; 8192 bytes (8 KB), ent&atilde;o: O tamanho de uma p&aacute;gina de dados no Postgres &eacute; 8192 bytes (8 KB), ent&atilde;o:
8192 bytes por p&aacute;gina 8192 bytes por p&aacute;gina
------------------------ = 146 registros por p&aacute;gina do banco de dados (arredondado para baixo) ------------------------ = 158 registros por p&aacute;gina do banco de dados (arredondado para baixo)
56 bytes por registro 52 bytes por registro
100000 registros de dados 100000 registros de dados
---------------------------- = 685 p&aacute;ginas do banco de dados (arredondado para cima) ---------------------------- = 633 p&aacute;ginas do banco de dados (arredondado para cima)
146 registros por p&aacute;gina 158 registros por p&aacute;gina
685 p&aacute;ginas do banco de dados * 8192 bytes por p&aacute;gina = 5.611.520 bytes (5,6 MB) 633 p&aacute;ginas do banco de dados * 8192 bytes por p&aacute;gina = 5.185.536 bytes (5,2 MB)
</PRE> </PRE>
<P>&Iacute;ndices n&atilde;o requerem muito espa&ccedil;o, mas cont&eacute;m <P>&Iacute;ndices n&atilde;o requerem muito espa&ccedil;o, mas cont&eacute;m
...@@ -704,7 +706,7 @@ ...@@ -704,7 +706,7 @@
Para for&ccedil;ar uma letra mai&uacute;scula ou min&uacute;scula a ser armazenada na coluna, utilize Para for&ccedil;ar uma letra mai&uacute;scula ou min&uacute;scula a ser armazenada na coluna, utilize
uma restri&ccedil;&atilde;o <SMALL>CHECK</SMALL> ou um gatilho.</P> uma restri&ccedil;&atilde;o <SMALL>CHECK</SMALL> ou um gatilho.</P>
<H3 id="item4.9">4.9) Em uma consulta, como eu detecto se um campo &eacute; <SMALL>NULL</SMALL>? Como eu posso ordenar por um campo que &eacute; <SMALL>NULL</SMALL> ou n&atilde;o?</H3> <H3 id="item4.9">4.9) Em uma consulta, como eu detecto se um campo &eacute; <SMALL>NULL</SMALL>? Como eu posso concatenar poss&iacute;veis <SMALL>NULL</SMALL>s? Como eu posso ordenar por um campo que &eacute; <SMALL>NULL</SMALL> ou n&atilde;o?</H3>
<P>Voc&ecirc; testa a coluna com <SMALL>IS NULL</SMALL> e <SMALL>IS <P>Voc&ecirc; testa a coluna com <SMALL>IS NULL</SMALL> e <SMALL>IS
NOT NULL</SMALL>, como a seguir:</P> NOT NULL</SMALL>, como a seguir:</P>
...@@ -715,6 +717,12 @@ ...@@ -715,6 +717,12 @@
WHERE col IS NULL; WHERE col IS NULL;
</PRE> </PRE>
<P>Para concatenar com poss&iacute;veis <SMALL>NULL</SMALL>s, utilize <I>COALESCE()</I>, assim:</P>
<PRE>
SELECT COALESCE(col1, '') || COALESCE(col2, '')
FROM tab
</PRE>
<P>Para ordenar pelo status <SMALL>NULL</SMALL>, utilize os modificadores <P>Para ordenar pelo status <SMALL>NULL</SMALL>, utilize os modificadores
<SMALL>IS NULL</SMALL> e <SMALL>IS NOT NULL</SMALL> na sua cl&aacute;usula <SMALL>IS NULL</SMALL> e <SMALL>IS NOT NULL</SMALL> na sua cl&aacute;usula
<SMALL>ORDER BY</SMALL>. Coisas que s&atilde;o <I>verdadeiro</I> ser&atilde;o ordenadas acima <SMALL>ORDER BY</SMALL>. Coisas que s&atilde;o <I>verdadeiro</I> ser&atilde;o ordenadas acima
...@@ -802,7 +810,7 @@ comprimento</TD></TR> ...@@ -802,7 +810,7 @@ comprimento</TD></TR>
novo_id = execute("SELECT currval('pessoa_id_seq')"); novo_id = execute("SELECT currval('pessoa_id_seq')");
</PRE> </PRE>
<H3 name="4.11.3">4.11.3) <I>currval()</I> n&atilde;o lida com condi&ccedil;&atilde;o de corrida com outros usu&aacute;rios?</H3> <H3 id="item4.11.3">4.11.3) <I>currval()</I> n&atilde;o lida com condi&ccedil;&atilde;o de corrida com outros usu&aacute;rios?</H3>
<P>N&atilde;o. <I>currval()</I> retorna o valor atual atribuido pela sua sess&atilde;o, e n&atilde;o por todas as sess&otilde;es.</P> <P>N&atilde;o. <I>currval()</I> retorna o valor atual atribuido pela sua sess&atilde;o, e n&atilde;o por todas as sess&otilde;es.</P>
...@@ -810,13 +818,12 @@ comprimento</TD></TR> ...@@ -810,13 +818,12 @@ comprimento</TD></TR>
<P>Para melhorar a concorr&ecirc;ncia, valores da sequ&ecirc;ncia s&atilde;o atribu&iacute;dos a transa&ccedil;&otilde;es correntes e n&atilde;o s&atilde;o travados at&eacute; que a transa&ccedil;&atilde;o seja finalizada. Isso causa intervalos na numera&ccedil;&atilde;o por causa de transa&ccedil;&otilde;es abortadas.</P> <P>Para melhorar a concorr&ecirc;ncia, valores da sequ&ecirc;ncia s&atilde;o atribu&iacute;dos a transa&ccedil;&otilde;es correntes e n&atilde;o s&atilde;o travados at&eacute; que a transa&ccedil;&atilde;o seja finalizada. Isso causa intervalos na numera&ccedil;&atilde;o por causa de transa&ccedil;&otilde;es abortadas.</P>
<H3 id="4.16">4.16) O que &eacute; um <SMALL>OID</SMALL>? O que &eacute; um <SMALL>CTID</SMALL>?</H3> <H3 id="item4.12">4.12) O que &eacute; um <SMALL>OID</SMALL>? O que &eacute; um <SMALL>CTID</SMALL>?</H3>
<P>Cada registro que &eacute; criado no PostgreSQL recebe um <SMALL>OID</SMALL> &uacute;nico <P>Se uma tabela &eacute; criada com <SMALL>WITH OIDS</SMALL>, cada registro recebe um <SMALL>OID</SMALL> &uacute;nico.
a menos que seja criado com <SMALL>WITHOUT OIDS</SMALL>.
O<SMALL>ID</SMALL>s s&atilde;o automaticamente atribu&iacute;dos como inteiros de 4 bytes O<SMALL>ID</SMALL>s s&atilde;o automaticamente atribu&iacute;dos como inteiros de 4 bytes
que s&atilde;o &uacute;nicos ao longo de toda instala&ccedil;&atilde;o. Contudo, eles s&atilde;o limitados em que s&atilde;o &uacute;nicos ao longo de toda instala&ccedil;&atilde;o. Contudo, eles s&atilde;o limitados em
4 bilh&otilde;es, e ent&atilde;o os O<SMALL>ID</SMALL>s come&ccedil;am a ser duplicados. O PostgreSQL 4 bilh&otilde;es e, ent&atilde;o, os O<SMALL>ID</SMALL>s come&ccedil;am a ser duplicados. O PostgreSQL
utiliza <SMALL>OID</SMALL>s para ligar as tabelas do sistema.</P> utiliza <SMALL>OID</SMALL>s para ligar as tabelas do sistema.</P>
<P>Para numerar registros nas tabelas do usu&aacute;rios, &eacute; melhor utilizar <P>Para numerar registros nas tabelas do usu&aacute;rios, &eacute; melhor utilizar
...@@ -852,7 +859,7 @@ comprimento</TD></TR> ...@@ -852,7 +859,7 @@ comprimento</TD></TR>
CREATE TABLE teste (x int, modtime timestamp DEFAULT CURRENT_TIMESTAMP ); CREATE TABLE teste (x int, modtime timestamp DEFAULT CURRENT_TIMESTAMP );
</PRE> </PRE>
<H3 id="item4.23">4.23) Como eu fa&ccedil;o uma jun&ccedil;&atilde;o externa (outer join)?</H3> <H3 id="item4.16">4.16) Como eu fa&ccedil;o uma jun&ccedil;&atilde;o externa (outer join)?</H3>
<P>PostgreSQL suporta jun&ccedil;&otilde;es externas utilizando a sintaxe padr&atilde;o do SQL. Aqui temos dois exemplos:</P> <P>PostgreSQL suporta jun&ccedil;&otilde;es externas utilizando a sintaxe padr&atilde;o do SQL. Aqui temos dois exemplos:</P>
<PRE> <PRE>
...@@ -874,7 +881,7 @@ comprimento</TD></TR> ...@@ -874,7 +881,7 @@ comprimento</TD></TR>
A palavra <SMALL>OUTER</SMALL> &eacute; opcional e &eacute; assumida nas A palavra <SMALL>OUTER</SMALL> &eacute; opcional e &eacute; assumida nas
jun&ccedil;&otilde;es <SMALL>LEFT</SMALL>, <SMALL>RIGHT</SMALL> e <SMALL>FULL</SMALL>. jun&ccedil;&otilde;es <SMALL>LEFT</SMALL>, <SMALL>RIGHT</SMALL> e <SMALL>FULL</SMALL>.
Jun&ccedil;&otilde;es ordin&aacute;rias s&atilde;o chamadas jun&ccedil;&otilde;es Jun&ccedil;&otilde;es ordin&aacute;rias s&atilde;o chamadas jun&ccedil;&otilde;es
naturais (<SMALL>INNER</SMALL>).</P> internas (<SMALL>INNER</SMALL>).</P>
<H3 id="item4.17">4.17) Como eu fa&ccedil;o consultas utilizando m&uacute;ltiplos bancos de dados?</H3> <H3 id="item4.17">4.17) Como eu fa&ccedil;o consultas utilizando m&uacute;ltiplos bancos de dados?</H3>
...@@ -891,8 +898,8 @@ comprimento</TD></TR> ...@@ -891,8 +898,8 @@ comprimento</TD></TR>
<H3 id="item4.18">4.18) Como eu retorno m&uacute;ltiplos registros ou colunas de uma fun&ccedil;&atilde;o?</H3> <H3 id="item4.18">4.18) Como eu retorno m&uacute;ltiplos registros ou colunas de uma fun&ccedil;&atilde;o?</H3>
<P>&Eacute; f&aacute;cil utilizando fun&ccedil;&otilde;es que retornam conjunto, <P>&Eacute; f&aacute;cil utilizando fun&ccedil;&otilde;es que retornam conjunto,
<a href="http://techdocs.postgresql.org/guides/SetReturningFunctions"> <a href="http://www.postgresql.org/docs/techdocs.17">
http://techdocs.postgresql.org/guides/SetReturningFunctions</a>.</P> http://www.postgresql.org/docs/techdocs.17</a>.</P>
<H3 id="item4.19">4.19) Por que eu obtenho erros "relation with OID ###### <H3 id="item4.19">4.19) Por que eu obtenho erros "relation with OID ######
does not exist" ao acessar tabelas tempor&aacute;rias em fun&ccedil;&otilde;es PL/PgSQL?</H3> does not exist" ao acessar tabelas tempor&aacute;rias em fun&ccedil;&otilde;es PL/PgSQL?</H3>
...@@ -912,22 +919,22 @@ comprimento</TD></TR> ...@@ -912,22 +919,22 @@ comprimento</TD></TR>
<P>Replica&ccedil;&atilde;o com m&uacute;ltiplos mestres permite que consultas leitura/escrita sejam <P>Replica&ccedil;&atilde;o com m&uacute;ltiplos mestres permite que consultas leitura/escrita sejam
enviadas para m&uacute;ltiplos computadores replicadores. Esta capacidade tamb&eacute;m tem enviadas para m&uacute;ltiplos computadores replicadores. Esta capacidade tamb&eacute;m tem
um s&eacute;rio impacto na performance por causa da necessidade de sincronizar as mudan&ccedil;as um s&eacute;rio impacto na performance por causa da necessidade de sincronizar as mudan&ccedil;as
entre os servidores. <A href="http://pgfoundry.org/projects/pgcluster/">Pgcluster</a> entre os servidores. <A href="http://pgfoundry.org/projects/pgcluster/">PGCluster</a>
&eacute; a solu&ccedil;&atilde;o mais popular dispon&iacute;vel livremente para PostgreSQL.</P> &eacute; a solu&ccedil;&atilde;o mais popular dispon&iacute;vel livremente para PostgreSQL.</P>
<P>H&aacute; tamb&eacute;m solu&ccedil;&otilde;es de replica&ccedil;&atilde;o comerciais e baseadas em hardware dispon&iacute;veis <P>H&aacute; tamb&eacute;m solu&ccedil;&otilde;es de replica&ccedil;&atilde;o comerciais e baseadas em hardware dispon&iacute;veis
que suportam uma variedade de modelos de replica&ccedil;&atilde;o.</P> que suportam uma variedade de modelos de replica&ccedil;&atilde;o.</P>
<H3 id="item4.21">4.21) Por que os nomes de minhas tabelas e colunas n&atilde;o <H3 id="item4.21">4.21) Por que os nomes de minhas tabelas e colunas n&atilde;o
s&atilde;o reconhecidos em minha consulta?</H3> s&atilde;o reconhecidos em minha consulta? Por que as mai&uacute;sculas n&atilde;o s&atilde;o preservadas?</H3>
<P>O caso mais comum &eacute; o uso de aspas ao redor dos nomes da tabela ou coluna <P>A causa mais comum de nomes desconhecidos &eacute; o uso de aspas ao redor dos nomes da tabela ou coluna
durante a cria&ccedil;&atilde;o da tabela. Ao utilizar aspas, nomes de tabela e coluna durante a cria&ccedil;&atilde;o da tabela. Ao utilizar aspas, nomes de tabela e coluna
(chamados de identificadores) s&atilde;o armazenados <a (chamados de identificadores) s&atilde;o armazenados <a
href="http://www.postgresql.org/docs/8.0/static/sql-syntax.html#SQL-SYNTAX-IDENTIFIERS"> href="http://www.postgresql.org/docs/current/static/sql-syntax.html#SQL-SYNTAX-IDENTIFIERS">
como especificado</a>, significando que voc&ecirc; deve utilizar aspas quando se como especificado</a>, significando que voc&ecirc; deve utilizar aspas quando se
referir aos nomes na consulta. Algumas interfaces, como pgAdmin, referir aos nomes na consulta. Algumas interfaces, como pgAdmin,
automaticamente coloca aspas nos identificadores durante a cria&ccedil;&atilde;o da tabela. automaticamente colocam aspas nos identificadores durante a cria&ccedil;&atilde;o da tabela.
Ent&atilde;o, para identificadores serem reconhecidos, voc&ecirc; deve: Ent&atilde;o, para identificadores serem reconhecidos, voc&ecirc; deve:
<UL> <UL>
<LI>Evitar colocar aspas no identificador ao criar tabelas</LI> <LI>Evitar colocar aspas no identificador ao criar tabelas</LI>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment