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.

  1. Aprenda inglês! Mais importante que fazer faculdade ou um curso de informática é aprender inglês. Se você pretende fazer algum investimento a curto 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 inglês.
  2. 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 em vinil. Depois montei um banco de dados para uma loja de discos e por aí fui. Encontrar soluções para uma situação real faz você encontrar problemas reais que desafiam você a pesquisar soluções viáveis.
  3. 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.
  4. Evite usar interfaces com bancos de dados que facilitem muito o trabalho para 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 e muito menos no banco de dados.
    • 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.
  5. 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 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. Há algumas dicas essenciais para quem 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.
  6. 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 caseiro é muito diferente de um ambiente de produção real inserido num ambiente heterogêneo e complexo. São anos de experiência para se aprender coisas 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 e que prazos devem imbutir uma boa margem de segurança, mesmo que isto implique a diminuir algumas vantagens circunstanciais.
  7. Valorize o conhecimento e as pessoas, 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.
  8. 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.
  9. 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.
  10. 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:

  1. Artigo no Wikipedia sobre SGDBs.
    http://en.wikipedia.org/wiki/Data_base_management_system
  2. Site oficial do PostgreSQL
    http://www.postgresql.org
  3. Site oficial do PostgreSQL no Brasil
    http://www.postgresql.org.br
  4. Site com projetos relacionados ao PostgreSQL com licenças livres
    http://pgfoundry.org
  5. Blogs sobre PostgreSQL em inglês
    http://planetpostgresql.org
  6. Blogs brasileiros sobre PostgreSQL
    http://planeta.postgresql.org.br
  7. Lista de discussão do PostgreSQL no Brasil
    https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
  8. Listas de discussão do PostgreSQL em inglês
    http://www.postgresql.org/community/lists
  9. Notícias semanais sobre PostgreSQL em inglês
    http://www.postgresql.org/community/weeklynews
  10. Canal oficial no IRC sobre PostgreSQL em inglês
    irc://irc.freenode.net/#postgresql
  11. Documentações oficiais do PostgreSQL em inglês
    http://postgresql.org/docs
  12. Artigo meu em 3 partes com links para diversos outros sites intitulado “Desvendando o Mundo do Software Livre”
    http://atomic-temporary-213059056.wpcomstaging.com.br/desbravando-o-mundo-do-software-livre-parte-1
    http://atomic-temporary-213059056.wpcomstaging.com.br/desbravando-o-mundo-do-software-livre-parte-2
    http://atomic-temporary-213059056.wpcomstaging.com.br/desvendando-o-mundo-do-software-livre-parte3

Compartilhe

Você pode gostar

Sobre minha saída da Timbira

Há 14 anos, durante o PGConf.Brasil 2009, lá na UNICAMP em Campinas/SP, 4 pessoas se reuniram e idealizaram a criação da primeira empresa dedicada exclusivamente

Split brain

Já tem algum tempo que eu pensava em fazer isso e chegou a hora. Este blog vai se dividir em 2 partes a partir de

plugins premium WordPress