root/traduc/branches/bv747/manuel/information_schema.sgml

Revision 123, 138.1 kB (checked in by gleu, 3 years ago)

Relecture du chapitre 31.

Line 
1 <!-- $Header: /var/lib/cvs/pgsql-fr/sgml/information_schema.sgml,v 1.7.2.3 2005/07/15 06:33:40 guillaume Exp $ -->
2
3 <chapter id="information-schema">
4  <title>Schéma d'informations</title>
5
6  <indexterm zone="information-schema">
7   <primary>schéma d'informations</primary>
8  </indexterm>
9
10  <para>
11   Le schéma d'informations consiste en un ensemble de vues contenant des
12   informations sur les objets définis dans la base de données actuelle. Le
13   schéma d'informations est défini dans le standard SQL et, du coup, est
14   supposé portable et stable -- contrairement aux catalogues système, qui sont
15   spécifiques à <productname>PostgreSQL</productname> et modelés suivant
16   l'implémentation. Néanmoins, les vues du schéma d'information ne contiennent
17   pas d'information sur les fonctionnalités spécifiques à
18   <productname>PostgreSQL</productname>&nbsp;; pour cela, vous devez travailler
19   avec les catalogues système ou d'autres vues spécifiques à
20   <productname>PostgreSQL</productname>.
21  </para>
22
23  <sect1 id="infoschema-schema">
24   <title>Le schéma</title>
25
26   <para>
27    Le schéma d'informations est lui-même un schéma nommé
28    <literal>information_schema</literal>. Ce schéma existe automatiquement dans
29    toutes les bases de données. Le propriétaire de ce schéma est le propriétaire
30    initial de la base de données du cluster et cet utilisateur a naturellement
31    tous les droits sur ce schéma, incluant la possibilité de le supprimer
32    (mais l'espace gagné ainsi sera minuscule).
33   </para>
34
35   <para>
36    Par défaut, le schéma d'informations n'est pas dans le chemin de recherche
37    des schémas, donc vous avez besoin d'accéder à tous les objets qu'il contient
38    via des noms qualifiés. Comme les noms de certains des objets du schéma
39    d'information sont des noms génériques pouvant survenir dans les applications
40    utilisateur, vous devez faire attention si vous placez le schéma
41 d'information dans le chemin.
42   </para>
43  </sect1>
44
45  <sect1 id="infoschema-datatypes">
46   <title>Types de données</title>
47
48   <para>
49    Les colonnes des vues du schéma d'informations utilisent des types de
50    données spéciaux, définis dans le schéma d'informations. Ils sont définis
51    comme des domaines simples sur des types internes. Vous ne devriez pas
52    utiliser ces types en dehors du schéma d'informations mais vos applications
53    doivent y être préparées si elles font des sélections à partir du schéma
54    d'informations.
55   </para>
56
57   <para>
58    Ces types sont&nbsp;:
59
60    <variablelist>
61     <varlistentry>
62      <term><type>cardinal_number</type></term>
63      <listitem>
64       <para>
65        Un entier non négatif.
66       </para>
67      </listitem>
68     </varlistentry>
69
70     <varlistentry>
71      <term><type>character_data</type></term>
72      <listitem>
73       <para>
74        Une chaîne de caractères (sans longueur maximum spécifiée).
75       </para>
76      </listitem>
77     </varlistentry>
78
79     <varlistentry>
80      <term><type>sql_identifier</type></term>
81      <listitem>
82       <para>
83        Une chaîne de caractères. Elle est utilisée pour les identifiants SQL,
84        le type de données <type>character_data</type> est utilisé pour tout
85        autre type de données texte.
86       </para>
87      </listitem>
88     </varlistentry>
89
90     <varlistentry>
91      <term><type>time_stamp</type></term>
92      <listitem>
93       <para>
94        Un domaine au-dessus du type <type>timestamp</type>
95       </para>
96      </listitem>
97     </varlistentry>
98    </variablelist>
99
100    Chaque colonne du schéma d'informations a un des ces quatre types.
101   </para>
102
103   <para>
104    Les données booléenne (true/false) sont représentées dans le schéma
105    d'informations par une colonne de type <type>character_data</type> contenant
106    soit <literal>YES</literal> soit <literal>NO</literal> (le schéma
107    d'informations a été inventé par le standard SQL, du coup cette convention
108    est nécessaire pour conserver la compatibilité du moteur du schéma
109    d'informations).
110   </para>
111  </sect1>
112
113  <sect1 id="infoschema-information-schema-catalog-name">
114   <title><literal>information_schema_catalog_name</literal></title>
115
116   <para>
117    <literal>information_schema_catalog_name</literal> est une table qui
118    contient en permanence une ligne et une colonne contenant le nom de la base
119    de données actuelle (catalogue courant dans la terminologie SQL).
120   </para>
121
122   <table>
123    <title>Colonnes de <literal>information_schema_catalog_name</literal></title>
124
125    <tgroup cols="3">
126     <thead>
127      <row>
128       <entry>Nom</entry>
129       <entry>Type de données</entry>
130       <entry>Description</entry>
131      </row>
132     </thead>
133
134     <tbody>
135      <row>
136       <entry><literal>catalog_name</literal></entry>
137       <entry><type>sql_identifier</type></entry>
138       <entry>Nom de la base de données contenant ce schéma
139         d'informations</entry>
140      </row>
141     </tbody>
142    </tgroup>
143   </table>
144  </sect1>
145
146  <sect1 id="infoschema-applicable-roles">
147   <title><literal>applicable_roles</literal></title>
148
149   <para>
150    La vue <literal>applicable_roles</literal> identifie tous les groupes dont
151    l'utilisateur est membre (un rôle est identique à un groupe). Généralement,
152    il est préférable d'utiliser la vue <literal>enabled_roles</literal> au lieu
153    de celle-ci&nbsp;; voir aussi ici.
154   </para>
155
156   <table>
157    <title>Colonnes de <literal>applicable_roles</literal></title>
158
159    <tgroup cols="3">
160     <thead>
161      <row>
162       <entry>Nom</entry>
163       <entry>Type de données</entry>
164       <entry>Description</entry>
165      </row>
166     </thead>
167
168     <tbody>
169      <row>
170       <entry><literal>grantee</literal></entry>
171       <entry><type>sql_identifier</type></entry>
172       <entry>Toujours le nom de l'utilisateur courant</entry>
173      </row>
174
175      <row>
176       <entry><literal>role_name</literal></entry>
177       <entry><type>sql_identifier</type></entry>
178       <entry>Nom d'un groupe</entry>
179      </row>
180
181      <row>
182       <entry><literal>is_grantable</literal></entry>
183       <entry><type>character_data</type></entry>
184       <entry>S'applique à une fonctionnalité non disponible avec
185         PostgreSQL</entry>
186      </row>
187     </tbody>
188    </tgroup>
189   </table>
190  </sect1>
191
192  <sect1 id="infoschema-check-constraints">
193   <title><literal>check_constraints</literal></title>
194
195   <para>
196    La vue <literal>check_constraints</literal> contient toutes les contraintes
197    de vérification définies soit sur une table soit sur un domaine, possédées
198    par l'utilisateur courant (le propriétaire d'une table ou d'un domaine est
199    le propriétaire de la contrainte).
200   </para>
201
202   <table>
203    <title>Colonnes de <literal>check_constraints</literal></title>
204
205    <tgroup cols="3">
206     <thead>
207      <row>
208       <entry>Nom</entry>
209       <entry>Type de données</entry>
210       <entry>Description</entry>
211      </row>
212     </thead>
213
214     <tbody>
215      <row>
216       <entry><literal>constraint_catalog</literal></entry>
217       <entry><literal>sql_identifier</literal></entry>
218       <entry>Nom de la base de données contenant la contrainte (toujours la base
219         de données courante)</entry>
220      </row>
221
222      <row>
223       <entry><literal>constraint_schema</literal></entry>
224       <entry><literal>sql_identifier</literal></entry>
225       <entry>Nom du schéma contenant la contrainte</entry>
226      </row>
227
228      <row>
229       <entry><literal>constraint_name</literal></entry>
230       <entry><literal>sql_identifier</literal></entry>
231       <entry>Nom de la contrainte</entry>
232      </row>
233
234      <row>
235       <entry><literal>check_clause</literal></entry>
236       <entry><literal>character_data</literal></entry>
237       <entry>L'expression de vérification de la contrainte</entry>
238      </row>
239     </tbody>
240    </tgroup>
241   </table>
242  </sect1>
243
244  <sect1 id="infoschema-column-domain-usage">
245   <title><literal>column_domain_usage</literal></title>
246
247   <para>
248    La vue <literal>column_domain_usage</literal> identifie toutes les colonnes
249    (d'une table ou d'une vue) utilisant un domaine défini dans la base de
250    données courante et possédé par l'utilisateur courant.
251   </para>
252
253   <table>
254    <title>Colonnes de <literal>column_domain_usage</literal></title>
255
256    <tgroup cols="3">
257     <thead>
258      <row>
259       <entry>Nom</entry>
260       <entry>Type de données</entry>
261       <entry>Description</entry>
262      </row>
263     </thead>
264
265     <tbody>
266      <row>
267       <entry><literal>domain_catalog</literal></entry>
268       <entry><type>sql_identifier</type></entry>
269       <entry>Nom de la base de données contenant le domaine (toujours la base de
270         données courante)</entry>
271      </row>
272
273      <row>
274       <entry><literal>domain_schema</literal></entry>
275       <entry><type>sql_identifier</type></entry>
276       <entry>Nom du schéma contenant le domaine</entry>
277      </row>
278
279      <row>
280       <entry><literal>domain_name</literal></entry>
281       <entry><type>sql_identifier</type></entry>
282       <entry>Nom du domaine</entry>
283      </row>
284
285      <row>
286       <entry><literal>table_catalog</literal></entry>
287       <entry><type>sql_identifier</type></entry>
288       <entry>Nom de la base de données contenant la table (toujours la base de
289         données courante)</entry>
290      </row>
291
292      <row>
293       <entry><literal>table_schema</literal></entry>
294       <entry><type>sql_identifier</type></entry>
295       <entry>Nom du schéma contenant la table</entry>
296      </row>
297
298      <row>
299       <entry><literal>table_name</literal></entry>
300       <entry><type>sql_identifier</type></entry>
301       <entry>Nom de la table</entry>
302      </row>
303
304      <row>
305       <entry><literal>column_name</literal></entry>
306       <entry><type>sql_identifier</type></entry>
307       <entry>Nom de la colonne</entry>
308      </row>
309     </tbody>
310    </tgroup>
311   </table>
312  </sect1>
313
314  <sect1 id="infoschema-column-privileges">
315   <title><literal>column_privileges</literal></title>
316
317   <para>
318    La vue <literal>column_privileges</literal> identifie tous les droits
319    octroyés sur les colonnes à l'utilisateur courant ou par l'utilisateur
320    courant. Il existe une ligne pour chaque combinaison de colonne, de personne
321    donnant des droits et de personne recevant des droits. Les droits donnés
322    aux groupes sont identifiés dans la vue
323    <literal>role_column_grants</literal>.
324   </para>
325
326   <para>
327    Dans <productname>PostgreSQL</productname>, vous pouvez seulement donner des
328    droits sur des tables entières, pas sur des colonnes individuelles. Du
329    coup, la vue contient les mêmes informations que
330    <literal>table_privileges</literal> avec une représentation d'une ligne
331    pour chaque colonne dans chaque table appropriée mais cela couvre seulement
332    les types droits où la granularité des colonnes est possible&nbsp;:
333    <literal>SELECT</literal>, <literal>INSERT</literal>,
334    <literal>UPDATE</literal>, <literal>REFERENCES</literal>. Si vous souhaitez
335 que vos applications puissent remplir les développements futurs possibles, le bon choix
336 est d'utiliser cette vue en tant que <literal>table_privileges</literal> si un des
337 types droit est concerné.
338   </para>
339
340   <table>
341    <title>Colonnes de <literal>column_privileges</literal></title>
342
343    <tgroup cols="3">
344     <thead>
345      <row>
346       <entry>Nom</entry>
347       <entry>Type de données</entry>
348       <entry>Description</entry>
349      </row>
350     </thead>
351
352     <tbody>
353      <row>
354       <entry><literal>grantor</literal></entry>
355       <entry><type>sql_identifier</type></entry>
356       <entry>Nom de l'utilisateur ayant donné ce droit</entry>
357      </row>
358
359      <row>
360       <entry><literal>grantee</literal></entry>
361       <entry><type>sql_identifier</type></entry>
362       <entry>Nom de l'utilisateur et du groupe auxquels les droits
363       reviendront</entry>
364      </row>
365
366      <row>
367       <entry><literal>table_catalog</literal></entry>
368       <entry><type>sql_identifier</type></entry>
369       <entry>Nom de la base de données contenant la table ayant les colonnes
370       (toujours la base de données courante)</entry>
371      </row>
372
373      <row>
374       <entry><literal>table_schema</literal></entry>
375       <entry><type>sql_identifier</type></entry>
376       <entry>Nom du schéma contenant la table et les colonnes</entry>
377      </row>
378
379      <row>
380       <entry><literal>table_name</literal></entry>
381       <entry><type>sql_identifier</type></entry>
382       <entry>Nom de la table contenant la colonne</entry>
383      </row>
384
385      <row>
386       <entry><literal>column_name</literal></entry>
387       <entry><type>sql_identifier</type></entry>
388       <entry>Nom de la colonne</entry>
389      </row>
390
391      <row>
392       <entry><literal>privilege_type</literal></entry>
393       <entry><type>character_data</type></entry>
394       <entry>
395        Type de droit&nbsp;: <literal>SELECT</literal>,
396        <literal>INSERT</literal>, <literal>UPDATE</literal> ou
397        <literal>REFERENCES</literal>
398       </entry>
399      </row>
400
401      <row>
402       <entry><literal>is_grantable</literal></entry>
403       <entry><type>character_data</type></entry>
404       <entry><literal>YES</literal> si le droit peut être accordé,
405 <literal>NO</literal> sinon</entry>
406      </row>
407     </tbody>
408    </tgroup>
409   </table>
410
411   <para>
412    Notez que la colonne <literal>grantee</literal> ne fait aucune distinction
413    entre utilisateurs et groupes. Si vous avez des utilisateurs et des groupes
414    du même nom, il n'y a malheureusement aucun moyen de les distinguer. Une
415    prochaine version de <productname>PostgreSQL</productname> pourrait empêcher
416    d'avoir des utilisateurs et des groupes de même nom.
417   </para>
418  </sect1>
419
420  <sect1 id="infoschema-column-udt-usage">
421   <title><literal>column_udt_usage</literal></title>
422
423   <para>
424    La vue <literal>column_udt_usage</literal> identifie toutes les colonnes
425    utilisant les types de données dont l'utilisateur courant est propriétaire.
426    Notez que dans <productname>PostgreSQL</productname>, les types de données
427    internes se comportent commes des types définis par l'utilisateur, donc
428    ils sont aussi inclus ici. Voir aussi <xref linkend="infoschema-columns">
429    pour plus de détails.
430   </para>
431
432   <table>
433    <title>Colonnes de <literal>column_udt_usage</literal></title>
434
435    <tgroup cols="3">
436     <thead>
437      <row>
438       <entry>Nom</entry>
439       <entry>Type de données</entry>
440       <entry>Description</entry>
441      </row>
442     </thead>
443
444     <tbody>
445      <row>
446       <entry><literal>udt_catalog</literal></entry>
447       <entry><type>sql_identifier</type></entry>
448       <entry>
449        Nom de la base de données où le type de donnée de la colonne (le type
450        sous-jacent du domaine, si applicable) est défini (toujours la base de
451        données courante)
452       </entry>
453      </row>
454
455      <row>
456       <entry><literal>udt_schema</literal></entry>
457       <entry><type>sql_identifier</type></entry>
458       <entry>
459        Nom du schéma où le type de donnée de la colonne (le type
460        sous-jacent du domaine, si applicable) est défini
461       </entry>
462      </row>
463
464      <row>
465       <entry><literal>udt_name</literal></entry>
466       <entry><type>sql_identifier</type></entry>
467       <entry>
468        Nom du type de données de la colonne (le type sous-jacent du domaine,
469        si applicable)
470       </entry>
471      </row>
472
473      <row>
474       <entry><literal>table_catalog</literal></entry>
475       <entry><type>sql_identifier</type></entry>
476       <entry>Nom de la base de données contenant la table (toujours la base de
477        données courante)</entry>
478      </row>
479
480      <row>
481       <entry><literal>table_schema</literal></entry>
482       <entry><type>sql_identifier</type></entry>
483       <entry>Nom du schéma contenant la table</entry>
484      </row>
485
486      <row>
487       <entry><literal>table_name</literal></entry>
488       <entry><type>sql_identifier</type></entry>
489       <entry>Nom de la table</entry>
490      </row>
491
492      <row>
493       <entry><literal>column_name</literal></entry>
494       <entry><type>sql_identifier</type></entry>
495       <entry>Nom de la colonne</entry>
496      </row>
497     </tbody>
498    </tgroup>
499   </table>
500  </sect1>
501
502  <sect1 id="infoschema-columns">
503   <title><literal>columns</literal></title>
504
505   <para>
506    La vue <literal>columns</literal> contient des informations sur toutes les
507    colonnes de table (et colonnes de vue) de la base de données. Les colonnes
508    système (<literal>oid</>, etc.) ne sont pas inclus. Seules les colonnes,
509    auxquelles l'utilisateur a accès, sont affichées (qu'il soit le propriétaire
510    ou qu'il ait quelques droits).
511   </para>
512
513   <table>
514    <title>Colonnes de <literal>columns</literal></title>
515
516    <tgroup cols="3">
517     <thead>
518      <row>
519       <entry>Nom</entry>
520       <entry>Type de données</entry>
521       <entry>Description</entry>
522      </row>
523     </thead>
524
525     <tbody>
526      <row>
527       <entry><literal>table_catalog</literal></entry>
528       <entry><type>sql_identifier</type></entry>
529       <entry>Nom de la base de données contenant la table (toujours la base de
530        données courante)</entry>
531      </row>
532
533      <row>
534       <entry><literal>table_schema</literal></entry>
535       <entry><type>sql_identifier</type></entry>
536       <entry>Nom du schéma contenant la table</entry>
537      </row>
538
539      <row>
540       <entry><literal>table_name</literal></entry>
541       <entry><type>sql_identifier</type></entry>
542       <entry>Nom de la table</entry>
543      </row>
544
545      <row>
546       <entry><literal>column_name</literal></entry>
547       <entry><type>sql_identifier</type></entry>
548       <entry>Nom de la colonne</entry>
549      </row>
550
551      <row>
552       <entry><literal>ordinal_position</literal></entry>
553       <entry><type>cardinal_number</type></entry>
554       <entry>Position de la colonne dans la table (la numérotation commençant à
555        1)</entry>
556      </row>
557
558      <row>
559       <entry><literal>column_default</literal></entry>
560       <entry><type>character_data</type></entry>
561       <entry>
562        Expression par défaut de la colonne (NULL si l'utilisateur courant n'est
563        pas le propriétaire de la table contenant la colonne)
564       </entry>
565      </row>
566
567      <row>
568       <entry><literal>is_nullable</literal></entry>
569       <entry><type>character_data</type></entry>
570       <entry>
571        <literal>YES</literal> si la colonne peut contenir des valeurs NULL,
572        <literal>NO</literal> dans le cas contraire. Une contrainte not NULL est
573        une façon pour obtenir qu'une colonne soit connue comme ne pouvant pas
574        contenir de valeurs NULL mais il en existe d'autres.
575       </entry>
576      </row>
577
578      <row>
579       <entry><literal>data_type</literal></entry>
580       <entry><type>character_data</type></entry>
581       <entry>
582        Le type de données de la colonne, s'il s'agit d'un type interne ou d'un
583        tableau (<literal>ARRAY</literal>) (dans ce cas, voir la vue
584        <literal>element_types</literal>) sinon défini par l'utilisateur
585        (<literal>USER-DEFINED</literal>) (dans ce cas, le type est identifié
586        dans <literal>udt_name</literal> et dispose des colonnes associés). Si la
587        colonne est basée sur un domaine, cette colonne est une référence au type
588        sous-jacent du domaine (et le domaine est identifié dans
589        <literal>domain_name</literal> et dispose des colonnes associées).
590       </entry>
591      </row>
592
593      <row>
594       <entry><literal>character_maximum_length</literal></entry>
595       <entry><type>cardinal_number</type></entry>
596       <entry>
597        Si <literal>data_type</literal> identifie un caractère ou un type de
598        chaîne de bits, la longueur maximum déclarée&nbsp;; NULL pour tous les
599        autres types de données ou si aucune longueur maximum n'a été déclarée.
600       </entry>
601      </row>
602
603      <row>
604       <entry><literal>character_octet_length</literal></entry>
605       <entry><type>cardinal_number</type></entry>
606       <entry>
607        Si <literal>data_type</literal> identifie un type caractère, la longueur
608        maximum en octets (bytes) d'un datum (ceci ne devrait pas concerner les
609        utilisateurs <productname>PostgreSQL</productname>)&nbsp;; NULL pour les
610        autres types de données.
611       </entry>
612      </row>
613
614      <row>
615       <entry><literal>numeric_precision</literal></entry>
616       <entry><type>cardinal_number</type></entry>
617       <entry>
618        Si <literal>data_type</literal> identifie un type numérique, cette
619        colonne contient la précision (déclarée ou implicite) du type pour cette
620        colonne. Cette précision indique le nombre de chiffres significatifs.
621        Elle pourrait être exprimée en décimal (base 10) ou en binaire (base 2)
622        comme indiqué dans la colonne
623        <literal>numeric_precision_radix</literal>. Pour tous les autres types de
624        données, la colonne est NULL.
625       </entry>
626      </row>
627
628      <row>
629       <entry><literal>numeric_precision_radix</literal></entry>
630       <entry><type>cardinal_number</type></entry>
631       <entry>
632        Si <literal>data_type</literal> identifie un type numérique, cette
633        colonne indique dans quel base les valeurs des colonnes
634        <literal>numeric_precision</literal> et     
635        <literal>numeric_scale</literal> sont exprimées. La valeur est soit 2
636        soit 10. Pour tous les autres types de données, cette colonne est NULL.
637       </entry>
638      </row>
639
640      <row>
641       <entry><literal>numeric_scale</literal></entry>
642       <entry><type>cardinal_number</type></entry>
643       <entry>
644        Si <literal>data_type</literal> identifie un type numeric exactement,
645        cette colonne contient l'échelle (déclarée ou implicite) du type de cette
646        colonne. L'échelle indique le nombre de chiffres significatifs à la
647        droite du point décimal. Elle pourrait être exprimée en décimal (base 10)
648        ou en binaire (base 2), comme indiqué dans la colonne
649        <literal>numeric_precision_radix</literal>. Pour tous les autres types de
650        données, cette colonne est NULL.
651       </entry>
652      </row>
653
654      <row>
655       <entry><literal>datetime_precision</literal></entry>
656       <entry><type>cardinal_number</type></entry>
657       <entry>
658        Si <literal>data_type</literal> identifie une date, une heure ou un type
659        interval, la précision déclarée&nbsp;; NULL pour tous les autres types
660        de données ou si aucune précision n'a été déclarée.
661       </entry>
662      </row>
663
664      <row>
665       <entry><literal>interval_type</literal></entry>
666       <entry><type>character_data</type></entry>
667       <entry>Pas encore implémenté</entry>
668      </row>
669
670      <row>
671       <entry><literal>interval_precision</literal></entry>
672       <entry><type>character_data</type></entry>
673       <entry>Pas encore implémenté</entry>
674      </row>
675
676      <row>
677       <entry><literal>character_set_catalog</literal></entry>
678       <entry><type>sql_identifier</type></entry>
679       <entry>S'applique à une fonctionnalité non disponible dans
680        PostgreSQL</entry>
681      </row>
682
683      <row>
684       <entry><literal>character_set_schema</literal></entry>
685       <entry><type>sql_identifier</type></entry>
686       <entry>S'applique à une fonctionnalité non disponible dans
687        PostgreSQL.</entry>
688      </row>
689
690      <row>
691       <entry><literal>character_set_name</literal></entry>
692       <entry><type>sql_identifier</type></entry>
693       <entry>S'applique à une fonctionnalité non disponible dans
694        PostgreSQL.</entry>
695      </row>
696
697      <row>
698       <entry><literal>collation_catalog</literal></entry>
699       <entry><type>sql_identifier</type></entry>
700       <entry>S'applique à une fonctionnalité non disponible dans
701        PostgreSQL.</entry>
702      </row>
703
704      <row>
705       <entry><literal>collation_schema</literal></entry>
706       <entry><type>sql_identifier</type></entry>
707       <entry>S'applique à une fonctionnalité non disponible dans
708        PostgreSQL.</entry>
709      </row>
710
711      <row>
712       <entry><literal>collation_name</literal></entry>
713       <entry><type>sql_identifier</type></entry>
714       <entry>S'applique à une fonctionnalité non disponible dans
715        PostgreSQL.</entry>
716      </row>
717
718      <row>
719       <entry><literal>domain_catalog</literal></entry>
720       <entry><type>sql_identifier</type></entry>
721       <entry>
722        Si la colonne a un type domain, le nom de la base de données où le type
723        est défini (toujours la base de données courante), sinon NULL.
724       </entry>
725      </row>
726
727      <row>
728       <entry><literal>domain_schema</literal></entry>
729       <entry><type>sql_identifier</type></entry>
730       <entry>
731        Si la colonne a un type domain, le nom du schéma où le domaine est
732        défini, sinon NULL.
733       </entry>
734      </row>
735
736      <row>
737       <entry><literal>domain_name</literal></entry>
738       <entry><type>sql_identifier</type></entry>
739       <entry>Si la colonne a un type de domaine, le nom du domaine, sinon
740        NULL.</entry>
741      </row>
742
743      <row>
744       <entry><literal>udt_catalog</literal></entry>
745       <entry><type>sql_identifier</type></entry>
746       <entry>
747        Nom de la base de données où le type de données de la colonne (le type
748        sous-jacent du domaine, si applicable) est défini (toujours la base de
749        données courante)
750       </entry>
751      </row>
752
753      <row>
754       <entry><literal>udt_schema</literal></entry>
755       <entry><type>sql_identifier</type></entry>
756       <entry>
757        Nom du schéma où le type de données de la colonne (le type sous-jacent
758        du domaine, si applicable) est défini
759       </entry>
760      </row>
761
762      <row>
763       <entry><literal>udt_name</literal></entry>
764       <entry><type>sql_identifier</type></entry>
765       <entry>
766        Nom du type de données de la colonne (le type sous-jacent du domaine,
767        si applicable)
768       </entry>
769      </row>
770
771      <row>
772       <entry><literal>scope_catalog</literal></entry>
773       <entry><type>sql_identifier</type></entry>
774       <entry>S'applique à une fonctionnalité non disponible dans
775        PostgreSQL.</entry>
776      </row>
777
778      <row>
779       <entry><literal>scope_schema</literal></entry>
780       <entry><type>sql_identifier</type></entry>
781       <entry>S'applique à une fonctionnalité non disponible dans
782        PostgreSQL.</entry>
783      </row>
784
785      <row>
786       <entry><literal>scope_name</literal></entry>
787       <entry><type>sql_identifier</type></entry>
788       <entry>S'applique à une fonctionnalité non disponible dans
789        PostgreSQL.</entry>
790      </row>
791
792      <row>
793       <entry><literal>maximum_cardinality</literal></entry>
794       <entry><type>cardinal_number</type></entry>
795       <entry>Toujours NULL, car les tableaux ont toujours une cardinalité
796        maximum illimitée avec PostgreSQL</entry>
797      </row>
798
799      <row>
800       <entry><literal>dtd_identifier</literal></entry>
801       <entry><type>sql_identifier</type></entry>
802       <entry>
803        Un identifiant du descripteur du type de données de la colonne, unique
804        parmi les descripteurs de type de données contenu dans la table. Ceci
805        est principalement utile pour joindre d'autres instances de ces
806        identifiants. (Le format spécifique de l'identifiant n'est ni défini ni
807        assuré de rester identique dans les versions futures.)
808       </entry>
809      </row>
810
811      <row>
812       <entry><literal>is_self_referencing</literal></entry>
813       <entry><type>character_data</type></entry>
814       <entry>S'applique à une fonctionnalité non disponible dans
815        PostgreSQL.</entry>
816      </row>
817     </tbody>
818    </tgroup>
819   </table>
820
821   <para>
822    Comme les types de données peuvent être définis avec une grande variété de
823    moyens en SQL et comme <productname>PostgreSQL</productname> contient des
824    moyens supplémentaires pour définir des types de données, leurs
825    représentations dans le schéma d'information peut être assez complexe. La
826    colonne <literal>data_type</literal> est supposée identifier le type de
827    données interne sous-jacent de la colonne. Dans
828    <productname>PostgreSQL</productname>, cela signifie que le type est défini
829    dans le schéma du catalogue système <literal>pg_catalog</literal>. Cette
830    colonne pourrait être utile si l'application peut correctement gérer les
831    types internes (par exemple, formater les types numériques différemment
832    ou utiliser les données dans les colonnes de précisions). Les colonnes
833    <literal>udt_name</literal>, <literal>udt_schema</literal> et
834    <literal>udt_catalog</literal> identifient toujours le type de données
835    sous-jacent de la colonne même si la colonne est basée sur un domaine (comme
836    <productname>PostgreSQL</productname> traite les types internes comme des
837    types définis par l'utilisateur, les types internes apparaissent aussi ici.
838    Ceci est une extension du standard SQL). Ces colonnes devraient être
839    utilisées si une application souhaite traiter les données différemment suivant
840    le type car, dans ce cas, peu importe si la colonne est réellement basée sur
841    un domaine. Si la colonne est basée sur un domaine, l'identité du domaine est
842    stockée dans les colonnes <literal>domain_name</literal>,
843    <literal>domain_schema</literal> et <literal>domain_catalog</literal>. Si
844    vous souhaitez assembler les colonnes avec leur types de données associés et
845    traiter les domaines comme des types séparés, vous pouvez écrire
846    <literal>coalesce(domain_name, udt_name)</literal>, etc.
847   </para>
848  </sect1>
849
850  <sect1 id="infoschema-constraint-column-usage">
851   <title><literal>constraint_column_usage</literal></title>
852
853   <para>
854    La vue <literal>constraint_column_usage</literal> identifie toutes les
855    colonnes de la base de données courante utilisées par des contraintes.
856    Seules sont affichées les colonnes contenues dans une table possédée par
857    l'utilisateur courant. Pour une contrainte de vérification, cette vue
858    identifie les colonnes utilisées dans l'expression de la vérification. Pour
859    une contrainte de clé étrangère, cette vue identifie les colonnes que la clé
860    étrangère référence. Pour une contrainte unique ou de clé primaire, cette vue
861    identifie les colonnes contraintes.
862   </para>
863
864   <table>
865    <title>Colonnes de <literal>constraint_column_usage</literal></title>
866
867    <tgroup cols="3">
868     <thead>
869      <row>
870       <entry>Nom</entry>
871       <entry>Type de données</entry>
872       <entry>Description</entry>
873      </row>
874     </thead>
875
876     <tbody>
877      <row>
878       <entry><literal>table_catalog</literal></entry>
879       <entry><type>sql_identifier</type></entry>
880       <entry>
881        Nom de la base de données contenant la table contenant la colonne
882        utilisée par certaines contraintes (toujours la base de données courante)
883       </entry>
884      </row>
885
886      <row>
887       <entry><literal>table_schema</literal></entry>
888       <entry><type>sql_identifier</type></entry>
889       <entry>
890        Nom du schéma contenant la table contenant la colonne utilisée par
891        certaines contraintes
892       </entry>
893      </row>
894
895      <row>
896       <entry><literal>table_name</literal></entry>
897       <entry><type>sql_identifier</type></entry>
898       <entry>
899        Nom de la table contenant la colonne utilisée par certaines contraintes
900       </entry>
901      </row>
902
903      <row>
904       <entry><literal>column_name</literal></entry>
905       <entry><type>sql_identifier</type></entry>
906       <entry>
907        Nom de la colonne utilisée par certaines contraintes
908       </entry>
909      </row>
910
911      <row>
912       <entry><literal>constraint_catalog</literal></entry>
913       <entry><type>sql_identifier</type></entry>
914       <entry>Nom de la base de données contenant la contrainte (toujours la
915        base de données courante)</entry>
916      </row>
917
918      <row>
919       <entry><literal>constraint_schema</literal></entry>
920       <entry><type>sql_identifier</type></entry>
921       <entry>Nom du schéma contenant la contrainte</entry>
922      </row>
923
924      <row>
925       <entry><literal>constraint_name</literal></entry>
926       <entry><type>sql_identifier</type></entry>
927       <entry>Nom de la contrainte</entry>
928      </row>
929     </tbody>
930    </tgroup>
931   </table>
932  </sect1>
933
934  <sect1 id="infoschema-constraint-table-usage">
935   <title><literal>constraint_table_usage</literal></title>
936
937   <para>
938    La vue <literal>constraint_table_usage</literal> identifie toutes les
939    tables de la base de données courante utilisées par des contraintes et
940    possédées par l'utilisateur courant (ceci est différent de la vue
941    <literal>table_constraints</literal> qui identifie toutes les contraintes
942    avec la table de leur définition). Pour une contrainte de clé étrangère,
943    cette vue identifie la table que la clé étrangère référence. Pour une
944    contrainte unique ou de clé primaire, cette vue identifie simplement la table
945    à laquelle appartient la contrainte. Les contraintes de vérification et les
946    contraintes non NULL ne sont pas inclus dans cette vue.
947   </para>
948
949   <table>
950    <title>Colonnes de <literal>constraint_table_usage</literal></title>
951
952    <tgroup cols="3">
953     <thead>
954      <row>
955       <entry>Nom</entry>
956       <entry>Type de données</entry>
957       <entry>Description</entry>
958      </row>
959     </thead>
960
961     <tbody>
962      <row>
963       <entry><literal>table_catalog</literal></entry>
964       <entry><type>sql_identifier</type></entry>
965       <entry>
966        Nom de la base de données contenant la table utilisée par quelques
967        contraintes (toujours la base de données courante)
968       </entry>
969      </row>
970
971      <row>
972       <entry><literal>table_schema</literal></entry>
973       <entry><type>sql_identifier</type></entry>
974       <entry>
975        Nom du schéma contenant la table utilisée par quelques contraintes
976       </entry>
977      </row>
978
979      <row>
980       <entry><literal>table_name</literal></entry>
981       <entry><type>sql_identifier</type></entry>
982       <entry>Nom de la table utilisée par quelques contraintes</entry>
983      </row>
984
985      <row>
986       <entry><literal>constraint_catalog</literal></entry>
987       <entry><type>sql_identifier</type></entry>
988       <entry>Nom de la base de données contenant la contrainte
989        (toujours la base de données courante)</entry>
990      </row>
991
992      <row>
993       <entry><literal>constraint_schema</literal></entry>
994       <entry><type>sql_identifier</type></entry>
995       <entry>Nom du schéma contenant la contrainte</entry>
996      </row>
997
998      <row>
999       <entry><literal>constraint_name</literal></entry>
1000       <entry><type>sql_identifier</type></entry>
1001       <entry>Nom de la contrainte</entry>
1002      </row>
1003     </tbody>
1004    </tgroup>
1005   </table>
1006  </sect1>
1007
1008  <sect1 id="infoschema-data-type-privileges">
1009   <title><literal>data_type_privileges</literal></title>
1010
1011   <para>
1012    La vue <literal>data_type_privileges</literal> identifie tous les
1013 descripteurs de type de données auxquels l'utilisateur a accès parce qu'il en
1014 est le propriétaire ou parce qu'il dispose de quelques droits sur le
1015 descripteur. Un descripteur de type de données est généré quand un type de
1016 données est utilisé dans la définition d'une colonne de table, d'un domaine ou
1017 d'une fonction (en tant que paramètre ou que code de retour) et stocke quelques
1018 informations sur la façon dont est utilisé le type de données (par exemple la
1019 longueur maximum déclarée, si applicable). Chaque descripteur de type de
1020 données se voit affecter un identifiant unique parmi les descripteurs de type de
1021 données affectés à un objet (table, domaine, fonction). Cette vue n'est
1022 probablement pas utile pour les applications mais est utilisée pour définir
1023 d'autres vues dans le schéma d'informations.
1024   </para>
1025
1026   <table>
1027    <title>Colonnes de <literal>data_type_privileges</literal></title>
1028
1029    <tgroup cols="3">
1030     <thead>
1031      <row>
1032       <entry>Nom</entry>
1033       <entry>Type de données</entry>
1034       <entry>Description</entry>
1035      </row>
1036     </thead>
1037
1038     <tbody>
1039      <row>
1040       <entry><literal>object_catalog</literal></entry>
1041       <entry><type>sql_identifier</type></entry>
1042       <entry>Nom de la base de données contenant l'objet décrit (toujours la
1043        base de données courante)</entry>
1044      </row>
1045
1046      <row>
1047       <entry><literal>object_schema</literal></entry>
1048       <entry><type>sql_identifier</type></entry>
1049       <entry>Nom du schéma contenant l'objet décrit</entry>
1050      </row>
1051
1052      <row>
1053       <entry><literal>object_name</literal></entry>
1054       <entry><type>sql_identifier</type></entry>
1055       <entry>Nom de l'objet décrit</entry>
1056      </row>
1057
1058      <row>
1059       <entry><literal>object_type</literal></entry>
1060       <entry><type>character_data</type></entry>
1061       <entry>
1062        Le type d'objet décrit&nbsp;: fait partie de
1063        <literal>TABLE</literal> (le descripteur de type de données concerne une
1064        colonne de cette table), <literal>DOMAIN</literal> (le descripteur
1065        concerne ce domaine), <literal>ROUTINE</literal> (le descripteur est lié
1066        à un type de paramètre ou de code de retour de cette fonction).
1067       </entry>
1068      </row>
1069
1070      <row>
1071       <entry><literal>dtd_identifier</literal></entry>
1072       <entry><type>sql_identifier</type></entry>
1073       <entry>
1074        identifiant du descripteur de type de données, unique parmi les
1075        descripteurs de type de données pour le même objet.
1076       </entry>
1077      </row>
1078     </tbody>
1079    </tgroup>
1080   </table>
1081  </sect1>
1082
1083  <sect1 id="infoschema-domain-constraints">
1084   <title><literal>domain_constraints</literal></title>
1085
1086   <para>
1087    La vue <literal>domain_constraints</literal> contient toutes les contraintes
1088    appartenant aux domaines dont l'utilisateur courant es