Ecosystème
Préambule
PostgreSQL est un système de gestion de bases de données relationnelles et objet, existant depuis 1996 et distribué sous les termes de la licence BSD. Une communauté de développeurs, le PostgreSQL Global Development Group (PGDG), anime le développement de ce logiciel libre depuis plus de vingt ans, et, autour de celui-ci, de nombreux projets apportent de nombreuses fonctionnalités supplémentaires : pilotes pour la connexion, outils de sauvegarde, systèmes de supervision.
Le projet POSTGRES démarre en 1986 à l’université de Berkeley, à San Francisco en Californie, sous la direction de Michael Stonebraker, à la suite du projet INGRES (Interactive Graphics and Retrieval System), un des premiers systèmes de bases de données implémentant le modèle relationnel.
Le projet POSTGRES prend la suite d’INGRES (POST-inGRES), sans reprendre de code source, et avec la volonté d’étendre le modèle relationnel : modèle objet, types de données complexes et extensibles.
Au milieu des années 1990, le projet se transforme, le SQL est adopté, entraînant le changement de nom vers PostgreSQL, le PostgreSQL Global Development Group naît et le développement devient communautaire, ce qu’il est toujours aujourd’hui.
Notons que Michael...
PostgreSQL
En tant que tel, PostgreSQL est un logiciel écrit en langage C et fonctionne sur la plupart des systèmes actuels : les systèmes d’exploitation de type « Unix » (Linux, MacOSX, FreeBSD…), MS-Windows, et sur la plupart des architectures matérielles actuelles : Intel, PowerPC, ARM.
S’il est souvent fait référence au serveur de base de données quand on évoque PostgreSQL, le logiciel comprend aussi des clients, utiles pour l’administration, des extensions, une bibliothèque de fonctions client/serveur, et la documentation.
1. Versions et publications de PostgreSQL
Les cycles de publications de PostgreSQL sont organisés par le PGDG et aboutissent à une publication annuelle d’une version majeure, suivie de versions mineures corrigeant différents bogues ou problèmes de sécurité. Ces publications mineures sont suivies pendant cinq ans pour chaque version majeure.
Les versions majeures utilisent des nombres, à partir de la version 10, publiée en 2017. Auparavant, les versions majeures utilisaient deux chiffres, comme 8.1 ou 9.6. Les versions mineures sont identifiées par le nombre qui suit la version majeure, par exemple 11.3 ou 9.6.13.
La version majeure actuelle est la 12, publiée à la fin de l’année 2019. Cette publication implique la fin du support...
Ecosystème de PostgreSQL
PostgreSQL n’est donc pas seulement un logiciel libre, mais aussi une communauté de développement, autour de ce logiciel. De nombreux logiciels viennent étendre cet écosystème, répondant ainsi aux besoins des utilisateurs et des administrateurs.
1. La communauté de PostgreSQL
Outre le code source, c’est l’ensemble du projet, la façon dont il est développé, la façon dont les décisions sont prises ainsi que l’ensemble des développeurs qui peuvent être qualifiés d’ouverts. Il s’agit d’un des points importants permettant de juger de la qualité du logiciel : tout le code source, toutes les décisions concernant l’ajout d’une fonctionnalité ou le rejet d’une modification sont disponibles à tous ceux qui souhaitent s’y intéresser.
L’ensemble des développeurs, quel que soit leur investissement, s’y expose et tout peut être sujet à discussion, chaque point peut être soumis à une question et mérite une réponse.
C’est ce qui fait que PostgreSQL est aujourd’hui un logiciel libre et ouvert, dans tous les sens du terme, et l’un des serveurs de bases de données les plus avancés. Plusieurs dizaines de développeurs, aux quatre coins du globe, contribuent...
Objectifs de cet ouvrage
Cet ouvrage est principalement destiné à présenter l’utilisation de PostgreSQL, en particulier à travers le langage SQL, qui est la principale interface utilisée par les utilisateurs et les applications clientes.
Les premiers et deuxièmes chapitres de l’ouvrage proposent d’installer une instance PostgreSQL puis les outils graphiques permettant de se connecter à l’instance et d’exécuter les requêtes SQL.
Le troisième chapitre aborde le langage de définition des données, permettant de construire les tables et autres structures.
Le quatrième chapitre aborde le langage de manipulation des données, permettant, à partir des structures, de travailler avec les données.
Le cinquième chapitre aborde la programmation de fonctions, procédures et déclencheurs, en langages Pl/pqSQL et Python.
Le sixième chapitre aborde la gestion des performances, avec la notion de plan d’exécution et la création d’index.
Le septième et dernier chapitre aborde les notions utiles lors du développement d’un logiciel client, utilisant la base de données créé.
Les différents exemples de l’ouvrage utilisent une base de données dont l’ensemble des scripts est téléchargeable depuis la page Informations générales...