Você está na página 1de 5

17 caractersticas do PostgreSQL que

fazem falta no Oracle


Publicado por Telles e arquivado em Banco de Dados, Oracle, PostgreSQL, Software Livre

Bom todos sabem que o Oracle possui uma mirade de recursos bacanas e
interessantes. Alguns deles o PostgreSQL realmente no tem, e alguns eu acredito que
nunca ter (at porqu a equipe do PostgreSQL tem uma viso diferente em vrios
pontos da Oracle). No estou dizendo que o PostgreSQL melhor que o Oracle ou vice
versa estou dizendo apenas que escolher um SGDB no como escolher uma roupa
para dar de presente. No basta olhar a marca e se deslumbrar com comerciais
fantsticos, shows de luzes e coquiteis luxuosos. Voc tem que conhecer as
funcionalidades de cada um e saber onde est entrando. E o que quero demonstrar aqui
que o PostgreSQL tambm revela suas qualidades! comum pessoas perguntando sobre
recursos que o PostgreSQL tem que o Oracle no tem aqui vai uma pequena lista. Por
favor sinta-se a vontade para acrescentar novos itens nos comentrios.

Readline: para quem est acostumado com o bash, sabe como bacana poder
utilizar algumas facilidades providas por esta maravilhosa biblioteca. Completar
comandos e histrico de comandos so duas coisas que tornam a experincia em
modo texto muito agradveis. Eu sei que o SQLPLUS tem muitas
funcionalidade interessantes, mas o psql realmente uma ferramenta muito mais
agradvel devido ao uso do Readline e para mim isto significa perda de
produtividade e aumento na curva de aprendizado do SQLPLUS.

Maior flexibilidade com as linguagens com as PLs. O PostgreSQL tem suporte


ao PL/pgSQL, est implantando o PSM e tem suporte a PL/Python, PL/Ruby,
PL/PHP, PL/PERL etc. E ainda tem a possibilidade de cria-las no modo
TRUSTED e UNTRUSTED. Isso uma mo na roda e aproxima muito o time
de desenvolvedores dos DBAs.

LIMIT e OFFSET, estas duas clusulas no fazem parte do padro SQL, mas a
maioria dos SGDBs implementam. Se voc tiver que paginar pginas de uma
consulta (coisa que voc sempre deve fazer ao retornar mais de 100 linhas numa
pgina web por exemplo) utilizando o ROWNUM, voc ver que o mundo
poderia ser mais simples.

Uma das primeiras coisas que eu descobri quando comecei a utilizar o Oracle:
voc no pode criar uma tabela e colocar uma sequncia como valor padro para
um campo. Isto s um pequeno detalhe, mas convenhmos, bem prtico
utilizar um insert sem ter de lembrar o nome da sequncia atrelada ao campo;

O Dollar Quoting uma caracterstica do PostgreSQLque nos permite evitar


situaes incmodas onde precisamos escapar aspas simples e duplas. Quando
se utiliza PL, isto pode se tornar um tanto incmodo. Alm disso o Dollar
Quoting um bom aliado na luta contra o SQL Injection

Algo irritante no Oracle o nome atribudo a objetos criados implicitamente. Se


voc cria uma chave primria e no atribui um nome explicitamente, tanto o
PostgreSQL quanto o Oracle atribuem um nome para a sua PK. Mas enquanto o
nome atribudo pelo Oracle algo como SYS1328909 o PostgreSQL utiliza
nomes muito mais inteligentes, atravs de um padro de nomenclaturas
inteligvel. Num ambiente de testes onde os desenvolvedores esqueam de
atribuir todos os nomes explicitamente, o caos passa a reinar rapidamente nos
nomes de objetos do Oracle.

Se voc quer uma funcionalidade avanada que o PostgreSQL oferece, ela se


chama GiST. O GiST uma infraestrutura para a criao de novos tpos de
ndices para novos tipos de dados. Com ele possvel criar aplicaes com
demandas muito especficas com um excelente desempenho sem muito esforo.
claro que no qualquer um que vai utilizar isso (assim como no qualquer
um que utiliza uma srie de funcionalidades avanadas do Oracle), mas o leque
de opes que isto abre enorme. Existem algumas implementaes de ndices
utilizando o GiST prontos para voc utilizar. Eles mostram o poder de adaptao
que o PostgreSQL possui para demandas especficas.

Conformidade com o padro SQL2003. Sim o Oracle possui diversas coisas


