La structuration PostgreSQL

Formation développement avancé PostgreSQL
Les objets de PostgreSQL

Structuration des bases de données

L'organisation des données

Il existe une multitude de manières d'organiser des bases de données, ainsi un système de fichiers de type Unix constitue une base de données hiérarchique, le concept de base de données orientée objet est une autre approche.

L'organisation des données

structure d'une base de données PostgreSQL

Cette figure illustre la façon dont peut être organisée une base de données PostgreSQL.

Les bases de données

La base de données postgres peut être utilisée comme espace de travail, on préférera cependant créer une base de données dédiée.

Les bases de données

La collation se décompose en 2 parties :

Les collationnements sont toujours liés au jeu de caractères utilisé.

Le charset utilisé par une connexion à une base de données ne correspond pas à celui de la base de données mais à celui demandé par le client connecté. La directive SQL SET NAMES charset; permet de configurer celui-ci correctement. Une mauvaise attribution du charset de connexion peut mener à des problèmes insolubles !

Les bases de données

Les schémas

On peut créer autant de schémas qu'on le désire dans une base de données.

Il est possible de définir finement des droits sur des schémas, ce qui justifie leur utilisation.

Un autre intérêt est de créer un schéma pour héberger des applications particulières devant être accessibles depuis la base de données de connexion et ce sans risque de collisions au niveau des noms.

Les schémas

L'utilisateur étant confiné à la base de données de la connexion courante, la notion d'adressage complet n'a un intérêt que pour des raisons de compatibilité.

Un schéma est comparable à un répertoire UNIX à la différence près qu'il est impossible d'y inclure des schémas (un répertoire pouvant contenir des répertoires).

Les schémas

Les schémas

Les noms utilisant en préfixe pg_ sont à éviter car ils peuvent correspondre à des objets du schéma pg_catalog.

Les schémas

Si le but est de faire une application basique, le schéma public tel que défini par défaut sera suffisant. Dans des utilisations plus complexes il sera préférable de déclarer plusieurs schémas et de détruire le schéma public.

Autres objets

Il existe également d'autres d'objets tels que les rôles, les fonctions, les langages, ...

Organisation des fichiers

Le data_directory est à priori indiqué dans le fichier postgresql.conf, dans le cas contraire ce sera soit la variable d'environnement $PGDATA si indiquée au serveur, sinon le répertoire indiqué par l'option -D chemin/vers/stockage précisée lors du lancement du serveur.

l'objet TABLESPACE

Contrairement aux vues classiques, les vues matérialisées nécessitent du stockage, c'est la raison pour laquelle cette nouvelle possibilité de TABLESPACE est offerte pour ce type de vue.

l'objet TABLESPACE

Les éléments créés seront placés dans le répertoire correspondant à l'identifiant (OID) de la base de données dans le TABLESPACE visé.

Pour obtenir de l'aide

Sur le site officiel de PostgreSQL :

Aide interne par psql :