SIG 11 ARTICLES DOCUMENTS MEMBRES LIENS

Une des faiblesses de la version 5.1 de Star Office résidait dans son gestionnaire de bases de données, d'une conception relativement archaïque ; cet inconvénient a été remarquablement corrigé dans la version 5.2, puisqu'on trouve, pour accomplir cette tâche, rien moins que l'édition personnelle d'Adabas D 11, le puissant et relativement connu gestionnaire de bases de données relationnelles de Software AG. La gratuité de ce logiciel est compensée par quelques limitations : il ne peut gérer de bases d'une taille supérieure à 100 Mo, et s'il reste utilisable en réseau dans une relation client/serveur, il ne peut accueillir plus de trois clients à la fois. Autant dire que pour une utilisation bureautique sur poste isolé, ou même à l'intérieur d'un petit réseau, ces limitations ne pèsent guère face à l'intérêt d'utiliser gratuitement un serveur de base de données aux normes du SQL92, de la classe des Oracle, Sybase et autres DB2.

I LA CREATION D'UNE BASE DE DONNÉES

Pour les besoins de notre exercice, nous allons créer une base dénommée « computer », où seront conservés tous les éléments nécessaires à notre petite activité de vente directe d'ordinateurs à une clientèle professionnelle. Utiliser un serveur de base de données professionnel présente quand même quelques difficultés et inconvénients, entre autres une procédure beaucoup plus complexe que celle, par exemple, d'Access, pour créer sa base de données. Pour commencer, et pour clarifier la gestion de celle-ci, il est conseillé de créer dans l'Explorer StarOffice un nouveau groupe appelé « Base de données » ; ceci fait, et le groupe une fois ouvert, on va demander Nouveau/Base de données... en faisant un clic droit. Apparaît alors une boîte de dialogue comportant cinq onglets :

Le premier, Général, demande simplement d'entrer le nom de la nouvelle base, ici : « computer ». On remarque, en bas à gauche, le bouton OK pour l'instant en grisé : il ne sera accessible que lorsque toutes les informations indispensables à Ababas auront été saisies.

Les choses se compliquent en abordant le deuxième onglet :

Il est indispensable d'entrer ici deux types d'informations :

  • D'abord, dans la zone Source de données, il faut saisir un identifiant qui permettra à Adabas de générer les divers fichiers système dont, comme tout logiciel de ce type, il a besoin : ici, comp fera l'affaire.
  • On remarque que le bouton OK est maintenant disponible ; cela ne nous empêchera pas de cliquer sur le bouton Nelle source de données..., grâce auquel on va pouvoir vérifier et modifier les paramètres de la base.

Ce bouton affiche la boîte de dialogue que voici :

On remarque, dans la partie basse de la boîte, les chemins d'accès des fichiers systèmes dont il a été question plus haut ; le nom des fichiers commence bien par l'identifiant qui leur a été attribué, comp. Il n'y a pas de modification particulière à apporter à ces paramètres. Par contre, il faut renseigner les champs situés dans la partie supérieure de la boîte, dans la zone Paramètres d'utilisateur.
Comme on l'a dit plus haut, l'édition personnelle d'Adabas D accepte au plus trois utilisateurs ; le premier d'entre eux est nécessairement l'administrateur de la base, qui possède les fichiers et tous les droits d'accès à ceux-ci. Il faut impérativement saisir ici un nom et un mot de passe ; ceux -ci doivent comporter au moins cinq, et au plus dix-huit caractères. Deux autres utilisateurs dotés de privilèges particuliers, et indépendants des utilisateurs ordinaires, sont automatiquement créés, l'utilisateur CONTROL et l'utilisateur du domaine ; il s'agit là de comptes particuliers pour l'administration du serveur Ababas, sur lesquels il n'est pas pour l'instant utile de s'étendre. Par défaut, le mot de passe qui leur est attribué est celui de l'administrateur. La boîte de dialogue se présente alors ainsi :
Les croix rouges à la droite des boutons Mots de passe sont remplacés par des coches : Ababas dispose maintenant de tous les renseignements dont il a besoin, et l'on peut donc cliquer sur OK. Le serveur démarre, ce qui prend un certain temps ; à la fin du processus, une icône s'affiche dans la barre des tâches de Star Office :
Si le feu est au vert, le serveur est actif et tout va bien. On peut vérifier que les paramètres on été correctement prix en compte en affichant les autres onglets de la boîte de dialogue principale :

