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

Revision 13, 8.9 kB (checked in by gleu, 3 years ago)

Suite de l'import pour le passage CVS à SVN.

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