formateur informatique

Dimensionner les champs de tables, exercice Access

Accueil  >  Bureautique  >  Access  >  Access Débutant  >  Dimensionner les champs de tables, exercice Access
Livres à télécharger


Pour partager cette vidéo sur les réseaux sociaux, voici son url absolue :

Pour l'intégrer sur votre site internet ou blog, vous pouvez l'embarquer :

Sujets et formations similaires :


Dimensionner les champs de tables Access

Dans ce troisième exercice Acccess, nous abordons une étape cruciale dans le processus de construction de notre base de données. Nos tables sont prêtes, les champs ont été typés et les clés primaires ont été posées. Désormais, nous devons dimensionner au plus juste ces champs. L'enjeu consiste à ne pas allouer trop de ressources pour préserver les performances.



Base de données source
Pour poursuivre la conception de l'ossature de la base de données, nous devons récupérer les travaux là ou nous les avions laissés. Nous retrouvons les six tables de notre base de données. Elles sont listées dans le volet des objets Access, sur la gauche de l'écran.

Tables de base de données Access à configurer

Dans l'exercice précédent, nous avions importé depuis Excel, les villes et codes postaux de la région PACA dans la table Communes. A ce titre nous remarquons qu'une même ville associée à un même code postal est répétée à plusieurs reprises. Lorsque nous aborderons les requêtes Access, nous mettrons en oeuvre une solution pour purger cette table de ses doublons.

Ajuster la dimension des champs
Nous l'avons expliqué, dimensionner les champs au plus juste est primordial dans la conception d'une base de données, avant de chercher à aller plus loin. Par exemple, si un champ de type texte est destiné à recevoir des informations qui ne dépasseront jamais les 10 lettres, nous ne devons pas conserver la valeur de 255 caractères proposée par défaut. En ajustant cet attribut, Access allouera l'espace mémoire strictement nécessaire pour gérer ce champ. Ce gain est d'autant plus sensible lorsque le nombre d'enregistrements des tables devient important. Nous proposons de procéder par ordre, en prenant les tables dans la chronologie proposée par le volet Access.
  • Dans le volet des objets Access, cliquer droit sur la table Clients,
  • Dans le menu contextuel, choisir Mode création,
Nous basculons ainsi en conception de table. Le premier champ, le champ de la clé primaire, est sélectionné par défaut. Nous ne devons pas modifier sa taille, définie sur Entier long, dans l'onglet général, en bas de la fenêtre Access. En effet, nous devons prévoir d'ajouter autant d'enregistrements que nécessaire, au fil des années d'exploitation. Comme l'indique le support Office en ligne, un entier long accepte des valeurs jusqu'à 2 147 483 647. Ses besoins en stockage sont de quatre octets, ce qui est raisonnable. De plus, avant d'atteindre 2 Milliards de clients, nous avons de la marge. Mais au cours des années, certains sont supprimés puis réapparaissent. Les identifiants continuent de s'auto-incrémenter. Un identifiant déjà exploité, bien que supprimé, n'est plus utilisé.
  • Sélectionner le champ Client_civilite,
Son type de données est défini sur Texte court. La taille qui lui est attribuée par défaut est de 255 caractères. C'est ce que mentionne son attribut Taille du champ, dans l'onglet général, en bas de la fenêtre Access. Dans ce champ, seules les mentions Madame et Monsieur doivent être inscrites. A l'avenir d'ailleurs, nous construirons une liste de choix proposant ces deux valeurs. La taille maximale attendue est donc de 8 caractères. Notre champ est largement surdimensionné.
  • Dans la zone Taille du champ, saisir : 8,
  • Puis, enregistrer les modifications (CTRL + S),
Ajuster taille de champ de table Access pour économiser les ressources

Comme nous sommes en train d'agir sur la structure de la table et que des données existent, une alerte apparaît. Access nous informe que la taille du champ n'est potentiellement plus adaptée. Mais nous connaissons le contenu de ce dernier.
  • Valider cette alerte en cliquant sur le bouton Oui,
Si vous affichez la table en mode feuille de données, vous constatez qu'aucune perte n'est à déplorer. Si vous simulez la saisie d'un nouvel enregistrement, vous constatez qu'il n'est pas possible de taper au-delà de 8 lettres dans le champ Client_civilite. Ces réglages sont précieux. Poursuivons !
  • En mode conception, sélectionner le champ Client_nom,
  • Définir son attribut Taille du champ sur 50 caractères,
Nous réduisons sensiblement la capacité mais nous prévoyons large malgré tout. Certains noms composés, notamment latins, sont relativement longs.
  • Sélectionner le champ Client_prenom,
  • Réduire sa taille à 30 caractères,
  • Sélectionner le champ Client_dep,
  • Réduire sa taille à 5 caractères,


