1
Introduction et rappels
- Versions de PostgreSQL, catégories d'instructions SQL3.
- Vocabulaire du modèle relationnel : bases, schémas, tablespaces.
- Outils d’interaction : psql, pgAdmin.
- Types avancés : numériques, chaînes, dates (DATE, TIMESTAMP, INTERVAL).
- Types spécifiques PostgreSQL : ARRAY, ENUM, OID.
- Opérateurs et fonctions pour les tableaux.
- Expression des constantes.
- Introduction aux transactions : début, fin, SAVEPOINT.
2
Langage PL/pgSQL
- Syntaxe et blocs PL/pgSQL.
- Déclaration des variables, typage avec %TYPE, résolution de noms.
- Structures de contrôle : IF, CASE, boucles.
- Interaction avec la base : mise à jour, consultation, variable FOUND.
- Curseurs : déclaration, ouverture, FETCH, fermeture.
- Procédures et fonctions stockées.
- Modes de paramètres : IN, OUT, INOUT.
- Diagnostic d'erreurs : bloc EXCEPTION, instruction RAISE.
Travaux pratiques
Blocs PL/pgSQL, boucles, curseurs, procédures stockées, gestion des erreurs.
3
Triggers dans PostgreSQL
- Types de triggers : niveau instruction versus niveau ligne.
- Événements LMD (INSERT, UPDATE, DELETE).
- Fonction exécutée par un trigger.
- Atomicité et cohérence des opérations.
- Cas d’usage des triggers (audit, automatisation métier).
Travaux pratiques
Création de triggers de niveau instruction et de niveau ligne.
4
Gestion des transactions
- Concurrence et cohérence : blocages, interblocages (deadlocks).
- Scénarios illustrant la gestion des transactions.
- Utilisation de SAVEPOINT et sous-transactions.
- Transactions dans PL/pgSQL : effet des erreurs, transactions imbriquées.
- Curseurs et transactions.
- Niveaux d’isolation : READ COMMITTED, REPEATABLE READ, SERIALIZABLE.
- Verrouillage explicite de tables (LOCK TABLE).
- Verrous de lignes et blocages associés.
Travaux pratiques
Simulation de concurrence, isolation, verrouillages de lignes et de tables.
5
Objets et maintenance
- Bases et tablespaces : définition, rôle dans le stockage.
- Gestion des schémas : création, suppression, usage.
- Séquences, colonnes d'identité, colonnes calculées.
- Catalogue pg_class : exploration du méta-schéma.
- Modifications dynamiques du schéma : colonnes, contraintes.
- Index : types, création, réorganisation.
- Analyse de requêtes : EXPLAIN, ANALYZE.
- Maintenance : VACUUM, AUTOVACUUM, REINDEX.
- Tables partitionnées : méthodes de partitionnement (range, list, hash).
- Tables temporaires : usages et cycle de vie.
Travaux pratiques
Ajout/suppression de colonnes, index, partitionnement, tables temporaires, analyse de plans.
6
Gestion des utilisateurs et configuration
- Création et configuration des utilisateurs.
- Rôles et privilèges : GRANT, REVOKE, droits sur objets et schémas.
- Isolation des privilèges entre utilisateurs.
- Démarrage et arrêt de PostgreSQL.
- Fichiers de configuration : postgresql.conf, pg_hba.conf.
- Authentification des clients.
Travaux pratiques
Création d’utilisateurs, gestion des privilèges, modification des fichiers de configuration.