Tous les termes du glossaire

Schéma

Qu’est-ce qu’un schéma dans PostgreSQL ?

Un schéma est un espace de noms au sein d’une base de données qui contient des tables, des vues, des fonctions et d’autres objets. search_path détermine où les noms non qualifiés sont recherchés.

Une base de données PostgreSQL contient un ou plusieurs schémas, et chaque schéma contient des tables et d’autres objets nommés. Le même nom de table peut exister dans différents schémas, et vous pouvez désigner un objet sous la forme schema.table. Chaque nouvelle base de données possède un schéma nommé public.

Les schémas regroupent les objets liés, permettent à plusieurs utilisateurs ou applications de partager une même base de données sans conflit de noms et facilitent la gestion des privilèges. Les noms non qualifiés sont résolus via search_path, qui cherche par défaut d’abord dans un schéma portant le nom de l’utilisateur courant, puis dans public. Depuis PostgreSQL 15, les utilisateurs ordinaires ne peuvent plus, par défaut, créer d’objets dans public.

Exemple

L’exemple crée un schéma billing, y place une table et modifie search_path pour que la table puisse être employée sans le nom du schéma.

CREATE SCHEMA billing;
CREATE TABLE billing.invoices (id int PRIMARY KEY);

SHOW search_path;
SET search_path TO billing, public;
SELECT count(*) FROM invoices;
RESET search_path;

Du SQL simple pour PostgreSQL 16 ou 17 standard, sans aucune extension. Exécutez-le dans une base de données vide que vous pouvez jeter ensuite.

Références

Documentation officielle de PostgreSQL (en anglais).

Termes associés