Si des types de données complexes ou des contenus mul­ti­mé­dia doivent être gérés en plus des données al­pha­nu­mé­riques (lettres, chiffres, ca­rac­tères spéciaux), les systèmes clas­siques de gestion de bases de données re­la­tion­nellles at­teig­nent ra­pi­de­ment leurs limites. Cependant, les bases de données re­la­tion­nelle-objets ou les systèmes de gestion de bases de données qui étendent le modèle tra­di­tion­nel par des approches orientées objet apportent la réponse ap­pro­priée à ce problème : le mapping objet-re­la­tion­nel (en anglais object-re­la­tio­nal mapping) permet de stocker des objets dans des systèmes re­la­tion­nels en utilisant des ap­pli­ca­tions basées sur des langages de pro­gram­ma­tion orientés objet. L’une des solutions les plus po­pu­laires et les plus anciennes dans ce contexte est la base de données open source Post­greSQL, également connue sous le nom de Postgres.

Qu'est-ce que Post­greSQL ?

Post­greSQL repose sur plus de 30 ans d’histoire de dé­ve­lop­pe­ment. Le système de gestion de base de données re­la­tion­nelle objet (SGBDRO) trouve son origine dans le projet POSTGRES de l’Uni­ver­sité de Ca­li­for­nie à Berkeley. Il a été lancé en 1986 sous la direction de Michael Sto­ne­bra­ker et parrainé par la Defense Advanced Research Project Agency (DARPA) et la National Science Foun­da­tion (NSF), entre autres. En 1994, les étudiants Andrew Yu et Jolly Chen ont ajouté un in­ter­pré­teur SQL au code de base, et cette nouvelle mo­di­fi­ca­tion, plus rapide de 30 à 50 %, a été publiée en tant que solution open source sous le nom de Postgres95 (sous leur propre licence similaire aux licences BSD et MIT). Deux ans plus tard, l’ap­pli­ca­tion de base de données avec la version 6.0 a reçu le nom Post­greSQL, qui est toujours valable au­jour­d'hui.

Note

À part le nouveau nom Post­greSQL, le nom original Postgres (main­te­nant très rarement écrit en ma­jus­cules) est toujours utilisé pour le système de base de données. Outre une certaine nostalgie, cela s’explique sim­ple­ment par le fait que la pro­non­cia­tion de postgres est plus facile.

Le projet POSTGRES est un travail pionnier précieux et a développé de nombreux concepts, qui n'ont trouvé leur place dans d’autres systèmes de bases de données (prin­ci­pa­le­ment com­mer­ciaux) que bien plus tard. Enfin, Post­greSQL n’est pas seulement une base de données com­pa­tible SQL, mais possède également les fonc­tion­na­li­tés modernes suivantes :

  • Pos­si­bi­lité de requêtes complexes
  • Clé étrangère pour relier les données de deux tables
  • Dé­clen­cheurs (triggers) lancés au­to­ma­ti­que­ment lors de la saisie et du contrôle, de la con­fir­ma­tion, de la mo­di­fi­ca­tion, de la sup­pres­sion ou de l'uti­li­sa­tion fa­cul­ta­tive de données de référence.
  • Vues ac­tua­li­sables
  • Concept de tran­sac­tion complet
  • Contrôle de si­mul­ta­néité mul­ti­ver­sion (MVCC) pour une exécution efficace des accès si­mul­ta­nés aux bases de données

Les uti­li­sa­teurs peuvent également modifier et étendre Post­greSQL grâce à des licences libres, en ajoutant de nouveaux types de données, fonctions, opé­ra­teurs, méthodes d'in­dexa­tion ou langages de procédure (langages de pro­gram­ma­tion pour les fonctions d’écriture et les dé­clen­cheurs).

Postgres : données clés et con­fi­gu­ra­tion système requise

La flexi­bi­lité de Post­greSQL ne se reflète pas seulement dans sa fonc­tion­na­lité et son ex­ten­si­bi­lité, la base de données offre également de nom­breuses pos­si­bi­li­tés de con­fi­gu­ra­tion lo­gi­cielle et ma­té­rielle. Ainsi, Postgres est déjà inclus par défaut dans la plupart des dis­tri­bu­tions UNIX/Linux et est livré par Apple depuis Mac OS X Lion (10.7) comme base de données standard. La seule exigence est qu’une version actuelle de gmake (3.80 ou su­pé­rieure) soit installée (déjà incluse dans les binaires finis). Grâce à des packs d’ins­tal­la­tion ap­pro­priés, les systèmes d’ex­ploi­ta­tion Windows peuvent également être sé­lec­tion­nés comme pla­te­formes pour le système. La puissance de calcul et la capacité de stockage requises dépendent uni­que­ment de la taille du système de base de données prévu, le logiciel libre lui-même nécessite un peu moins de 20 Mo.

Les données clés suivantes de la base de données re­la­tion­nelle-objet montrent qu'en pratique on est plutôt limité par ses propres capacités de stockage que par les limites de Post­greSQL :

