Académique Documents
Professionnel Documents
Culture Documents
Rgles essentielles :
Il faut :
-
Eclater linformation ;
Rassembler ce qui peut ltre en catgories (familles ou rubriques) ;
Avancer par tapes (chacune doit tre oprationnelle) ;
Mettre dans une rubrique annexe tout ce que lon ne peut pas ranger dans une catgorie
prcise ;
Etre patient.
Mais lessentiel se rgle avec une feuille de papier et un crayon ! Cest la premire tape du travail.
La phase papier/crayon doit tre suffisamment claire et exacte pour passer la pratique
immdiatement. Ceci implique de procder une tape de brain storming puis dtablir et de
suivre un cahier des charges. Finalement le schma des relations doit conduire la ralisation dune
premire version de la base ACCESS faisant passer le Modle Conceptuel des Donnes (MDC) un
Modle Logique de Donnes (MLD)
Il existe une mthode pour raliser (construire) une base de donnes MERISE
Sans le savoir ou le dire on va appliquer les principes de cette mthode et faire preuve de bon sens.
MERISE :
Vocabulaire de spcialiste
Fait pour organiser le travail des informaticiens (annes 60-70) et rendre le traitement de
linformation structure plus performant
Modle conceptuel des donnes vision pratique de la base de donnes (vocabulaire
logiciel de la base de donnes)
- tutoriel -
Pascal Rigolet
Septembre 2013
On soccupe dabord du contenant (prparant lentre du contenu). Il faut donc structurer ce contenant
Commenons donc par clater et catgoriser linformation, ceci va permettre de reprer les futures
tables et de dfinir les futurs champs des enregistrements.
On repre ainsi que 3 catgories (tables) peuvent tre ainsi facilement cres regroupant une
information cohrente. Il reste un problme : o ranger les notes ?
Etudiants
Enseignants
Nom
Prnom
E-mail
Identificateur tudiant
Notes
Annexe
Matire
Identit
Tel
Matire
Coefficient
Intitul
Notes
Rsultats ??
Maintenant que ltape de conceptualisation est termine, nous pouvons commencer le travail dans Access
(ou dans tout autre SGBDR)
On renseigne les noms des champs et le type des donnes (ne pas se tromper dans les formats).
On peut ajouter des champs nimporte quel moment en basculant vers le mode cration
Enregistrement de la table en cours (soit clic droit puis Enregistrer, soit la bascule en mode
feuille de donnes demande automatiquement si lon veut enregistrer les modifications)
Table_matire
texte (nom)
Id_matiere
texte
intitule
numrique (entier)
coef
Table_notes
nom_etu
matire
note sur 20
Table_tudiant
texte (nom)
texte
numrique
- tutoriel -
Pascal Rigolet
Septembre 2013
Linterface de Access 2007 est un peu garni mais il faut toujours faire les choses simplement : ici
cliquer sur licne (en haut gauche de la fentre centrale) Base de donnes vides . Slectionner
le rpertoire daccueil et dfinissez le nom du fichier base de donnes dans le menu de droite (ici
note1.accdb). Depuis la version 2007 la terminaison des fichiers nest plus mdb (pour master
database) mais accdb (pour access database).
Une fois votre fichier ouvert vous rentrez dans lunivers pratique de la ralisation dune base de
donnes avec le SGBDR (Systme de Gestion de Base de Donnes Relationnelles) Access.
Il faudra vous laisser guider par les commandes, fonctions et autres options que proposent les menus
droulants et les boutons du logiciel. Vous verrez que la prise en main est assez intuitive et rapide.
On y retrouve dj les rubriques habituelles de cration et gestion de fichier, ddition et puis de
manipulation de donnes.
- tutoriel -
Pascal Rigolet
Septembre 2013
A ce stade, vous venez de facto de crer une base de donnes vide. Il faut maintenant commencer
organiser son contenu et crer les tables prvues ltape de conception (figurant sur le schma).
Entrez dans la fentre de cration de la premire table de cette base de donnes Access. On repre
tout de suite le bouton Affichage (cercl en rouge sur la figure ci-dessous) qui permet de faire
passer laffichage de la table en mode feuille de donnes (contenu) ou en mode cration (format /
contenant).
Il est logique de commencer par dfinir le format de la table (contenant) en prcisant la structure des
champs des enregistrements, rpondant des types de donnes prcis. On bascule donc en mode
cration en cliquant sur le bouton affichage. Lors de la validation des premires informations de la
table, le logiciel nous demande de les enregistrer. Enregistrons les sous lidentificateur
Table_etudiant ; sans accent pour respecter la rgle du latin de base (format ASCII)
Ds lors la dfinition prcise de chacun des champs composant les enregistrements peut commencer
- tutoriel -
Pascal Rigolet
Septembre 2013
Il est assez simple de dfinir chacun des champs par son identificateur et son type. On pourra
avantageusement utiliser les cases Description pour saisir des commentaires et prciser certains
lments. Lunicit de linformation ntant pas garantie avec le nom ou mme avec le couple (nom,
prnom), elle le sera grce au numro ID de ltudiant. On associe alors (avec le bouton cl primaire,
cercl en rouge sur la figure, ou laide dun clic droit souris / choix cl primaire) la cl primaire sur
le champ ID_etudiant
On remarque que la structure des enregistrements est dcrite de telle faon qu chaque ligne
correspond la dfinition dun champ dans lordre de leur rencontre.
En basculant en mode feuille de donnes le logiciel demande sil faut enregistrer les modifications
effectues. Il faut rpondre oui
- tutoriel -
Pascal Rigolet
Septembre 2013
On voit que les enregistrements sont affichs les uns aprs les autres selon la structure que lon a
dfinie en mode cration, raison dun enregistrement par ligne. Les colonnes de la table
correspondent ainsi aux champs des enregistrements cres (le champ ID_etudiant est
automatiquement incrment dune unit chaque enregistrement cre, on ne sen occupe pas).
On procdera ainsi pour chacune des tables crer
- tutoriel -
Pascal Rigolet
Septembre 2013
2 - Rpertorier les entits qui vont composer la base de donnes / rassembler les donnes en catgories
3 - Proposer une phrase permettant de placer la base de donnes dans un certain contexte
- tutoriel -
Pascal Rigolet
Septembre 2013
Nous constatons que la table principale est une table intermdiaire, celle qui contient les notes que
les tudiants ont obtenues dans les diffrentes matires. Tous les lments principaux de lhistoire
sont runis dans ce schma. Dune faon gnrale, on peut avoir intrt, ne serait-ce que pour gagner
du temps, dfinir demble une table centrale qui contient les champs les plus impliqus dans
lhistoire associe la base de donnes (quitte revoir, posteriori, le schma des relations).
Premire base Access
- tutoriel -
Pascal Rigolet
Septembre 2013
Table_notes
code_etudiant numrique cl trangre
code_matiere numrique
numrique
note sur 20
- tutoriel -
Pascal Rigolet
Septembre 2013
Rq : On peut galement (je le dconseille) crer un lien provisoire dans une requte
- tutoriel -
Pascal Rigolet
Septembre 2013
10
Relation un un (1 1)
Table_Etudiant
0 ,1
0, 1
Table_Bicyclette
Possder
0, 1
0, 1
1 tudiant circule avec 1 vlo qui est le sien donc nappartient qu lui
Il nest pas dit que tous les tudiants possdent un vlo et quil nexiste pas de vlo sans propritaire
Ici le verbe est possder
0 1 tudiant possde 0 1 vlo
Et 0 1 vlo est possd par 0 1 tudiant
Relation un plusieurs (1 N)
Table_Matiere
1 ,1
1, N
Enseigner
1, 1
Table_Enseignant
1, 1
1 matire est enseigne par un ou plusieurs enseignants ; chacun deux nenseignant quune seule
matire
Hypothses : toutes les matires sont enseignes (par au moins un enseignant)
Chaque enseignant enseigne une et une seule matire
Ici le verbe est enseigner
1 1 enseignant enseigne 1 1 matire
Et 1 1 matire est enseigne par 1 N enseignant(s)
Relation plusieurs plusieurs (N M)
Table_Etudiant
0 ,N
0, N
Suivre
0, N
Table_Matiere
1, N
1 matire est suivie par un ou plusieurs tudiants ; chacun deux suivant aucune plusieurs matire
Hypothses : - les tudiants inscrits mais ne suivant pas les cours ne suivent aucune matire
- certaines matires ne sont suivies par aucun tudiant (option nouvrant pas cette anne-l)
Ici le verbe est suivre
0 N tudiant(s) suit par 0 N matires(s)
Et 1 N matires(s) est/sont suivie(/s) 0 N tudiant(s)
- tutoriel -
Pascal Rigolet
Septembre 2013
11
Table_notes
code_etudiant numrique cl trangre
code_matiere numrique cl trangre
note sur 20
numrique
Table_tudiant
Table_matire
Id_etudiant
nom
prenom
e-mail
Id_INE
Id_matiere
intitule
coef
code_enseignt
Table_enseignant
Id_enseignant
nom
code_matiere
qualit
tel
e-mail
plusieurs
Hypothses :
1. un tudiant a plusieurs notes mais une seule par matire
2. Un enseignant peut enseigner plusieurs matires
3. Chaque matire son coefficient
4. Il y a un seul correcteur par matire
Exercice :
Comment transformer cette structure pour tenir compte du fait quune matire peut galement
faire intervenir plusieurs enseignants (il y a plusieurs solutions) ?
Premire base Access
- tutoriel -
Pascal Rigolet
Septembre 2013
12
Astuce
Premier enregistrement auto pour chacune des tables
non dfini + valeur par dfaut = 1 pour tous les code_...
Permet de ne pas avoir de problme et toujours avoir des liaisons qui marchent.
Listes de choix
Dans table_matire il faut pouvoir imposer que le coefficient soit compris dans une liste :
-
On cre une nouvelle table Table_coef avec un seul champ coef_matiere qui est
numrique.
Dans Table_matiere on change le type de donnes (si cela ne marche pas effacer le champ
puis recommencer) et on slectionne assistant liste de choix au lieu de numrique.
Assistant liste de choix doit rechercher dans table,., on choisit Table_coef puis le champ
coef_matiere.
Ainsi lorsque lon veut renseigner dun coefficient dans le champ coef on dispose dun
ascenseur qui nous permet de choisir parmi les valeurs de coef_matiere dans la
Table_coef.
!!! Attention !!! on peut mettre dautres valeurs, si lon veut rester dans la fourchette
donne par la Table_coef il faut aller dans valide si >0 Et <=5
- tutoriel -
Pascal Rigolet
Septembre 2013
13
Transformation de la base de donnes des notes pour intgrer le champ code_enseignant dans la
table Table_note et relier cette table la table Table_enseignant (relation N M)
Ceci va autoriser lapplication de lhypothse : plusieurs enseignants peuvent enseigner dans une
mme matire et un enseignant peut enseigner plusieurs matires
Pour commencer, il nous faut tout dabord supprimer le lien qui relie la table Table_enseignant la
table Table_matiere. Pour cela : clic droit sur le lien puis slectionner loption supprimer. Le logiciel,
prudent, vous demande alors si vous tes surs de vouloir supprimer la relation slectionne.
Rpondez oui .
Premire base Access
- tutoriel -
Pascal Rigolet
Septembre 2013
14
Vous pouvez rarranger lorganisation des tables dans le schma des relations afin de faire
apparatre la table Table_enseignant sous la table Table_matiere. De cette faon, le nouveau lien se
construira plus facilement et lon y gagnera en prsentation.
Il est alors possible de rajouter un champ dans la table Table_note dont le contenu sera partag avec
lidentificateur de lenseignant. Bouton de souris droit puis choix insrer des lignes . Ensuite
cration du champ (numrique) correspondant la cl trangre : code_enseignant.
- tutoriel -
Pascal Rigolet
Septembre 2013
15
Il faudra ensuite penser initialiser le champ une valeur par dfaut cohrente (ici : 1 qui
correspond un enseignant dfinir ) puis renseigner correctement les nouveaux champs avec
le code du professeur enseignant chacune des matires. Cette dmarche assurera lintgrit
rfrentielle des donnes relies entre les deux tables (rappel : un enseignant peut enseigner
plusieurs matires mais une matire nest enseigne que par un seul prof).
Finalement il faudra effacer les 2 cls primaires dj prsentes dans la table pour redfinir lunicit
de linformation sur le triplet (code_etudiant, code_matiere, code_enseignant). Vous tes donc
amens insrer 3 cls primaires sur ce triplet. Il est noter que ceci naffectera ni le contenu de la
table, ni les liens dj existants. Puissant, nest-il pas ?
- tutoriel -
Pascal Rigolet
Septembre 2013
16
Il ne nous reste plus qu crer le lien 1 N ( 1 plusieurs ) entre la table Table_note et la table
Table_enseignant par lintermdiaire du partage de contenu entre les champs code_enseinant
(Table_notes) et ID_enseinant (Table_enseignant). Noubliez pas de fermer les tables concernes
pour crer ce nouveau lien.
Pour finir, supprimez le champ code_prof de la table Table_matiere qui ne sert plus rien.
Nous obtenons ainsi la structure figurant ci-dessous :
Ainsi construite, la base de donnes est encore plus performante. Nous avons atteint l un bon
niveau de MDC (Modle Conceptuel des Donnes).
- tutoriel -
Pascal Rigolet
Septembre 2013
17
Table_etudiant
Table_matiere
Id_etudiant
nom
prenom
e-mail
Id_INE
Id_matiere
intitule
coef
code_enseignt
Table_enseignant
Id_enseignant
nom
code_matiere
qualit
tel
e-mail
Table_module
Id_module
code_etudiant
responsable
secretaire
code_APOGEE
- tutoriel -
Pascal Rigolet
Septembre 2013
18
Exercice :
Extraire la table rsultat de la requte (matire= Gologie ) et raliser le graphe de la rpartition
des notes en classes de 2 points.
- tutoriel -
Pascal Rigolet
Septembre 2013
19
Rgle du 80/20
A lissue de ce travail, nous sommes prts nous intresser des considrations plus
environnementales
- tutoriel -
Pascal Rigolet
Septembre 2013
20
Comment renseigner la base des spcialits (4) suivies par ltudiant(e) ???
(variante)
But : pouvoir sortir la liste des tudiants pour chaque spcialit + pouvoir sortir la liste des spcialits
pour chaque tudiant (1 ou plusieurs)
Crer une nouvelle table. Chaque tudiant peut suivre une ou plusieurs spcialits. Crer une table
avec la liste des spcialits pour pouvoir choisir dans la Table_master la spcialit dans la liste
Liste_master.
Table_master_tudiant
Rgle du 80/20 :
code_etu
numrique
code_specialite numrique
Table_tudiant
Id_etudiant
nom
prenom
e-mail
Id_INE
Table_master
Liste_master
Id_master
Intitule
Responsable
- tutoriel -
Nom_master
Pascal Rigolet
texte
Septembre 2013
21