estranhas como usar o VARCHAR2 ao invs de VARCHAR, no utiliza o as
vises do catlogo de sistema padro e inmeras coisas estranhas que so
heranas antigas do Oracle que parecem que no tem melhorado muito nas
ltimas verses. O tipo de dados TIMESTAMP por exemplo, s surgiu na verso
9i. O mais simples tipo de dados, o BOOLEAN simplesmente no existe no
Oracle. Se voc quer saber mais sobre isso, compare voc mesmo a lista de
compatibilidade do Oracle e do PostgreSQL.

Melhor integrao com o SO. Voc j atualizou uma Distribuio Linux com um
Oracle instalado? Prepare-se para muita dor de cabea, pois o processo no
mnimo delicado. Para quem utiliza uma distribuio Linux como o Debian, isso
mal passa pela cabea do DBA. Voc atuliza o SO junto com o PostgreSQL e
pronto. Outra coisa interessante que voc pode utilizar os redirecionamentos
do shell para jogar a sada de uma exportao direto na entrada de uma
importao. Isso economiza tempo de disco. Na verdade o PostgreSQL se ajusta
muito bem com o Padro POSIX, enquanto a Oracle insiste em criar suas
prprias regras como o OFA (Optimal Flexibe Architeture).

Voc pode subir um Oracle num 486?? O Oracle pesado, um verdadeiro drago
devorador de recursos. A verso 11g que foi lanada recentemente pede um
mnimo de 1GB de memria no servidor. O PostgreSQL bem mais flexvel
neste sentido. Voc pode subir um PostgreSQL para testes no seu prprio
desktop em 2 minutos e j sair testando sem ter que se preocupar muito com
isso. Eu particularmente chego a ter 2 ou 3 verses do PostgreSQL rodando no
meu desktop sem problemas. Agora d uma olhada no procedimento de
instalao do Oracle e voc ver porqu poucas pessoas sabem colocar ele no
ar de maneira adequada!

Suporte a um nmero maior de arquiteturas. Por incrvel que parea, o Oracle


no roda no FreeBSD por exemplo. Vale a pena comparar as arquiteturas
suportadas pelo Oracle e PostgreSQL.

Independncia de suporte. Todo mundo pergunta se o PostgreSQL tem suporte


confivel no Brasil. Tem sim, no vou me pronunciar a favor de um ou outro
aqui, mas temos empresas muito competentes aqui no Brasil. Mas algum j se
perguntou como o suporte da Oracle??? Como eles so detentores do cdigo
fonte do Oracle, s eles podem lhe oferecer um contrato de suporte mais
profundo. Pergunte a um DBA Oracle como o suporte da Oracle e voc ir se
surpreender! J no PostgreSQL voc no encontra este problema, voc pode
escolher a empresa que vai lhe prestar suporte. Se voc no gostou do suporte
de uma empresa chame outra! Est com medo de ningum segurar o rojo
quando um problema mais srio acontecer? Quem disse que a Oracle no vai lhe
deixar na mo? Bom, quer conhecer o suporte da Oracle, saiba o que mais de
90% das pessoas conhecem por suporte na verdade apenas o acesso ao
Metalink. Mas suponhamos que voc precise de algo um pouco especfico mais
onde o Oracle no lhe atende? Bom, o mais provvel que a Oracle lhe diga
NO ou se voc der sorte estar diante de um oramento monstruoso. Se voc
precisar de algo diferente no PostgreSQL, voc pode entrar em contato com
qualquer um dos seus desenvolvedores (existem alguns no Brasil) e solicitar
uma nova funcionalidade. Voc vai pagar apenas as horas de desenvolvimento
dele e se ele achar que a funcionalidade importante, voc provavelmente ver
ela implementada na Prxima verso do PostgreSQL e nunca mais ter de se
preocupar com isso. Acredite ou no, vrias funcionalidades do PostgreSQL que
voc usa hoje, surgiram assim. Veja o exemplo dos SkyTools. Existem empresas
menores que tem contratos de manuteno com desenvolvedores do PostgreSQL
e utilizam verses modificadas com particularidades mais bizarras e funcionam
sem problemas. Um detalhe se voc no gostar do desenvolvedor, voc
simplesmente contrata outro, uma vez que voc no precisa estar amarrado a ele.

Acesso aos desenvolvedores. Voc j perguntou alguma coisa a um


desenvolvedor do Oracle? No postgreSQL isso tranquilo, basta entrar na lista
de discusso dos desenvolvedores. Um exemplo de como isso pode ser til
saber o que esperar das prximas verses. Todo o ciclo de desenvolvimento
transparente, voc sabe o que ser implementado na prxima verso, e o que
esto querendo implementar nas prximas. Saber para onde o seu SGDB vai d
muita segurana para o DBA.

