summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBruce Momjian2007-12-10 00:34:06 +0000
committerBruce Momjian2007-12-10 00:34:06 +0000
commitc5156c646b369b7c1bb81fc84651191d0913a27c (patch)
treedea3512ef04f2c45e12b0e868379d49a5564d674
parenta3f208539c5b564ed7c24bf087e01fffce4d796c (diff)
Update Brazilian FAQ.
Euler Taveira de Oliveira
-rw-r--r--doc/FAQ_brazilian232
-rw-r--r--doc/src/FAQ/FAQ_brazilian.html98
2 files changed, 166 insertions, 164 deletions
diff --git a/doc/FAQ_brazilian b/doc/FAQ_brazilian
index 1409a9e59f4..758ad6a665d 100644
--- a/doc/FAQ_brazilian
+++ b/doc/FAQ_brazilian
@@ -1,7 +1,7 @@
Perguntas Frequentes (FAQ) sobre PostgreSQL
- �ltima atualiza��o: S�b Out 14 19:08:19 EDT 2006
+ �ltima atualiza��o: Sex Nov 16 10:53:50 EST 2007
Mantenedor atual: Bruce Momjian ([email protected])
@@ -18,7 +18,7 @@
Perguntas Gerais
- 1.1) O que � PostgreSQL? Como ele � pronunciado?
+ 1.1) O que � PostgreSQL? Como ele � pronunciado? O que � Postgres?
1.2) Quem controla o PostgreSQL?
1.3) Qual � a licen�a do PostgreSQL?
1.4) Quais plataformas o PostgreSQL pode ser executado?
@@ -33,6 +33,8 @@
1.12) Como posso submeter uma corre��o (patch) ou me juntar a equipe
de desenvolvimento?
1.13) Como � o PostgreSQL comparado a outros SGBDs?
+ 1.14) O PostgreSQL gerenciar� as mudan�as de hor�rio devido ao hor�rio
+ de ver�o em v�rios pa�ses?
Perguntas sobre Clientes
@@ -51,8 +53,8 @@
3.4) Quais caracter�sticas de depura��o est�o dispon�veis?
3.5) Por que eu recebo "Sorry, too many clients" quando eu tento
conectar?
- 3.6) Qual � o processo de atualiza��o do PostgreSQL? 3.7) Que tipo de
- hardware eu devo usar?
+ 3.6) Qual � o processo de atualiza��o do PostgreSQL?
+ 3.7) Que tipo de hardware eu devo usar?
Perguntas Operacionais
@@ -74,7 +76,8 @@
express�es regulares sem diferenciar mau�sculas de min�sculas? Como eu
utilizo um �ndice para buscas sem distinguir mai�sculas de min�sculas?
4.9) Em uma consulta, como eu detecto se um campo � NULL? Como eu
- posso ordenar por um campo que � NULL ou n�o?
+ posso concatenar poss�veis NULLs? Como eu posso ordenar por um campo
+ que � NULL ou n�o?
4.10) Qual � a diferen�a entre os v�rios 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?
@@ -95,16 +98,16 @@
exist" ao acessar tabelas tempor�rias em fun��es PL/PgSQL?
4.20) Quais solu��es de replica��o est�o dispon�veis?
4.21) Por que os nomes de minhas tabelas e colunas n�o s�o
- reconhecidos em minha consulta?
+ reconhecidos em minha consulta? Por que as mai�sculas n�o s�o
+ preservadas?
_________________________________________________________________
Perguntas Gerais
- 1.1) O que � PostgreSQL? Como ele � pronunciado?
+ 1.1) O que � PostgreSQL? Como ele � pronunciado? O que � Postgres?
- PostgreSQL � pronunciado Post-Gres-Q-L, e �, �s vezes, referido apenas
- como Postgres. Um arquivo de �udio est� dispon�vel em formato MP3 para
- aqueles que gostariam de ouvir a pron�ncia.
+ PostgreSQL � pronunciado Post-Gres-Q-L. (Para os curiosos que querem
+ saber como se diz "PostgreSQL", um arquivo de �udio est� dispon�vel).
O PostgreSQL � um sistema de banco de dados objeto-relacional que tem
as caracter�sticas de sistemas de bancos de dados comerciais
@@ -116,8 +119,12 @@
desenvolvedores 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
- http://www.postgresql.org/files/documentation/faqs/FAQ_DEV.html
+ 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' dif�cil de pronunciar, diga
+ apenas 'Postgres'.
1.2) Quem controla o PostgreSQL?
@@ -189,11 +196,11 @@
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/.
+ utilize ftp://ftp.postgresql.org/pub/.
1.6) Qual � a �ltima vers�o?
- A �ltima vers�o do PostgreSQL � a vers�o 8.1.5.
+ A �ltima vers�o do PostgreSQL � a vers�o 8.2.5.
N�s planejamos lan�ar vers�es novas a cada ano com vers�es corretivas
em alguns meses.
@@ -220,14 +227,14 @@
Visite o formul�rio que reporta bugs do PostgreSQL em
http://www.postgresql.org/support/submitbug.
- Verifique tamb�m o nosso ftp ftp://ftp.PostgreSQL.org/pub para ver se
+ Verifique tamb�m o nosso ftp ftp://ftp.postgresql.org/pub para ver se
h� uma vers�o mais recente do PostgreSQL.
Bugs submetidos utilizando o formul�rio ou informado a qualquer lista
de discuss�o do PostgreSQL tipicamente gera uma das seguintes
respostas:
* N�o � um bug e o porqu�
- * � um bug conhecido e j� est� na lista de AFAZERES (TODO)
+ * � um bug conhecido e j� est� na lista de AFAZERES
* O bug foi corrigido na vers�o atual
* O bug foi corrigido mas n�o foi empacotado em um vers�o oficial
* Um pedido foi feito para obter informa��es detalhadas:
@@ -239,48 +246,50 @@
* O bug � novo. O seguinte pode ocorrer:
+ Uma corre��o � criada e ser� inclu�da na pr�xima vers�o
+ O bug n�o pode ser corrigido imediatamente e � adicionado a
- lista de AFAZERES (TODO)
+ lista de AFAZERES
1.9) Como eu posso saber quais s�o os bugs conhecidos ou funcionalidades
ausentes?
O PostgreSQL suporta um subconjunto extendido do SQL:2003. Veja nossa
- lista de AFAZERES (TODO) que cont�m bugs conhecidos, funcionalidades
- ausentes e planos futuros.
+ lista de AFAZERES que cont�m bugs conhecidos, funcionalidades ausentes
+ e planos futuros.
Uma solicita��o de funcionalidade geralmente resulta em uma das
seguintes respostas:
- * A funcionalidade j� est� na lista de AFAZERES (TODO)
+ * A funcionalidade j� est� na lista de AFAZERES
* A funcionalidade n�o � desej�vel porque:
+ Ela duplica uma funcionalidade existente que j� segue o
padr�o SQL
+ A funcionalidade aumentar� a complexidade do c�digo mas
adicionar� pouco benef�cio
+ A funcionalidade ser� insegura ou n�o-confi�vel
- * A nova funcionalidade � adicionada a lista de AFAZERES (TODO)
+ * A nova funcionalidade � adicionada a lista de AFAZERES
O PostgreSQL n�o utiliza sistema de acompanhamento de bugs porque n�s
achamos mais eficiente responder diretamente o e-mail e manter a lista
- de AFAZERES (TODO) 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 PostgreSQL � ler as
- mensagens de log do CVS. At� mesmo as notas de lan�amento n�o listam
- todas as mudan�as feitas no programa.
+ de AFAZERES 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 PostgreSQL � ler as mensagens de log do
+ CVS. At� mesmo as notas de lan�amento n�o listam todas as mudan�as
+ feitas no programa.
1.10) Que documenta��o est� dispon�vel?
O PostgreSQL inclui vasta documenta��o, incluindo um manual extenso,
p�ginas de manuais (man pages) e alguns exemplos teste. Veja o
diret�rio /doc. Voc� tamb�m pode pesquisar os manuais online em
- http://www.PostgreSQL.org/docs.
+ http://www.postgresql.org/docs.
H� dois livros sobre PostgreSQL dispon�veis online em
http://www.postgresql.org/docs/books/awbook.html e
http://www.commandprompt.com/ppbook/. 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
- http://techdocs.PostgreSQL.org/techdocs/bookreviews.php.
+ http://www.postgresql.org/docs/books/. H� tamb�m uma cole��o de
+ artigos t�cnicos sbore PostgreSQL em
+ http://www.postgresql.org/docs/techdocs/.
O programa cliente de linha de comando psql tem alguns comandos \d
para mostrar informa��es sobre tipos, operadores, fun��es, agrega��es,
@@ -291,11 +300,9 @@
1.11) Como eu posso aprender SQL?
Primeiro, considere os livros espec�ficos sobre PostgreSQL mencionados
- acima. Outro � o "Teach Yourself SQL in 21 Days, Second Edition" e
- http://members.tripod.com/er4ebus/sql/index.htm. Muitos de nossos
- usu�rios gostam do The Practical SQL Handbook, Bowman, Judith S., et
- al., Addison-Wesley. Outros do The Complete Reference SQL, Groff et
- al., McGraw-Hill.
+ acima. Muitos de nossos usu�rios 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� tamb�m bons tutoriais dispon�veis online:
* http://www.intermedia.net/support/sql/sqltut.shtm
@@ -347,13 +354,23 @@
manuais e o c�digo fonte faz com que o suporte do PostgreSQL
seja superior ao de outros SGBDs. H� suporte comercial por
incidente dispon�veis para aqueles que precisam de um. (Veja
- se��o 1.7 da FAQ.)
+ se��o 1.7 da FAQ).
Pre�o
N�s somos livres para uso dele tanto comercial quanto n�o
comercial. Voc� pode adicionar nosso c�digo ao seu produto sem
limita��es, exceto aquelas descritas na nossa licen�a BSD
mencionada acima.
+
+ 1.14) O PostgreSQL gerenciar� mudan�as no hor�rio devido ao hor�rio de ver�o
+ em v�rios pa�ses?
+
+ Mudan�as no hor�rio de ver�o dos USA foram inclu�das nas vers�es 8.0
+ .[4+] do PostgreSQL e em todas as vers�es grandes, i.e. 8.1. Mudan�as
+ no Canad� e Austr�lia Oeste foram inclu�das na 8.0.[10+], 8.1.[6+] e
+ em todas as vers�es grandes subsequentes. Vers�es do PostgreSQL
+ anteriores a 8.0 utilizam o banco de dados de zona hor�ria do sistema
+ operacional para informa��es sobre hor�rio de ver�o.
_________________________________________________________________
Perguntas sobre Clientes
@@ -367,8 +384,7 @@
Algumas linguagens de programa��o como PHP incluem uma interface para
PostgreSQL. Interfaces para linguagens como Perl, TCL, Python e muitas
- outras est�o dispon�veis em http://gborg.postgresql.org na se��o de
- Drivers/Interfaces ou via busca na Internet.
+ outras est�o dispon�veis em http://www.pgfoundry.org.
2.2) Quais ferramentas est�o dispon�veis para utilizar o PostgreSQL com
p�ginas Web?
@@ -450,29 +466,17 @@
3.5) Por que eu recebo "Sorry, too many clients" quando eu tento conectar?
- Voc� atingiu o limite padr�o que � de 100 sess�es. Voc� precisa
- aumentar o limite do postmaster, que diz quantos processos servidor
+ 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 max_connections no
postgresql.conf e reiniciando o postmaster.
3.6) Qual � o processo de atualiza��o do PostgreSQL?
- O time do PostgreSQL faz somente pequenas mudan�as entre vers�es
- corretivas, ent�o atualizar da vers�o 7.4.8 para 7.4.9 n�o requer uma
- exporta��o e uma importa��o; basta para o servidor de banco de dados,
- instalar os bin�rios atualizados e reiniciar o servidor.
-
- Todos os usu�rios devem atualizar para as vers�es corretivas mais
- recentes assim que elas estiverem dispon�veis. Enquanto cada
- atualiza��o tem algum risco, vers�es corretivas do PostgreSQL s�o
- projetadas para corrigir somente bugs comuns com um risco m�nimo. A
- comunidade considera n�o atualizar mais perigoso do que atualizar.
-
- Vers�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�as
- geralmente s�o complexas, ent�o n�s n�o mantemos compatibilidade para
- os arquivos de dados. Uma exporta��o/importa��o de um banco de dados �
- necess�ria para atualiza��es entre vers�es.
+ Veja http://www.postgresql.org/support/versioning para discuss�o geral
+ sobre atualiza��es e
+ http://www.postgresql.org/docs/current/static/install-upgrading.html
+ para instru��es espec�ficas.
3.7) Que tipo de hardware eu devo usar?
@@ -585,24 +589,24 @@
inteiro e uma descri��o em cada linha. Suponha que o tamanho m�dio da
descri��o � de vinte bytes. O arquivo ter� 2,8 MB. O tamanho do
arquivo do banco de dados PostgreSQL que cont�m esses dados pode ser
- estimado em 5,6 MB:
- 28 bytes: cada cabe�alho de registro (aproximadamente)
+ estimado em 5,2 MB:
+ 24 bytes: cada cabe�alho de registro (aproximadamente)
24 bytes: um campo int e um campo texto
+ 4 bytes: ponteiro na p�gina para a tupla
-------------------------------------------
- 56 bytes por registro
+ 52 bytes por registro
O tamanho de uma p�gina de dados no PostgreSQL � 8192 bytes (8 KB), ent�o:
8192 bytes por p�gina
- ------------------------ = 146 registros por p�gina do banco de dados (arredondado para baixo)
- 56 bytes por registro
+ ------------------------ = 158 registros por p�gina do banco de dados (arredondado para baixo)
+ 52 bytes por registro
100000 registros de dados
- ---------------------------- = 685 p�ginas do banco de dados (arredondadopara cima)
- 146 registros por p�gina
+ ---------------------------- = 633 p�ginas do banco de dados (arredondadopara cima)
+ 158 registros por p�gina
-685 p�ginas do banco de dados * 8192 bytes por p�gina = 5.611.520 bytes (5,6MB)
+633 p�ginas do banco de dados * 8192 bytes por p�gina = 5.185.536 bytes (5,2MB)
�ndices n�o requerem muito espa�o, mas cont�m dados que foram
indexados, ent�o eles podem ocupar algum espa�o.
@@ -650,10 +654,12 @@
* Busca que n�o diferenciam mai�sculas de min�sculas tais como ILIKE
e ~* n�o utilizam �ndices. Em vez disso, utilize �ndice de
express�o, que � descrito na se��o 4.8.
- * O idioma padr��o C deve ser usando durante o initdb porque n�o �
+ * O idioma padr�o C deve ser usando durante o initdb porque n�o �
poss�vel saber o pr�ximo caracter em idiomas que n�o sejam o C.
Voc� pode criar um �ndice especial text_pattern_ops para tais
- casos que funcionam somente para indexa��o com LIKE.
+ casos que funcionam somente para indexa��o com LIKE. Tamb�m �
+ poss�vel utilizar indexa��o de busca textual para buscas por
+ palavras.
Em vers�es anteriores a 8.0, �ndices frequentemente n�o podem ser
utilizados a menos que os tipos de dados correspondam aos tipos de
@@ -690,13 +696,18 @@
utilize uma restri��o CHECK ou um gatilho.
4.9) Em uma consulta, como eu detecto se um campo � NULL? Como eu posso
- ordenar por um campo que � NULL ou n�o?
+ concatenar poss�veis NULLs? Como eu posso ordenar por um campo que � NULL ou
+ n�o?
Voc� testa a coluna com IS NULL e IS NOT NULL, como a seguir:
SELECT *
FROM tab
WHERE col IS NULL;
+ Para concatenar com poss�veis 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 cl�usula ORDER BY. Coisas que s�o verdadeiro ser�o
ordenadas acima das coisas que s�o falso, ent�o a consulta a seguir
@@ -754,29 +765,22 @@
nome TEXT
);
- Veja a p�gina sobre create_sequence no manual para obter informa��es
- adicionais sobre sequ�ncias.
+ Sequ�ncias automaticamente criadas s�o nomeadas como
+ <tabela>_<colunaserial>_seq, onde tabela e colunaserial s�o os nomes
+ da tabela e da coluna serial, respectivamente. Veja a p�gina sobre
+ create_sequence no manual para obter informa��es adicionais sobre
+ sequ�ncias.
4.11.2) Como eu consigo o valor de um campo SERIAL?
- Uma abordagem � obter o pr�ximo valor SERIAL de uma sequ�ncia com a
- fun��o nextval() antes de inserir e ent�o 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 ent�o ter tamb�m 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 s�o os nomes da
- tabela e da coluna SERIAL, respectivamente.
-
- Alternativamente, voc� poderia obter o valor SERIAL atribu�do com a
- fun��o currval() depois de t�-lo inserido por padr�o, i.e.,
- execute("INSERT INTO pessoa (nome) VALUES ('Blaise Pascal')");
- novo_id = execute("SELECT currval('pessoa_id_seq')");
+ A maneira mais simples de obter o pr�ximo valor SERIAL de uma
+ sequ�ncia � com RETURNING. Utilizando o exemplo da tabela em 4.11.1,
+ ele ficaria assim:
+ INSERT INTO pessoa (nome) VALUES ('Blaise Pascal') RETURNING id;
+ Voc� tamb�m pode chamar nextval() e utilizar o valor no INSERT ou
+ chamar currval() ap�s o INSERT.
+
4.11.3) currval() n�o lida com condi��o de corrida com outros usu�rios?
N�o. currval() retorna o valor atual atribuido pela sua sess�o, e n�o
@@ -791,14 +795,13 @@
finalizada. Isso causa intervalos na numera��o por causa de transa��es
abortadas.
- 4.16) O que � um OID? O que � um CTID?
+ 4.12) O que � um OID? O que � um CTID?
- Cada registro que � criado no PostgreSQL recebe um OID �nico a menos
- que seja criado com WITHOUT OIDS. OIDs s�o automaticamente atribu�dos
- como inteiros de 4 bytes que s�o �nicos ao longo de toda instala��o.
- Contudo, eles s�o limitados em 4 bilh�es, e ent�o os OIDs come�am a
- ser duplicados. O PostgreSQL utiliza OIDs para ligar as tabelas do
- sistema.
+ Se uma tabela � criada com WITH OIDS, cada registro recebe um OID
+ �nico. OIDs s�o automaticamente atribu�dos como inteiros de 4 bytes
+ que s�o �nicos ao longo de toda instala��o. Contudo, eles s�o
+ limitados em 4 bilh�es e, ent�o, os OIDs come�am a ser duplicados. O
+ PostgreSQL utiliza OIDs para ligar as tabelas do sistema.
Para numerar registros nas tabelas do usu�rios, � melhor utilizar
SERIAL ao inv�s de OIDs porque sequ�ncias SERIAL s�o �nicas somente em
@@ -814,7 +817,7 @@
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 postmaster:
+ antes de iniciar o servidor PostgreSQL:
ulimit -d 262144
limit datasize 256m
@@ -834,7 +837,7 @@
Utilize CURRENT_TIMESTAMP:
CREATE TABLE teste (x int, modtime timestamp DEFAULT CURRENT_TIMESTAMP);
- 4.23) Como eu fa�o uma jun��o externa (outer join)?
+ 4.16) Como eu fa�o uma jun��o externa (outer join)?
PostgreSQL suporta jun��es externas utilizando a sintaxe padr�o do
SQL. Aqui temos dois exemplos:
@@ -852,7 +855,7 @@
retornaria os registros combinados mais todos os registros n�o
combinados de t1 e t2. A palavra OUTER � opcional e � assumida nas
jun��es LEFT, RIGHT e FULL. Jun��es ordin�rias s�o chamadas jun��es
- naturais (INNER).
+ internas (INNER).
4.17) Como eu fa�o consultas utilizando m�ltiplos bancos de dados?
@@ -869,18 +872,20 @@
4.18) Como eu retorno m�ltiplos registros ou colunas de uma fun��o?
� f�cil utilizando fun��es que retornam conjunto,
- http://techdocs.postgresql.org/guides/SetReturningFunctions.
+ http://www.postgresql.org/docs/techdocs.17.
4.19) Por que eu obtenho erros "relation with OID ###### does not exist" ao
acessar tabelas tempor�rias em fun��es PL/PgSQL?
- 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 EXECUTE para acesso
- a tabelas tempor�rias no PL/PgSQL. Isto ir� fazer com que a consulta
- seja avaliada toda vez.
+ 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 EXECUTE para acesso a tabelas tempor�rias no
+ PL/PgSQL. Isto ir� fazer com que a consulta seja avaliada toda vez.
+
+ Este problema n�o ocorre no PostgreSQL 8.3 ou superior.
4.20) Quais solu��es de replica��o est�o dispon�veis?
@@ -895,22 +900,23 @@
Replica��o com m�ltiplos mestres permite que consultas leitura/escrita
sejam enviadas para m�ltiplos computadores replicadores. Esta
capacidade tamb�m tem um s�rio impacto na performance por causa da
- necessidade de sincronizar as mudan�as entre os servidores. Pgcluster
+ necessidade de sincronizar as mudan�as entre os servidores. PGCluster
� a solu��o mais popular dispon�vel livremente para PostgreSQL.
H� tamb�m solu��es de replica��o comerciais e baseadas em hardware
dispon�veis que suportam uma variedade de modelos de replica��o.
4.21) Por que os nomes de minhas tabelas e colunas n�o s�o reconhecidos em
- minha consulta?
-
- O caso mais comum � 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 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 cria��o da
- tabela. Ent�o, para identificadores serem reconhecidos, voc� deve:
+ minha consulta? Por que as mai�sculas n�o s�o preservadas?
+
+ 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 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 cria��o da tabela. Ent�o, para identificadores serem
+ reconhecidos, voc� deve:
* Evitar colocar aspas no identificador ao criar tabelas
* Utilizar somente caracteres min�sculos em identificadores
* Colocar aspas em identificadores ao referenci�-los nas consultas
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>&Uacute;ltima atualiza&ccedil;&atilde;o: Qui Set 27 02:14:24 EDT 2007</P>
+ <P>&Uacute;ltima atualiza&ccedil;&atilde;o: Sex Nov 16 10:53:50 EST 2007</P>
<P>Mantenedor atual: Bruce Momjian (<A href=
@@ -30,7 +30,8 @@
<HR>
<H2 align="center">Perguntas Gerais</H2>
- <A href="#item1.1">1.1</A>) O que &eacute; PostgreSQL? Como ele &eacute; pronunciado?<BR>
+ <A href="#item1.1">1.1</A>) O que &eacute; PostgreSQL? Como ele &eacute; pronunciado?
+ O que &eacute; Postgres?<BR>
<A href="#item1.2">1.2</A>) Quem controla o PostgreSQL?<BR>
<A href="#item1.3">1.3</A>) Qual &eacute; a licen&ccedil;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 &eacute; PostgreSQL? Como ele &eacute; pronunciado?</H3>
+ <H3 id="item1.1">1.1) O que &eacute; PostgreSQL? Como ele &eacute; pronunciado? O que &eacute; Postgres?</H3>
- <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.
+ <P>PostgreSQL &eacute; 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 &aacute;udio</a> est&aacute; dispon&iacute;vel).</P>
@@ -111,10 +112,14 @@
volunt&aacute;rios (na sua maioria) espalhados pelo mundo e que se comunicam via
Internet. &Eacute; um projeto da comunidade e n&atilde;o &eacute; 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 &eacute; um apelido para o PostgreSQL amplamente utilizado. Era o nome original do
+ projeto em Berkeley e dentre os outros apelidos &eacute; o preferido. Se voc&ecirc; acha
+ 'PostgreSQL' dif&iacute;cil de pronunciar, diga apenas 'Postgres'.</P>
+
<H3 id="item1.2">1.2) Quem controla o PostgreSQL?<BR></H3>
<P>Se voc&ecirc; est&aacute; procurando por um mantenedor, comit&ecirc; central ou empresa
@@ -125,7 +130,7 @@
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">
FAQ do desenvolvedor</A> para obter informa&ccedil;&otilde;es como se envolver com o
- desenvolvimento do Postgres.</P>
+ desenvolvimento do PostgreSQL.</P>
<H3 id="item1.3">1.3) Qual &eacute; a licen&ccedil;a do PostgreSQL?</H3>
@@ -169,7 +174,7 @@
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">
http://pgfoundry.org/projects/pginstaller</a>. Vers&otilde;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&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>
@@ -212,7 +217,7 @@
"http://www.postgresql.org/support/submitbug">http://www.postgresql.org/support/submitbug</A>.</P>
<P>Verifique tamb&eacute;m o nosso ftp <A href=
"ftp://ftp.postgresql.org/pub">ftp://ftp.postgresql.org/pub</A> para
- ver se h&aacute; uma vers&atilde;o mais recente do Postgres.</P>
+ ver se h&aacute; uma vers&atilde;o mais recente do PostgreSQL.</P>
<P>Bugs submetidos utilizando o formul&aacute;rio ou informado a qualquer
lista de discuss&atilde;o do PostgreSQL tipicamente gera uma das seguintes
@@ -271,7 +276,7 @@
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
para encontrar todas as mudan&ccedil;as, melhorias e corre&ccedil;&otilde;es em uma vers&atilde;o do
- Postgres &eacute; ler as mensagens de log do
+ PostgreSQL &eacute; ler as mensagens de log do
<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>
@@ -290,8 +295,8 @@
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
encontrada em <A href=
- "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>
+ "http://www.postgresql.org/docs/books/">http://www.postgresql.org/docs/books/</A>.
+ H&aacute; tamb&eacute;m uma cole&ccedil;&atilde;o de artigos t&eacute;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&ccedil;&otilde;es sobre tipos, operadores, fun&ccedil;&otilde;es, agrega&ccedil;&otilde;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&iacute;ficos sobre PostgreSQL mencionados
- acima. Outro &eacute; 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&aacute;rios gostam do <I>The Practical SQL Handbook</I>,
+ acima. Muitos de nossos usu&aacute;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&ccedil;&atilde;o como <SMALL>PHP</SMALL> incluem uma
interface para PostgreSQL. Interfaces para linguagens como Perl,
<SMALL>TCL</SMALL>, Python e muitas outras est&atilde;o dispon&iacute;veis em
- <a href="http://gborg.postgresql.org">http://gborg.postgresql.org</A>
- na se&ccedil;&atilde;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&atilde;o dispon&iacute;veis para utilizar o PostgreSQL com p&aacute;ginas Web?</H3>
@@ -447,7 +449,7 @@
<DD>Um grande n&uacute;mero de configura&ccedil;&otilde;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&aacute;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&ecirc; atingiu o limite padr&atilde;o que &eacute; de 100 sess&otilde;es. Voc&ecirc;
- precisa aumentar o limite do <I>postmaster</I>, que diz
+ <P>Voc&ecirc; atingiu o limite padr&atilde;o de 100 sess&otilde;es. Voc&ecirc;
+ 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&aacute;gina de dados no Postgres &eacute; 8192 bytes (8 KB), ent&atilde;o:
+ O tamanho de uma p&aacute;gina de dados no PostgreSQL &eacute; 8192 bytes (8 KB), ent&atilde;o:
8192 bytes por p&aacute;gina
------------------------ = 158 registros por p&aacute;gina do banco de dados (arredondado para baixo)
@@ -664,10 +666,11 @@
<LI>Busca que n&atilde;o diferenciam mai&uacute;sculas de min&uacute;sculas tais como <SMALL>ILIKE</SMALL> e
<I>~*</I> n&atilde;o utilizam &iacute;ndices. Em vez disso, utilize &iacute;ndice de express&atilde;o, que
&eacute; descrito na se&ccedil;&atilde;o <a href="#item4.8">4.8</a>.</LI>
- <LI>O idioma padr&ccedil;&atilde;o <I>C</I> deve ser usando durante o <i>initdb</i>
+ <LI>O idioma padr&atilde;o <I>C</I> deve ser usando durante o <i>initdb</i>
porque n&atilde;o &eacute; poss&iacute;vel saber o pr&oacute;ximo caracter em idiomas que n&atilde;o sejam o C.
Voc&ecirc; pode criar um &iacute;ndice especial <CODE>text_pattern_ops</CODE> para tais casos
- que funcionam somente para indexa&ccedil;&atilde;o com <SMALL>LIKE</SMALL>.
+ que funcionam somente para indexa&ccedil;&atilde;o com <SMALL>LIKE</SMALL>. Tamb&eacute;m &eacute;
+ poss&iacute;vel utilizar indexa&ccedil;&atilde;o de busca textual para buscas por palavras.
</LI>
</UL>
@@ -778,38 +781,28 @@ comprimento</TD></TR>
);
</PRE>
- Veja a p&aacute;gina sobre <I>create_sequence</I> no manual para
- obter informa&ccedil;&otilde;es adicionais sobre sequ&ecirc;ncias.
+ <P>Sequ&ecirc;ncias automaticamente criadas s&atilde;o nomeadas como
+ &lt;<i>tabela</i>&gt;_&lt;<i>colunaserial</i>&gt;_<i>seq</i>, onde
+ <i>tabela</i> e <i>colunaserial</i> s&atilde;o os nomes da tabela e
+ da coluna serial, respectivamente. Veja a p&aacute;gina sobre
+ <I>create_sequence</I> no manual para obter informa&ccedil;&otilde;es
+ adicionais sobre sequ&ecirc;ncias.
<H3 id="item4.11.2">4.11.2) Como eu consigo o valor de um campo
<SMALL>SERIAL</SMALL>?</H3>
- <P>Uma abordagem &eacute; obter o pr&oacute;ximo valor <SMALL>SERIAL</SMALL>
- de uma sequ&ecirc;ncia com a fun&ccedil;&atilde;o <I>nextval()</I>
- <I>antes</I> de inserir e ent&atilde;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&oacute;ximo valor <SMALL>SERIAL</SMALL>
+ de uma sequ&ecirc;ncia &eacute; com <SMALL>RETURNING</SMALL>. Utilizando o
+ exemplo da tabela em <A href="#item4.11.1">4.11.1</A>, ele ficaria assim:
- Voc&ecirc; poderia ent&atilde;o ter tamb&eacute;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&aacute;
- &lt;<I>tabela</I>&gt;_&lt;<I>coluna</I>&gt;_<I>seq</I>, onde
- <I>tabela</I> e <I>coluna</I> s&atilde;o os nomes da tabela
- e da coluna <SMALL>SERIAL</SMALL>, respectivamente.
-
- <P>Alternativamente, voc&ecirc; poderia obter o valor <SMALL>SERIAL</SMALL>
- atribu&iacute;do com a fun&ccedil;&atilde;o <I>currval()</I> <I>depois</I>
- de t&ecirc;-lo inserido por padr&atilde;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&ecirc; tamb&eacute;m pode chamar <I>nextval()</I> e utilizar o valor no
+ <SMALL>INSERT</SMALL> ou chamar <I>currval()</I> <I>ap&oacute;s</I> o
+ <SMALL>INSERT</SMALL>.
+
<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>
@@ -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&ecirc; provavelmente est&aacute; sem mem&oacute;ria virtual no seu sistema, ou o seu n&uacute;cleo (kernel) tem um limite baixo para certos recursos. Tente isto antes de iniciar o <I>postmaster</I>:</P>
+ <P>Voc&ecirc; provavelmente est&aacute; sem mem&oacute;ria virtual no seu sistema, ou o seu n&uacute;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&aacute;rias em fun&ccedil;&otilde;es PL/PgSQL?</H3>
- <P>PL/PgSQL armazena o conte&uacute;do da fun&ccedil;&atilde;o, e o efeito indesejado &eacute; que se uma fun&ccedil;&atilde;o PL/PgSQL acessa uma tabela tempor&aacute;ria, e aquela tabela &eacute; removida e criada novamente, e a fun&ccedil;&atilde;o &eacute; chamada novamente, a fun&ccedil;&atilde;o ir&aacute; falhar porque o conte&uacute;do armazenado da fun&ccedil;&atilde;o ainda apontar&aacute; para a tabela tempor&aacute;ria antiga. A solu&ccedil;&atilde;o &eacute; utilizar o <SMALL>EXECUTE</SMALL> para acesso a tabelas tempor&aacute;rias no PL/PgSQL. Isto ir&aacute; fazer com que a consulta seja avaliada toda vez.</P>
+ <P>Em vers&otilde;es do PostgreSQL &lt; 8.3, PL/PgSQL armazena o conte&uacute;do da fun&ccedil;&atilde;o, e o efeito indesejado &eacute; que se uma fun&ccedil;&atilde;o PL/PgSQL acessa uma tabela tempor&aacute;ria, e aquela tabela &eacute; removida e criada novamente, e a fun&ccedil;&atilde;o &eacute; chamada novamente, a fun&ccedil;&atilde;o ir&aacute; falhar porque o conte&uacute;do armazenado da fun&ccedil;&atilde;o ainda apontar&aacute; para a tabela tempor&aacute;ria antiga. A solu&ccedil;&atilde;o &eacute; utilizar o <SMALL>EXECUTE</SMALL> para acesso a tabelas tempor&aacute;rias no PL/PgSQL. Isto ir&aacute; fazer com que a consulta seja avaliada toda vez.</P>
+
+ <P>Este problema n&atilde;o ocorre no PostgreSQL 8.3 ou superior.</P>
<H3 id="item4.20">4.20) Quais solu&ccedil;&otilde;es de replica&ccedil;&atilde;o est&atilde;o dispon&iacute;veis?</H3>
@@ -914,7 +909,7 @@ comprimento</TD></TR>
<P>Replica&ccedil;&atilde;o mestre/escravo permite que um mestre receba consultas de leitura e
escrita, enquanto os escravos s&oacute; podem aceitar leitura/consultas <SMALL>SELECT</SMALL>.
A solu&ccedil;&atilde;o mais popular de replica&ccedil;&atilde;o mestre-escravo para PostgreSQL dispon&iacute;vel livremente
- &eacute; <A href="http://gborg.postgresql.org/project/slony1/projdisplay.php">Slony-I</A>.</P>
+ &eacute; <A href="http://main.slony.info">Slony-I</A>.</P>
<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
@@ -931,7 +926,7 @@ comprimento</TD></TR>
<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
(chamados de identificadores) s&atilde;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&ecirc; deve utilizar aspas quando se
referir aos nomes na consulta. Algumas interfaces, como pgAdmin,
automaticamente colocam aspas nos identificadores durante a cria&ccedil;&atilde;o da tabela.
@@ -941,6 +936,7 @@ comprimento</TD></TR>
<LI>Utilizar somente caracteres min&uacute;sculos em identificadores</LI>
<LI>Colocar aspas em identificadores ao referenci&aacute;-los nas consultas</LI>
</UL>
+
</BODY>
</HTML>