réalisation d’une première base de données (tutoriel · 2014. 2. 20. · première base access...

16
Première base Access - tutoriel - Pascal Rigolet Septembre 2013 1 Réalisation d’une première base de données (Tutoriel - version 2) (Guettez les nouvelles versions de ce tutoriel sur le site web de l’enseignement) (Entrainez-vous à reconstituer la base des notes avec ce tutoriel) Règles essentielles Il faut : - Eclater l’information ; - Rassembler ce qui peut l’être en catégories (familles ou rubriques) ; - Avancer par étapes (chacune doit être opérationnelle) ; - Mettre dans une rubrique annexe tout ce que l’on ne peut pas ranger dans une catégorie précise ; - Etre patient . Mais … tout se règle d’abord avec une feuille de papier et un crayon ! La phase papier/crayon doit être suffisamment claire et exacte pour passer immédiatement à la pratique. Ceci implique d’établir et de suivre un cahier des charges et de réaliser une étape de «brain storming ». Finalement le schéma des relations doit conduire à la réalisation d’une première version de la base ACCESS . Il existe une méthode pour réaliser (construire) une base de données MERISE Sans le savoir ou le dire on va appliquer les principes de cette méthode et faire preuve de bon sens. MERISE : Vocabulaire de spécialiste Fait pour organiser le travail des informaticiens (années 60-70) et rendre le traitement de l’information structurée plus performant Modèle conceptuel des données vision pratique de la base de données (vocabulaire logiciel de la base de données) Les différentes étapes de la réalisation de la base ‘notes_étudiants’ (Nous passerons outre les détails d’une éventuelle version Excel pour nous pencher exclusivement sur la façon de réaliser une base Acces fonctionnelle) Aussi surprenant que cela puisse paraître, une base de données relate une histoire ! L’histoire qui est sous jacente (et répétée autant de fois que nécessaire) dans cette base est : < L’étudiant Machin a obtenu la note X sur 20 dans la matière Truc enseignée par l’enseignant Bidule > Ou encore : < La note X sur 20 a été obtenue par l’étudiant Machin dans la matière Truc enseignée par le prof Bidule >

Upload: others

Post on 31-Mar-2021

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Réalisation d’une première base de données (Tutoriel · 2014. 2. 20. · Première base Access - tutoriel - Pascal Rigolet Septembre 2013 4 A ce stade, vous venez de facto de

Première base Access - tutoriel - Pascal Rigolet Septembre 2013 1

Réalisation d’une première base de données

(Tutoriel - version 2)

(Guettez les nouvelles versions de ce tutoriel sur le site web de l’enseignement)

(Entrainez-vous à reconstituer la base des notes avec ce tutoriel)

Règles essentielles

Il faut :

- Eclater l’information ;

- Rassembler ce qui peut l’être en catégories (familles ou rubriques) ;

- Avancer par étapes (chacune doit être opérationnelle) ;

- Mettre dans une rubrique annexe tout ce que l’on ne peut pas ranger dans une catégorie précise ;

- Etre patient.

Mais … tout se règle d’abord avec une feuille de papier et un crayon !

La phase papier/crayon doit être suffisamment claire et exacte pour passer immédiatement à la pratique.

Ceci implique d’établir et de suivre un cahier des charges et de réaliser une étape de «brain storming».

Finalement le schéma des relations doit conduire à la réalisation d’une première version de la base ACCESS.

Il existe une méthode pour réaliser (construire) une base de données � MERISE

Sans le savoir ou le dire on va appliquer les principes de cette méthode et faire preuve de bon sens.

MERISE :

� Vocabulaire de spécialiste

� Fait pour organiser le travail des informaticiens (années 60-70) et rendre le traitement de

l’information structurée plus performant

� Modèle conceptuel des données � vision pratique de la base de données (vocabulaire

logiciel de la base de données)

Les différentes étapes de la réalisation de la base ‘notes_étudiants’

(Nous passerons outre les détails d’une éventuelle version Excel pour nous pencher exclusivement

sur la façon de réaliser une base Acces fonctionnelle)

Aussi surprenant que cela puisse paraître, une base de données relate une histoire !

L’histoire qui est sous jacente (et répétée autant de fois que nécessaire) dans cette base est :

< L’étudiant Machin a obtenu la note X sur 20 dans la matière Truc enseignée par l’enseignant Bidule >

Ou encore :

< La note X sur 20 a été obtenue par l’étudiant Machin dans la matière Truc enseignée par le prof Bidule >

Page 2: Réalisation d’une première base de données (Tutoriel · 2014. 2. 20. · Première base Access - tutoriel - Pascal Rigolet Septembre 2013 4 A ce stade, vous venez de facto de

Première base Access - tutoriel - Pascal Rigolet Septembre 2013 2

Etudiants

Nom

Prénom

E-mail

Identificateur étudiant

‘Notes’

Enseignants

Identité

Tel

Matière

Matière

Coefficient

Intitulé

Annexe

Notes

Résultats ??

Table_enseignant

Id_prof texte (‘nom’)

matière texte

tel numérique (entier)

Table_matière

Id_matiere numéro auto clé primaire

intitule texte

coef numérique (entier)

Table_étudiant

Id_etudiant numéro auto clé primaire

nom texte

prenom texte

e-mail texte

Id_INE numérique Table_notes

nom_etu texte (‘nom’)

matière texte

note sur 20 numérique

On s’occupe d’abord du contenant (préparant l’entrée du contenu). Il faut donc structurer ce contenant

Commençons donc par éclater et catégoriser l’information, ceci va permettre de repérer les futures

tables et de définir les futurs champs des enregistrements.

On repère ainsi que 3 catégories (tables) peuvent être ainsi facilement créées regroupant une

information cohérente. Il reste un problème : où ranger les notes ?

Il y a ici potentiellement 3-4 feuilles Excel

ON NE FIGURE PAS LES OPERATIONS ET AUTRES REQUETES SUR LES DONNEES BRUTES

Maintenant que l’étape de conceptualisation est terminée, nous pouvons commencer le travail dans Access

(ou dans tout autre SGBDR)

Premières étapes avec Access

Création de tables : il est clair que 4 tables (ça y est le mot est lâché) vont être créées l’une après l’autre

- On renseigne les noms des champs et le type des données (ne pas se tromper dans les formats).

On peut ajouter des champs à n’importe quel moment en basculant vers le mode création

- Enregistrement de la table en cours (soit clic droit puis Enregistrer, soit la bascule en mode

feuille de données demande automatiquement si l’on veut enregistrer les modifications)

Une règle essentielle : il faut éviter les doublons

L’unicité de l’information est plus facilement assurée par un codage numérique.

Au début, cela surprend un peu, mais on s’y fait rapidement lorsque l’on constate tous les avantages

que cela procure en souplesse dans la création, la gestion et l’utilisation pratique de la base de données.

Page 3: Réalisation d’une première base de données (Tutoriel · 2014. 2. 20. · Première base Access - tutoriel - Pascal Rigolet Septembre 2013 4 A ce stade, vous venez de facto de

Première base Access - tutoriel - Pascal Rigolet Septembre 2013 3

Création d’une nouvelle base Access

(Nous abordons alors l’aspect contenu pour la première fois)

Commençons par créer une base Access qui contiendra l’ensemble des données structurées sous le

nom note1.mbd (il faut toujours miser sur la prudence en numérotant les versions de la base de

données pour garder une trace de sa réalisation progressive et archiver les versions fonctionnelles

dans un répertoire « Versions »)

L’interface de Access 2007 est un peu garni mais il faut toujours faire les choses simplement : ici

cliquer sur l’icône (en haut à gauche de la fenêtre centrale) « Base de données vides ». Sélectionner

le répertoire d’accueil et définissez le nom du fichier base de données dans le menu de droite (ici

note1.accdb). Depuis la version 2007 la terminaison des fichiers n’est plus mdb (pour master

database) mais accdb (pour access database).

Une fois votre fichier ouvert vous rentrez dans l’univers pratique de la réalisation d’une base de

données avec le SGBDR (Système de Gestion de Base de Données Relationnelles) Access.

Il faudra vous laisser guider par les commandes, fonctions et autres options que proposent les menus

déroulants et les boutons du logiciel. Vous verrez que la prise en main est assez intuitive et rapide.

On y retrouve déjà les rubriques habituelles de création et gestion de fichier, d’édition et puis de

manipulation de données.

Page 4: Réalisation d’une première base de données (Tutoriel · 2014. 2. 20. · Première base Access - tutoriel - Pascal Rigolet Septembre 2013 4 A ce stade, vous venez de facto de

Première base Access - tutoriel - Pascal Rigolet Septembre 2013 4

A ce stade, vous venez de facto de créer une base de données vide. Il faut maintenant commencer à

organiser son contenu et créer les tables prévues à l’étape de conception (figurant sur le schéma).

Entrez dans la fenêtre de création de la première table de cette base de données Access. On repère

tout de suite le bouton « Affichage» (cerclé en rouge sur la figure ci-dessous) qui permet de faire

passer l’affichage de la table en mode feuille de données (contenu) ou en mode création (format /

contenant).

Il est logique de commencer par définir le format de la table (contenant) en précisant la structure des

champs des enregistrements, répondant à des types de données précis. On bascule donc en mode

création en cliquant sur le bouton affichage. Lors de la validation des premières informations de la

table, le logiciel nous demande de les enregistrer. Enregistrons les sous l’identificateur

« Table_etudiant » ; sans accent pour respecter la règle du latin de base (format ASCII)

Dés lors la définition précise de chacun des champs composant les enregistrements peut commencer

Le premier champ sera l’identificateur numérique (interne) de l’étudiant ID_etudiant dont le type sera num_auto. Dés lors, la numérotation sera automatiquement incrémentée par le système à chaque nouvel étudiant entré dans la table.

Page 5: Réalisation d’une première base de données (Tutoriel · 2014. 2. 20. · Première base Access - tutoriel - Pascal Rigolet Septembre 2013 4 A ce stade, vous venez de facto de

Première base Access - tutoriel - Pascal Rigolet Septembre 2013 5

Il est assez simple de définir chacun des champs par son identificateur et son type. On pourra

avantageusement utiliser les cases Description pour saisir des commentaires et préciser certains

éléments. L’unicité de l’information n’étant pas garantie avec le nom ou même avec le couple (nom,

prénom), elle le sera grâce au numéro ID de l’étudiant. On associe alors (avec le bouton clé primaire,

cerclé en rouge sur la figure, ou à l’aide d’un clic droit souris / choix clé primaire) la clé primaire sur

le champ ID_etudiant

On remarque que la structure des enregistrements est décrite de telle façon qu’à chaque ligne

correspond la définition d’un champ dans l’ordre de leur rencontre.

En basculant en mode «feuille de données » le logiciel demande s’il faut enregistrer les modifications

effectuées. Il faut répondre « oui »

Nous sommes ainsi arrivés à l’étape de l’entrée des données

Page 6: Réalisation d’une première base de données (Tutoriel · 2014. 2. 20. · Première base Access - tutoriel - Pascal Rigolet Septembre 2013 4 A ce stade, vous venez de facto de

Première base Access - tutoriel - Pascal Rigolet Septembre 2013 6

Créons deux enregistrements :

On voit que les enregistrements sont affichés les uns après les autres selon la structure que l’on a

définie en mode création, à raison d’un enregistrement par ligne. Les colonnes de la table

correspondent ainsi aux champs des enregistrements crées (le champ ID_etudiant est

automatiquement incrémenté d’une unité à chaque enregistrement crée, on ne s’en occupe pas).

On procédera ainsi pour chacune des tables à créer

Importation d’un fichier Excel/d’un fichier .txt

Nous pouvons nous faciliter la tache en récupérant les noms des étudiants depuis un fichier texte

1 / Enregistrer la feuille Excel en format texte (.txt) (séparateur tabultation)

2 / Ouvrir Access, dans données externes : importer fichier .txt, dans la boite de dialogue choisir

le bon séparateur et cocher « 1ère

ligne contient les noms des champs » si besoin

3 / On peut choisir de laisser Access choisir une clé primaire ou choisir le champ de la clé

primaire ou ne pas indiquer de clé primaire.

4 / Il faudra ajouter à cette table le numéro d’index de chaque enregistrement (ID_etudiant)

5 / Enregistrer la table / elle est désormais totalement utilisable

Page 7: Réalisation d’une première base de données (Tutoriel · 2014. 2. 20. · Première base Access - tutoriel - Pascal Rigolet Septembre 2013 4 A ce stade, vous venez de facto de

Première base Access - tutoriel - Pascal Rigolet Septembre 2013 7

Une première ébauche – les différentes étapes, fruit de notre réflexion

1 - Une réalisation par étape

2 - Répertorier les entités qui vont composer la base de données / rassembler les données en catégories

3 - Proposer une phrase permettant de placer la base de données dans un certain contexte

Page 8: Réalisation d’une première base de données (Tutoriel · 2014. 2. 20. · Première base Access - tutoriel - Pascal Rigolet Septembre 2013 4 A ce stade, vous venez de facto de

Première base Access - tutoriel - Pascal Rigolet Septembre 2013 8

4 - Vers un premier schéma relationnel de la Base des Notes

Nous constatons que la table principale est une table intermédiaire, celle qui contient les notes que

les étudiants ont obtenues dans les différentes matières. Tous les éléments principaux de l’histoire

sont réunis dans ce schéma. D’une façon générale, on peut avoir intérêt, ne serait-ce que pour gagner

du temps, à définir d’emblée une table centrale qui contient les champs les plus impliqués dans

l’histoire associée à la base de données (quitte à revoir, à posteriori, le schéma des relations).

Page 9: Réalisation d’une première base de données (Tutoriel · 2014. 2. 20. · Première base Access - tutoriel - Pascal Rigolet Septembre 2013 4 A ce stade, vous venez de facto de

Première base Access - tutoriel - Pascal Rigolet Septembre 2013 9

Création des relations

Facilitons nous la tâche en créant la table Table_notes

Icône relations dans menu ‘feuille de données’

ATTENTION à l’unicité de l’information ! (il faut faire la

chasse aux doublons). Pour rendre l’information unique

on l’associe à une ou plusieurs clés dites clés primaires.

Table_notes = TABLE CENTRALE

(sans s’en rendre compte on vient également de créer une table intermédiaire permettant

l’établissement de relations de type n à m, dite également 1 à plusieurs)

On a créé un champ code_etudiant (ajouté dans la table table_étudiant) pour avoir un numéro unique.

Dans table_étudiant : clic droit Id_etudiant � clé primaire (ou clic direct sur clé primaire)

Le champ correspondant à la clé primaire contient une information rendant UNIQUE

l’enregistrement complet

Quand un champ correspond à la clé primaire il ne peut pas être supprimé (il faut au préalable

supprimer l’attribut « clé primaire »)

Pour créer une relation :

- Toutes les tables devant être mises en relation doivent être fermées

- cliquer-glisser du champ Id_etudiant (table_étudiant) vers code_etudiant (table_notes)

- dans la fenêtre de dialogue cocher :

« Appliquer l’intégrité référentielle »

et

« Mettre à jour en cascade les champs correspondants »

Table_notes

code_etudiant numérique clé étrangère

code_matiere numérique

note sur 20 numérique

Page 10: Réalisation d’une première base de données (Tutoriel · 2014. 2. 20. · Première base Access - tutoriel - Pascal Rigolet Septembre 2013 4 A ce stade, vous venez de facto de

Première base Access - tutoriel - Pascal Rigolet Septembre 2013 10

Table_étudiant

Id_etudiant numéro auto clé primaire

nom texte

prenom texte

e-mail texte

Id_INE numérique

Table_notes

code_etudiant numérique clé étrangère

code_matiere numérique clé étrangère

note sur 20 numérique

Table_matière

Id_matiere numéro auto clé primaire

intitule texte

coef numérique

code_enseignt numérique

Table_enseignant

Id_enseignant numéro auto clé primaire

nom texte

code_matiere numérique clé étrangère

qualité texte

tel numérique

e-mail texte

Schéma des relations

Ca colle bien avec l’histoire à raconter :

L’étudiant ‘machin’ a obtenu la note X sur 20

dans la matière ‘truc’ enseignée par le prof ‘bidule’.

Tout va bien, on a bien travaillé.

1 plusieurs

Hypothèses :

1. un étudiant a plusieurs notes mais une seule par matière

2. Un enseignant peut enseigner plusieurs matières

3. Chaque matière à son coefficient

4. Il y a un seul correcteur par matière

Exercice :

Comment transformer cette structure pour tenir compte du fait qu’une matière peut également

faire intervenir plusieurs enseignants (il y a plusieurs solutions) ?

Page 11: Réalisation d’une première base de données (Tutoriel · 2014. 2. 20. · Première base Access - tutoriel - Pascal Rigolet Septembre 2013 4 A ce stade, vous venez de facto de

Première base Access - tutoriel - Pascal Rigolet Septembre 2013 11

Astuce

Premier enregistrement auto pour chacune des tables

� « non défini » + valeur par défaut = 1 pour tous les code_...

� Permet de ne pas avoir de problème et toujours avoir des liaisons qui marchent.

Listes de choix

Dans table_matière il faut pouvoir imposer que le coefficient soit compris dans une liste :

- On crée une nouvelle table ‘Table_coef’ avec un seul champ ‘coef_matiere’ qui est

numérique.

- Dans ‘Table_matiere’ on change le type de données (si cela ne marche pas effacer le champ

puis recommencer) et on sélectionne ‘assistant liste de choix’ au lieu de ‘numérique’.

Assistant liste de choix doit rechercher dans ‘table,….’, on choisit ‘Table_coef’ puis le champ

‘coef_matiere’.

- Ainsi lorsque l’on veut renseigner d’un coefficient dans le champ ‘coef’ on dispose d’un

ascenseur qui nous permet de choisir parmi les valeurs de ‘coef_matiere’ dans la

‘Table_coef’.

- !!! Attention !!! on peut mettre d’autres valeurs, si l’on veut rester dans la fourchette

donnée par la ‘Table_coef’ il faut aller dans valide si … >0 Et <=5

Page 12: Réalisation d’une première base de données (Tutoriel · 2014. 2. 20. · Première base Access - tutoriel - Pascal Rigolet Septembre 2013 4 A ce stade, vous venez de facto de

Première base Access - tutoriel - Pascal Rigolet Septembre 2013 12

Relations

Finalement un compromis possible est celui figurant ci-dessous

(hypothèse : un seul enseignant par groupe)

Création de requêtes

Exemple : filtrer les étudiants qui ont eu la moyenne et afficher dans ce cas leurs nom et prénom, la

matière ainsi que la note obtenue dans la matière

Onglet créer : requête simple

Page 13: Réalisation d’une première base de données (Tutoriel · 2014. 2. 20. · Première base Access - tutoriel - Pascal Rigolet Septembre 2013 4 A ce stade, vous venez de facto de

Première base Access - tutoriel - Pascal Rigolet Septembre 2013 13

Table_module

Id_module numéro auto clé primaire

code_etudiant numérique clé étrangère

responsable texte

secretaire texte

code_APOGEE numérique

Table_etudiant

Id_etudiant numéro auto clé primaire

nom texte

prenom texte

e-mail texte

Id_INE numérique

Table_notes

code_etudiant numérique clé primaire

code_matiere numérique clé primaire

note sur 20 numérique

Table_matiere

Id_matiere numéro auto clé primaire

intitule texte

coef numérique

code_enseignt numérique

Table_enseignant

Id_enseignant numéro auto clé primaire

nom texte

code_matiere numérique

qualité texte

tel numérique

e-mail texte

On peut s’intéresser à intégrer l’ensemble dans la spécialité (module) choisie par les étudiants. Pour

Chaque module il y aura une série de notes par étudiants (correspondant aux matières définissant le

module). Cela peut donner le schéma suivant :

La clé primaire est définie sur les champs code_etudiant et code_matiere pour éviter les doublons

dans l’attribution des notes

Page 14: Réalisation d’une première base de données (Tutoriel · 2014. 2. 20. · Première base Access - tutoriel - Pascal Rigolet Septembre 2013 4 A ce stade, vous venez de facto de

Première base Access - tutoriel - Pascal Rigolet Septembre 2013 14

Règles d’accès/de priorités

SQL : System Query Langage � langage de programmation reconnu par Access (transparent pour nous)

Exportation vers un fichier excel

Exemple : résultat d’une requête

Exercice :

Extraire la table résultat de la requête (matière= ‘Géologie ‘) et réaliser le graphe de la répartition

des notes en classes de 2 points.

Page 15: Réalisation d’une première base de données (Tutoriel · 2014. 2. 20. · Première base Access - tutoriel - Pascal Rigolet Septembre 2013 4 A ce stade, vous venez de facto de

Première base Access - tutoriel - Pascal Rigolet Septembre 2013 15

Les 4 métiers qui se cachent derrière une base de données :

l’administrateur de la base qui gère les informaticiens (créent le SGBD, définissent les requêtes,

fonctions, validations etc…), les personnes qui renseignent la base de données (donnent un contenu

fiable à la base) et celles qui saisissent les données.

Besoin de faire des tests pour révéler le maximum d’erreur � mises à jour de la base.

Règle du 80/20

Règle du 80/20 : (à propos de la recherche de performance)

S’applique à la notion de cahier des charges

Cahier des charges : objectifs 100% des charges réalisées

On passe 20% du temps pour honorer 80% du cahier des charges.

Pour s’intéresser au reste (détails) du cahier des charges (20% restant), le temps à y consacrer est

indéfini…

Le parfait n’existe pas, il faut déjà faire quelque chose de bien. Apprendre à travailler vite et bien.

Aller à l’essentiel (au plus évident).

A l’issue de ce travail, nous sommes prêts à nous intéresser à des considérations plus

environnementales

Page 16: Réalisation d’une première base de données (Tutoriel · 2014. 2. 20. · Première base Access - tutoriel - Pascal Rigolet Septembre 2013 4 A ce stade, vous venez de facto de

Première base Access - tutoriel - Pascal Rigolet Septembre 2013 16

Table_master_étudiant

code_etu numérique

code_specialite numérique

Table_étudiant

Id_etudiant numéro auto clé primaire

nom texte

prenom texte

e-mail texte

Id_INE numérique

Table_master

Id_master numéro auto clé primaire

Intitule liste

Responsable texte

Liste_master

Nom_master texte

Comment renseigner la base des spécialités (4) suivies par l’étudiant(e) ???

(variante)

But : pouvoir sortir la liste des étudiants pour chaque spécialité + pouvoir sortir la liste des spécialités

pour chaque étudiant (1 ou plusieurs)

Créer une nouvelle table. Chaque étudiant peut suivre une ou plusieurs spécialités. Créer une table

avec la liste des spécialités pour pouvoir choisir dans la ‘Table_master’ la spécialité dans la liste

‘Liste_master’.

Règle du 80/20 :

• Permet de combiner indépendamment des

informations nouvelles corrélées (spécialités = intitulé

précis du master)

• Soit la nouvelle table ‘Table_master’ est en

amont de ‘Table_matière’, soit la ‘Table_master’

directement reliée par une relation de 1 à plusieurs (1

à n) à la ‘Table_étudiant’.

Les requêtes permettent d’afficher (ou non) cette

nouvelle information avec les autres.