Savepoint

Soluções em PostgreSQL

,

Oracle X PostgreSQL – Parte I: Semelhanças

Parte II – Vantagens do Oracle

Parte III – Vantagens do PostgreSQL

Em 2007, escrevi 2 textos falando sobre as vantagens do Oracle sobre o PostgreSQL e vice-versa. Naquela época, minhas observações foram baseadas no Oracle 10.2 e PostgreSQL 8.2. Depois disso a Oracle lançou as versões 11.1, 11.2 e 12.1. O PostgreSQL lançou o 8.3, 8.4, 9.0, 9.1, 9.2, 9.3 e 9.4. Enfim, muita coisa mudou de lá para cá… a febre da Internet não passou e trouxe a onda no NOSQL para a mesa. Eu também mudei bastante, amadureci muitas opiniões e acho que está mais do que na hora de retomar este assunto. Outra coisa que preciso dizer para o leitor que não me conhece é que este texto não é imparcial. Sou um defensor do PostgreSQL, mas trabalho há 12 anos com Oracle também e reconheço algumas fraquezas e vantagens de um e de outro. Mas em nenhum momento aqui vou enganar o leitor me fazendo crer imparcial. Os comentários estão aí para você complementar ou corrigir qualquer informação que julgar relevante. Apenas peço o de faça de forma educada.

Para começar, devo explicar que para mim não faz muito sentido comparar o PostgreSQL com bases NOSQL ou com MySQL. São produtos com fins diferentes. Talvez comparar o PostgreSQL com o SQL Server faça mais sentido, mas o mais próximo que temos, sem dúvida é o Oracle mesmo. Vejamos aqui algumas semelhanças entre ambos que os tornam próximos:

  • Origens semelhantes: No começo da década de 70 a IBM publicou os primeiros documentos que mais tarde dariam origem ao System R (que por sua vez dariam origem ao DB2) escritos pelo Sr. Edgar Frank Codd, dois grandes projetos fora da IBM se iniciaram seguindo suas publicações.
    • Em 73, na universidade de Berkeley o Sr. Michael Stonebraker junto com alguns coletas começaram a desenvolver o Ingres. O Ingres seria a base de muitos outros bancos de dados relacionais como O Sybase e o SQL Server. Em 1985, ainda em Berkeley, o sr. StoneBraker decide começar do zero uma nova versão do Ingres chamada Postgres, incluindo novos conceitos como orientação a objetos.
    • Em 77, o Sr. Larry Ellison se juntou com alguns amigos para criar o Oracle. Em 79 lançam a primeira versão do banco de dados relacional que mais tarde viria a se tornar o líder de mercado, à frente até mesmo do DB2 da IBM que cunhou o padrão SQL.
  • Ambientes semelhantes:
    • Tanto o Oracle quanto o PostgreSQL praticamente nasceram em ambientes UNIX. Ambos até hoje tem como ambiente primário este ambiente até hoje: LInux e Solaris para o Oracle e Linux e FreeBSD para o PostgreSQL.
    • Ambos possuem versões para rodar em outros sistemas operacionais, inclusive o Windows. Notavelmente o PostgreSQL roda até em videogames.
    • Ambos foram escritos em sua maior parte em C.
  • Ambos possuem um ótimo suporte a transações já nas primeiras versões e levam até hoje muito a sério os requisitos do ACID. Sendo assim, são bancos de dados muito confiáveis e que levam muito a sério a questão da consistência dos dados. Este não é o caso do MySQL ou do NOSQL.
  • Ambos trabalham há muito tempo com o conceito de MVCC, tão caro à bases transacionais e ambientes de alta concorrência, onde o fato de você estar alterando um registro não impede que a versão não alterada do mesmo seja lida em outras sessões até que a transação atual confirme a alteração em andamento (read commited).
  • Ambos são extremamente robustos e trazem há muito tempo o conceito de Point In Time Recovery. Isto permite que um backup antigo possa rolar para pontos no tempo posterior ao backup utilizando cópias dos logs de transação (conhecidos como archives) até um ponto no tempo específico. Ou seja, se você fizer seu backup corretamente, a perda de dados em caso de desastre é muito pequena.
  • Ambos implementaram um rico arcabouço de funções e linguagens de programação procedural embutida no banco de dados. O Oracle criou o PL/SQL e as suas funções em C enquanto o PostgreSQL copiou esta linguagem e criou o PL/pgSQL e mais uma infinidade de outras como PL/Python, PL/PERL, C e outras mais.
  • Ambos possuem ótima performance em ambiente OLTP, Data Warehouse (ou BI) e mistos. Assim conseguem um bom desempenho em variadas situações.
  • Ambos tem a capacidade de trabalhar com ambientes severos, seja com bases ou objetos com grande volume de dados, grande volume de transações ou alta concorrência;
  • Ambos são bastante seguros. Patches com correções de segurança são liberados com frequência e as eventuais falhas são corrigidas. Ambos se preocupam muito com a questão e tem mecanismos bem robustos para evitar ataques externos, injeção de SQL e outros perigos.

Comments

5 respostas para “Oracle X PostgreSQL – Parte I: Semelhanças”

  1. […] Comparar dois produtos com longa história e com comunidades vibrantes é sempre complicado. Quando publiquei minha comparação entre Oracle e PostgreSQL em 2007, muitos comentários de pessoas que não conheciam Oracle ou PostgreSQL surgiram. Uns dizendo que o Oracle não fazia isso ou aquilo e na verdade faz e o inverso também. Por isso me dei ao trabalho de falar sobre as semelhanças primeiro. […]

  2. Avatar de jma

    O Oracle não nasceu em ambiente UNIX. A primeira versão rodou em RSX da Digital em máquinas PDP 11/70. Tinha muitos problemas e eu apenas consegui testá-lo. A segunda versão rodava em VAX/VMS. Eu acho que só pela terceira que Oracle começou suportar Unix.

    1. Avatar de telles

      “Praticamente”, ou seja, não exatamente. A primeira versão sequer foi lançada, digamos que a terceira versão foi logo no começo e o caso com o UNIX foi o mais duradouro na sua história.

  3. […] Oracle X PostgreSQL – Parte I: Semelhanças […]

Deixe um comentário para Tropeçando 64 | Rafael Bernard Araujo Cancelar resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

plugins premium WordPress