PostgreSQL

Spread the love

PostgreSQL, souvent surnommée « Postgres, » est largement reconnue comme la base de données relationnelle open source la plus avancée au monde. Cette puissante base de données relationnelle offre une combinaison exceptionnelle de performances, de fiabilité et de fonctionnalités avancées, tout en étant accessible à un large éventail d’utilisateurs et de développeurs. Son succès dans le domaine de la gestion des données en fait un choix privilégié pour de nombreuses entreprises et applications critiques.

la base de données relationnelle open source la plus avancée au monde.

PostgreSQL, souvent surnommée « Postgres, » se distingue en tant que la base de données relationnelle open source la plus avancée au monde. Ce statut de leader repose sur une combinaison impressionnante de facteurs. Tout d’abord, PostgreSQL offre une architecture flexible qui prend en charge un large éventail de types de données et de fonctionnalités avancées. Sa conception modulaire permet aux utilisateurs d’ajouter des extensions personnalisées pour répondre à des besoins spécifiques, ce qui en fait un outil puissant et adaptable pour des applications diverses, de la gestion de données géospatiales aux analyses complexes.

La réputation d’excellence de PostgreSQL repose également sur sa performance exceptionnelle. Grâce à des optimisations continues, cette base de données est capable de gérer de grandes charges de travail et de traiter des requêtes complexes de manière efficace. De plus, sa robustesse et sa fiabilité sont de renom, ce qui en fait un choix privilégié pour les environnements critiques et exigeants. Les mises à jour régulières, la communauté active, et le support professionnel offert par des entreprises spécialisées contribuent à maintenir PostgreSQL à la pointe de l’innovation en matière de bases de données relationnelles open source. En somme, PostgreSQL se distingue comme un pilier essentiel de l’écosystème des bases de données, offrant une solution puissante, évolutive et fiable pour une multitude d’applications.

Qu’est-ce que PostgreSQL ?

PostgreSQL est un système de gestion de base de données relationnelle objet (ORDBMS) basé sur POSTGRES version 4.2, développé par le Département d’informatique de l’Université de Californie à Berkeley. POSTGRES a été le pionnier de nombreux concepts qui ont ensuite été retrouvés dans certains systèmes de bases de données commerciaux.

PostgreSQL est un descendant open source de ce code original de Berkeley. Il prend en charge la plupart des standards SQL et fournit de nombreuses fonctionnalités modernes :

  • requêtes complexes
  • clés étrangères
  • déclencheurs
  • vues modifiables
  • intégrité transactionnelle
  • contrôle de concurrence multiversion

De plus, les utilisateurs peuvent étendre PostgreSQL de différentes manières, par exemple en ajoutant de nouveaux :

  • Types de données
  • les fonctions
  • les opérateurs
  • fonctions d’agrégation
  • méthodes d’indexation
  • langages procéduraux

Et grâce à la licence libérale, n’importe qui est libre d’utiliser, de modifier et de distribuer PostgreSQL à toutes fins, qu’elles soient privées, commerciales ou académiques.

Une brève histoire de PostgreSQL

Le projet POSTGRES de Berkeley

Grâce à la licence gratuite, n’importe qui est libre d’utiliser, de modifier et de distribuer PostgreSQL à toutes fins, qu’elles soient privées, commerciales ou académiques. Le projet POSTGRES, dirigé par le professeur Michael Stonebraker, est parrainé par la Defense Advanced Research Projects Agency (DARPA), le Army Research Office (ARO), la National Science Foundation (NSF) et ESL, Inc. La mise en œuvre de POSTGRES a commencé en 1986. Le concept initial du système a été présenté dans [ston86], et la définition du modèle de données initial est apparue dans [rowe87]. La conception du système de règles à ce moment est décrite dans [ston87a]. La logique et l’architecture du gestionnaire de stockage sont détaillées dans [ston87b].

Depuis lors, POSTGRES a publié plusieurs versions majeures. Le premier système « logiciel de démonstration » a été mis en service en 1987 et présenté lors de la réunion ACM-SIGMOD en 1988. La version 1 décrite dans [ston90a] a été diffusée à un petit nombre d’utilisateurs externes en juin 1989. En réponse aux critiques du premier système de règles ([ston89]), le système de règles a été repensé ([ston90b]) et une 2e édition a été publiée en juin 1990 avec un nouveau système de règles. La version 3 est apparue en 1991, ajoutant la prise en charge de plusieurs gestionnaires de stockage, un exécuteur de requêtes amélioré et un système de règles réécrit. Pour la plupart, les versions ultérieures jusqu’à Postgres95 (voir ci-dessous) se concentrent sur la portabilité et la fiabilité.

POSTGRES a été utilisé pour mettre en œuvre de nombreuses applications de recherche et de production différentes. Il s’agit notamment d’un système d’analyse de données financières, d’un progiciel de surveillance des performances des moteurs à réaction, d’une base de données de suivi d’astéroïdes, d’une base de données d’informations médicales et de plusieurs systèmes d’information géographique. POSTGRES est également utilisé par certaines universités comme outil pédagogique. Enfin, Illustra Information Technologies (fusionnée plus tard avec Informix, désormais propriété d’IBM) a pris le code et l’a mis sur le marché. Fin 1992, POSTGRES devient le principal gestionnaire de données du projet de calcul scientifique Sequoia 2000.

