Saturday, October 13, 2012

ORDBMs: Informix vs Postgres vs Oracle

This article is written in English and Portuguese
Este artigo está escrito em Inglês e Português

English version:
I just noticed on Twitter and other feeds that a recent article compares the object oriented features of three databases. And yes, one of them is Informix, which is not that bad for a database that many consider "old", "outdated", "gone" etc.
The author picked up Informix, Postgres and Oracle and makes some comparison between the way object oriented features are implemented.
You should read it yourself (it's a short article), but my understanding is:
  1. Informix and Postgres are more mature and have more deeply embedded concepts than Oracle
  2. Informix inherits primary keys and indexes in sub-types which Postgres can't do
  3. Informix does not support multiple inheritance which Postgres does (and because of that can't really support primary key inheritance)
  4. Oracle syntax for method reference looks "cleaner" than Informix and Postgres (which are identical)
  5. Oracle uses the tables as mere object repositories, and doesn't implement the OO features at the table level
Although the object oriented features are not usually used directly by customers, and in fact we haven't been seeing to many improvements, the fact is that the Informix extensibility is based on these characteristics. And it's much easier to understand it's importance if we consider all the datablades currently shipped with Informix (for free). I'm thinking about Basic Text Search (BTS), Spatial, Timeseries, Node, Binary, MQ, and we may see more in the future...


Versão Portuguesa:

Encontrei recentemente no Twitter e noutras fontes referências a um artigo que compara as funcionalidades de orientação a objetos de três bases de dados. E sim, uma delas é o Informix, o que não é mau de todo para uma base de dados que muitos consideram "antiga", "desatualizada", "extinta" etc.
O autor pegou no Informix, Postgres e Oracle e comparou a forma como foram implementas as funcionalidades de orientação a objetos.
Deverá ler por si (o artigo é pequeno), mas o meu entendimento foi o seguinte:
  1. O Informix e Postgres são mais maduros e embeberam os conceitos mas profundamente que o Oracle
  2. O Informix permite a herança das chaves primárias e índices, o que o Postgres não permite
  3. O Informix não suporta a herança múltipla o que o Postgres permite (e por causa disso não pode suportar a herança das chaves primárias)
  4. A sintaxe usada pelo Oracle parece mais "limpa" que a do Informix e Postgres (que são identicas)
  5. O Oracle utiliza as tabelas como mero repositório dos objetos não implementando as características OO ao nível das tabelas
Apesar de as funcionalidades de orientação a objetos não serem normalmente usadas diretamente pelos clientes, e de facto não termos vindo a ver grandes melhorias nestas funcionalidades, a verdade é que a extensibilidade do Informix é baseada nestes conceitos. E é muito mais fácil compreender a sua importância se considerarmos todos os datablades que acompanham o Informix (sem custos). Estou a pensar no Text Search (BTS), Spatial, Timeseries, Node, Binary, MQ, e poderemos ver mais no futuro...

1 comment:

Eric Vercelletto said...

This is a good article. I would add that Informix is quoted twice (as PostgreSQL which is also a good product), and the big one only once...

Too bad nothing is said about robustness, scalability and use of system resources :-(

And, for those who had a doubt: Informix is not a DBMS made by the Gaulish!