Taille maximale de la base de données illimitée
Taille maximale d’un tableau 32 Té­raoc­tets
Taille maximale d’un ensemble de données 1,6 Té­raoc­tets
Taille maximale d’un champ 1 Gigaoctet
Nombre maximum de colonnes selon le type de données : de 250 jusqu’à 1 600
Nombre maximum de lignes illimité
Nombre maximum d’indices illimité

Comment fonc­tionne Post­greSQL ?

Postgres est basé sur le modèle client-serveur classique : le composant serveur central « post­mas­ter » gère tous les fichiers de base de données ainsi que toutes les con­nexions établies pour la com­mu­ni­ca­tion (entrée et sortie) avec le serveur de base de données. Les uti­li­sa­teurs n’ont besoin que d’un programme client approprié pour établir la connexion, alors que le progiciel Post­greSQL avec psql a déjà intégré une solution native pour fonc­tion­ner via la ligne de commande ou le terminal. Al­ter­na­ti­ve­ment, vous pouvez passer à diverses ap­pli­ca­tions avec des in­ter­faces uti­li­sa­teur gra­phiques, telles que pgAdmin ou phpP­gAd­min, qui peut être installé et utilisé. Dans le cas des sites Web in­te­rac­tifs, le serveur Web assume ha­bi­tuel­le­ment le rôle du client.

Conseil

Plusieurs dis­tri­bu­tions Linux incluent leur propre client graphique Postgres avec pgAccess

Pour quels projets Post­greSQL est-il adapté ?

En tant que système de gestion de base de données éprouvé et ex­trê­me­ment flexible, Postgres est utilisé dans de nombreux secteurs et scénarios. La base de données re­la­tion­nelle-objet est une base de premier ordre pour le fonc­tion­ne­ment sécurisé d’une grande variété d’ap­pli­ca­tions. Grâce à son concept de tran­sac­tion intégré et à la prise en charge du MVCC (Mul­ti­ver­sion Con­cur­rency Control), le projet open source est la solution idéale pour les logiciels bancaires en ligne, par exemple. Même les pro­grammes d’analyse comme Matlab ou R s’har­mo­ni­sent avec la base de données, c’est pourquoi Post­greSQL est souvent utilisé en com­bi­nai­son avec ces pro­grammes. En com­bi­nai­son avec l’extension PostGIS, qui fournit des centaines de fonctions pour tra­vail­ler avec des géo­don­nées, Postgres est également con­vain­cant pour tra­vail­ler avec des données spatiales et géo­gra­phiques.

Post­greSQL est aussi demandé comme solution pour les projets Web : le système re­la­tion­nel objet fonc­tionne avec dif­fé­rents fra­me­works modernes tels que Django, Node.js ou Ruby on Rails et supporte des langages Web clas­siques tels que PHP. La prise en charge de la ré­pli­ca­tion synchrone et asyn­chrone facilite également la dis­tri­bu­tion des données stockées sur plusieurs serveurs pour une haute ré­si­lience et un temps d'accès minimal aux données critiques.

Note

Le bon support de JSON fait également de Post­greSQL une ex­cel­lente solution de base de données pour la mise à l'échelle des charges de travail NoSQL

Comment fonc­tionne l’ins­tal­la­tion de Post­greSQL ?

Si vous souhaitez utiliser Postgres pour votre projet, vous pouvez installer vous-même le système de gestion de base de données en quelques étapes, sans avoir à acheter une licence ou autre chose de similaire. Le portail de té­lé­char­ge­ment de la page d'accueil of­fi­cielle de Post­greSQL : Té­lé­char­ge­ments contient des fichiers binaires et des liens vers les dépôts des paquets sources pour BSD, Linux, macOS, Solaris et Windows, qui peuvent être installés et utilisés gra­tui­te­ment sous licence Open Source. Les droits de racine ne sont pas né­ces­saires pour cela : des droits d'ad­mi­nis­tra­teur simples suffisent tout à fait pour l'exé­cu­tion. À titre d’exemple, les deux sections suivantes montrent comment fonc­tionne l’ins­tal­la­tion de Post­greSQL sous Linux (Ubuntu 17.10) et Windows.

Installer Post­greSQL sous Linux (Ubuntu 17.10)

Le dépôt Postgres apt supporte of­fi­ciel­le­ment les versions LTS d’Ubuntu (à partir de la 14.04) ainsi que d’autres versions, telles qu’Ubuntu 17.04. De plus, les paquets sources fonc­tion­nent souvent avec d’autres versions également. Cependant, l’équipe Post­greSQL re­com­mande d’utiliser la variante LTS la plus récente possible pour que les uti­li­sa­teurs puissent tirer le meilleur profit possible à long terme du système de gestion de base de données. Comme les paquets sous Ubuntu sont déjà inclus dans le ré­fé­ren­tiel standard, ils peuvent être fa­ci­le­ment installés avec le ges­tion­naire de paquets apt :

