Tous les objets de schéma PostgreSQL fondamentaux — structure, tables, vues, index, types, identité, routines, sécurité et réplication — dans une seule référence dense.
PostgreSQL stocke les données dans des objets de schéma nommés. Chaque objet a un seul rôle : une table contient des lignes, un index accélère les recherches, une routine porte la logique. Sachez ce qu'est chaque objet avant de choisir lequel ajouter, et traitez les contraintes et les politiques comme les règles qui gardent les données honnêtes.
Tableau de référence · 45 entrées
Objets de base de donnéesExplained
45 of 45 rows
Structure
Un catalogue isolé de schémas à l'intérieur d'un cluster.
Séparer des applications ou des environnements qui ne doivent pas partager leurs données.
Un espace de noms nommé à l'intérieur d'une base, qui regroupe des objets liés.
Organiser les objets par fonctionnalité ou par propriétaire et éviter les collisions de noms.
Un emplacement nommé sur le disque où sont placés les fichiers de tables et d'index.
Diriger les tables chaudes vers un stockage rapide et garder les données froides sur des disques économiques.
Le réglage qui décide à quels schémas un nom d'objet non qualifié se résout.
Pointer une session vers le bon schéma pour que les requêtes puissent employer des noms courts.
Une description stockée sur n'importe quel objet de base de données avec COMMENT ON.
Documenter les tables et les colonnes là où le prochain auteur de requête les trouvera.
Tables et vues
Une relation nommée qui stocke des lignes dans des colonnes typées.
Le conteneur principal des données persistantes.
Une table dont les lignes disparaissent à la fin de la session ou de la transaction.
Conserver des données de travail ou de transit qui ne doivent pas survivre à la connexion.
Une table parente divisée en partitions enfants selon une clé déclarée.
Garder de très grandes tables gérables en répartissant les lignes par plages ou par listes.
Une table dont les lignes vivent dans un système externe, atteint via un foreign data wrapper.
Interroger une base distante ou un fichier comme s'il s'agissait d'une table locale.
Une requête stockée exposée comme une table virtuelle.
Présenter les mêmes lignes à travers différents filtres ou jointures.
Une vue simple qui transmet INSERT, UPDATE et DELETE à sa table de base.
Exposer une tranche filtrée ou jointe d'une table qui reste inscriptible.
Une vue dont le résultat est écrit sur disque et rafraîchi à la demande.
Mettre en cache des agrégats ou jointures coûteux et les lire rapidement.
Une fonction qui renvoie un ensemble de lignes utilisable partout où une table convient.
Déployer un ensemble calculé sur place, comme unnest transforme un tableau en lignes.
Index
Un index en arbre équilibré pour les recherches par égalité et par plage.
Accélérer WHERE, JOIN et ORDER BY sur des colonnes triables.
Un index qui rejette les valeurs en double dans sa clé.
Imposer l'unicité sur une colonne ou une combinaison de colonnes.
Des index en arbre inversé ou généralisé pour les valeurs non scalaires.
Indexer des tableaux, du JSONB, de la recherche plein texte ou des données géométriques.
Un index construit uniquement sur les lignes qui vérifient une clause WHERE.
Indexer le sous-ensemble chaud et ignorer le reste pour économiser de l'espace.
Types et extensions
Un type défini par l'utilisateur dont les valeurs proviennent d'une liste fixe d'étiquettes.
Contraindre une colonne à un ensemble fermé, comme des codes de statut.
Un type de base plus une contrainte de vérification, nommé pour être réutilisé comme type de colonne.
Partager une définition validée, comme un texte non vide, entre plusieurs colonnes.
Un ensemble de règles qui définit comment les chaînes se comparent et se trient.
Obtenir un tri correct pour la casse, les accents ou une locale précise.
Un paquet installable qui ajoute des fonctions, des types ou des opérateurs à une base.
Adopter des outils éprouvés comme PostGIS ou pg_trgm en une seule étape.
Identité et colonnes générées
Un objet compteur autonome qui produit des entiers successifs.
Alimenter une clé sérielle lorsque plusieurs tables partagent un même générateur.
Une colonne de table adossée à une séquence interne, conformément à la norme SQL.
Clé primaire auto-incrémentée moderne, préférée à SERIAL.
Une colonne dont la valeur est calculée à partir d'autres colonnes de la même ligne.
Stocker ou exposer une valeur dérivée sans écritures manuelles.
Routines
Un bloc SQL nommé qui renvoie une valeur ou des lignes.
Encapsuler une logique réutilisable et l'appeler au sein des requêtes.
Un bloc nommé qui exécute des actions et contrôle sa propre transaction.
ETL multi-étapes où la routine valide ou annule en interne.
Une routine qui replie plusieurs lignes d'entrée en une seule valeur via des fonctions d'état et finale.
Définir des réductions personnalisées comme une moyenne pondérée.
Un symbole lié à une ou plusieurs fonctions pour des types d'opérandes précis.
Donner à vos propres types une syntaxe naturelle comme a + b ou @>.
Un chemin de conversion déclaré d'un type vers un autre.
Contrôler comment les valeurs changent de type, y compris quelles conversions se font implicitement.
Une routine liée à un événement de table qui se déclenche automatiquement.
Auditer, valider ou propager des changements sur INSERT, UPDATE ou DELETE.
Un déclencheur qui s'active sur des événements au niveau de la base, comme les commandes DDL.
Journaliser, bloquer ou auditer les changements de schéma dans toute la base.
Une requête analysée et stockée pour une exécution répétée avec des paramètres liés.
Réutiliser une seule analyse et un seul plan sur de nombreuses exécutions de la même requête.
Un descripteur qui maintient un ensemble de résultats ouvert pour une récupération ligne par ligne.
Parcourir de grands résultats page par page ou avancer dans une routine ligne à ligne.
Sécurité et règles
Une identité nommée qui détient des privilèges ; un utilisateur est un rôle qui peut se connecter.
Regrouper les permissions une seule fois, puis les accorder à des personnes, des services ou d'autres rôles.
Des instructions qui attribuent des privilèges sur des objets à des rôles, ou les retirent.
Décider quel rôle peut lire, écrire ou exécuter chaque objet.
Les droits intégrés du créateur pour modifier ou supprimer un objet, indépendamment des grants.
Désigner le rôle responsable du cycle de vie d'un objet.
Une instruction permanente qui accorde automatiquement des privilèges sur les objets qu'un rôle créera ensuite.
Prérégler les droits pour que les nouvelles tables n'exigent aucun grant manuel pour le rôle applicatif.
Une règle qui rejette les écritures qui violent une condition déclarée.
Imposer les garanties NOT NULL, CHECK, UNIQUE, PRIMARY KEY et FOREIGN KEY.
Une règle par rôle qui masque les lignes que la session ne doit pas voir.
Isolation de tenants ou accès par utilisateur sans réécrire les requêtes applicatives.
Un alias qui résout un nom vers un objet situé ailleurs ; natif dans Oracle et SQL Server.
Porter des schémas ; dans PostgreSQL, utilisez plutôt search_path.
Une définition des actions à consigner pour revue, via pgaudit ou des outils tiers.
Prouver qui a lu ou modifié quoi, pour la conformité et les enquêtes.
Une instruction qui réécrit une requête entrante en une autre commande.
Redirection d'écritures héritée ; PostgreSQL privilégie désormais les déclencheurs ou les vues modifiables.
Réplication
Une définition côté émetteur des tables et des types de changements diffusés vers les réplicas.
Déclarer ce qu'une base offre aux abonnés de la réplication logique.
Un récepteur qui se connecte à une publication et applique ses changements aux tables locales.
Tirer les changements d'une autre base PostgreSQL vers celle-ci.
Un marqueur qui force le primaire à retenir le WAL jusqu'à ce qu'un consommateur l'ait lu.
Garantir qu'un standby ou un abonné peut reprendre sans perdre de changements.