diff options
Diffstat (limited to 'doc/src/FAQ/FAQ_brazilian.html')
-rw-r--r-- | doc/src/FAQ/FAQ_brazilian.html | 98 |
1 files changed, 47 insertions, 51 deletions
diff --git a/doc/src/FAQ/FAQ_brazilian.html b/doc/src/FAQ/FAQ_brazilian.html index c099a0010d5..e56e83464f2 100644 --- a/doc/src/FAQ/FAQ_brazilian.html +++ b/doc/src/FAQ/FAQ_brazilian.html @@ -10,7 +10,7 @@ alink="#0000ff"> <H1>Perguntas Frequentes (FAQ) sobre PostgreSQL</H1> - <P>Última atualização: Qui Set 27 02:14:24 EDT 2007</P> + <P>Última atualização: Sex Nov 16 10:53:50 EST 2007</P> <P>Mantenedor atual: Bruce Momjian (<A href= "mailto:bruce@momjian.us">bruce@momjian.us</A>) @@ -30,7 +30,8 @@ <HR> <H2 align="center">Perguntas Gerais</H2> - <A href="#item1.1">1.1</A>) O que é PostgreSQL? Como ele é pronunciado?<BR> + <A href="#item1.1">1.1</A>) O que é PostgreSQL? Como ele é pronunciado? + O que é Postgres?<BR> <A href="#item1.2">1.2</A>) Quem controla o PostgreSQL?<BR> <A href="#item1.3">1.3</A>) Qual é a licença do PostgreSQL?<BR> <A href="#item1.4">1.4</A>) Quais plataformas o PostgreSQL pode ser executado?<BR> @@ -96,9 +97,9 @@ <H2 align="center">Perguntas Gerais</H2> - <H3 id="item1.1">1.1) O que é PostgreSQL? Como ele é pronunciado?</H3> + <H3 id="item1.1">1.1) O que é PostgreSQL? Como ele é pronunciado? O que é Postgres?</H3> - <P>PostgreSQL é pronunciado <I>Post-Gres-Q-L</I>, mas também pode ser referido apenas como <I>Postgres</I> principalmente em conversações. + <P>PostgreSQL é pronunciado <I>Post-Gres-Q-L</I>. (Para os curiosos que querem saber como se diz "PostgreSQL", um <a href="http://www.postgresql.org/files/postgresql.mp3">arquivo de áudio</a> está disponível).</P> @@ -111,10 +112,14 @@ voluntários (na sua maioria) espalhados pelo mundo e que se comunicam via Internet. É um projeto da comunidade e não é controlado por nenhuma empresa. Para se envolver, veja a FAQ do desenvolvedor em <A href= - "http://www.postgresql.org/files/documentation/faqs/FAQ_DEV.html"> - http://www.postgresql.org/files/documentation/faqs/FAQ_DEV.html</A> + "http://www.postgresql.org/docs/faqs.FAQ_DEV.html"> + http://www.postgresql.org/docs/faqs.FAQ_DEV.html</A> </P> + <P>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' difícil de pronunciar, diga apenas 'Postgres'.</P> + <H3 id="item1.2">1.2) Quem controla o PostgreSQL?<BR></H3> <P>Se você está procurando por um mantenedor, comitê central ou empresa @@ -125,7 +130,7 @@ você precisa é se inscrever nas listas de discussão e participar das discussões. Veja a <a href="http://www.postgresql.org/docs/faqs.FAQ_DEV.html"> FAQ do desenvolvedor</A> para obter informações como se envolver com o - desenvolvimento do Postgres.</P> + desenvolvimento do PostgreSQL.</P> <H3 id="item1.3">1.3) Qual é a licença do PostgreSQL?</H3> @@ -169,7 +174,7 @@ baseados no NT tais como Win200 SP4, WinXP e Win2003. Um instalador pré-empacotado está disponível em <a href= "http://pgfoundry.org/projects/pginstaller"> http://pgfoundry.org/projects/pginstaller</a>. Versões do Windows baseadas no MS-DOS - (Win95, Win98, WinMe) podem executar o Postgres utilizando o Cygwin.</P> + (Win95, Win98, WinMe) podem executar o PostgreSQL utilizando o Cygwin.</P> <p>Há também uma versão para o Novell Netware 6 em <a href="http://forge.novell.com">http://forge.novell.com</a> @@ -212,7 +217,7 @@ "http://www.postgresql.org/support/submitbug">http://www.postgresql.org/support/submitbug</A>.</P> <P>Verifique também o nosso ftp <A href= "ftp://ftp.postgresql.org/pub">ftp://ftp.postgresql.org/pub</A> para - ver se há uma versão mais recente do Postgres.</P> + ver se há uma versão mais recente do PostgreSQL.</P> <P>Bugs submetidos utilizando o formulário ou informado a qualquer lista de discussão do PostgreSQL tipicamente gera uma das seguintes @@ -271,7 +276,7 @@ atualizada. Na prática, bugs não duram muito no programa; e bugs que afetam uma grande quantidade de usuários são corrigidos rapidamente. O único lugar para encontrar todas as mudanças, melhorias e correções em uma versão do - Postgres é ler as mensagens de log do + PostgreSQL é ler as mensagens de log do <a href="http://www.postgresql.org/developer/sourcecode/">CVS</a>. Até mesmo as notas de lançamento não listam todas as mudanças feitas no programa.</P> @@ -290,8 +295,8 @@ Há uma lista de livros sobre PostgreSQL disponíveis para compra. Um dos mais populares é o do Korry Douglas. Uma lista de análise sobre os livros pode ser encontrada em <A href= - "http://techdocs.postgresql.org/techdocs/bookreviews.php">http://techdocs.postgresql.org/techdocs/bookreviews.php</A>. - Há também uma coleção de artigos técnicos sbore PostgreSQL em <A href="http://techdocs.postgresql.org/">http://techdocs.postgresql.org/</A>.</P> + "http://www.postgresql.org/docs/books/">http://www.postgresql.org/docs/books/</A>. + Há também uma coleção de artigos técnicos sbore PostgreSQL em <A href="http://www.postgresql.org/docs/techdocs/">http://www.postgresql.org/docs/techdocs/</A>.</P> <P>O programa cliente de linha de comando <I>psql</I> tem alguns comandos \d para mostrar informações sobre tipos, operadores, funções, agregações, etc. - utilize \? @@ -302,9 +307,7 @@ <H3 id="item1.11">1.11) Como eu posso aprender <SMALL>SQL</SMALL>?</H3> <P>Primeiro, considere os livros específicos sobre PostgreSQL mencionados - acima. Outro é o "Teach Yourself SQL in 21 Days, Second Edition" e <A href= - "http://members.tripod.com/er4ebus/sql/index.htm">http://members.tripod.com/er4ebus/sql/index.htm</A>. - Muitos de nossos usuários gostam do <I>The Practical SQL Handbook</I>, + acima. Muitos de nossos usuários gostam do <I>The Practical SQL Handbook</I>, Bowman, Judith S., et al., Addison-Wesley. Outros do <I>The Complete Reference SQL</I>, Groff et al., McGraw-Hill.</P> @@ -382,8 +385,7 @@ <P>Algumas linguagens de programação como <SMALL>PHP</SMALL> incluem uma interface para PostgreSQL. Interfaces para linguagens como Perl, <SMALL>TCL</SMALL>, Python e muitas outras estão disponíveis em - <a href="http://gborg.postgresql.org">http://gborg.postgresql.org</A> - na seção de <I>Drivers/Interfaces</I> ou via busca na Internet. + <a href="http://www.pgfoundry.org">http://www.pgfoundry.org</A>. </P> <H3 id="item2.2">2.2) Quais ferramentas estão disponíveis para utilizar o PostgreSQL com páginas Web?</H3> @@ -447,7 +449,7 @@ <DD>Um grande número de configurações que afetam a performance. Para obter detalhes adicionais, veja <a href= - "http://www.postgresql.org/docs/current/static/runtime.html"> + "http://www.postgresql.org/docs/current/static/runtime-config.html"> Administration Guide/Server Run-time Environment/Run-time Configuration</a> para listagem completa, e para comentários veja <a href= @@ -479,8 +481,8 @@ <H3 id="item3.5">3.5) Por que eu recebo <I>"Sorry, too many clients"</I> quando eu tento conectar?</H3> - <P>Você atingiu o limite padrão que é de 100 sessões. Você - precisa aumentar o limite do <I>postmaster</I>, que diz + <P>Você atingiu o limite padrão de 100 sessões. Você + precisa aumentar o limite do servidor PostgreSQL, que diz quantos processos servidor concorrentes ele pode iniciar, alterando o valor <I>max_connections</I> no <I>postgresql.conf</I> e reiniciando o <I>postmaster</I>.</P> @@ -603,7 +605,7 @@ ------------------------------------------- 52 bytes por registro - O tamanho de uma página de dados no Postgres é 8192 bytes (8 KB), então: + O tamanho de uma página de dados no PostgreSQL é 8192 bytes (8 KB), então: 8192 bytes por página ------------------------ = 158 registros por página do banco de dados (arredondado para baixo) @@ -664,10 +666,11 @@ <LI>Busca que não diferenciam maiúsculas de minúsculas tais como <SMALL>ILIKE</SMALL> e <I>~*</I> não utilizam índices. Em vez disso, utilize índice de expressão, que é descrito na seção <a href="#item4.8">4.8</a>.</LI> - <LI>O idioma padrção <I>C</I> deve ser usando durante o <i>initdb</i> + <LI>O idioma padrão <I>C</I> deve ser usando durante o <i>initdb</i> porque não é possível saber o próximo caracter em idiomas que não sejam o C. Você pode criar um índice especial <CODE>text_pattern_ops</CODE> para tais casos - que funcionam somente para indexação com <SMALL>LIKE</SMALL>. + que funcionam somente para indexação com <SMALL>LIKE</SMALL>. Também é + possível utilizar indexação de busca textual para buscas por palavras. </LI> </UL> @@ -778,38 +781,28 @@ comprimento</TD></TR> ); </PRE> - Veja a página sobre <I>create_sequence</I> no manual para - obter informações adicionais sobre sequências. + <P>Sequências automaticamente criadas são nomeadas como + <<i>tabela</i>>_<<i>colunaserial</i>>_<i>seq</i>, onde + <i>tabela</i> e <i>colunaserial</i> são os nomes da tabela e + da coluna serial, respectivamente. Veja a página sobre + <I>create_sequence</I> no manual para obter informações + adicionais sobre sequências. <H3 id="item4.11.2">4.11.2) Como eu consigo o valor de um campo <SMALL>SERIAL</SMALL>?</H3> - <P>Uma abordagem é obter o próximo valor <SMALL>SERIAL</SMALL> - de uma sequência com a função <I>nextval()</I> - <I>antes</I> de inserir e então inserir com o valor explicitamente. Utilizando o - exemplo da tabela em <A href="#item4.11.1">4.11.1</A>, um exemplo em - pseudo-linguagem se pareceria com isto:</P> -<PRE> - novo_id = execute("SELECT nextval('pessoa_id_seq')"); - execute("INSERT INTO pessoa (id, nome) VALUES (novo_id, 'Blaise Pascal')"); -</PRE> + <P>A maneira mais simples de obter o próximo valor <SMALL>SERIAL</SMALL> + de uma sequência é com <SMALL>RETURNING</SMALL>. Utilizando o + exemplo da tabela em <A href="#item4.11.1">4.11.1</A>, ele ficaria assim: - Você poderia então ter também o novo valor armazenado em - <CODE>novo_id</CODE> para utilizar em outras consultas (i.e., como uma chave - estrangeira da tabela <CODE>pessoa</CODE>). Note que o nome da - <SMALL>SEQUENCE</SMALL> criada automaticamente será - <<I>tabela</I>>_<<I>coluna</I>>_<I>seq</I>, onde - <I>tabela</I> e <I>coluna</I> são os nomes da tabela - e da coluna <SMALL>SERIAL</SMALL>, respectivamente. - - <P>Alternativamente, você poderia obter o valor <SMALL>SERIAL</SMALL> - atribuído com a função <I>currval()</I> <I>depois</I> - de tê-lo inserido por padrão, i.e.,</P> <PRE> - execute("INSERT INTO pessoa (nome) VALUES ('Blaise Pascal')"); - novo_id = execute("SELECT currval('pessoa_id_seq')"); + INSERT INTO pessoa (nome) VALUES ('Blaise Pascal') RETURNING id; </PRE> + Você também pode chamar <I>nextval()</I> e utilizar o valor no + <SMALL>INSERT</SMALL> ou chamar <I>currval()</I> <I>após</I> o + <SMALL>INSERT</SMALL>. + <H3 id="item4.11.3">4.11.3) <I>currval()</I> não lida com condição de corrida com outros usuários?</H3> <P>Não. <I>currval()</I> retorna o valor atual atribuido pela sua sessão, e não por todas as sessões.</P> @@ -840,7 +833,7 @@ comprimento</TD></TR> <H3 id="item4.13">4.13) Por que eu recebo o erro <I>"ERROR: Memory exhausted in AllocSetAlloc()"</I>?</H3> - <P>Você provavelmente está sem memória virtual no seu sistema, ou o seu núcleo (kernel) tem um limite baixo para certos recursos. Tente isto antes de iniciar o <I>postmaster</I>:</P> + <P>Você provavelmente está sem memória virtual no seu sistema, ou o seu núcleo (kernel) tem um limite baixo para certos recursos. Tente isto antes de iniciar o servidor PostgreSQL:</P> <PRE> ulimit -d 262144 limit datasize 256m @@ -904,7 +897,9 @@ comprimento</TD></TR> <H3 id="item4.19">4.19) Por que eu obtenho erros "relation with OID ###### does not exist" ao acessar tabelas temporárias em funções PL/PgSQL?</H3> - <P>PL/PgSQL armazena o conteúdo da função, e o efeito indesejado é que se uma função PL/PgSQL acessa uma tabela temporária, e aquela tabela é removida e criada novamente, e a função é chamada novamente, a função irá falhar porque o conteúdo armazenado da função ainda apontará para a tabela temporária antiga. A solução é utilizar o <SMALL>EXECUTE</SMALL> para acesso a tabelas temporárias no PL/PgSQL. Isto irá fazer com que a consulta seja avaliada toda vez.</P> + <P>Em versões do PostgreSQL < 8.3, PL/PgSQL armazena o conteúdo da função, e o efeito indesejado é que se uma função PL/PgSQL acessa uma tabela temporária, e aquela tabela é removida e criada novamente, e a função é chamada novamente, a função irá falhar porque o conteúdo armazenado da função ainda apontará para a tabela temporária antiga. A solução é utilizar o <SMALL>EXECUTE</SMALL> para acesso a tabelas temporárias no PL/PgSQL. Isto irá fazer com que a consulta seja avaliada toda vez.</P> + + <P>Este problema não ocorre no PostgreSQL 8.3 ou superior.</P> <H3 id="item4.20">4.20) Quais soluções de replicação estão disponíveis?</H3> @@ -914,7 +909,7 @@ comprimento</TD></TR> <P>Replicação mestre/escravo permite que um mestre receba consultas de leitura e escrita, enquanto os escravos só podem aceitar leitura/consultas <SMALL>SELECT</SMALL>. A solução mais popular de replicação mestre-escravo para PostgreSQL disponível livremente - é <A href="http://gborg.postgresql.org/project/slony1/projdisplay.php">Slony-I</A>.</P> + é <A href="http://main.slony.info">Slony-I</A>.</P> <P>Replicação com múltiplos mestres permite que consultas leitura/escrita sejam enviadas para múltiplos computadores replicadores. Esta capacidade também tem @@ -931,7 +926,7 @@ comprimento</TD></TR> <P>A causa mais comum de nomes desconhecidos é o uso de aspas ao redor dos nomes da tabela ou coluna durante a criação da tabela. Ao utilizar aspas, nomes de tabela e coluna (chamados de identificadores) são armazenados <a - href="http://www.postgresql.org/docs/current/static/sql-syntax.html#SQL-SYNTAX-IDENTIFIERS"> + href="http://www.postgresql.org/docs/current/static/sql-syntax-lexical.html#SQL-SYNTAX-IDENTIFIERS"> como especificado</a>, significando que você deve utilizar aspas quando se referir aos nomes na consulta. Algumas interfaces, como pgAdmin, automaticamente colocam aspas nos identificadores durante a criação da tabela. @@ -941,6 +936,7 @@ comprimento</TD></TR> <LI>Utilizar somente caracteres minúsculos em identificadores</LI> <LI>Colocar aspas em identificadores ao referenciá-los nas consultas</LI> </UL> + </BODY> </HTML> |