<!--
  <!DOCTYPE chapter PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" "dtd/kdex.dtd">
-->

<chapter id="building-databases">
<title
>Construire des bases de données simples</title>
<sect1 id="building-intro">
<title
>Introduction</title>
<para
>Pour apprendre les bases de &kexi;, vous pouvez construire une base de données simple se servant des fonctionnalités les plus élémentaires de &kexi;. Pour simplifier les choses, on ne va pas aborder ici les parties complexes de la conception de base de données. </para>
<para
>Commencez par créer un nouvel <emphasis
>Annuaire Téléphonique</emphasis
> vide. </para>

<para
>À partir d'un nouveau projet de base de données vide, effectuez les actions suivantes :</para>
<procedure>
<step
><para
>Concevez les tables. Voir <xref linkend="designing-tables"/>.</para
></step>
<step
><para
>Saisissez les données dans les tables. Voir <xref linkend="entering-data-into-tables"/>.</para
></step>
<step
><para
>Concevez des requêtes de base de données. Voir <xref linkend="designing-queries"/>.</para
></step>
<step
><para
>Concevez des formulaires. Voir <xref linkend="designing-forms"/>.</para
></step>
<step
><para
>Utilisez les formulaires pour saisir des données. Voir <xref linkend="entering-data-using-forms"/>.</para
></step>
</procedure>
</sect1>

<sect1 id="designing-tables">
<title
>Concevoir les tables</title>
<para
>Tout d'abord, vous allez ajouter deux tables à votre base de données. <emphasis
>personnes</emphasis
> et <emphasis
>numeros_telephone</emphasis
>. Ce sont exactement les même tables que celles décrites au chapitre <link linkend="database-and-spreadsheet"
>Base de données et Feuille de calcul</link
>. Une organisation de <emphasis
>personnes</emphasis
> peut être trouvée dans la section <link linkend="data-integrity-and-validity"
>Intégrité et validité des données</link
> de ce chapitre. </para>

<procedure>
<step>
<para
>Choisissez <menuchoice
><guimenu
>Insérer</guimenu
><guimenuitem
>Table</guimenuitem
> </menuchoice
> à partir de la barre de menu. Vous pouvez aussi utiliser le bouton <guilabel
>Créer un objet : table</guilabel
> sur la <link linkend="project-navigator-pane"
>barre d'outils du Navigateur de projet</link
>. </para>
</step>
<step>
<para
>la fenêtre de conception de tables va apparaître. En regardant en haut de la fenêtre de conception, vous remarquerez que &kexi; vous propose un nom générique, par exemple <emphasis
>table1</emphasis
>, pour la nouvelle table. L'organisation de la table n'est pas encore enregistrée donc vous pourrez lui donner un nom plus approprié plus tard. De plus, pour la même raison, le nom de la table n'est pas encore visible sur le <link linkend="project-navigator-pane"
>Navigateur de projet</link
>. </para>
</step>
</procedure>


<sect2 id="design-window">
<title
>La fenêtre de conception de tables.</title>
<itemizedlist>
<title
>La fenêtre de conception de tables se compose des colonnes suivantes :</title>
<listitem
><para
><guilabel
>CP</guilabel
> – Clé primaire. </para
></listitem>
<listitem
><para
><guilabel
>Légende du champ</guilabel
> – légende du champ, qui va être affichée lors de l'entrée des données. </para
></listitem>
<listitem
><para
><guilabel
>Type de données</guilabel
> – une liste déroulante contenant une liste de types de données, permettant de définir une règle de base pour les données entrées dans un certain champ. Par exemple, quand un champ est défini comme ayant des données de type nombre entier, un utilisateur de la base de données ne pourra pas saisir de lettres dans ce champ. </para
></listitem>
<listitem
><para
><guilabel
>Commentaires</guilabel
> – Vous pouvez saisir ici toute information utile pour comprendre à quoi sert un champ donné. Ce texte supplémentaire sera sauvé avec l'organisation de la table et ne sera visible qu'en mode conception. </para
></listitem>
</itemizedlist>
<para
>Dans la fenêtre de <guilabel
>conception de table</guilabel
>, chaque ligne correspond à un champ de la table. Vous pouvez voir que vous êtes en <emphasis
>mode conception</emphasis
> en regardant si le bouton <guibutton
>Passer en mode conception</guibutton
> est activé dans la barre d'outil principale de &kexi;. </para>


<procedure>
<title
>Concevoir la table <emphasis
>Personnes</emphasis
> </title>
<step
><para
>Dans la première ligne, cliquez sur la cellule dans la colonne <guilabel
>Légende du champ</guilabel
> et saisissez <emphasis
>Prénom</emphasis
> comme légende de champ. </para>
<itemizedlist>
<title
>Notes à propos des noms et légendes des champs </title>
<listitem
><para
>Chaque champ doit avoir un nom et une légende, ils ne peuvent être vides. </para
></listitem>
<listitem
><para
>Le nom d'un champ est un mot utilisé par la base de donnée, normalement invisible aux utilisateurs de l'application de base de donnée. Le nom ne doit pas contenir de caractère spécial (comme ±, ¶, Ü) ou d'espace. Le nom doit seulement contenir des lettres romanes, des nombres et des blancs soulignés &quot;_&quot;. Utilisez ce dernier pour remplacer un espace ou un tiret. </para
></listitem>
<listitem
><para
>Les noms des champs doivent commencer par une lettre ou un blanc souligné &quot;_&quot;, jamais avec un chiffre. </para
></listitem>
<listitem
><para
>L'utilisation de majuscules ou de minuscules n'a pas d'importance. Pour &kexi;, les noms de base de données &quot;Personnes&quot; et &quot;personnes&quot; sont les mêmes. </para
></listitem>
<listitem
><para
>Dans les légendes des champs, par contre, vous pouvez saisir n'importe quel lettre ou caractère spécial. Elles seront affichées aux utilisation de l'application de base de données. </para
></listitem>
</itemizedlist>
</step>