sudo apt-get update
sudo apt-get install postgresql postgresql-contrib

Post­greSQL est installé par cette commande, par laquelle le logiciel crée au­to­ma­ti­que­ment l’uti­li­sa­teur Linux nommé « postgres » pour accéder à la base de données. Pour des raisons de sécurité, ceci ne doit être utilisé que pour tra­vail­ler avec la base de données. Il est également re­com­mandé d’entrer ce profil dans la première étape (aucun profil n’est entré par défaut). Il vous suffit d’entrer deux fois la commande suivante, puis le mot de passe de votre choix :

sudo passwd postgres

Pa­ral­lè­le­ment à l’uti­li­sa­teur Linux « postgres », il existe l’uti­li­sa­teur de base de données du même nom, qui est né­ces­saire pour l’ad­mi­nis­tra­tion de la base de données et devrait également recevoir un mot de passe renforcé. Pour ce faire, saisissez les commandes de terminal suivantes (« nouveau mot de passe » est un caractère de rem­pla­ce­ment pour le mot de passe souhaité et doit être remplacé en con­sé­quence) :

su - postgres
psql -d template1 -c "ALTER USER postgres WITH PASSWORD 'nouveau mot de passe';"

Pour vérifier si l’ins­tal­la­tion a fonc­tionné, vous devez créer une base de données (ici : testdb) avec le compte « postgres »-Linux-Account et la contrôler avec le terminal-client psql :

su - postgres
createdb testdb
psql testdb

Dans le terminal, vous pouvez alors voir cette sortie du shell du client psql, qui peut être utilisé avec n’importe quelle commande SQL :

Ins­tal­la­tion de Post­greSQL sous Windows

L'ins­tal­la­tion de Postgres sur les or­di­na­teurs Windows est facile grâce à l'ins­tal­la­teur in­te­rac­tif certifié par En­ter­pri­seDB : L'as­sis­tant d'ins­tal­la­tion gratuit du fabricant du logiciel, qui offre des outils sup­plé­men­taires ainsi qu'un support com­mer­cial pour Post­greSQL, est dis­po­nible en té­lé­char­ge­ment sur le site de l'en­tre­prise page d’accueil. Sé­lec­tion­nez sim­ple­ment la version souhaitée du système de gestion de base de données et la pla­te­forme cible et cliquez sur « DOWNLOAD NOW » :

Le programme d’ins­tal­la­tion té­lé­chargé peut être lancé en double-cliquant et installe le com­pi­la­teur Microsoft Visual C++ dans la première étape, s’il n'est pas déjà installé sur le système. Sé­lec­tion­nez ensuite l'em­pla­ce­ment Post­greSQL, vous avez la pos­si­bi­lité d’exclure des com­po­sants in­di­vi­duels du package d'ins­tal­la­tion de l'ins­tal­la­tion. Dans tous les cas, le serveur Post­greSQL et les outils en ligne de commande sont né­ces­saires, le client graphique pgAdmin et le Stack Builder (pour de simples té­lé­char­ge­ments et ins­tal­la­tions d'ex­ten­sions) ne sont pas obli­ga­toires, mais ils rendent le travail avec le système de gestion de base de données beaucoup plus facile.

Si l’em­pla­ce­ment de stockage des données a également été spécifié, l’at­tri­bu­tion d’un mot de passe pour le profil d’ad­mi­nis­tra­teur de base de données « postgres » est toujours en attente. Le port par défaut et les pa­ra­mètres de lo­ca­li­sa­tion peuvent être conservés inchangés avant de lancer dé­fi­ni­ti­ve­ment l’ins­tal­la­tion à la dernière étape.

Après une ins­tal­la­tion réussie, l’interface uti­li­sa­teur de pgAdmin (si installé) peut être utilisée pour établir une connexion au serveur Post­greSQL en quelques étapes seulement. Pour ce faire, cliquez avec le bouton droit de la souris sur la version de Postgres que vous avez con­fi­gu­rée dans la liste des serveurs, puis cliquez sur « Connect Server ».

Après avoir saisi le mot de passe pré­cé­dem­ment attribué au compte ad­mi­nis­tra­teur « postgres », le client établit la connexion.

Avantages et in­con­vé­nients de Post­greSQL dans un tableau ré­ca­pi­tu­la­tif

Avantages In­con­vé­nients
Open Source Non dis­po­nible par défaut sur tous les hé­ber­geurs
Hautement ex­ten­sible Do­cu­men­ta­tion ex­ten­sible en anglais seulement
Largement conforme à la norme SQL Vitesse de lecture re­la­ti­ve­ment faible
Trai­te­ment possible de types de données complexes (par ex : géo données)  
Recherche de texte flexible  
Pos­si­bi­lité de créer ses propres fonctions, dé­clen­cheurs, types de données, etc.  
Bon support du langage (Python, Java, Perl, PHP, C, C, C++ etc)  
Supporte JSON  
Cross-pla­te­forme  
Aller au menu principal