Découvrir PostgreSQL

Spécifier le chemin de recherche des schémas

Testez gratuitement nos 1300 formations

pendant 10 jours !

Tester maintenant Afficher tous les abonnements
Vous allez maintenant apprendre à configurer le chemin de recherche pour les objets dans les schémas.
05:46

Transcription

La présence de schéma a un impact sur la façon dont vous allez saisir le code SQL. Ici, j'ai par exemple ma " table contact " qui se trouve dans le " schéma contact ", et non pas donc dans le " schéma public " qui est le " schéma " par défaut, mais qui ne contient aucune " table ". Comment est-ce que je vais l'appeler dans une " requête " ? Si je fais un " SELECT* " " FROM ", bah quoi la table " contact ", je suis dans la bonne base de données ici. Mais il faut faire attention à, cela dit, à être dans une bonne connexion sur une bonne base de données, pour déjà trouver la table dans la base de données, c'est une chose. Est-ce que ça va marcher ? Non, on me dit que " la relation "contact" n'existe pas ". Qu'est-ce que c'est qu'une " relation ", vous vous demandez ? Eh bien, c'est le terme utilisé dans le modèle relationnel pour parler d'une table. Au niveau logique, une table est une " relation ". Ça vient de la théorie des ensembles. Le modèle relationnel a été créé dans les années 60-70, à partir de théories mathématiques, Donc la terminologie est une terminologie plutôt mathématique. Dans cette " relation ", cette table n'est pas trouvée. Évidemment, elle se trouve, non pas dans le schéma public qui va être, on va dire le schéma par défaut dans lequel on n'aurait pas besoin de préfixer les objets, mais se trouve dans le schéma " contact ". Donc, on va préfixer clairement pour donner finalement le chemin complet de notre table, c'est-à-dire schéma.table. Donc, on regarde ce que ça donne. Est-ce qu'on a besoin de préfixer systématiquement ? Oui et non. C'est une bonne pratique quand même. Si vous commencez à gérer comme ici des " schémas " pour regrouper vos objets dans des catégories logiques, eh bien, c'est une bonne pratique de commencer à préfixer systématiquement vos objets de cette façon. D'un autre côté, vous pouvez adopter une autre stratégie légèrement plus dangereuse, parce que vous aurez peut-être des objets qui portent le même nom dans des " schémas " différents, et vous avez des risques de confusion. Mais, votre autre stratégie serait de créer des " schémas " ici par rapport à des noms d'utilisateur. Si vous voulez gérer une " base de données " pour plusieurs utilisateurs qui peuvent créer leur propre table et manipuler leur propre table, eh bien, vous allez créer plusieurs utilisateurs, c'est-à-dire plusieurs " rôles de connexion " qui vont avoir des noms comme " pacha ", par exemple. Vous allez créer des schémas qui portent le nom du " rôle de connexion ". Par exemple, j'aurai un schéma ici qui est " pacha ", même si j'ai déjà une " base de donnée ". Mais bon, je mettrais ici mon " rôle de connexion " logistique ou mon " rôle de connexion " comptabilité. Et j'aurai un " schéma " logistique et comptabilité ici. Et ensuite, ce que vous pouvez faire, je vais vous le montrer maintenant sur le serveur, c'est aller dans le " fichier " de " configuration " de postgres, c'est-à-dire si vous vous en souvenez, " etc/postgresql/ " la version " /main ", et aller regarder dans le fichier " postgresql.conf ". Je ne vais pas le faire en sudo ici parce que je ne vais pas faire la modification. Je veux juste vous montrer. Mais je vais éditer " postgresql.conf ". Je vais chercher avec le mot clé " search ", et je vais tomber ici sur ce qu'on appelle le " search_path ". Alors, vous voyez, ici, il s'agit des valeurs par défaut des settings, des options, de la connexion cliente. La connexion cliente a une option qui s'appelle " search_path " et sait quel est le chemin de recherche. Je vais ici indiquer des noms de " schéma ", Vous voyez que le dernier nom de schéma, c'est toujours " public ", en tout cas, tel qu'il est configuré ici. Mais c'est une bonne idée vraiment de laisser tel quel. Ce " search_path ", c'est un peu comme un chemin de recherche sur un système d'exploitation. Quand vous tapez dans votre console, que ce soit dans le batch, dans Linux ou dans MS-DOS, le nom d'un exécutable, eh bien, vous avez un chemin de recherche. Est-ce que le programme se trouve dans tel et tel répertoire ? Ici, ça va être la même chose, Vous allez avoir un chemin de recherche sur le schéma. Vous faites un SELECT*FROM table. Est-ce que cette table se trouve dans tel ou tel schéma ? Et donc, vous avez un chemin de recherche qui vous évite éventuellement de préfixer par le nom de schéma. Ce n'est pas forcément mon option favorite personnellement parce que je trouve qu'il est beaucoup plus clair d'exprimer le nom des schémas dans les objets. Mais c'est une autre stratégie en fait, de gestion de vos schémas. Et qu'a-t-il fait ici ? On va faire un " seach_path ". On va dire, on va chercher d'abord dans ce schéma si je fais un SELECT*FROM contact, je vais déjà regarder dans ce schéma ici. Et ensuite, si je ne trouve pas, je regarde dans le schéma " public ". Mais qu'est-ce c'est que ce schéma ? Vous voyez que ça commence par un " $ ". Ça commence par un " $ " parce que c'est une variable définie dans postgres, Et vous vous en doutez peut-être mais " $user ", c'est une variable qui va retourner dans une session le nom du rôle de connexion, le nom de l'utilisateur. Ce qui fait que ce seach_path, maintenant, est dynamique. Pour tout utilisateur, on va d'abord chercher un objet qui est préfixé, c'est-à-dire dans le schéma qui porte le même nom que l'utilisateur. Et si on ne trouve pas, on va dans " public ". Ce mécanisme, alors si vous l'activez, va vous permettre de profiter de cette fonctionnalité, et donc de faire des requêtes de ce type. Je vais reprendre ici en disant je fais un " SELECT* FROM contact ". Et ici, comme je suis connecté en tant que rôle de connexion " pacha ", eh bien, la recherche va être faite. D'abord, on va essayer de faire un SELECT*FROM pacha.contact. Et si on ne trouve pas, on va essayer de faire public.contact. Donc, c'est une façon que vous pouvez choisir de gérer vos objets dans des schémas.

Découvrir PostgreSQL

Comprenez le fonctionnement de PostgreSQL ainsi que son architecture. Effectuez les tâches courantes de sécurité, de création de bases de données et d'objets, etc.

2h46 (30 vidéos)
Aucun commentaire n´est disponible actuellement
 
Logiciel :
PostgreSQL PostgreSQL 9
Spécial abonnés
Date de parution :31 mars 2016

Votre formation est disponible en ligne avec option de téléchargement. Bonne nouvelle : vous ne devez pas choisir entre les deux. Dès que vous achetez une formation, vous disposez des deux options de consultation !

Le téléchargement vous permet de consulter la formation hors ligne et offre une interface plus conviviale. Si vous travaillez sur différents ordinateurs ou que vous ne voulez pas regarder la formation en une seule fois, connectez-vous sur cette page pour consulter en ligne les vidéos de la formation. Nous vous souhaitons un excellent apprentissage avec cette formation vidéo.

N'hésitez pas à nous contacter si vous avez des questions !