Accueil Recherche | Plan Technique | Liens | Actualités | Formation | Emploi | Forums | Base
TUTORIEL cerig.efpg.inpg.fr 
Vous êtes ici : Accueil > Formation > Tutoriels > Bases de données relationnelles > Les tables
        Révision : 18 janvier 2003
 
                  Les bases de données
relationnelles
                 
Chap.
précéd.
Plan du
tutoriel
Liste des
tutoriels
Chap.
suivant
Chapitre 2 : Les tables
1 - Introduction
                  Nous avons vu au chapitre précédent que, dans les BDD, les données sont stockées dans des tables. Nous aborderons donc l'étude des BDD par celle de la création et de la manipulation des tables. Dans les bases de données, la table est le premier objet par ordre d'importance décroissante. Pas de table, pas de données !          
Pour étudier les tables, ce tutoriel (encore appelé "cours en ligne" ou tutorial) utilise le SGBD Access comme support pratique.
2 - La création d'une table
                  La première opération consiste à créer d'abord une base de données vide. Le logiciel réclame un nom de fichier et un seul, car toutes les informations relatives à la BDD seront stockées dans le même fichier. Ce dernier comporte l'extension ".mdb", et sa taille initiale est voisine de 96-100 ko).          
La fenêtre relative à la base de données apparaît. Dans la colonne de gauche figurent les "objets" de la base de données. Un mot sur ces objets, qui sont utilisés :
            les tables, pour stocker les données ;
  les requêtes, pour retrouver les données ;
  les formulaires, pour saisir les données ou les visualiser à l'écran ;
  les états, pour imprimer les données ;
  les pages, pour communiquer avec la BDD via un navigateur (Internet Explorer uniquement) ;
    les macros, pour automatiser des opérations répétitives effectuées sur la base ;
    les modules, pour rajouter des fonctionnalités grâce à de la programmation en VBA (Visual Basic for Applications).
Sélectionner l'objet table, s'il ne l'est pas déjà par défaut. Trois méthodes sont proposées pour créer une nouvelle table :
            créer une table en mode création. C'est la méthode générale, la seule que nous recommandions ;
  créer une table à l'aide de l'assistant. Ce dernier vous offre un certain nombre de tables toutes prêtes dont vous pouvez vous inspirer. Cependant, rien ne remplace une bonne analyse du problème de stockage des données, suivie d'une réalisation personnalisée et adaptée ;
  créer une table en entrant des données. Une table toute prête vous est proposée, dans laquelle vous pouvez immédiatement saisir des données, le logiciel se chargeant de déterminer leur type et leur format. Cette façon de procéder est déplorable, et nous la déconseillons absolument, sauf pour des essais sans suite.
En mode création, une fenêtre s'ouvre qui permet de définir la table champ par champ, en précisant le nom du champ et le type de données qu'il contient.
3 - Les types de données
                  Tous les SGBD offrent la possibilité de stocker du texte, de l'information numérique, et des dates (avec ou sans les heures). Le type "monétaire" est un cas particulier d'information numérique, et le lien hypertexte un cas particulier de texte. Lorsque l'on utilise Access, une liste déroulante propose les types de données suivants :          
            texte (type par défaut)
  mémo (texte contenant plus de 255 caractères)
  numérique
  date/heure
    monétaire (cas particulier du numérique)
    numéroauto : numérotation automatique, séquentielle ou aléatoire
    oui/non, c'est à dire booléen (deux valeurs possibles seulement)
    objet OLE : pour le stockage des données numériques autres que le texte, les nombres les dates
    lien hypertexte : cas particulier du type texte
Le tableau ci-dessous précise les propriétés de ces différents types. Il est nécessaire, à ce stade, d'effectuer les bons choix. Si l'on modifie ultérieurement le type de données d'un champ, alors que la table contient déjà des informations, ces dernières risquent d'être tronquées ou perdues.
       
Type Propriétés Taille
Texte Le champ peut contenir n'importe quel caractère alphanumérique (chiffre, lettre, signe de ponctuation). Ce type de données est utilisé pour le texte, mais aussi pour les nombres sur lesquels on n'effectue pas de calculs (code postal, numéro de téléphone) < 256 caractères
Mémo Le champ peut contenir n'importe quel caractère alphanumérique. Le type mémo est réservé aux champs de type texte susceptibles de contenir plus de 255 caractères < 65.536 caractères
Numérique Données numériques (non monétaires) susceptibles d'être utilisées dans des opérations mathématiques 1 à 16 octets
Date/heure Données de date et/ou d'heure (pour les années comprises entre 100 et 9999) 8 octets
Monétaire Données monétaires, présentées avec deux chiffres après la virgule, et le symbole monétaire du pays (€ pour la France) 8 octets
NuméroAuto Numérotation automatique, séquentielle (commençant à 1) ou aléatoire. Souvent utilisée pour générer le code des enregistrements 4 octets (entier long)
Oui/non Variable booléenne (deux valeurs possibles uniquement) 1 bit
Objet OLE Pour lier un objet extérieur, ou incorporer un objet dans la base. Souvent utilisé pour les données multimédia. Peut servir pour tout fichier binaire (document Word, feuille de calcul Excel, etc.) < 1 Go
Lien hypertexte Permet d'enregistrer des URL de sites web et des adresses de courrier électronique < 2049 caractères
       
                  Pour sauvegarder votre travail, cliquez sur l'icône "Enregistrer" dans la barre d'outils. Lorsque tous les champs sont définis, fermez la fenêtre, en répondant "non" à la question relative à la clé primaire, et en donnant un nom à la table. Ce nom apparaît désormais dans la fenêtre relative à la base de données. Nous verrons, au chapitre 4, à quoi set la clé primaire.          
