Un top modèle pour vos informations :
Une base de données permet de stocker des informations, de les relire, de les mettre à jour...et surtout de ne pas les perdre ! Une liste de courses, un fichier de tableur permettent aussi de stocker des informations mais pour que la gestion soit efficace les données doivent être organisées.
Un informaticien dIBM, Codd, a proposé un modèle complet pour cela, le modèle relationnel. Il a aussi fixé les règles pratiques permettant de lutiliser. Dautres modèles existent mais celui de Codd a connu et connaît toujours beaucoup de succès.
Habiller le top modèle :
Lancêtre de PostgreSQL, Ingres, a été lun des premiers logiciels à mettre en application ce modèle grâce aux travaux de Michael Stonebraker et des ses étudiants de luniversité de Berkeley dans les années 1970. Le logiciel a changé de nom. Il a connu beaucoup dévolutions en souvrant à une communauté mondiale de développeurs et en adoptant le langage normalisé pour interroger les données (SQL, structured query language). PostgreSQL est toujours améliorable et amélioré mais il a atteint depuis déjà nombre dannéees le degré de maturité attendu en milieu professionnel.
Un peu dordre bande de pirates !
Supposons que vous gériez une bibliothèque et base documentaire dentreprise, une gigantesque entreprise.
Vous allez avoir beaucoup de lecteurs, beaucoup dauteurs ! Il faut leur permettre de travailler ensemble dans de bonnes conditions. Par exemple, les auteurs peuvent ajouter ou modifier des documents mais il y a des limites à fixer. Pas question de laisser traîner des documents à moitié raturés et incompréhensibles à disposition des lecteurs. Certaines modifications peuvent concerner plusieurs documents et ne prendre sens que lorsquils sont tous mise à jour. Pendant ce travail décriture les documents dans leur version modifiée ne doivent être accessibles quà leur auteur.
Si, finalement, lauteur abandonne son idée (ou se fait brutalement licencier) le ou les documents sur lesquels il travaillait doivent tous être restitués dans leur état original. En revanche, si sa modification est globalement bonne il faut que les futurs lecteurs et auteurs en bénéficient immédiatement. La bibliothèque va vivre mais à tout moment tout ce quelle contient doit former un ensemble rangé et cohérent. Enfin, il ne faudra surtout jamais perdre tous ces précieux documents qui constituent la richesse et la connaissance de lentreprise.
Mettre en place une telle gestion avec du papier, des vigiles etc. ce nest pas facile. Codd et un logiciel comme PostgreSQL vont vous faciliter la tâche. Loutil ne fait pas tout mais sous réserve que vous lutilisiez correctement vous conserverez une bibliothèque fonctionnelle : personne en dehors de lentreprise ne touchera aux bouquins, les auteurs ne se marcheront pas sur les pieds, les lecteurs trouveront rapidement ce quils cherchent et vous ne perdrez jamais de livres.
Il ne doit en rester quun et ce sera MON logiciel préféré qui est le meilleur en tout, pour tout, partout hahahahahaha (rire machiavélique) !!!!!!!!
Et moi, et moi, et moi...
Tu ne marcheras jamais seul
Ne riez pas, certains y croient ! Supposons que vous ayez participé au choix du modèle relationnel pour organiser vos données et du logiciel pour implémenter ce modèle. Si vous avez choisi PostgreSQL, parmi vos critères les plus importants, se trouvaient probablement :
Bref vous voulez être libre, vous ne voulez pas payer trop cher mais vous voulez de la qualité. PostgreSQL est un BON choix et ce site vous aidera à le rendre excellent jespère.
Cependant dautres choix sont possibles.
SQLite est le SGBDR le plus répandu et même un des logiciels les plus diffusés au monde toutes catégories confondues. Il ne répond pas aux mêmes besoins que PostgreSQL mais nhésitez pas à vous renseigner à son sujet.
Si la double dépendance vis-à-vis dun éditeur et dun système dexploitation nest pas un problème pour vous alors SQL Server peut être un choix pertinent. Si vous optez pour ce logiciel il vous faudra acquérir des licences pour lutiliser. Il vous faudra aussi développer et maintenir une culture Microsoft importante côté serveur et notamment disposer dadministrateurs système Windows compétents pour tirer pleinement parti de votre investissement. Certes SQL Server 2016 sera (enfin) disponible sous Linux mais il faudra du recul pour juger si cette combinaison est intéressante en production.
Si vous voulez un logiciel de base de données assurant tout ou partie des tâches pouvant aussi être déléguées au système de stockage ou dexploitation alors Oracle Database constitue un choix adéquat. Oracle propose notamment des systèmes clé en main Exadata et autres. Attention cependant, le choix du système dexploitation donne une impression douverture mais le coût des licences est encore plus élevé quavec SQL Server et le code dOracle Database est aussi fermé. Encore une fois vous dépendez entièrement dun éditeur unique. Dépendre de son fournisseur nest jamais souhaitable mais avec Microsoft et Oracle le problème est accru. Lévolution de leurs prix peut aussi être fonction de celle du cours des devises, en loccurence la conversion EUR/USD si votre société est basée en France.
En pratique, dans les grandes entreprises, plusieurs systèmes de gestion de base de données cohabitent la plupart du temps, relationnels et non relationnels. Vous avez alors à administrer des base de données diverses en fonction des applicatifs que vous achetez. Même avec un outil de qualité il est possible davoir un résultat désastreux. Pour reprendre lexemple de la bibliothèque, si vous laissez entrer tout le monde sans contrôle et si vous ne disposez que dun exemplaire de chaque ouvrage, vous perdrez des livres voire tous les livres en cas dincendie.
Il faut tout de même que je me mouille un peu en comparant les SGBD ? Dabord les benchs bidons TPC-C, H...Z très peu pour moi. Au fil du temps vous constaterez que le produit vainqueur du bench est toujours celui de la société qui le publie. Je me fie plus aux déploiements réussis. Quand le DBA dun site ayant connu une belle progression dans le début des années 2010, leboncoin.fr, décrit comment PostgreSQL est utilisé pour le stockage de leurs données cest significatif par exemple.
Voici donc en résumé mon opinion...tout dépend de vos besoins présents et futurs ! Si vous utilisez depuis des années Oracle dans sa version Standard Edition One, Standard Edition et maintenant Standard Edition Two et que vous savez que vous ne passerez jamais sur une édition supérieure alors PostgreSQL est un choix ne comportant (quasiment) aucun risque au niveau des besoins couverts par le produit.
Je montre même que PostgreSQL peut constituer un plus intéressant si vous bridez vos besoins pour rester dans une édition dOracle abordable.
Pour revenir à lexemple de la bibliothèque supposons que vous aimeriez bien construire une deuxième bibliothèque pour éviter de devoir fermer si la première brûlait. Idéalement vous aimeriez y envoyer certains de vos lecteurs pour permettre aux auteurs de travailler plus sereinement et vous voudriez que le travail validé des auteurs soit disponible instantanément dans les deux bâtiments. Si vous souhaitez réaliser cela de manière logicielle avec un SGBD ce nest possible ni avec Oracle Express Edition (la version gratuite limitée en 11gR2 à 11Go de données) ni Oracle Standard Edition Two. En fait utiliser la base de secours en lecture nest même pas possible avec Oracle Enterprise Edition. Il faut une option appelée Active Dataguard alors que PostgreSQL propose ce genre de fonctionnalité nativement.
Globalement, au niveau des fonctionnalités, Oracle Enterprise Edition + Options > PostgreSQL > Oracle Standard Edition. Cele reste vrai mais avec le temps lécart entre PostgreSQL et Oracle Enterprise Edition se réduit alors que lécart entre PostgreSQL et Oracle Standard Edition se creuse. Le problème pour les clients dOracle est que leur fournisseur ignore complètement cet aspect. Oracle a même rendu la Standard Edition encore moins attractive quelle ne létait. La Standard Edition Two introduite en 2015 est en effet au prix de lancienne Standard Edition. Le ticket dentrée de cette Standard Edition Two a donc environ triplé par rapport à lancienne Standard Edition One dont elle reprend pourtant les limitations techniques (serveurs à 2 processeurs maximum etc.)
PostgreSQL a les caractéristiques essentielles pour être considéré comme un SGBDR sérieux. Avez-vous ou aurez-vous besoin des options dOracle Database Enterprise Edition qui manquent à PostgreSQL ou sont-elles superflues ? Ces options seront-elles intégrées dans de futures versions de PostgreSQL ou sont-elles déjà simplement couvertes par le système dexploitation ? PostgreSQL a tendance a ne pas réinventer la roue et à ne pas proposer de fonctionnalités si elles sont redondantes avec celles proposées par dautres couches logicielles.
Voilà ça y est. Enthousiaste ou contraint et forcé vous allez devoir administrer PostgreSQL. Notez que vous auriez pu faire héberger et administrer vos bases mais vous avez décidé de conserver vos données "en interne". Pourquoi pas ! Vous allez devoir définir une architecture, la dimensionner avec des tests de charge et la déployer. Euh cest à dire ? Et bien sans être exhaustif, en fonction de ce que vous avez déjà à disposition, il faudra peut-être installer ou faire installer du matériel, des logiciels (systèmes dexploitation etc.). PostgreSQL ne fera PAS tout. En fait aucun SGBD ne fait TOUT mais certains en font plus que dautres (trop ?). Si vous avez acheté un Exadata dOracle vous pouvez avoir des performances affreuses et perdre des données si vous faites nimporte quoi par ailleurs. Cependant vous aurez (a priori) moins de travail au niveau stockage et système dexploitation, ne serait-ce quau niveau du choix.
Autour de PostgreSQL vous aurez un environnement à mettre en place. Avant même de recevoir la première information vous aurez mis en place des mécanismes de sauvegarde, de supervision voire de reprise et continuité dactivité en fonction de critères précis. Certains mécanismes peuvent être déployés au fil du temps. Cependant, AVANT TOUTE MISE EN PRODUCTION, vous devez avoir mis en place les mécanismes de sauvegarde des données et vous devez avoir testé et documenté les scenarii à appliquer si un incident survient. La liste des incidents et le temps que vous mettrez à les résoudre avec les moyens matériels, logiciels et humains à votre disposition doivent être connus et fixés par écrit. Aucun malentendu sur le périmètre couvert ne doit exister entre le DBA et le DSI (directeur du système dinformation).
Et une fois que cest déployé je dors jusquà la prochaine migration au moins ? Et non il faudra sans doute veiller à la sécurité en évaluant et en passant les patches par exemple. Bientôt arriveront peut-être aussi les premiers utilisateurs mécontents. "La base PostgreSQL elle est lente on aurait mieux fait de prendre MySQL ou Access !!!!!!!!!!!!!".
En fait non sans doute pas mais vous devrez identifier le problème et proposer une action corrective. Un problème de performance remonté en production est un échec. Le DBA est important mais nest quun maillon de la chaîne parmi dautres, le meilleur DBA ne pourra que difficilement compenser des choix erronés effectués par ailleurs. Il aurait par exemple fallu informer et travailler avec les développeurs pour quils continuent à suivre quelques bonnes pratiques en matière de performance. Utilise lindex Luke comme titre un site célèbre...à condition quil existe et quil soit pertinent !
Avec PostgreSQL vous disposerez du support communautaire au niveau du code : une version majeure est supportée 5 ans (bogues et failles de sécurité). Si vous avez des questions ou si vous cherchez des conseils la documentation est complète, en français, et vous trouverez sans doute votre bonheur sur de multiples forums à commencer par celui du site. Certains éditeurs dapplicatifs compatibles avec PostgreSQL assureront aussi un support basique de la combinaison applicatif-SGBD. Vous pouvez aussi souscrire du support supplémentaire auprès dune société spécialisée, la plus connue en France étant historiquement Dalibo.
PostgreSQL ayant le vent en poupe, certaines sociétés rêvent dêtre léquivalent pour PostgreSQL de Redhat ou Canonical pour Linux. EnterpriseDB (EDB) propose ainsi du support, notamment sur une version maison de PostgreSQL estampillée Enterprise. Ils se basent sur le modèle économique de Microsoft et surtout dOracle. On parle ici de paiement de licences en fonction du nombres de processeurs utilisés par PostgreSQL dans votre organisation. Si cela fonctionne, cest jackpot pour EDB. Cependant, ce modèle a du mal à passer pour le support dun SGBD open source, en tous cas pour les entreprises déjà passées à PostgreSQL. Elles nont plus besoin de la couche de compatibilité Oracle, ont du support en interne et il ne doit pas être simple de prouver quon apporte pour 5000 euros par processeur de valeur ajoutée.
EnterpriseDB cest du sérieux au niveau technique PostgreSQL. Mais dautres entreprises ont proposé une version propriétaire de PostgreSQL et, sur la durée, cest la version communautaire qui est toujours restée la référence. Passer à PostgreSQL doit être un choix mûrement réfléchi. Il faut une vraie raison pour utiliser une version propriétaire. Si la raison est de pouvoir garder des (+) au niveau des jointures externes ce nest peut-être pas judicieux par exemple. Ajouter le mot Enterprise et quelques fonctions de compatibilité ne transformera de toute façon pas PostgreSQL en Oracle ou SQL Server. Si vous avez vraiment besoin dOracle ou SQL Server dans leurs versions Enterprise pour des besoins qui ne sont pas couverts par la version communautaire de PostgreSQL -cest de plus en plus rare mais cest toujours possible- alors mieux vaut peut-être conserver ces outils sous peine de connaître des désillusions. On ne choisit pas un SGBD sur un coup de tête.
Mise à jour : 20/12/2015