Dans l'onglet Adabas D on retrouve le nom de l'administrateur,

Et dans l'onglet Administration du serveur les tailles réservées pour la base et la mémoire cache, ainsi que les données de l'utilisateur CONTROL. Il n'est pas sans importance, si l'on n'utilise pas Adabas en dehors de Star Office, de cocher la case Fermeture... ; faute de quoi, le serveur Adabas restera actif et consommera inutilement un quantité considérable de mémoire.

Si l'on jette maintenant un oeil sur l'Explorer Star Office, on y trouvera l'icône suivante :
Ceci étant fait, on remarquera que, dans un système mono-utilisateur comme Windows95/98, où la propriété des fichiers n'est pas gérée, StarOffice n'apportera pas de restrictions à l'accès de la base ; tel ne serait pas le cas sous Windows NT ou Linux. La base de données computer est maintenant créée, il ne reste plus qu'à lui fournir une structure et un contenu, en commençant à créer des tables.

II LA CREATION DES TABLES

Un double-click sur l'icône représentant notre base de données affiche les éléments suivants :
Comme ses concurrents, Adabas D sait gérer quatre principaux types d'objets :
  1. Les tables contiennent toutes les données statiques de la base ; l'organisation de celles-ci, et les relations entre les différentes tables forment l'ossature de la base.
  2. Les requêtes servent principalement à extraire des tables les informations pertinentes.
  3. Les formulaires facilitent la saisie et l'affichage des données en mettant à la disposition de l'utilisateur une interface simple et adaptée à la base.
  4. Les états enfin servent à la publication des données sur support papier.

Dans la première table que nous allons créer, « ref_prod », sera consignée la liste de nos produits, avec leur référence, leur prix hors taxes, et une description de chacun d'eux. Pour ce faire, il suffit d'un click droit sur l'icône Tables ; dans le menu contextuel qui apparaît alors, on choisit Nouveau/Table. Deux possibilités sont alors offertes :

  • AutoPilote permet de lancer un assistant de création aux possibilités assez limitées.
  • Ebauche de table affiche directement la structure de la table. C'est bien sûr cette option que l'on choisira, avec comme résultat l'apparition de cette fenêtre :
L'interface étant très proche de celle d'Access, tout en restant beaucoup plus simple, les habitués ne seront guère dépaysés. Dans la partie supérieure de la boîte, on va successivement :
  1. Saisir un nom de champ en respectant les conventions d'usage et ne faisant en sorte qu'il ne dépasse pas dix-huit caractères.
  2. Choisir le type du champ ; en fonction de ce dernier, les paramètres disponibles dans la partie inférieure de la boîte pourront varier. Ainsi, le premier champ, ref_prod, qui recevra les référence des produits que nous vendons, est un champ texte de longueur fixe ; il peut bénéficier des propriétés suivantes :
  • AutoValeur est l'équivalent du NumeroAuto d'Access : il permet de générer automatiquement un identifiant unique pour chaque enregistrement.
  • Saisie requise autorise ou non la présence d'une valeur NULL. Le champ ref_prod étant destiné à devenir notre clé primaire, sa saisie est obligatoire.
  • La longueur de notre champ est fixe, et établie à 6 caractères.
  • Il n'y a pas de valeur par défaut.
  • Exemple de format, et le bouton ... qui lui est associé, permettent de définir des formats et des mises en formes particuliers, notamment pour les champs numériques et de dates.
Cette première table ne comprend donc que trois champs, que voici :
La saisie de la structure des champs une fois terminée, il reste deux opérations à effectuer :
  • D'abord, définir le champ de clé primaire ; en son absence, Star Office affichera cette boîte de dialogue lors de la fermeture de la table :
  • Une réponse positive, et StarOffice créera un champ numérique supplémentaire de type AutoValeur ; comme nous disposons d'un champ adapté, ref_prod, il sera déclaré comme clé primaire. Pour cela, il suffit de faire un click droit sur la barre grise à gauche du nom du champ, et de choisir Clé primaire.
  • Enfin, il faut enregistrer le table, et lui donner un nom. Si on ferme l'ébauche sans l'avoir fait, un message rappelle cette nécessité, et affiche cette boîte où l'on entrera le nom de la table :
