PostgreSQL vs. Oracle

Oracle domine le marché des systèmes de gestion de bases de données (SGBD) depuis bientôt 30ans. Ses solutions restent onéreuses et la communauté montante open-source PostgreSQL commence à faire pâlir l'acteur historique.

Le choc des cultures, pot de fer contre pot de terre…

Oracle domine depuis presque 30 ans le secteur des bases de données avec son système de gestion de base de données relationnelle (SGBDR) Oracle Database. PostgreSQL, quant à lui, est issu du monde du libre et réalise une telle montée en puissance qu’il n’a plus rien à envier à l’acteur historique. Dans cet environnement hyperconcurrentiel, analysons les atouts de chacune de ces solutions afin de dresser une première cartographie du marché.

Le prix d’acquisition et le coût de maintenance restent les arguments déterminants lors du choix de l’implémentation d’une solution plutôt qu’une autre. Nous nous concentrerons néanmoins dans notre analyse sur l’éventail de fonctionnalités que proposent les systèmes de gestion de base de données relationnelle (SGBDR) en tant que facteurs différenciant.

Aujourd’hui tout SGBDR se doit de répondre à des contraintes bien spécifiques pour pouvoir être utilisé dans un système de production exigeant et fiable. Toute solution à usage professionnelle doit embarquer les fonctionnalités clefs inhérentes aux SGBDR :

  • Une garantie des transactions (ACID)
  • Un système de sauvegarde des données à froid et à chaud
  • Un système de partitionnement des tables pour la gestion de gros volumes
  • Une gestion des types de données complexes

Tour d’horizon de ces fonctions clefs et confrontation des deux géants du secteur.

La garantie des transactions

L’unicité des données est le principe selon lequel chaque donnée doit être unique et tout problème de duplication indésirable des données doit être évité. Le SGBD doit donc posséder une gestion des transactions pour pouvoir éviter ou résoudre ce type de problème et tracer toute modification des données. Les quatre conditions d’une transaction réussie (Expliquez-moi... Les propriétés ACID d'une base de données) sont respectées aussi bien chez Oracle que chez PostgreSQL. Egalité.

Oracle vs. PostgreSQL : 1 - 1

Sauvegarde et restauration

Les deux moteurs de bases de données gèrent la sauvegarde des données différemment. Mais tous deux s’appuient sur un mécanisme bien connu qu’est l’archivage et la redondance des journaux de transactions, permettant la récupération des données en cas de défaillance du système. Et là où Oracle supporte ce mécanisme depuis longtemps, PostgreSQL n’est pas en reste en proposant même depuis sa version 9 les mêmes fonctionnalités avancées de réplication des données que son concurrent et sa solution Oracle Data Guard pour la réplication des données.

Oracle vs. PostgreSQL : 2 - 2

Partitionnement et gestion de gros volumes de données

Autre fonction primordiale dans tout SGBDR, le partitionnement consiste au découpage d’une table de gros volumes de données. Il permet de garantir un bon niveau de performance dès que le nombre d’enregistrements dépassent la dizaine de million. PostgreSQL et Oracle possèdent tous deux un système de partitionnement qui répond à cette exigence avec cependant chacun des approches différentes.

PostgreSQL utilise la notion d’héritage de table pour gérer les différentes partitions. Un système assez complexe doit être mis en œuvre (alimentation particulière, trigger, etc.) dans un souci de transparence pour l’utilisateur et pour que les applicatifs ne subissent aucune modification de code.

Dans Oracle, le système de partitionnement est très évolué et propose plusieurs types de partitionnement réduisant les charges de travail des concepteurs et administrateurs de base de données (DBA). Cela confère un avantage certain à Oracle, même si la communauté PostgreSQL œuvre aujourd’hui à rattraper ce retard.

Oracle vs. PostgreSQL : 3 - 2

Gestion des types complexes

Tout SGBDR doit pouvoir gérer des natures de données différentes, besoin auquel Oracle et PostgreSQL répondent naturellement. PostgreSQL, étant issu de la recherche, a pu néanmoins intégrer dès le départ des objets complexes (Array, XML, Json, Blob, coordonnées Géospatial, Monétaire, Adresse IP, Type composite, Range Type, Text Search Type) et même de permettre la création de son propre type de données lui donnant ainsi un avantage certain par rapport à Oracle.

Oracle vs. PostgreSQL : 3 - 3

Prix de la solution et maintenance

Quand vient le coût d’acquisition, entre une licence onéreuse et une solution gratuite, le verdict est sans appel. Sans compter qu’au-delà de son coût nul, PostgreSQL reste facilement administrable, là où l’administration d’une base de données Oracle requiert un spécialiste en la matière et représente un coût supplémentaire.

Oracle vs. PostgreSQL : 3 - 4

Oracle reste incontestablement la référence du marché depuis de nombreuses années. Mais force est de constater que PostgreSQL a réussi à se hisser au plus haut niveau avec de sérieux atouts pour bâtir une architecture robuste et pérenne au sein d’un SI. Aussi, nul ne saurait rester indifférent face à l’argument tarifaire de PostgreSQL à arme égale avec Oracle.