Acesso aos paths de correo independente de pagar licenciamento. Todo mundo


fica com o oramento apertado durante algum tempo. Mas se voc deixar de
pagar o suporte da Oracle, prepare-se para ficar vulnervel. As atualizaes s
esto disponveis para quem est com seus pagamentos em dia;

Voc no precisa fazer um curso sobre licenciamento antes de iniciar o uso do


PostgreSQL. Independente do custo das licenas, saber quais recursos voc vai
precisar licenciar com a Oracle, um verdadeiro tormento. A cada verso as
opes de licenciamento mudam e um nmero maior de opes pagas
separadamente so oferecidas. O Oracle Forms comeou como uma ferramenta
gratita que numa nova verso passou a ser paga e hoje est sendo

descontinuada. Muitos oramentos estouram porqu no meio do projeto se


descobre que uma funcionalidade importante no foi prevista no contrato de
licenciamento. Isso quando voc no instala opes no licenciadas sem querer.
Para licenciar um Oracle, voc deve comear lendo Software Investment
Guide que um documento de 61 pginas explicando quando uma licena se
aplica ou no, dependendo da arquitetura de SGDB que voc quer montar.
Depois precisa conhecer a diferena entre as 5 verses bsicas do Oracle:
Express Edition, Personal Edition, Standard Edition, Standard Edition
One e Enterprise Edition. A voc vai ter que conhecer cada uma das 15
opes do Enterprise Edition que so licenciadas a parte e ver se voc vai
precisar de algumas delas no seu projeto. Depois disso voc precisa conhecer as
opes de licenciamento e definir a melhor mtrica a ser utilizada: por
processador ou por usurios nomeados. Pronto, agora definir o nmero de
licenas para a sua arquitetura dentro da mtrica escolhida e multiplicar pelo
custo da licena de cada componente que voc vai comprar. No esquea de
incluir no mnimo o suporte standard da Oracle que custa em mdia 20% do
custo total das suas licenas ao ano. Este custo s lhe d acesso ao metalink,
que inclui uma base de conhecimento, acesso aos paths de correo e pedidos de
suporte via web. Se voc quiser um suporte de verdade, aquele que voc acha
que o PostgreSQL no tem ento voc vai ter que fazer um novo estudo de
custos baseado no SLA desejado.

Linux Linux, no importa qual distribuio voc utilize. O Oracle roda em


qualquer distribuio Linux atual. Eu j utilizei por um bom tempo em Debian e
fiquei muito satisfeito com o resultado. Mas se voc deseja ter qualquer nvel de
suporte da Oracle, voc s vai poder utilizar 3 ou 4 distribuies homologadas
por eles (incluindo a verso da prpria Oracle que uma cpia do Red Hat). Isto
no significa que estas so as melhores distribuies Linux do mercado (embora
sejam muito boas). A questo que voc no pode escolher. Da mesma forma,
no qualquer hardware que voc pode utilizar para para rodar o Oracle, tem
que se um hardware homologado. Estes dias vi que a Oracle homologava
algumas solues de NFS fornecido por terceiros. Isto significava que se voc
comprasse uma soluo de NFS de um dos parceiros homologados pela Oracle,
eles lhe dariam suporte. Depois a Oracle desistiu da parceria e deixou de
homologar estas solues (pois ela lanou sua prpria verso de NFS). Quem
comprou a soluo indicada pela Oracle simplesmente deixou de ter uma
soluo homologada, o que significa: nada de suporte para voc.

Poder publicar benchmarks! Voc j viu um artigo com uma comparao entre
desempenho do PostgreSQL e o Oracle? No? E provavelmente no ver. A
Oracle pode processar qualquer um que publique testes de desempenhos
comparativos com o Oracle sem a sua autorizao. Isto faz parte do
licenciamento do Oracle. Assim fcil dizer que mais rpido sempre! Alis,
vou te dizer que o PostgreSQL pode ser utilizado em projetos que envolvam
tecnologia militar, pode ser utilizado por cubanos e iraquianos, brasileiros, etc,
etc, etc

Tags:comparison, Oracle, PostgreSQL

Artigo publicado em quinta-feira, 30 de agosto de 2007 s 6:37 e arquivado em Banco de Dados, Oracle,
PostgreSQL, Software Livre. Comentrios a este artigo podem ser verificados atravs do feed RSS 2.0.
Voc pode deixar um comentrio ou fazer um trackback de seu prprio site.

Você também pode gostar