root/traduc/branches/bv803/manuel/bki.sgml

Revision 65, 9.3 kB (checked in by gleu, 3 years ago)

Relecture d'Herve Dumont.

Line 
1 <!--
2 $Header: /var/lib/cvs/pgsql-fr/sgml/bki.sgml,v 1.6 2005/03/14 06:03:48 guillaume Exp $
3  -->
4
5 <chapter id="bki">
6  <title>Interface du moteur <acronym>BKI</acronym></title>
7
8  <para>
9   Les fichiers d'interface du moteur (<acronym>BKI</acronym>) sont des scripts
10   écrits dans un langage spécial, qui est compris par le serveur
11   <productname>PostgreSQL</productname> quand il est lancé dans le mode spécial
12   <quote>bootstrap</quote>. Ce mode autorise la création des catalogues
13   systèmes alors que les commandes SQL requièrent l'existence des catalogues.
14   Les fichiers <acronym>BKI</acronym> peuvent donc être utilisés pour créer le
15   système de base de données en tout premier lieu. (Et ils ne sont probablement
16   pas utiles pour un autre emploi.)
17  </para>
18
19  <para>
20   <application>initdb</application> utilise un fichier <acronym>BKI</acronym>
21   pour faire une partie de son travail lors de la création d'un nouveau groupe
22   de base de données. Le fichier en entrée utilisé par
23   <application>initdb</application> est créé lors de la construction et de
24   l'installation de <productname>PostgreSQL</productname> par un programme
25   nommé <filename>genbki.sh</filename> qui lit les quelques fichiers d'en-têtes
26   C spécialement formatés dans le répertoire
27   <filename>src/include/catalog</filename> des sources. Le fichier
28   <acronym>BKI</acronym> créé est appelé <filename>postgres.bki</filename> et
29   est normalement installé dans le sous-répertoire <filename>share</filename>
30   du répertoire d'installation.
31  </para>
32
33  <para>
34   Des informations plus complètes sont disponibles dans la documentation pour
35   <application>initdb</application>.
36  </para>
37
38  <sect1 id="bki-format">
39   <title>Format des fichiers <acronym>BKI</acronym></title>
40
41   <para>
42    Cette section décrit comment le serveur <productname>PostgreSQL</productname>
43    interprète les fichiers <acronym>BKI</acronym>. Cette description
44    sera plus simple à comprendre si le fichier <filename>postgres.bki</filename>
45    se trouve à portée de main comme exemple.
46   </para>
47
48   <para>
49    L'entrée <acronym>BKI</acronym> consiste en une séquence de commandes. Les
50    commandes sont constituées d'un certain nombre d'éléments, suivant la syntaxe de
51    la commande. Les éléments sont habituellement séparés par des espaces blancs
52    mais n'ont pas besoin de l'être s'il n'y a pas d'ambiguïté. Il n'existe pas
53    de séparateur spécial pour les commandes&nbsp;; le prochain élément qui ne
54    peut syntaxiquement pas appartenir à la commande précédente en lance une
55    autre. (Habituellement, vous devriez mettre une nouvelle commande sur une
56    nouvelle ligne pour plus de clarté.) Les éléments peuvent être certains mots
57    clés, des caractères spéciaux (parenthèses, virgules, etc.), nombres ou
58    chaînes de caractères entre guillemets doubles. Tous sont sensibles à la
59    casse.
60   </para>
61
62   <para>
63    Les lignes commençant avec un <literal>#</literal> sont ignorées.
64   </para>
65
66  </sect1>
67
68  <sect1 id="bki-commands">
69   <title>Commandes <acronym>BKI</acronym></title>
70
71   <variablelist>
72    <varlistentry>
73     <term>
74      create
75      <optional>bootstrap</optional>
76      <optional>shared_relation</optional>
77      <optional>without_oids</optional>
78      <replaceable class="parameter">nomtable</replaceable>
79      (<replaceable class="parameter">nom1</replaceable> =
80      <replaceable class="parameter">type1</replaceable> <optional>,
81      <replaceable class="parameter">nom2</replaceable> = <replaceable
82      class="parameter">type2</replaceable>, ...</optional>)
83     </term>
84
85     <listitem>
86      <para>
87       Crée une table nommée <replaceable
88       class="parameter">nomtable</replaceable> avec les colonnes données entre
89       parenthèses.
90      </para>
91
92      <para>
93       Les types de colonnes suivants sont supportés directement par
94       <filename>bootstrap.c</>: <type>bool</type>,
95       <type>bytea</type>, <type>char</type> (1 byte),
96       <type>name</type>, <type>int2</type>,
97       <type>int4</type>, <type>regproc</type>, <type>regclass</type>,
98       <type>regtype</type>, <type>text</type>,
99       <type>oid</type>, <type>tid</type>, <type>xid</type>,
100       <type>cid</type>, <type>int2vector</type>, <type>oidvector</type>,
101       <type>_int4</type> (array), <type>_text</type> (array),
102       <type>_aclitem</type> (array). Bien qu'il soit possible de créer des
103       tables contenant des colonnes d'autres types, ceci ne peut pas être fait
104       tant que <structname>pg_type</> n'est pas créé et rempli avec les entrées
105       appropriées.
106      </para>
107
108      <para>
109       Quand <literal>bootstrap</> est spécifié, la table sera seulement
110       construite sur disque&nbsp;; rien n'est saisi dans
111       <structname>pg_class</structname>, <structname>pg_attribute</structname>,
112       etc, pour elle. Du coup, la table ne sera pas accessible par des
113       opérations SQL standards jusqu'à ce que de nouvelles entrées sont
114       réalisées (avec des commandes <literal>insert</>). Cette option est
115       utilisée pour créer <structname>pg_class</structname>, etc.
116      </para>
117
118      <para>
119       La table est créée comme partagée si <literal>shared_relation</> est
120       spécifié. Elle aura des OID sauf si <literal>without_oids</> est spécifié.
121      </para>
122     </listitem>
123    </varlistentry>
124
125    <varlistentry>
126     <term>
127      open <replaceable class="parameter">nomtable</replaceable>
128     </term>
129
130     <listitem>
131      <para>
132       Ouvre la table nommée
133       <replaceable class="parameter">nomtable</replaceable>
134       pour plus de manipulations.
135      </para>
136     </listitem>
137    </varlistentry>
138
139    <varlistentry>
140     <term>
141      close <optional><replaceable class="parameter">nomtable</replaceable></optional>
142     </term>
143
144     <listitem>
145      <para>
146       Ferme la table ouverte appelée <replaceable
147       class="parameter">nomtable</replaceable>. Une erreur survient si
148       <replaceable class="parameter">nomtable</replaceable> n'est pas déjà
149       ouverte. Si <replaceable class="parameter">nomtable</replaceable> n'est
150       pas indiqué, alors la table actuellement ouverte est fermée.
151      </para>
152     </listitem>
153    </varlistentry>
154
155    <varlistentry>
156     <term>
157      insert <optional>OID = <replaceable class="parameter">valeur_oid</replaceable></optional> (<replaceable class="parameter">valeur1</replaceable> <replaceable class="parameter">valeur2</replaceable> ...)
158     </term>
159
160     <listitem>
161      <para>
162       Insère une nouvelle ligne dans la table ouverte en utilisant <replaceable
163       class="parameter">valeur1</replaceable>, <replaceable
164       class="parameter">valeur2</replaceable>, etc., comme valeurs de ses
165       colonnes et <replaceable
166       class="parameter">valeur_oid</replaceable> pour son OID. Si
167       <replaceable class="parameter">valeur_oid</replaceable> vaut zéro
168       (0) ou si la clause est omise, alors le prochain OID disponible est
169       utilisé.
170      </para>
171
172      <para>
173       Les valeurs NULL peuvent être indiquées en utilisant le mot clé spécial
174       <literal>_null_</literal>. Les valeurs contenant des espaces doivent être
175       entre des guillemets doubles.
176      </para>
177     </listitem>
178    </varlistentry>
179
180    <varlistentry>
181     <term>
182      declare <optional>unique</optional> index <replaceable
183      class="parameter">nomindex</replaceable> on <replaceable
184      class="parameter">nomtable</replaceable> using <replaceable
185      class="parameter">nomma</replaceable> (<replaceable
186      class="parameter">classeop1</replaceable> <replaceable
187      class="parameter">nom1</replaceable> <optional>, ...</optional>)
188     </term>
189
190     <listitem>
191      <para>
192       Crée un index nommé <replaceable
193       class="parameter">nomindex</replaceable> sur la table nommée
194       <replaceable class="parameter">nomtable</replaceable> en utilisant la
195       méthode d'accès nommée <replaceable class="parameter">nomma</replaceable>.
196       Les champs de l'index sont appelés <replaceable
197       class="parameter">nom1</replaceable>, <replaceable
198       class="parameter">nom2</replaceable> etc., et les classes d'opérateur à
199       utiliser sont respectivement <replaceable
200       class="parameter">classeop1</replaceable>, <replaceable
201       class="parameter">classeop2</replaceable> etc.
202       Le fichier index est créé et les entrées du catalogue appropriées sont
203       ajoutées pour lui, mais le contenu de l'index n'est pas initialisé par
204       cette commande.
205      </para>
206     </listitem>
207    </varlistentry>
208
209    <varlistentry>
210     <term>build indices</term>
211
212     <listitem>
213      <para>
214       Remplit les index précédemment déclarés.
215      </para>
216     </listitem>
217    </varlistentry>
218   </variablelist>
219
220  </sect1>
221
222  <sect1 id="bki-example">
223   <title>Exemple</title>
224
225   <para>
226    La séquence suivante de commandes créera la table
227    <literal>test_table</literal> avec deux colonnes
228    <literal>cola</literal> et <literal>colb</literal> de type, respectivement,
229    <type>int4</type> et <type>text</type> et insèrera deux lignes dans la
230    table.
231 <programlisting>
232 create test_table (cola = int4, colb = text)
233 open test_table
234 insert OID=421 ( 1 "value1" )
235 insert OID=422 ( 2 _null_ )
236 close test_table
237 </programlisting>
238   </para>
239  </sect1>
240 </chapter>
241
242 <!-- Keep this comment at the end of the file
243 Local variables:
244 mode:sgml
245 sgml-omittag:nil
246 sgml-shorttag:t
247 sgml-minimize-attributes:nil
248 sgml-always-quote-attributes:t
249 sgml-indent-step:1
250 sgml-indent-data:t
251 sgml-parent-document:nil
252 sgml-default-dtd-file:"./reference.ced"
253 sgml-exposed-tags:nil
254 sgml-local-catalogs:("/usr/lib/sgml/catalog")
255 sgml-local-ecat-files:nil
256 End:
257 -->
258
Note: See TracBrowser for help on using the browser.