Un code postal est en effet composé de 5 chiffres, ni plus ni moins. Ce dimensionnement est donc réalisé au plus juste. Lorsque nous aborderons les masques de saisie, nous verrons comment imposer la saisie de chiffres, en empêchant l'inscription de lettres.
  • Sélectionner enfin le champ Client_ville,
  • Réduire sa taille à 50 caractères,
  • Enregistrer les modifications (CTRL + S) et valider le message d'alerte par Oui,
  • Afficher la table en mode feuille de données,
Aucune information n'a été perdue comme vous le constatez. Une fois encore, si vous tentez de taper au-delà de 5 caractères dans le champ Client_dep, le réglage défini bloque la saisie. Ces tailles de champs sont donc aussi l'occasion de sécuriser la saisie de certaines informations. Les codes postaux sont un très bon exemple.
  • Cliquer sur la croix de l'onglet pour fermer la table Clients,
  • Dans le volet des objets Access, cliquer droit sur la table Commandes,
  • Dans le menu contextuel, choisir Mode création,
Tous les champs de cette table sont déjà configurés au plus juste. Le champ de la clé primaire ne doit pas être modifié pour les mêmes raisons que celles évoquées précédemment. Le champ Com_client est ce que l'on appelle une clé externe ou une clé étrangère. Il doit servir de liaison avec le champ de la clé primaire de la table Clients. Il doit donc proposer le même type et la même taille, que nous conservons sur Entier long. Le type de données du champ Com_montant est défini sur Monétaire. La taille de ce champ est implicitement gérée par ce type de données.
  • Néanmoins, saisir la valeur 2 dans son attribut Décimales de l'onglet Général,
Très simplement et à toutes fins utiles, nous homogénéisons l'affichage des valeurs monétaires. 2 chiffres après la virgule suffisent en termes de précision.

Le type de données du champ Com_date est défini sur Date/Heure. Là aussi, la taille de ce champ est implicitement gérée par ce type. Néanmoins, un réglage peut s'avérer précieux sur ce champ. A chaque nouvelle inscription de commande, nous connaissons la date. Il s'agit de la date du jour, délivrée par la fonction Access Date.
  • Dans l'attribut Valeur par défaut de son onglet général, taper l'expression suivante :
=Date()
  • Enregistrer les modifications et afficher la table en mode feuille de données,
Configurer date pas défaut dans champ de table Access

Comme vous le constatez, pour toute nouvelle potentielle commande, la date du jour est déjà inscrite par défaut. Il s'agit d'une inscription automatique. En conséquence, nous n'aurons pas à gérer ce champ.
  • Cliquer sur la croix de l'onglet pour fermer cette table,
  • Afficher désormais la table Communes en conception,
Comme toujours, le champ Commune_id de la clé primaire n'est pas à régler.
  • Régler la taille du champ Commune_nom à 50 caractères,
  • Régler la taille du champ Commune_dep à 5 caractères,
Il s'agit en effet d'un code postal. Comme précédemment, ce champ accueille nécessairement une suite de 5 chiffres.
  • Enregistrer les modifications (CTRL + S) et valider le message d'alerte,
  • Puis, afficher la table en mode feuille de données,
Là encore, aucune perte d'information n'est à déplorer. D'ailleurs, nous visualisons très rapidement la présence des doublons que nous évoquions. Là encore, la saisie d'un code postal est limitée à 5 caractères. En revanche, durant la phase d'importation, nous pouvons remarquer que les zéros en préfixe ont été perdus. Un code postal comme 06910 pour les Alpes Maritimes est transformé en : 6910. Il s'agit d'une sécurité que nous devrons ajouter grâce aux masques de saisie pour les prochains codes postaux. Pour tous ceux déjà archivés, il conviendra d'entreprendre une mise à jour avec une requête Action.
  • Cliquer sur la croix de l'onglet pour fermer la table,
  • Puis, afficher la table Detail_commandes en conception,
Comme nous l'avons expliqué, le champ Det_num de la clé primaire est déjà configuré. Il en va de même pour le champ de la clé externe Det_com destiné à établir la relation avec la table Commandes. Le type de données du champ Det_remise est configuré sur Monétaire. Il est donc implicitement dimensionné.
  • Régler néanmoins son attribut Décimales sur 2,
  • Puis, sélectionner le champ Det_ref,
  • Dans son attribut Taille du champ, saisir 20,
Les références qui seront inscrites dans ce champ correspondent aux codes articles de la clé primaire dans la table Produits. Elles sont destinées à identifier les produits achetés par le client, lors de sa commande. Ces références sont codées sur une dizaine de caractères. Nous prévoyons un peu de marge mais conservons un champ correctement dimensionné.
  • Sélectionner désormais le champ Det_qte,
Son type de données est nécessairement défini sur le type Numérique. De plus, une quantité est forcément un nombre entier. Mais souvenez-vous, un Entier long alloue l'espace mémoire nécessaire pour autoriser des nombres dépassant les 2 Milliards. Jamais un client n'achètera autant d'articles. Ce champ est donc surdimensionné.
  • Dans la zone Taille du champ, Remplacer Entier long par Entier avec la liste déroulante,
Régler le type entier sur un champ de table Access pour la saisie de quantités