Si l'on retourne maintenant à notre ébauche, on remarquera, en bas à gauche, un onglet Index : à l'origine en grisé, cet onglet est accessible depuis que l'on a défini une clé primaire, et par voie de conséquence un index. D'un click, on affiche la fenêtre suivante :
Le champ de clé primaire est indexé automatiquement, et sans possibilité de doublons, d'où la coche dans le champ univoque. Suivant les besoins, on peut bien sûr rajouter des index.

III LES TYPES DE CHAMPS

Les types de champs proposés par StarOffice/Adabas restent classiques pour un gestionnaire de bases de données de ce type ; on trouve notamment :
  • Deux types de champs texte, le texte normal, alias VARCHAR, et le texte fixe, CHAR, dont la longueur doit être précisée lors de la création de la table. Ces champs acceptent au maximum 254 caractères.
  • Un champ nombre susceptible de connaître les déclinaisons suivantes :
    • byte représente un octet et va de 1 à 256
    • smallint, sur deux octets, va à peu près jusqu'à 65 000
    • integer, l'entier le plus long, est codé sur quatre octets
    • single, aussi sur quatre octets, est le plus petit nombre réel
    • double, pour finir, compte huit octets
  • boolean, champ de type oui/non
  • Trois possibilités existent pour les dates et les heures :
    • date donne la date en jours, mois et année
    • heure, alias TIME, l'heure en heure, minutes et secondes
    • enfin date/heure ou TIMESTAMP un moment précis à la milliseconde.
  • Le champ monétaire, enfin, est un champ numérique formaté suivant les normes monétaires locales.

IV CLES PRIMAIRES ET RELATIONS

En plus de la table produits, on va créer quatre autres tables :
  1. Une table clients où l'on trouvera ref_client, notre clé primaire, nom_client, adresse_1, adresse_2, code_postal et ville pour enregistrer l'adresse détaillée de l'entreprise, ainsi que tel_standard pour le téléphone
  2. Une table contacts pour les données nominatives, avec ref_client, type_contact, nom_contact, prenom_contact, fonction_contact, tel_contact, email_contact et enfin un champ booléen, principal, qui permettra de déterminer si la personne en question est un contact privilégié dans l'entreprise. Cette table ne nécessitant pas de clé primaire, on définira des index comme ceci :
En raison de possibles homonymes, le champ nom ne peut pas être indexé sans doublons ; tel n'est pas le cas du champ fonction.
  1. Une table commandes avec ref_com comme clé primaire, ref_client et date pour la date de la commande.
  2. Et enfin une table details_commandes où l'on reprendra ref_com, ref_prod, plus un champ numérique de type SMALLINT, quantité. Là encore, on n'aura pas besoin de clé primaire.
A noter que, s'il est théoriquement possible de partager une clé entre plusieurs champs avec une sélection multiple, donc avec la touche MAJ ou ALT, le premier de la liste sera toujours indexé sans doublons, ce qui interdit de facto cet usage.
Les tables et leurs structures déterminés et enregistrés, il ne reste plus qu'à définir les relations. On fera pour cela un click droit sur l'icône Tables dans l'Explorer StarOffice, pour afficher la fenêtre que voici :
Au départ, elle est naturellement vide ; il faut d'abord commencer par rajouter les tables en cliquant sur l'icône de gauche :
On va sélectionner les tables une à une et cliquer sur Ajouter ; ceci fait, on retrouve la première fenêtre, où l'on aura deux manières de définir les relations .
On pourra cliquer sur l'icône de droite pour afficher la boîte de dialogue que voici :
On définit ici les relations :
  • D'abord en choisissant la table de départ et la table d'arrivée dans la zone Tables impliquées
  • Puis en déterminant les champs associés dans chaque table
  • Enfin en précisant les contraintes d'intégrité relationnelles, d'une part pour la mise à jour, d'autre part pour la suppression, des données. Seules sont accessibles les fonctions pertinentes pour le gestionnaire de bases de données utilisé : visiblement, dans le premier cas, Adabas D ne prend pas en charge l'intégrité relationnelle
On pourra aussi bien établir ces relations par cliquer-glisser entre les champs concernés,avec comme résultat la fenêtre suivante :
A noter que, comme dans Access, un double click sur un des liens permet d'afficher la boîte de dialogue des propriétés de la relation ; on s'aperçoit aussi que, dans notre exemple, toutes les relations sont de type classique, c'est à dire de un à plusieurs.

Denis Berger, 5 septembre 2000

 

SIG 11 ARTICLES DOCUMENTS MEMBRES LIENS

info@sig-11.org