Outils pour utilisateurs

Outils du site


issue67:tutoriel_-_libreoffice_p._20

Table des matières

1

Databases are used to store information about objects or data. In the previous tutorial, we mapped out how our books database would look. We designed tables for our data, and defined relationships between those tables. Now, we will put our planning into action by actually creating the database file, adding the tables, and creating the relationships. Creating the Database File As I mentioned before, Base is not a database file but an interface for accessing and manipulating a database file. Although it is possible to connect to many different database types, we will use the default HSQL database for our books database. To start the database wizard, select Database from the LibreOffice Home screen or File > New > Database. The first screen of the database wizard lets us choose whether we want to open an existing database or create a new one. Select Create a New Database, and click Next.

Les bases de données sont utilisées pour stocker des informations sur des objets ou des données. Dans le tutoriel précédent, nous avons défini comment serait notre base de données de livres. Nous avons conçu nos tables pour les données et défini les relations entre ces tables. Maintenant, nous allons réaliser ce que nous avons prévu et créer réellement le fichier de base de données, en ajoutant les tables et en créant les relations.

Création du fichier de base de données

Comme je l'ai mentionné précédemment, Base n'est pas un fichier de base de données, mais une interface pour accéder à, et manipuler, un fichier de base de données. Bien qu'il soit possible de se connecter à de nombreux types de bases de données différents, nous allons utiliser la base de données en HSQL par défaut pour notre base de données de livres.

Pour lancer l'assistant de base de données, sélectionnez Database à partir de l'écran d'accueil LibreOffice ou Fichier > Nouveau > Base de données. Le premier écran de l'assistant de base de données nous permet de choisir si nous voulons ouvrir une base de données existante ou en créer une nouvelle. Sélectionnez Créer une nouvelle base de données, puis cliquez sur Suivant.

The second screen of the wizard asks us whether we want to register the database and what we want to do once the database has been created. Registering a database in LibreOffice makes it available in all our documents. We won't need this for our database, so select No – do not register the database. Check Open the Database for Editing, and click Finish. LibreOffice will open a file dialog to define a location and name for the database. I simply named the file: books Once you have a name and location for the database file, the main Base screen opens. Down the left side, you have the different pieces which can make up a database file. The top right gives you access to the different actions you can take for each part, and the lower right shows the objects already created.

Le deuxième écran de l'assistant nous demande si nous voulons enregistrer la base de données et ce que nous voulons faire une fois que la base de données aura été créée. L'enregistrement d'une base de données dans LibreOffice la rend disponible dans tous nos documents. Nous n'avons pas besoin de cela pour notre base de données, vous sélectionnez donc Non - ne pas enregistrer la base de données. Cochez Ouvrir la base de données pour l'édition, puis cliquez sur Terminer. LibreOffice va ouvrir une boîte de dialogue pour définir un emplacement et un nom pour la base de données. J'ai simplement nommé le fichier : books.

Une fois que vous avez un nom et un emplacement pour le fichier de base de données, l'écran principal de Base s'ouvre. Sur le côté gauche, vous avez les différents éléments qui peuvent constituer un fichier de base de données. En haut à droite, vous avez l'accès aux différentes actions disponibles pour chaque partie et, en bas à droite, il y a les objets déjà créés.

2

Field Types Before we create our first table, we need to discuss some of the common database field types. When you select a type for a field, you are presented with many options for the type. Many of the types are identical, and are there for compatibility reasons. The most common types are: Integer – a whole number, eg. 123 VarChar – a variable length string of characters. You will define the maximum length for the VarChar. Date – a date value, of course, eg. 10-15-2012 (the exact format is location specific) Time – a time value, such as 09:15:25 decimal – a real number including the whole (integer) number and its fractional part, eg. 123.25 (the part separator is location specific) For our purposes, we will use Integer and VarChar.

Types de champs

Avant de créer notre premier tableau, nous devons discuter de quelques-uns des types les plus courants de champs de base de données. Lorsque vous sélectionnez un type pour un champ, on vous présente de nombreuses options pour ce type. Beaucoup de types sont identiques et sont là pour des raisons de compatibilité. Les types les plus courants sont les suivants :