Chaque client peut désormais commander jusqu'à 32 767 articles d'une même référence. La capacité est donc plus que suffisante. Nous aurions pu régler la taille sur Octet. Mais cette dernière n'autorise aucune saisie au-delà de 255. Il peut arriver qu'une société passe une grosse commande sur un produit spécifique et que ce nombre soit dépassé. En conséquence, le champ Det_qte est désormais correctement dimensionné.
  • Enregistrer les modifications et cliquer sur la croix de l'onglet pour fermer la table,
  • Puis, afficher la table Produits en mode création,
Il s'agit de la table offrant le plus grand nombre de champs. Le champ produit_ref est le champ de la clé primaire. Mais cette fois, il ne s'agit pas d'un champ auto-incrémenté. Son type de données est fort logiquement défini sur Texte court. Comme nous le disions précédemment, il doit établir la liaison avec le champ Det_ref de la table Detail_commandes.
  • En conséquence, régler la taille du champ sur 20 caractères,
  • Sélectionner le champ produit_nom et limiter sa taille à 70,
Il s'agit de la désignation du produit. Nous prévoyons donc suffisamment de longueur pour une mini description.
  • Sélectionner ensuite le champ produit_prix,
Fort logiquement, il s'agit d'un champ numérique. Sa taille est réglée sur Réel double. Par définition, un réel double est constitué d'un maximum de 15 chiffres significatifs. C'est beaucoup trop. De plus, un autre type de données est beaucoup plus approprié pour ces informations numériques.
  • Dans la colonne Type de données, choisir le type monétaire,
  • Dans l'onglet Général, régler son attribut Décimales sur 2,
  • Sélectionner le champ produit_poids,
  • Dans la zone Taille du champ, remplacer Réel double par Entier,
Le poids est défini en grammes. Il s'agit nécessairement d'un nombre entier. Le type Entier coûte 2 octets de stockage au lieu de 8 pour le Réel double. Une fois encore donc, nous dimensionnons au plus juste pour optimiser les ressources et performances de la base de données.

  • Sélectionner le champ produit_vues,
  • Remplacer sa taille Réel double par Entier long,
Dans l'optique d'un site internet, ce champ est destiné à comptabiliser toutes les visites sur la fiche article. Ce compteur est donc forcément un nombre entier. Cependant la taille maximale de 32 767 autorisée par un entier classique s'avère rapidement insuffisante. Donc la taille Entier long est la plus adaptée. Rappelez-vous, un entier long coûte 4 octets au lieu des 8 alloués à l'origine.
  • Sélectionner le champ produit_stock,
  • Remplacer sa taille Réel double par Entier,
Les 255 unités permises par un Octet, soit un entier court, sont effectivement insuffisantes. Le meilleur dimensionnement consiste évidemment à régler la taille de ce champ sur Entier.
  • Sélectionner le champ produit_code,
Comme vous le remarquez, sa taille est déjà calibrée en Octet. Ce champ est donc déjà parfaitement ajusté. Il est en effet destiné à accueillir un code promotion. Ces derniers varient entre 1 et 10.
  • Enregistrer les modifications et valider le message d'alerte,
  • Ensuite, afficher la table en mode feuille de données,
Là encore, aucune perte d'information n'est à déplorer. Nous retrouvons les 244 enregistrements d'origine. Le champ produit_code est vide. Il sera implémenté au gré des opérations commerciales. Nous le verrons quand nous aurons appris à piloter les requêtes Access.
  • Cliquer sur la croix de l'onglet pour fermer la table Produits,
  • Enfin, afficher la table Remises en mode création,
Le champ Remise_id est celui de la clé primaire. Sa taille peut être modifiée en changeant le type de données, puisque toutes les informations sont désormais inscrites. Nous n'avons donc plus besoin du fonctionnement du numéro auto-incrémenté. Plus aucune remise ne sera ajoutée. En effet, la taille Entier long est bien trop gourmande pour un champ dont les valeurs sont bornées et définies.
  • Dans sa colonne Type de données, choisir Numérique,
  • Puis, régler son attribut Taille du champ sur Octet,
  • Sélectionner le champ Remise_taux,
Celui-ci est déjà parfaitement typé et dimensionné. Il s'agit d'un taux de remise en pourcentage. Ce nombre propose donc des décimales que nous gérons avec la taille Réel simple.
  • Enregistrer les modifications et fermer la table Remises,
Nous en avons terminé avec ce travail essentiel dans la construction d'une base de données. Dans le prochain exercice, nous exploiterons toutes les ficelles offertes par le formatage des champs. Là encore, il s'agit de paramétrages précieux à réaliser en amont, avec les tables donc. Nous constaterons les bienfaits ergonomiques qu'ils procurent lorsque nous progresserons dans l'apprentissage du gestionnaire de bases de données Access.

 
Sur Facebook
Sur G+
Sur Youtube
Les livres
Contact
Mentions légales



Partager la formation
Partager sur Facebook
Partager sur Google+
Partager sur Twitter
Partager sur LinkedIn