La taille de la communauté des utilisateurs externes a presque doublé en 1993. Il est devenu de plus en plus évident que la maintenance et la prise en charge du code prototype nécessitaient beaucoup de temps qui aurait dû être consacré à la recherche dans la base de données. Pour réduire cette charge de support, le projet Berkeley POSTGRES s’est officiellement terminé avec la version 4.2.

Postgres95

En 1994, Andrew Yu et Jolly Chen ont ajouté un interpréteur de langage SQL à POSTGRES. Sous un nouveau nom, Postgres95 a ensuite été publié sur le Web pour trouver son chemin dans le monde en tant que descendant open source du code original POSTGRES Berkeley.

Le code Postgres95 est entièrement ANSI C avec une réduction de 25% de la taille. De nombreux changements internes améliorent les performances et la maintenabilité. Postgres95 version 1.0.x s’exécute environ 30 à 50 % plus rapidement sur les benchmarks du Wisconsin par rapport à POSTGRES version 4.2. En plus des corrections de bugs, voici les améliorations majeures :

  • Le langage de requête PostQUEL a été remplacé par SQL (implémenté dans le serveur). (La bibliothèque d’interface libpq porte le nom de PostQUEL.) Les sous-requêtes (voir ci-dessous) n’étaient pas prises en charge avant PostgreSQL, mais dans Postgres95, elles peuvent être émulées à l’aide de fonctions définies par SQL. Les fonctions d’agrégation ont été réimplémentées. Ajout également de la prise en charge de la clause de requête GROUP BY.
  • Un nouveau programme ( psql ) est fourni pour les requêtes SQL interactives, qui utilise GNU Readline. Cela remplace en grande partie l’ancien programme de surveillance.
  • Une nouvelle bibliothèque frontale libpgtcl prend en charge les clients basés sur Tcl. Un exemple de shell, pgtclsh, fournit de nouvelles commandes Tcl pour connecter les programmes Tcl aux serveurs Postgres95.
  • L’interface des grands objets a été améliorée. L’inversion d’objets volumineux est le seul mécanisme de stockage d’objets volumineux. (Le système de fichiers inversé a été supprimé.)
  • Le système de règles au niveau de l’instance a été supprimé. Ces règles peuvent toujours être utilisées comme règles de réécriture.
  • De courts tutoriels couvrant les fonctionnalités SQL classiques ainsi que les fonctionnalités Postgres95 sont distribués avec le code source
  • GNU make (pas BSD make) est utilisé pour la construction. De plus, Postgres95 peut être compilé avec GCC non corrigé (double alignement des données corrigé).

PostgreSQL Name

GNU make (pas BSD make) est utilisé pour la construction. De plus, Postgres95 peut être compilé avec GCC (aligned double precision data) 1996 non corrigé, et il est clair que le nom « Postgres95 » ne résistera pas à l’épreuve du temps. Nous avons choisi un nouveau nom, PostgreSQL, pour refléter la relation entre les données d’origine POSTGRES et la version mise à jour avec des fonctionnalités SQL. Dans le même temps, nous avons défini la numérotation des versions pour qu’elle commence à 6.0, en réorganisant les numéros dans l’ordre initialement lancé par le projet Berkeley POSTGRES.

Par tradition ou parce que c’est plus facile à prononcer, beaucoup de gens continuent d’appeler PostgreSQL « Postgres » (rarement capitalisé de nos jours). Cette utilisation est largement acceptée comme surnom ou alias. Corrigée).

Lors du développement de Postgres95, l’accent a été mis sur l’identification et la compréhension des problèmes dans le code du serveur. Pour PostgreSQL, l’accent a été mis sur l’ajout de fonctionnalités et de capacités, bien que le travail se poursuive dans tous les domaines.

Fondamentaux de l’architecture

Avant de continuer, vous devez comprendre l’architecture de base du système PostgreSQL. Comprendre comment les différentes parties de PostgreSQL interagissent rendra ce chapitre plus clair.

En tant que langage de base de données, PostgreSQL utilise un modèle client/serveur. Une session PostgreSQL se compose des processus partagés suivants (programmes) :

  • Processus serveur qui gère les fichiers de base de données, accepte les connexions à la base de données des applications clientes et effectue des opérations de base de données pour le compte des clients. Le programme du serveur de base de données s’appelle postgres.
  • Application client (front end) pour les utilisateurs qui souhaitent effectuer des opérations de base de données. Les applications clientes peuvent être de nature diverse : le client peut être un outil orienté texte, une application graphique, un serveur Web qui accède à une base de données pour afficher des pages Web, ou un outil de maintenance de base de données spécialisé. Certaines applications clientes sont fournies avec la distribution PostgreSQL.

Comme c’est généralement le cas avec les applications client/serveur, le client et le serveur peuvent se trouver sur des hôtes différents. Dans ce cas, ils communiquent via une connexion réseau TCP/IP. Gardez cela à l’esprit car les fichiers accessibles sur l’ordinateur client peuvent ne pas être accessibles (ou uniquement accessibles avec un nom de fichier différent) sur l’ordinateur serveur de base de données.

Le serveur PostgreSQL peut gérer plusieurs connexions simultanées de clients. Pour cela, il démarre (« forks ») un nouveau processus à chaque connexion. À partir de là, le client et les nouveaux processus serveur communiquent sans l’intervention du processus postgres d’origine. Ainsi, le processus du serveur hôte est toujours en cours d’exécution, attendant que les clients se connectent, tandis que les processus client et serveur associés vont et viennent.

Publications similaires

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *