IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Créer une application de gestion de bandes dessinées

Date de publication : 19/03/10 , Date de mise à jour : 19/03/10


V. Création de la base de données et d'une première table
V-A. Avec Access 2007
V-B. Avec Access 2000 à 2003
VI. Création des tables en fonction du MLD
VI-A. Création des tables de référentiel
VI-B. Création des tables applicatives
VI-B-1. Création de la table bds
VI-B-2. Création d'une clé étrangère
VI-B-3. Le travail de l'assistant
VI-B-4. Création de la table exemplaires
VI-C. Création des tables issues des associations
VI-D. Vérification visuelle dans Access
VI-E. Téléchargement de la base de données


V. Création de la base de données et d'une première table

Nous y voilà : nous allons créer la base de données Access.
Commencez par exécuter Access.


V-A. Avec Access 2007

Par défaut, la base de données est créée au format Access 2007 dans Mes Documents.
Si vous souhaitez modifier ces valeurs, cliquez sur le bouton Office en haut à gauche puis sur le bouton Options Access en bas à droite.
Sur l'onglet Standard, vous pouvez modifier le format de fichier par défaut, ainsi que le dossier par défaut.
J'ai choisi un format de fichier Access 2000 pour ce tutoriel.


info Vous pouvez convertir ensuite la base de données d'un format vers un autre (pourvu que les fonctionnalités utilisées sont compatibles avec la version de conversion).
Si vous utilisez Access 2007, vous pouvez facilement déployer l'application avec le runtime 2007 et les extensions développeur qui sont gratuits.

Cliquez ensuite sur le bouton Base de données vide:


Choisissez éventuellement un autre dossier et modifiez le nom du fichier, puis cliquez sur le bouton Créer.