Integer(Entier) : un nombre entier, par exemple 123 VarChar : une chaîne de caractères de longueur variable. Vous allez définir la longueur maximale de la VarChar. Date : une valeur de date, bien sûr, par exemple 15/10/2012 (le format exact spécifique à votre pays) Temps : une valeur de temps, telles que 09:15:25 Decimal : un nombre réel comprenant la partie entière et la partie fractionnaire, par exemple 123,25 (le séparateur de partie est spécifique à votre pays)

Pour nos besoins, nous allons utiliser Integer et VarChar.

Creating the Tables Base has three different ways to create tables: through a table wizard, through design view, and by SQL statements. The table wizard is good only to create specific types of tables by picking from a list of predefined field names. The SQL method requires you to know and understand the SQL language and is beyond the scope of this article. The design view is usually the best choice, and presents you with a list you fill in to create your table. We will use the design view to create our tables for this project. We will start with the Books table. Select Tables from the Database pane on the left. In the Tasks pane, click on Create Table in Design View… to open the Design View dialog. Across the top you have labels for each of the elements of a field: Field Name, Field Type, and Description. The Description is optional but is useful for making notes about how a field is used. At the bottom, we see the Field Properties. This section will change according to the type of field we select.

Création des tables

Base a trois façons de créer des tables : grâce à un assistant de table, par la vue de conception et par des instructions SQL. L'assistant de table n'est valable que pour créer des types spécifiques de tables en choisissant parmi une liste de noms de champs prédéfinis. La méthode SQL vous oblige à connaître et à comprendre le langage SQL et dépasse le cadre de cet article. La vue de conception est généralement le meilleur choix et vous présente une liste que vous remplirez pour créer votre table. Nous allons utiliser la vue de conception pour créer nos tables pour ce projet.

Nous allons commencer avec la table Books. Cliquez sur Tables dans le volet Database à gauche. Dans le volet Tasks, cliquez sur Create Table in Design View… pour ouvrir la boîte de dialogue Design View. Dans la partie du haut vous avez des étiquettes pour chacun des éléments d'un champ : nom du champ (Field Name), type de champ (Field Type) et Description. La description est facultative, mais elle est utile pour prendre des notes sur la façon dont un champ est utilisé. En bas, nous voyons les Propriétés du champ (Field Properties). Cette section évoluera en fonction du type de champ que nous choisirons.

3

In the first field, enter the name BookID. From the dropdown box in Field Type, select Integer. Adding a description is up to you. Under the field properties, change AutoValue to Yes. This will place a key icon in the box beside the field record showing it is the primary (or key) index. In the second row, type Title for the name. Give this one a type VarChar. Again, a description is up to you. In the field properties, leave the length at 100, the default for VarChar. The third field is Published with a type of VarChar. Change the length in the field properties to 12. I chose VarChar rather than date because we just want the year, and if the publishing date of a book is unknown, I can enter just “Unknown”. Click on the save icon, and Base prompts you for a table name. Enter Books. Our tables for Authors and Media are created in much the same way. For Authors, create two fields: AuthorID, integer (AutoValue Yes); and Name, VarChar (length 50). For Media, MediaID, integer (AutoValue Yes); and Type, VarChar (length 25).

Dans le premier champ, entrez le nom BookID. Dans la boîte déroulante du Type de champ, cliquez sur Integer. À vous de choisir d'ajouter - ou non - une description. Sous les propriétés du champ, changer AutoValue en Yes. Cela placera une icône de clé dans la case à côté de l'enregistrement du champ montrant qu'il est l'index primaire (ou clé). Dans la deuxième ligne, tapez Title pour le nom. Donnez lui un type VarChar. Là encore, entrez une description si vous voulez. Dans les propriétés du champ, laissez la longueur à 100, la valeur par défaut pour VarChar. Le troisième champ est Published (Publié) avec un type mis à VarChar. Changez la longueur dans les propriétés du champ à 12. J'ai choisi VarChar plutôt que la date parce que nous voulons juste l'année et, si la date de publication d'un livre n'est pas connue, je peux entrer simplement « Unknown » (Inconnue). Cliquez sur l'icône de sauvegarde et Base vous invite à entrer un nom de table. Tapez Books.

Nos tables pour les auteurs et les médias sont créées à peu près de la même manière. Pour Authors (les auteurs), créez deux champs : AuthorID, integer (AutoValue Yes); et Name, VarChar (longueur 50). Pour Media, MediaID, integer (AutoValue Yes) et Pour Type, VarChar (longueur 25).

