Apprendre à gérer une base de données
PostgreSQL
Yannick Biavanga
Chapitre 1 : Introduction à PostgreSQL
A-) Définition
PostgreSQL est un logiciel qui permet de stocker, organiser et manipuler des données.
Techniquement, c’est un Système de Gestion de Base de Données Relationnelle et
Objet (SGBDRO) :
● Relationnel car il organise les données dans des tables reliées entre elles.
● Objet car il permet d’utiliser des types avancés (JSON, tableaux, géodonnées, etc.).
En clair : PostgreSQL est comme une armoire numérique intelligente qui range les
informations dans des tiroirs bien organisés et reliés entre eux
B-)Quelque concepts clés à savoir sur PostgreSQL :
1. Cluster PostgreSQL
Un cluster PostgreSQL est une collection de bases de données gérées par
une seule et unique instance de serveur PostgreSQL. Contrairement à l'idée
générale de "cluster" qui évoque souvent une grappe de serveurs, dans le
jargon de PostgreSQL, un cluster est l'ensemble de tous les fichiers qui
constituent le système de gestion de bases de données.
Comment fonctionne un cluster PostgreSQL :
1- La répertoire de donnée (Data Directory)
Au cœur du cluster se trouve le répertoire de données (souvent
appelé PGDATA). C'est un dossier sur votre système de fichiers qui
contient tous les fichiers nécessaires au fonctionnement de
PostgreSQL. Ce répertoire inclut :
● Les fichiers de configuration (comme [Link] et
pg_hba.conf) qui s'appliquent à toutes les bases de
données du cluster.
● Les fichiers de données pour chaque base de données, les
tables, les index, etc.
● Les journaux de transactions (WAL - Write-Ahead Logging).
Ce répertoire est l'unité fondamentale de stockage et de gestion pour
l'instance du serveur.
2. Le Serveur PostgreSQL
Une seule et unique instance du processus postgres est lancée
pour gérer ce répertoire de données. Ce processus écoute sur un port
spécifique (par défaut 5432) et accepte les connexions des clients.
● Lorsque vous vous connectez à un serveur PostgreSQL, vous
vous connectez en réalité à cette instance de serveur.
● Vous pouvez ensuite choisir la base de données spécifique à
laquelle vous voulez accéder dans ce cluster (par exemple,
ma_base_de_donnees).
3. La Création et la Gestion
La création d'un cluster PostgreSQL se fait avec la commande
initdb . Cette commande initialise le répertoire de données, y crée
les bases de données par défaut (postgres, template0,
template1) et génère les fichiers de configuration initiaux.
En résumé, un cluster PostgreSQL est l'unité logique et
physique de base d'une installation PostgreSQL. Il est composé d'un
répertoire de données sur le disque dur et est géré par un seul
processus serveur. Toutes les bases de données que vous créez et
utilisez (par exemple, mon_appli_db, mon_blog_db) résident dans
ce même cluster et partagent les mêmes ressources et la même
configuration de serveur.
"une instance du serveur" est simplement le programme postgres
en action.
2. Base de données
Une base est un espace logique qui contient des schémas, tables, vues,
fonctions.
Chaque base est isolée → une table dans une base n’est pas accessible
directement depuis une autre base du même cluster (sauf via FDW).
📌 Exemple : la base ecole contient toutes les données liées aux étudiants
et aux cours, séparée de la base banque.
3. Schéma
Un schéma est comme un dossier à l’intérieur d’une base.
Il organise les objets (tables, vues, fonctions).
PostgreSQL crée par défaut un schéma nommé public.
📌 Exemple : dans la base ecole, tu peux avoir un schéma
administration (tables des professeurs) et un schéma pedagogie
(tables des cours, notes).
4. Table
Une table est une structure de données en lignes et colonnes (comme une
feuille Excel, mais plus puissante).
Chaque table appartient à un schéma.
Elle peut être protégée par des contraintes (clé primaire, clé étrangère, etc.).
📌 Exemple : table etudiants avec colonnes id, nom, age.
5. Colonne
Une colonne définit le type de donnée stocké (entier, texte, date, etc.).
Chaque colonne impose une contrainte de type : par ex. age INT →
uniquement des entiers.
📌 Exemple : nom VARCHAR(100) → une chaîne de texte limitée à 100
caractères.
6. Ligne (ou tuple)
Une ligne est un enregistrement concret dans une table.
Chaque ligne correspond à une donnée réelle.
📌 Exemple : (1, 'Paul', 14) est une ligne dans la table etudiants.
C- Pourquoi utiliser PostgreSQL ?
1. Open source et gratuit
○ Pas de licence payante, contrairement à Oracle ou SQL Server.
○ Maintenu par une large communauté et soutenu par de grandes entreprises.
2. Robuste et performant
○ Gère des millions (voire milliards) de lignes.
○ Optimiseur de requêtes puissant.
○ Système d’indexation avancé (B-tree, GIN, GiST, BRIN).
3. Transactions ACID
○ Garantit la fiabilité des données :
■ Atomicité → une opération est tout ou rien.
■ Cohérence → les règles (contraintes) sont toujours respectées.
■ Isolation → plusieurs utilisateurs peuvent travailler en même temps
sans se gêner.
■ Durabilité → même en cas de crash, les données confirmées sont
préservées (WAL : Write Ahead Log).
○ 📌 Exemple : si un virement bancaire échoue à mi-chemin, PostgreSQL
annule tout pour que l’argent ne disparaisse pas.
4. Polyvalence
○ Simple pour un projet scolaire (quelques tables et requêtes basiques).
○ Puissant pour une banque internationale (transactions simultanées,
réplication, haute disponibilité).
Chapitre 2 : Installation et configuration