Par défaut, Access propose une nouvelle table Table1.
Fermez cette table en cliquant sur la petite croix à droite (pas tout en haut sinon ça ferme l'application, juste la croix de fermeture de la table en dessous).

Pour créer une nouvelle table choisissez l'onglet Créer (en haut dans le ruban), puis cliquez sur le bouton Création de table.



Ce mode création de table va nous permettre de maîtriser entièrement la création de la table.
Si vous cliquez sur le bouton Table à gauche, une table avec un champ N° est créée et les champs sont ajoutés en fonction des valeurs que l'on saisie dans la colonne.
Cet assistant peut paraître facile, mais n'offre aucune maîtrise sur les noms et les types de données de champs ajoutés.
Il faudrait ensuite passer quand même en mode création pour adapter la table créée par l'assistant.


idea Si vous souhaitez que le message d'avertissement de sécurité ne s'affiche pas à chaque démarrage, approuvez l'emplacement de la base de données :
Cliquez sur le bouton Office en haut à gauche, puis sur Options Access.
Choisissez Centre de gestion de la confidentialité puis cliquez sur Paramètre du centre de gestion de la confidentialité....
Dans Emplacements approuvés, ajoutez le dossier de votre base de données (Ajoutez un nouvel emplacement...).
Ce paramétrage ne sera effectif que sur le PC sur lequel il a été réalisé.

V-B. Avec Access 2000 à 2003


Choisissez dans le menu : Fichier => Nouvelle base de données.
En fonction de la version d'Access, cliquez sur le bouton Base de données ou sur l'option créer Base de donnes vide (à droite).
Saisissez le chemin et le nom de la base de données, puis cliquez sur le bouton Créer.

La fenêtre de Base de données s'affiche :



Notez dans le titre de cette fenêtre le format de la base de données : Access 2000.
Il est possible de changer le format par défaut dans les options :
Outils => Options... => onglet Avancé => Format de fichier par défaut.

Il est ensuite possible de convertir la base de données dans un autre format : Outils => Utilitaires de base de données => Convertir une base de données.

Pour créer une nouvelle table choisissez Tables dans la fenêtre de base de données et double-cliquez sur l'option Créer une table en mode création.
Ce mode création de table va nous permettre de maîtriser entièrement la création de la table.


VI. Création des tables en fonction du MLD

Notons tout d'abord que AnalyseSI génère du code SQL de création des tables.
Ce code n'est pas compatible avec Access, nous n'allons donc pas l'utiliser.
Nous allons créer les tables à la main, mais Access va nous aider à créer facilement et efficacement les liens entre nos tables.

Notre modèle logique de données contient une douzaine de tables.
Par quelle table devons nous commencer?
Il faut commencer par les tables qui sont en fin de chaîne dans les relations (au bout des flèches rouges dans le MLD).
C'est à dire les tables de référentiel qui contiennent des données qui apparaîtrons notamment dans les listes de choix.
Ces tables de référentiel s'opposent aux tables de données applicatives qui contiennent souvent des données issues de ces tables de référentiel.
Ces tables sont généralement moins souvent modifiées que les données applicatives qui les utilisent.

Nous pouvons identifier comme tables de référentiel :
- formats;
- etats;
- images;
- series;
- auteurs;
- rôles.

Et comme tables de données applicatives :
- exemplaires;
- bds.

S'ajoutent à ces tables quelques tables issues des associations pour faire le lien entre les données applicatives et les données de référentiel :
- est_un;
- est_realise_par;
- a_pour_image_de_bd;
- a_pour_image_de_serie.

Au sujet des ces tables d'association, notez que les relations (les flèches rouges) partent de ces tables.
elles sont donc à créer en dernier, une fois que les tables de l'autre côté de la flèche seront créées.

Encore une fois on note l'intérêt de l'analyse réalisée.
En lisant le MLD, nous savons dans quel ordre créer les tables le plus efficacement possible.
Ayant essayé de créer directement les tables, je suis maintenant convaincu de l'intérêt de l'analyse :
J'avais d'abord créé la table des bandes dessinées (erreur...!) pour y greffer ensuite toutes les autres tables.
Après beaucoup de temps perdu à faire et défaire des tables et des champs un peu au hasard, je me suis lancé dans une analyse.

Maintenant que l'analyse est terminée, tout est beaucoup plus clair et on peut commencer sereinement à créer les tables.



VI-A. Création des tables de référentiel


Commençons en douceur avec la table des formats.

A la fin du chapitre précédent, nous avons ouvert une nouvelle table en mode création.
Cette table s'appelle par défaut Table1, nous modifierons son nom lors de la sauvegarde.
Le tableau affiché est la liste des champs de la table : cette liste est vide.
Nous devons ajouter les champs vus sur le MLD.

Le champ identifiant : id_format
Dans la colonne Nom du champ, saisissez id_format.
Dans la colonne Type de données, choisissez dans la liste la valeur NuméroAuto.
NuméroAuto correspond à uniqueidentifier que nous avons défini pour l'attribut de l'entité Formats.
Ce type de données très utile est un identifiant numérique auto-incrémenté par Access.

Le champ libellé : libelle_format
Dans la colonne Nom du champ, saisissez libelle_format.
Dans la colonne Type de données, choisissez dans la liste la valeur Texte (c'est la valeur par défaut).



En bas de la table, sous la liste des champs, vous trouverez les propriétés des champs :
Parmi ces propriétés, il y a la Taille du champ : 255 caractères par défaut.
Modifiez la taille à 50 caractères, suffisant pour un libellé.
Nous utilisons également la propriété légende : celle-ci est utilisée en remplacement du nom de champ lors de l'affichage de la table ou lors de la génération d'un formulaire.
Définissez la légende : Libellé format.



Pour sauvegarder la table, cliquez sur la disquette en haut à gauche (ou au clavier CTRL + S).
Access nous demande le nom de la table, nous allons utiliser le nom du MLD et le préfixer par tbl : tblFormats.


info Consultez ce tutoriel sur les conventions typographiques.

Nous voici en présence d'un message nous demandant si on souhaite créer une clé primaire : répondez Non.



Nous allons définir nous même la clé primaire.
Tout d'abord : qu'est ce qu'une clé primaire?
La clé primaire permet d'indexer les lignes de la table. Pour Access, c'est un peu comme une table des matières permettant de rapidement retrouver où se situe un enregistrement.
Cette clé doit être unique et peut être composée d'un ou plusieurs champs.
Ici encore, le MLD nous aide à choisir les champs qui compose la clé : ce sont les champs soulignés.
Pour la table formats, id_format est souligné.
Cliquez sur ce champ puis sur le bouton Clé primaire du ruban (dans l'onglet Création) ou du menu.
Clé primaire est également accessible dans le menu contextuel sur clic du bouton droit de la souris.

Une petite clé apparaît alors à gauche du champ.
De plus ce champ est maintenant indexé sans doublon (car c'est un identifiant unique).




info Définir une clé primaire pour chaque table peut sensiblement améliorer les temps d'affichage des informations, même si aucun filtre et tri ne sont définis.

Vous pouvez maintenant créer la table etats nommée tblEtats sur le même modèle :
- un champ id_etat de type NuméroAuto;
- un champ libelle_etat de type Texte (50) avec comme légende Libellé état;
- n'oubliez pas de définir id_etat comme clé primaire.

La table roles (nommée tblRoles) n'est pas très différente :
- un champ id_role de type NuméroAuto;
- un champ libelle_role de type Texte (50) avec comme légende Libellé rôle;
- id_role est la clé primaire.

Créez ensuite la table auteurs nommée tblAuteurs :
- un champ id_auteur de type NuméroAuto;
- un champ nom_auteur de type Texte (50) avec comme légende Nom;
- un champ prenom_auteur de type Texte (50) avec comme légende Prénom;
- un champ note_auteur de type Numérique avec comme légende Note de l'auteur;
- id_auteur est la clé primaire.

Par défaut, la taille d'un champ numérique est Entier long.
Pour une note (de 0 à 10), la taille Octet est suffisante.
Vous pouvez modifier cette taille en bas dans les propriétés du champ note_auteur.

Au tour de la table images, nommée tblImages :
- un champ id_image de type NuméroAuto;
- un champ chemin de type Texte (255) avec comme légende Chemin de l'image;
- id_image est la clé primaire.

Et on termine par la table series que l'on nomme tblSeries :
- un champ id_serie de type NuméroAuto;
- un champ titre_serie de type Texte (255) avec comme légende Titre de la série;
- un champ commentaire_serie de type Mémo avec comme légende Commentaire de la série;
- un champ note_serie de type Numérique (taille octet) avec comme légende Note de la série;
- id_serie est la clé primaire.


info Dans cette dernière table, nous avons utilisé un type de données Mémo.
Les champs Mémo sont très utiles puisqu'il permettent de stocker des textes longs, le type de données Texte étant limité à 255 caractères.
Nous l'utilisons donc pour des commentaires qui peuvent être plus longs que 255 caractères.

VI-B. Création des tables applicatives

Le référentiel étant créé, on peut désormais créé les tables applicatives; c'est-à-dire la table des bandes dessinées et des exemplaires.
On remarque sur le MLD un lien (en rouge) de la table des exemplaires vers la table des bandes dessinées : nous allons donc commencer par créer la table cible du lien, celle des bandes dessinées (bds).


VI-B-1. Création de la table bds


Créez une nouvelle table et ajoutez les champs comme nous avons maintenant l'habitude :
- un champ id_bd de type NuméroAuto;
- un champ titre_bd de type Texte (255) avec comme légende Titre de la BD;
- un champ commentaire_bd de type Mémo avec comme légende Commentaire de la BD;
- un champ note_bd de type Numérique (taille octet) avec comme légende Note de la BD;
- un champ tome_bd de type Texte (10) avec comme légende Tome de la BD;
- id_bd est la clé primaire.
Sauvegardez la table sous le nom tblBds.


VI-B-2. Création d'une clé étrangère


J'ai intentionnellement omis le champ id_serie, tout simplement pour garder le meilleur pour la fin.
Ce champ est une clé étrangère : il a été ajouté lors de la génération du MLD (il n'est pas dans le MCD) et représente l'association Appartient à la série.
Ce champ id_serie doit donc être créé de manière particulière, afin de lier la table des bandes dessinées à la table des séries.
Pour créer un tel champ, Access met à notre disposition un assistant.

A partir de Access 2007, vous trouvez cet assistant dans l'onglet Création du ruban, c'est le bouton Colonne de recherche.



Avant Access 2007, vous trouvez cet assistant dans le menu : Insertion => Champ de recherche ....



Dans la suite du tutoriel j'appellerai cet assistant comme il est nommé dans sa fenêtre: assistant liste de choix
Placez-vous alors sur un champ vide (une ligne en-dessous de la fin de la liste de champs) et lancez l'assistant liste de choix.

Nous souhaitons définir une liste de choix dans la table bds afin de nous aider à choisir la série de la table series.
Donc sur le premier écran, laissez le choix par défaut (liste à partir des valeurs d'une table) et cliquez sur Suivant.



Choisissez ensuite la table tblSeries et cliquez sur Suivant:



L'assistant nous demande alors quels champs contiennent les valeurs :
Il faut au moins choisir la clé, c'est-à-dire ici id_serie.
Un champ d'information (libellé, titre, ...) est souvent utile.
Ajoutons donc également le champ titre_serie (double-cliquez sur un champ pour l'ajouter).
Et cliquez sur Suivant.



Le tri demandé sur l'écran suivant est celui utilisé pour l'affichage de la liste de choix.
Il est pratique d'avoir les séries listées par titre, nous ajoutons donc le champ titre_serie (on laisse un tri croissant, de A à Z).
Et on clique sur Suivant pour continuer.



L'écran suivant permet de définir la largeur des colonnes de la liste de choix.
Vous pouvez agrandir la colonne Titre de la série par exemple.
Laissez la colonne clé cachée, il n'est pas utile de faire apparaître cette colonne à l'affichage.
Et cliquez sur Suivant.



L'assistant nous demande une étiquette pour la liste de choix.
Le terme n'est pas très bien choisi, l'étiquette est en faite le nom de champ qui va être créé.
Notre champ s'appelle id_serie. Cliquez sur Terminer pour finaliser la création du champ.



Si le programme le demande, validez l'enregistrement de la table en cliquant sur Oui


VI-B-3. Le travail de l'assistant

Il est toujours intéressant de savoir ce qu'à fait un assistant.

Premier constat : un champ id_serie a été ajouté à notre table tblBds :



Ce champ est de type numérique, car il est lié à l'id_serie de la table series, lui-même numérique.

Regardons les propriétés de ce champ en cliquant sur l'onglet Liste de choix est bas :



C'est ici que l'assistant a effectué la plus grosse partie de son travail.
Il a défini une zone de liste déroulante pour la saisie.
L'origine de cette liste est Table/Requête.
Le contenu est en fait une requête écrite en SQL par l'assistant :
Contenu de la liste

SELECT [tblSeries].[id_serie], [tblSeries].[titre_serie] FROM tblSeries ORDER BY [titre_serie];

Nous retrouvons dans cette requête les éléments définis dans l'assistant :
- les champs id_serie et titre_serie de la table tblSeries;
- le tri sur le champ titre_serie.

La colonne liée est la première colonne, c'est-à-dire le champ id_serie.
En effet cet identifiant sera stocké dans la table bds.
Il faut toujours stocker l'identifiant unique, le titre sera recherché grâce à ce dernier.
Stocker l'identifiant prend moins d'espace que de stocker le titre.
De plus si le titre est modifié, il n'y a pas de modification a apporter à la table tblBds.

Le nombre de colonne est défini à 2, car on a demandé 2 champs.

Les largeurs de colonnes sont très importantes : elles sont définies à 0cm;9,207cm.
Cela correspond également à ce que nous avons défini dans l'assistant :
- la colonne clé (première colonne) est masquée, donc une largeur de 0cm;
- la deuxième colonne est le titre de la série, elle a été définie à 9,207cm et peut être modifiée ici si besoin.

Notez que vous pouvez également définir le nombre de lignes affichées dans la liste de choix : ici 16 par défaut.

La largeur de la liste peut-être plus petite que la somme des largeurs des colonnes; une barre défilement horizontale apparaîtra alors sur la liste.

Une dernière propriété intéressante : Limiter à liste qui est égale à oui par défaut.
Ainsi on ne pourra pas saisir une série qui n'est pas définie dans la table tblSeries.

Le travail de l'assistant ne s'arrête pas là; il a également défini une relation entre les deux tables tblBds et tblSeries.

Pour voir les relations :
- à partir de Access 2007, cliquez sur le bouton Relations de l'onglet Outils de base de données;

- avant Access 2007, cliquez dans le menu : Outils => Relations.


Si besoin, cliquez avec le bouton droit et choisissez Afficher toutes les relations afin de les voir.


Voici la relation mise en place :





VI-B-4. Création de la table exemplaires

Créez une nouvelle table.
Ajoutez-y :
- un champ id_exemplaire de type NuméroAuto;
- un champ date_achat de type Date/Heure;
- définissez id_exemplaire comme clé primaire.

Sauvegardez la table sous le nom tblExemplaires :



Utilisez ensuite l'assistant liste de choix pour créer les champs id_bd, id_etat et id_format.

Choisissez tour à tour les tables tblBds, tblEtats puis tblFormats.
Comme nous venons de le faire pour l'id_serie, ajoutez la clé primaire (cachée) et un champ titre ou libellé.

Voici l'écran des relations après ajout de ces champs :





VI-C. Création des tables issues des associations

Maintenant que nos tables principales sont créées, nous pouvons créer les tables d'association.

C'est-à-dire les tables :
- est_un;
- est_realise_par;
- a_pour_image_de_bd;
- a_pour_image_de_serie;

Commençons par les associations d'images en créant la table a_pour_image_de_bd nommée tblAPourImageDeBd.
Créez une nouvelle table.
Cette table contient uniquement deux champs de lien avec les tables tblBds et tblImages.
Exécutez l'assistant liste de choix pour créer ces deux champs :
Choisissez d'abord la table bds pour créer le champ id_bd.
Lorsque Access demande à sauvegarder la table, nommez-la tblAPourImageDeBd.
Choisissez de ne pas créer automatiquement de clé primaire.
Créez ensuite le champ id_image en choisissant la table tblImages dans l'assistant liste de choix.

Nous avons refuser de créer automatiquement la clé primaire, mais nous allons manuellement en définir une.
Dans le MLD, les champs id_bd et id_image de la table a_pour_image_de_b sont soulignés.
Il composent à eux deux la clé primaire.
Sélectionnez les deux champs (en cliquant sur le sélecteur à gauche du champ et la touche CTRL) puis cliquez sur le bouton Clé primaire.
Une petite clé est alors affichée devant chacun des deux champs.



Procédez de la même manière pour créer la table a_pour_image_de_serie nommée tblAPourImageDeSerie.



Créez ensuite la table est_un (nommée tblEstUn) en créant avec l'assistant les champs id_auteur lié à la table tblAuteurs et id_role lié à la table tblRoles.
Ces deux champs compose la clé primaire à définir.
Pour la liste de choix des auteurs, vous pouvez ajouter le nom et le prénom en plus de l'identifiant.
La liste affichera le nom et le prénom de l'auteur.



Il reste enfin à créer la table est_realise_par, nommée tblEstRealisePar.
Les trois champs de cette table sont également créés avec l'assistant liste de choix.



Toutes les tables sont maintenant créées.



VI-D. Vérification visuelle dans Access

Affichez toutes les relations dans la fenêtre des relations.
Si besoin, repositionnez les tables de manière plus lisible :



L'affichage des tables dans l'écran des relations Access est proche du MCD.
Nous pouvons vérifier ici visuellement que nous n'avons rien oublié.



VI-E. Téléchargement de la base de données

Vous pouvez télécharger la base de données contenant ces tables :
Les tables au format Access 2000 (HTTP)


 

Valid XHTML 1.0 TransitionalValid CSS!

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2010 Thierry GASPERMENT. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Droits de diffusion permanents accordés à Developpez LLC.