10 Dicas para começar a usar o PostgreSQL

Estes dias recebi um e-mail onde a pessoa me pergunta qual seria um bom caminho a seguir para quem está começando a mexer com PostgreSQL. Como vejo muitas pessoas novas utilizando o PostgreSQL, deixo aqui as minhas observações que podem ser petulantes ou óbvias para muitos, mas julgo ser de interesse de quem está realmente começando.
No final, deixo alguns links interessantes.
=== Aprenda inglês! ===
Mais importante que fazer faculdade ou um curso de informática é aprender inglês. Se você pretende fazer algum investimento a curso prazo e não sabe ler bem em inglês, este é um ponto de partida obrigatório. Os melhores profissionais de informática são aqueles que tem a capacidade de aprender sozinhos. E quando você começar a estudar por conta própria, vai descobri duas coisas:
* A Internet é o meio mais barato, rápido e rico para achar material para se atualizar e para descobrir coisas novas.
* Os melhores artigos, sites de notícias, blogs, livros, revistas, listas de discussão, canais de IRC, etc estão todos em inglês. Uma porcentagem muito pequena deste material é traduzida para o português e quando isto acontece costuma estar sempre um pouco desatualizado. Isto não significa que não existem excelentes materiais em português. Significa que a maioria dos profissionais de TI no mundo todo se comunicam através do idioma inglês.
=== O mais importante de tudo é achar um desafio real e tentar encontrar uma solução real. ===
Quando eu comecei a aprender, meu primeiro banco de dados era sobre a minha coleção de Discos e vinil. Depois montei um banco de dados para uma loja de discos e por aí fui. Encontrar soluções para um problema real faz você encontrar problemas reais e desafia você a pesquisar soluções.
=== LEIA a documentação do banco de dados que você vai utilizar. ===
Faça alguns exercícios para testar, mesmo se forem coisas aparentemente simples. No começo, a interface e a sintaxe de cada SGDB sempre confunde os novatos. No site do PostgreSQL existe uma excelente documentação, melhor que a maioria dos livros sobre SGDBs proprietários que você pode encontrar em livrarias por aí. Leia pelo menos as partes I, II e alguns capítulos da parte III.
=== Evite usar interfaces com bancos de dados que facilitem muito o trabalho por você. === 
Se você realmente quer aprender, use primeiro interfaces no modo texto. Existem excelentes razões para isto:
* No modo texto você sempre sabe o que está acontecendo.
* No modo texto você é obrigado a aprender a sintaxe correta dos comandos
* Pessoas que aprendem a trabalhar no modo texto aprendem rapidamente a trabalhar no modo gráfico. O contrário nem sempre é verdade.
* Ao executar rotinas pesadas, o modo texto é sempre mais confiável e apresenta melhor desempenho.
* Interfaces no modo texto dificilmente apresentam bugs e dificilmente travam. Algumas vezes uma operação complexa apresenta erro devido a uma falha na interface gráfica e não sua.
* Na interface em modo texto todas as operações avançadas do banco de dados estão disponíveis. No modo gráfico isto nem sempre ocorre.
* Para usuários mais experientes o modo texto costuma ser mais produtivo.
* Se um dia você precisar operar um servidor em produção em ambiente crítico, ele provavelmente (se for um servidor bem configurado) não terá uma interface gráfica instalada. Se um dia você precisar operar o servidor localmente, você precisará usar a interface em modo texto. Isto ocorre geralmente em momentos críticos onde o tempo que você demorar para resolver o problema pode custar o emprego de toda uma equipe.
=== Participe da comunidade de Software Livre. ===
A comunidade é um excelente local para conhecer muita gente interessante, receber ajuda e ajudar outras pessoas. Você conhecerá pessoas muito que lhe ajudarão muito. Em breve você será capaz de ajudar um pouco outras pessoas também. Com uma pequena quota de ajuda, você será recompensado com incontáveis contribuições de todo o planeta. Você pode participar de listas de discussão por e-mail, canais de IRC, fóruns web e eventos presenciais. As listas de discussão costumam ser um ponto de partida obrigatório. Existe no entanto algumas dicas essenciais para que entra em uma, que são sempre citadas, mas muitas vezes ignoradas:
* Leia o manual primeiro!
* Escreva corretamente utilizando boa gramática. Não use gírias e evite abreviações.
* Procure no histórico da lista para ver se a sua dúvida já não foi respondida antes. Os novatos costumam sempre ter o mesmo tipo de dúvida que acabam sendo respondidas várias vezes. Responder centenas de vezes a mesma pergunta é desestimulante mesmo para os mais altruístas.
* Nunca utilize como assunto de um e-mail coisas como “preciso de ajuda” ou “não funciona”. Muitas listas têm um tráfego diário de dezenas de e-mails por dia. Logo se torna impossível de ler todas as mensagens recebidas. As pessoas selecionam o que vão ler pelo assunto da mensagem. Procure colocar um assunto curto e que dê idéia sobre qual o tipo de problema que você tem.
* NUNCA mande spam ou mensagens cujo conteúdo não seja diretamente relacionado com a lista em questão. Você poderá ser banido da lista, ou no mínimo será mau visto pelos demais participantes.
* Não entre em discussões acaloradas (flame wars) que não levam a lugar nenhum. Estas discussões dificilmente contribuem para o todo. Se tiver uma crítica que julgar indispensável, faça-a de forma polida, respeitosa e de preferência não envie para a lista e sim direto para o destinatário.
* O Google e outros sites rastreiam boa parte do conteúdo das listas de discussão que são públicas. Isto significa que tudo o que você escrever ficará publicado para o mundo inteiro por muitos anos. Pense nisso antes de escrever. Muitas oportunidades são perdidas por assumirmos posições radicais em um determinado momento da vida, ou por não demonstrar maturidade profissional. A primeira coisa que qualquer pessoa faz antes de contratar alguém na área de TI é colocar o nome da pessoa no Google e ver o que acontece.
=== Procure saber o que você sabe e saber o que você não sabe. ===
Isto significa, conhecer os seus limites, ser humilde e ter bom senso. Saiba quais são seus limites pessoais. Procure se informar em várias fontes de informação antes de emitir uma opinião, nunca de respostas fáceis ou aceite desafios sem saber exatamente o risco que você está assumindo. No começo é comum se empolgar no momento em que você começa a ter familiaridade com um SGDB e se sentir mais a vontade. No entanto, um ambiente de teste e um ambiente de produção costumam ter diferenças que às vezes dependem de anos de experiência para se aprender como tuning, segurança, fail over, replicação, etc. Isto não significa que você não deve se lançar a novos desafios, significa que é sempre bom poder contar com uma boa retaguarda antes de explorar o desconhecido. Mesmo que isto implique a diminuir algumas vantagens circunstanciais.
=== Valorize o conhecimento e as pessoas e não o dinheiro. ===
Ninguém que está começando ganha dinheiro imediatamente. O mercado de trabalho está repleto de profissionais de informática com baixa qualificação. No início de carreira prefira oportunidades de emprego que lhe dêem possibilidade de aprender mais à um bom salário.
=== Procure entender o que você faz ao invés de aceitar receitas prontas. ===
Um how-to ou um tutorial, podem ser um bom ponto de partida para se começar a ter contato com uma nova tecnologia. Mas se seu trabalho realmente depender dela, você terá que se aprofundar nela e entender como ela realmente funciona. Tutoriais curtos que ensinam as coisas passo-a-passo só funcionam para ambientes ideais em circunstâncias específicas. Quando as coisas dão errado, este tipo de documentação pouco ajuda.
=== Uma tradição entre os profissionais de TI, que é importante ter em mente, é que os DBAs costumam ser as pessoas mais conservadoras da equipe. ===
Eles dificilmente confiam em coisas novas. São sempre os últimos a quererem migrar qualquer coisa ou dar ouvidos aos modismos de mercado. Isto ocorre por um motivo muito simples, o maior patrimônio de TI costuma ficar sob sua responsabilidade: os dados! Qualquer possibilidade de um problema degenerar os dados de forma lenta e imperceptível leva toda uma empresa a uma situação catastrófica e irreversível. Existem empresas que chegam a fechar as portas por causa destas coisas. Funcionários e máquinas são substituíveis em TI. Os dados históricos acumulados por anos em uma empresa não. Outra coisa que reforça posições conservadoras é que apesar de existirem inúmeros softwares sendo lançados a cada dia, os SGBDs costumam ter um ciclo de desenvolvimento muito longo e a maior parte da teoria de bancos de dados relacional ainda é a mesma enunciada na década de 70.
=== Conheça a diferença entre os diferentes SGDBs existentes no mercado. ===
O PostgreSQL é uma excelente solução, mas em alguns casos específicos, outros bancos de dados podem apresentar algumas vantagens. Entre os SGDBs livres, se destacam, além do PostgreSQL, o MySQL, o Firebird, o SQLite. Entre os proprietários, os SGDBs mais expressivos são o Oracle, o IBM DB/2 e o MS SQL Server. Há também uma nova e polêmica geração de bancos de dados orientados a objeto que pretendem substituir os bancos de dados relacionais em situações específicas. Em todo caso, independente do SGDB com o qual você pretende iniciar seus estudos ou se especializar, é sempre importante manter a mente aberta e saber que cada solução possui vantagens e desvantagens. O estado de arte é saber quando vale pena utilizar outro SGDB.
==Alguns links interessantes para quem quer começar a Mexer com PostgreSQL:==
0 - http://en.wikipedia.org/wiki/Data_base_management_system
Artigo no Wikipedia sobre SGDBs.
1 - http://www.postgresql.org
Site oficial do PostgreSQL
2 - http://www.postgresql.org.br
Site oficial do PostgreSQL no Brasil
3 - http://pgfoundry.org
Site com projetos relacionados ao PostgreSQL com licenças livres
4 - http://planetpostgresql.org
Blogs sobre PostgreSQL em inglês
5 - http://planeta.postgresql.org.br
Blogs brasileiros sobre PostgreSQL
6 - https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Lista de discussão do PostgreSQL no Brasil
7- http://www.postgresql.org/community/lists
Listas de discussão do PostgreSQL em inglês
8 - http://www.postgresql.org/community/weeklynews
Notícias semanais sobre PostgreSQL em inglês
9 - irc://irc.freenode.net/#postgresql-br
Canal brasileiro no IRC sobre PostgreSQL
10 - irc://irc.freenode.net/#postgresql
Canal oficial no IRC sobre PostgreSQL em inglês
11 - http://www.postgresql.org/docs
Documentações oficiais do PostgreSQL em inglês
12 - http://pgdocptbr.sourceforge.net/pg80/index.htm
Tradução parcial da documentação da versão 8.0 do PostgreSQL
13 - http://wiki.postgresql.org
Artigos sobre PostgreSQL
14 - http://www.midstorm.org/~telles/?p=59 - http://www.midstorm.org/~telles/?p=60 - http://www.midstorm.org/~telles/?p=63
Artigo meu em 3 partes com links
Texto originalmente publicado em http://savepoint.blog.br/10-dicas-para-comecar-a-usar-o-postgresql
Copyright (c) 2006 por Fábio Telles Rodriguez (fabio.telles@gmail.com - http://www.midstorm.org/~telles)
Category:Português