Pour modifier une table, il faut la sélectionner (dans la fenêtre base de données), puis cliquer sur l'icône "Modifier". La fenêtre s'ouvre en mode création comme précédemment.
Pour supprimer une table, il faut la sélectionner et utiliser la fonction "supprimer" (clic droit) ou la touche du même nom.
4 - Les propriétés des champs
                  La partie inférieure de la fenêtre du mode création est intitulée "Propriétés du champ". Ces propriétés se trouvent rassemblées dans l'onglet "Général".          
La liste des propriétés d'un champ dépend du type de données choisi, mais une propriété donnée peut apparaître pour des types de données différents. Exemple : la propriété "Taille du champ" apparaît pour les types de données "Texte", "Numérique"et "NuméroAuto".
Les principales propriétés sont :
            Taille du champ ;
  Format : définit la manière dont les informations s'affichent. Exemple : le format monétaire affiche deux chiffres après la virgule, puis un espace et le symbole de l'euro ;
  Masque de saisie : guide la saisie des données et exerce un contrôle. Exemple : un code postal français est composé de cinq chiffres ;
  Légende : définit le nom de l'étiquette dans le formulaire associé à la table. Il est préférable d'implémenter cette propriété au niveau du formulaire lui-même ;
  Valeur par défaut : valeur qui s'affiche dans le champ avant saisie par l'utilisateur ;
  Valide si : condition de validité du champ. Exemple : une notation sur 20 doit être comprise entre 0 et 20 ;
  Message si erreur : ce message s'affiche si la condition de validité précédente n'est pas satisfaite ;
  Null interdit : le champ correspondant ne peut rester vide lors de la saisie d'un enregistrement ;
  Chaîne vide autorisée : le champ peut contenir une chaîne ne comportant aucun caractère ;
  Indexé : un fichier index est associé au champ de telle sorte que les recherches d'information s'effectuent plus rapidement. Le chapitre 3 explique ce qu'est un index, et comment on le crée ;
  Compression unicode : un octet suffit pour saisir un caractère (pour les alphabets utilisés dans l'Europe de l'ouest et dans le monde anglophone).
Remarque 1 : la propriété "mode IME" concerne l'usage d'Access en japonais, et ne nous intéresse donc pas ici.
Pour faire fonctionner correctement certaines requêtes, il est important de bien comprendre la différence entre la valeur Null, une chaîne vide et une chaîne blanche. Un champ d'un enregistrement :
            possède la valeur Null si aucune information n'a été introduite, ou si l'information présente a été supprimée ;
  contient une chaîne vide si on a défini la valeur par défaut du champ à l'aide de deux guillemets contigus (""), et si aucune information n'a été introduite (ou si l'information introduite a été supprimée) ;
  contient une chaîne "blanche", si un ou plusieurs espaces ont été introduits et n'ont pas été supprimés.
La définition de certaines propriétés des champs soulève des problèmes de syntaxe. La touche F1 fournit une aide contextuelle, c'est à dire liée à la position du curseur. On pourra également consulter les annexes suivantes :
            Annexe 1 : taille d'un champ pour les données de type Texte, Numérique, Monétaire et NuméroAuto ;
  Annexe 2 : format prédéfini ou format personnalisé ;
  Annexe 3 : les masques de saisie (prédéfinis ou personnalisés) ;
    Annexe 4 : valeurs par défaut ;
  Annexe 5 : règles de validation ;
    Annexe 6 : traitement d'un champ vierge ;
    Annexe 7 : indexation d'un champ ;
    Annexe 8 : compression unicode.
5 - Saisir les données
                  Pour introduire des données dans une table, il faut l'ouvrir en mode "feuille de données". Dans la fenêtre base de données (l'objet table étant sélectionné), on peut  :          
            faire un double clic sur le nom de la table ;
  sélectionner la table, et cliquer sur l'icône "Ouvrir" ;
  faire un clic droit sur la table et sélectionner "Ouvrir" dans la liste déroulante.
Sur le plan pratique, pour passer facilement du mode "création" au mode "feuille de données" ou vice versa, il suffit de cliquer sur l'icône "affichage" représentée ci-contre. Cette icône est présente dès que l'on se trouve déjà dans l'un des deux modes précités.
On peut ainsi vérifier le bon fonctionnement des listes, formats, masques de saisie, etc. On notera que le contrôle des informations se fait lors du passage à l'enregistrement suivant. Par exemple, si une liste est obligatoire, une information qui ne fait pas partie de la liste ne sera rejetée qu'au passage à la ligne suivante. Avec l'affichage d'un message qui, selon les bonnes traditions de l'informatique, risque fort d'être sibyllin...
6 - Conclusion
                  Il est essentiel de bien réaliser que, dans les BDD, les table se présentent sous un double aspect. C'est ainsi qu'il faut distinguer :          
            l'aspect structure : noms des champs, types de données, propriétés, listes -- en bref, tout ce qui est défini dans le mode "création" de la table ;
  l'aspect contenu : les valeurs introduites dans les champs des divers enregistrements, en mode "feuille de données".
Nous rencontrerons aussi ce double aspect à propos des requêtes. Lors des opérations d'import/export, le système nous demandera si seule la structure est transportée, ou si les données doivent suivre.
Chapitre précédent Plan du tutoriel Liste des tutoriels Chapitre suivant
Accueil | Technique | Liens | Actualités | Formation | Emploi | Forums | Base
Copyright © CERIG/EFPG 1996-2003
Réalisation et mise en page : J.C. Sohm