<step>
<itemizedlist>
<title
>De la même manière, saisissez les champs suivants dans la conception de la table : </title>
<listitem
><para
><guilabel
>nom </guilabel
></para
></listitem>
<listitem
><para
>rue </para
></listitem>
<listitem
><para
>numéro </para
></listitem>
<listitem
><para
>ville</para
></listitem>
</itemizedlist>
</step>

<step
><para
>Tous les champs ci-dessus, à part <emphasis
>numéro</emphasis
>, sont de type <emphasis
>texte</emphasis
>. Changez le type du champ  <emphasis
>numéro</emphasis
> en <emphasis
>nombre entier</emphasis
>. Pour faire cela, cliquez sur la cellule dans la colonne <guilabel
>Type de données</guilabel
> et dans la ligne <emphasis
>numéro</emphasis
> puis cliquez sur le bouton de la liste déroulante (vous pouvez aussi appuyer sur <keycombo
><keycap
>F4</keycap
></keycombo
> ou <keycombo action="simul"
>&Alt;<keycap
>Down</keycap
></keycombo
>). La liste des types de données va apparaître. Choisissez le type <emphasis
>Nombre entier</emphasis
>. </para
><para
>À partir de maintenant, le champ <emphasis
>numéro</emphasis
> n'accepte que des nombres. </para
></step>

<!-- TODO setting additional properties: e.g. caption -->
<step
><para
>L'organisation de la table <emphasis
>Personnes</emphasis
> est terminée. Cliquez sur le bouton <guibutton
>Passer en mode données</guibutton
> dans la barre d'outils pour finir la conception et passer en mode données pour la table. Ce mode vous permet de saisir des données dans la table. </para
></step>

<step
><para
>Comme l'organisation n'est pas encore enregistrée dans la table, la fenêtre de dialogue <guibutton
>Enregistrer l'objet sous</guibutton
> apparaît. Vous devez précisez le nom de votre nouvelle table. </para>
<para
>&kexi; vous propose un nom générique, comme <emphasis
>table1</emphasis
>. Pour changer ce nom, saisissez <emphasis
>Personnes</emphasis
> dans le champ <emphasis
>Légende</emphasis
> et appuyez sur la touche <keycombo
> <keycap
>Enter</keycap
></keycombo
> ou cliquez le bouton <guibutton
>OK</guibutton
>. Le champ <guilabel
>Légende</guilabel
> sera utilisé pour présenter la table aux utilisateurs de la base de données &pex; en tant que formulaire. Contrairement au nom, la légende peut contenir n'importe quel caractère, y compris des espaces et des caractères spéciaux. </para>
<para
>Remarquez que le champ <guilabel
>Nom</guilabel
> est automatiquement rempli lorsque vous remplissez le champ <guilabel
>Légende</guilabel
>. Pour vous simplifier la tâche, on conserve la règle consistant à n'utiliser que des lettres, nombres et blancs soulignés &quot;_&quot;. Vous pouvez changer le contenu du champ <guilabel
>Nom</guilabel
> si vous le souhaitez. </para
></step>

<step
><para
>On vous demande ensuite si vous voulez ajouter automatiquement une clé primaire à la table. Cliquez sur le bouton <guibutton
>Ajouter une clé primaire</guibutton
> pour continuer. </para
></step>

<step
><para
>la table <emphasis
>Personnes</emphasis
> a été créée et ouverte en mode données. Son nom apparaît dans le panneau du <guilabel
>Navigateur de projet</guilabel
>. </para
></step>

<step
><para
>Créez la table <emphasis
>numeros_de_telephone</emphasis
>, de la même manière que la table <emphasis
>personnes</emphasis
>. </para
></step>

<step
><para
>Créez un champ <emphasis
>personne</emphasis
> du type <emphasis
>nombre entier</emphasis
> et un champ <emphasis
>telephone</emphasis
> du type <emphasis
>texte</emphasis
>. N'utilisez pas un type numérique, à cause des nombreux formats et préfixes que peuvent avoir les numéros de téléphones. </para
></step>

<step
><para
>Cliquez sur le bouton <guibutton
>Passer en mode données</guibutton
> dans la barre d'outils et saisissez <emphasis
>Téléphones</emphasis
> comme légende de la table. Comme pour la table précédente, laissez &kexi; créer une clé primaire pour vous. </para
></step>
</procedure>

</sect2>

</sect1>
&enteringdataintotables; &querydesigning; &designingforms; &enteringdatausingforms; </chapter>