Our two foreign key tables need a little different treatment. In BooksAuthors, create two integer fields named BookID and AuthorID. Click on the icon box beside the first record. Holding down the Shift key, click in the icon box for the second. At this point, you should have both records selected. Right-click the icon box and select Primary Key from the context menu. This creates a combination key. The two values together create the primary key, which uniquely identifies each record in the table. For the BooksMedia table, create two integer fields named BookID and MediaID. Select both fields, right-click, and select Primary Key.

Nos deux tables de clés étrangères nécessitent un traitement un peu différent. Dans BooksAuthors, créez deux champs entiers nommés BookID et AuthorID. Cliquez sur la case à côté de l'icône du premier enregistrement. En maintenant la touche Maj enfoncée, cliquez dans la case icône du second. Ainsi, vous devrez avoir sélectionné les deux enregistrements. Cliquez droit sur la case icône, puis choisissez Primary Key (clé primaire) dans le menu contextuel. Cela crée une clé combinée. Les deux valeurs ensemble créent la clé primaire, qui identifie de façon unique chaque enregistrement de la table. Pour la table BooksMedia, créez deux champs entiers nommés BookID et MediaID. Sélectionnez les deux champs, faites un clic droit, et sélectionnez Primary Key.

Create Relationships Once we have all our tables defined, we can create the relationships that bind everything together. We will create relationships between our three main tables and our foreign key tables. The direction in which you drag the fields is important, so pay close attention to how you do it. To start the Relation Design dialog, go to Tools > Relationships. You are presented with a list of tables. Select a table and click Add to add the table to the Relation Design. Add the tables in the following order to make it easy: Authors, BooksAuthors, Books, BooksMedia, Media. Once all the tables are added, select Close. Drag the BookID field in Books to BookID in BooksAuthors. A Relation dialog pops up. Under Update option, pick Update cascade and OK. This will cause the field to update when the Books table updates. Drag the AuthorID in Authors to AuthorID in BooksAuthors. Select Update cascade in the Relation dialog. Next, drag the BookID in Books to BookID in BooksMedia. Select Update cascade. Finally, drag MediaID in Media to MediaID in BooksMedia. Select Update cascade. Your relation design should look something like the one pictured below. With our tables and relationships created, we are ready to begin work on creating forms for data input. In our next How-To, we will create the forms for data entry. Everything will come together to create a usable data entry system.

Créer des relations

Une fois que nous avons défini toutes nos tables, nous pouvons créer les relations qui lient tout ensemble. Nous allons créer des relations entre nos trois principaux tableaux et nos tables de clés étrangères. La direction dans laquelle vous faites glisser les champs est importante, donc attention à la façon dont vous le faites.

Pour lancer la boîte de dialogue de définition de relation (Relation Design), allez dans Tools > Relationships. Une liste de tables apparaît. Choisissez une table et cliquez sur Add pour ajouter la table dans Relation Design. Ajoutez les tables dans l'ordre suivant pour que ce soit facile : Authors, BooksAuthors, Books, BooksMedia, Media. Une fois que toutes les tables sont ajoutées, cliquez sur Close.

Faites glisser le champ BookID de Books vers BookID de BooksAuthors. Une boîte de dialogue Relations s'affiche. Sous l'option Update (mise à jour), cliquez sur Update cascade et OK. Cela forcera la mise à jour du champ lors des mises à jour de la table Books. Faites glisser le AuthorID de Authors vers AuthorID de BooksAuthors. Sélectionnez Update cascade dans la boîte de dialogue Relations. Ensuite, faites glisser le BookID de Books vers BookID de BooksMedia. Sélectionnez Update cascade. Enfin, faites glisser MediaID de Media vers MediaID de BooksMedia. Sélectionnez Update cascade. La conception de vos relations devrait ressembler à celui montré ci-dessous.

Avec nos tables et les relations créées, nous sommes prêts à commencer notre travail sur la création de formulaires de saisie de données. Dans notre prochain tutoriel, nous allons créer les formulaires de saisie de données. L'ensemble se réunira pour créer un système de saisie de données utilisable.

issue67/tutoriel_-_libreoffice_p._20.txt · Dernière modification : 2013/01/18 16:38 de auntiee