1.2. Concepts architecturaux de base
Avant de continuer, vous devez connaître les bases de l'architecture
système de PostgreSQL™.
Comprendre comment les parties de PostgreSQL™ interagissent entre elles
rendra ce chapitre un peu plus clair.
Dans le jargon des bases de données, PostgreSQL™ utilise un modèle
client/serveur. Une session PostgreSQL™ est le résultat de la
coopération des processus (programmes) suivants :
-
Un processus serveur, qui gère les fichiers de la base de
données, accepte les connexions à la base de la part des
applications clientes et effectue sur la base les actions des
clients. Le programme serveur est appelé postgres.
-
L'application cliente des utilisateurs qui veulent effectuer
des opérations sur la base de données. Les applications
clientes peuvent être de nature très différentes : un client
peut être un outil texte, une application graphique, un serveur
web qui accède à la base de données pour afficher des pages web
ou un outil spécialisé dans la maintenance de bases de données.
Certaines applications clientes sont fournies avec PostgreSQL™ ; la plupart sont
développées par les utilisateurs.
Comme souvent avec les applications client/serveur, le client et le
serveur peuvent être sur des hôtes différents. Dans ce cas, ils
communiquent à travers une connexion réseau TCP/IP. Vous devez garder
cela à l'esprit car les fichiers qui sont accessibles sur la machine
cliente peuvent ne pas l'être (ou l'être seulement en utilisant des
noms de fichiers différents) sur la machine exécutant le serveur de
bases de données.
Le serveur PostgreSQL™ peut
traiter de multiples connexions simultanées depuis les clients. Dans
ce but, il démarre (« fork ») un
nouveau processus pour chaque connexion. À ce moment, le client et le
nouveau processus serveur communiquent sans intervention de la part
du processus postgres original. Ainsi, le
processus serveur maître s'exécute toujours, attendant de nouvelles
connexions clientes, tandis que le client et les processus serveurs
associés vont et viennent (bien sûr, tout ceci est invisible pour
l'utilisateur ; nous le mentionnons ici seulement par exhaustivité).