TD Bases de données - ACCESS

publicité
TD Bases de données - ACCESS
Sujet : initiation à ACCESS (TD 1)
ACCESS est un Système de Gestion de Bases de Données relationnel (SGBDR) qui permet la
structuration, le stockage, la maintenance, la mise à jour et la consultation de données réparties dans
plusieurs tables. Ces données peuvent être mises en relation les unes avec les autres.
Rappels
• Tables : elles stockent les données. Une table se présente comme un tableau. Les différentes
colonnes sont les champs et les lignes listent les enregistrements.
• Clef primaire : c’est l’ensemble des champs d’une table qui permet d’identifier de façon certaine
et unique chaque enregistrement. Une clef primaire peut être composée d’un ou plusieurs champs.
Des valeurs identiques (doublons) ou manquantes (NULLes) ne sont pas autorisées dans cette
colonne.
1
Ma première base de données
1.1
Création d’une base de données
1. A partir de l’explorateur Windows, créer dans le répertoire Mes Documents un sous-répertoire à
votre nom (ex. Mes Documents\Velcin).
2. Lancer ACCESS (menu Démarrer/Programmes/Bureautique/MS Office) et sélectionner l’option “Nouveau fichier/Base de données vide”. Enregistrer votre base de données sous le nom
clinique.mdb dans votre répertoire.
La base de données est maintenant créée mais elle est vide. Il s’agit d’un fichier portant l’extension
.mdb et contenant sept types d’objets : tables, requêtes, formulaires, états, pages (web), macros et
modules. Ces différents objets sont accessibles en cliquant sur les onglets appropriés de la fenêtre de
gestion de la base (voir ci-dessous).
1.2
Création de la structure d’une table
On souhaite créer une table contenant des informations sur les patients d’une clinique. Cette table
doit comprendre les champs indiqués dans le dictionnaire de la figure 1.
Licence IDEA 1ère année – Université Lumière (Lyon 2) © 2013
Responsable du cours : Julien Velcin
Description de la donnée
Numéro de patient
Civilité
Nom
Prénom
Code Postal
Date de naissance
Nombre d’enfants
Remarque
Nom du champ
NumPatient
Civilité
Nom
Prénom
CP
DateNaiss
NbEnfants
Remarque
Type de données
Numérique
Texte
Texte
Texte
Texte
Date/Heure
Numérique
Mémo
Taille
Entier long
15
30
30
5
–
Octet
–
Figure 1 – Dictionnaire des données
1. Cliquer sur l’onglet “Tables”, puis sur “Créer une table en mode Création” (ou utiliser le bouton
et sélectionner le mode création). Le mode création est utilisé pour paramétrer la
structure d’une table : nom de chaque champ et type, principalement. Il sert également à définir
la clef primaire.
2. A l’aide du dictionnaire des données, renseigner les colonnes “Nom du champ” et “Type de
données”, ainsi que la propriété “Taille du champ” (fenêtre du bas).
– Pour se déplacer d’une zone de saisie à une autre, utiliser la touche “Tabulation” ou la touche
“Entrée”.
– Pour se déplacer d’une ligne à une autre, utiliser les flèches de déplacement.
– Pour saisir le type du champ, utiliser le bouton de choix.
– Pour saisir la taille du champ, cliquer sur la zone “Taille du champ” qui se situe dans l’onglet
général des “Propriétés du champ”.
Attention : veillez à respecter le format exact pour le nom des champs (minuscules, majuscules. . . ). Sinon, l’important réalisée par la suite ne fonctionnera pas.
3. Les patients sont identifiés par leur numéro de patient NumPatient, qui leur est attribué dès
qu’ils font appel aux services de la clinique (dans la réalité, on utiliserait sans doute leur numéro
de sécurité sociale). Définir en conséquence la clef primaire de la table en sélectionnant la ligne
du champ adéquat, puis en cliquant sur l’icône
création se présente comme suit :
4. Enregistrer la table en cliquant sur l’icône
“Patients”.
dans la barre d’outils. La table en mode
ou par le menu Fichier/Enregistrer, sous le nom
5. Fermer la table en cliquant sur le bouton de fermeture ou par le menu Fichier/Fermer. Si la
sauvegarde n’a pas été effectuée auparavant, le système vous préviendra.
1.3
Modification de la structure d’une table
1. Dans l’onglet “Tables” de la fenêtre de gestion de la base, sélectionner la table “Patients” et
cliquer sur le bouton “Modifier” (
). De nouveau en mode création, il est possible de
modifier la structure de la table.
2. Supprimer le champ “Remarque” en sélectionnant la ligne adéquate et en utilisant la touche
“Suppr”.
3. Paramétrer le champ “Civilité” afin qu’il affiche la liste suivante : Madame, Mademoiselle, Monsieur. Lors de la saisie, il suffira donc de sélectionner le bon cas parmi ces trois propositions, sans
Figure 2 – Assistant : Liste de choix.
Figure 3 – Saisie des données.
4.
5.
6.
7.
1.4
rien avoir à taper. Pour cela, cliquer sur le champ “ Civilité ”, puis sélectionner comme type
de donnée “Assistant Liste de choix”. Dans un deuxième temps, il faut sélectionner l’option “Je
taperai les valeurs souhaitées”. Saisir enfin les valeurs souhaitées (voir figure 2).
Utilisation d’une contrainte de domaine : Les patients ne peuvent être soignés dans cette clinique
que s’ils sont domiciliés dans le Rhône. En utilisant la propriété “Valide si” du champ “CP”,
entrer une expression qui vérifie que cette condition est remplie (le code postal doit commencer
par 69, les trois caractères suivants étant indifférents : Comme “69*”) et envoie un message
d’erreur lors de la saisie d’un patient domicilié hors du Rhône (propriété “Message si erreur”).
Paramétrer le format du champ “ DateNaiss ” afin qu’il affiche la date avec deux chiffres pour
le jour, deux chiffres pour le mois et quatre chiffres pour l’année (propriété “Format”).
Paramétrer une des propriétés du champ “CP” afin d’afficher comme libellé d’en-tête de colonne
de la feuille de données : “Code Postal” (propriété “Légende”).
Fermer la table en cliquant sur le bouton de fermeture ou par le menu Fichier/Fermer.
Définition d’un index
Un index est une structure de données interne au SGBD qui permet d’accélérer les accès aux
données à partir d’un champ. Par exemple, indexer le champ “Nom” de la table “Patients” permet de
répondre aux requêtes du type “afficher le dossier du patient Untel” ou “afficher les dossiers de tous
les patients dont le nom commence par la lettre A” de façon plus efficace.
1. Modifier la table “Patients” et ajouter un index sur le champ “Nom”. Donner à la propriété
“Indexé” la valeur “Oui Avec doublons” afin de permettre la saisie de patients homonymes.
2. Consulter la valeur de la propriété “Indexé” pour la clef primaire “NumPatient”. Conclusion ?
1.5
Saisie et modification de données
1. Dans l’onglet “Tables” de la fenêtre de gestion de la base, sélectionner la table “Patients” et
cliquer sur le bouton “Ouvrir” ( ). En mode “Feuille de données”, il est possible de saisir les
données présentées dans la figure 3.
2. Supprimer l’enregistrement correspondant à Mme BOUILLUT en sélectionnant la ligne adéquate,
puis en faisant apparaı̂tre le menu contextuel par un clic droit, ou bien par le menu Édition/Supprimer
l’enregistrement.
3. Basculer en mode création en utilisant le menu Affichage/Création, ou en cliquant sur l’icône
, en haut à gauche de votre fenêtre. La structure de la table est accessible et modifiable.
Re-basculer en mode Feuille de données en utilisant le menu Affichage/Mode Feuille de données
ou en cliquant sur l’icône
, en haut à gauche de votre fenêtre. Il est possible d’accéder aux
données contenues dans la table et de les modifier, de les supprimer ou d’en ajouter de nouvelles.
4. Essayer d’ajouter une patiente “Mademoiselle Anatole Anna, résidant dans le 9ème arrondissement, née le 01/01/2001, sans enfant”, en réutilisant le numéro de patient 1. Que se passe-t-il ?
Pourquoi ?
1.6
Importation de données
Dans de nombreux cas, beaucoup d’informations que l’on veut introduire dans une base de données
existent déjà sur support informatique. Une ressaisie de ces mêmes données peut être fastidieuse et
superflue, surtout si ces données sont vraiment volumineuses ce qui va nous faire perdre du temps et
d informations en cas de faute de saisie.
ACCESS nous offre la possibilité d’importer des données stockées dans des supports externes
(fichiers Excel .xls, texte .txt, etc.).
1.6.1
Importation des données des fichiers EXCEL
Pour procéder à cette importation, il convient de procéder comme suit :
1. Au début, il faut fermer la table cible par l’importation (Patients dans notre cas)
2. On lancera l’importation via le menu Fichier - Données externes - Importer. . . Une fenêtre d’importation apparaı̂tra, il suffit alors d’indiquer le type de fichier (Excel .xls) et sélectionner le
fichier cible Patients.xls. Le fichier se trouve à l’adresse : http://eric.univ-lyon2.fr/
~jvelcin dans la partie “Enseignements”.
3. On suivra les instructions de l’assistant d’importation, en validant l’option ”Première ligne
contient les en-têtes de colonnes”, puis en indiquant que les enregistrements sont à rajouter
à notre table Patients.
4. A la fin de l’importation, nous pouvons vérifier la mise à jour.
1.6.2
Importation d’une table à partir d’un fichier texte (.TXT)
Nous pouvons créer des tables entières et les remplir en important la structure et les données d’un
support fichier externe, sans que nous procédions à la création de ces mêmes tables avec la façon vue
auparavant dans ce TP.
Dans ce qui suit, nous voudrions créer une table pour les médecins. Au lieu de définir la table au
début (les champs, leurs types, etc.), nous importons directement la base à partir d’un fichier Texte
(.txt) nommé Medecins.txt. La table Médecins dispose de la structure suivante :
Médecins (Num Med, Nom, Adresse, Spécialité)
Pour finaliser cette importation, nous procédons comme suit :
1. Nous importons nos données comme via le Menu : Ficher - Données externes - Importer. . . , tout
en choisissant le type du fichier texte. Le fichier à importer est bien Medecins.txt. Il se trouve
à l’adresse internet http://eric.univ-lyon2.fr/~jvelcin dans la partie “Enseignements”.
2. Nous assurons l’importation en cochant les options comme indiqué dans les figures suivantes :
Dans la figure suivante, on choisit l’option Dans une nouvelle table comme notre but est de créer
une nouvelle table et pas de mettre à jour une table existante.
Après, et pour le champ Num Med, nous l’indexons comme un attribut sans doublons puisque
nous voudrions le garder comme clef primaire après. Une clef primaire ne peut pas avoir de
doublons puisqu’elle identifie tout l’enregistrement (une ligne dans la table correspondante).
Nous confirmons après ces indexations par le choix de l’attribut Num Med comme clé primaire.
Après, il reste qu’à valider le bouton Suivant et le bouton Terminer du formulaire suivant. Nous
pouvons vérifier la bonne création de la table Medecins en y accédant depuis la base de données
clinique.
1.7
Fermeture de la base de données et sortie d’ACCESS
1. Fermer tous les objets de la base de données éventuellement ouverts (tables, requêtes, etc.).
2. Fermer la base de données en cliquant sur le bouton dans la fenêtre de gestion de la base ou par
le menu Fichier/Fermer.
3. Quitter ACCESS par le menu Fichier/Quitter ou en cliquant sur le bouton. Votre base de données
est automatiquement sauvegardée.
2
Exercice sur les retraites
2.1
Création et saisie
1. Dans une nouvelle base de données nommée “Retraites”, créer la table “CLUB” possédant les
caractéristiques suivantes :
Nom du champ
Numéro
Nom
Type
NuméroAuto
Texte
Date
Date/Heure
Montant
Monétaire
Règlement
Texte
Propriétés du champ
clef-primaire
Taille : 20 caractères
Format : demander l’affichage en majuscules
Légende : Date règlement
Valeur par défaut : date d’aujourd’hui
Règle de validation : valeur inférieure ou égale à
la date d’aujourd’hui
Message si erreur : “Entrez une date inférieure
ou égale à celle d’aujourd’hui”
Valeur par défaut : 200 (on prend l’euro comme
monnaie par défaut)
Règle de validation : montant inférieur ou égal
à 500
Message si erreur : “Saisissez une valeur
inférieure ou égale à 500”
Interdire que le champ soit laissé vide (valeur
NULL)
Légende : Réglé par
Liste de choix : chèque ou espèces
– Pour demander l’affichage en majuscules, la propriété “Format” du champ considéré est > (ou
< si on demande un format en minuscules).
– La fonction à utiliser pour mentionner la date courante est : =Date().
2. Saisir les données suivantes dans la table :
Nom
Antoine
Trassard
Brice
Rolland
Matier
Draze
Date
Saisir la date d’hier
Saisir la date d’aujourd’hui
Saisir la date de demain
Ne rien saisir
Saisir la date d’avant-hier
Saisir la date d’aujourd’hui
Montant
Ne rien saisir
300
600
500
200
500
Règlement
Chèque
Espèces
Espèces
Chèque
Espèces
Chèque
Commentaires ?
2.2
Importation
On souhaite importer dans la base de données “Retraites” une table contenant des codes et des
noms d’adhérents. Cette table est contenue dans une autre base de données, externe, nommée “ Import
”.
1. A l’aide d’un navigateur Web tel qu’Internet Explorer, télécharger la base de données import.mdb
dans votre répertoire. Le fichier se trouve à l’adresse : http://eric.univ-lyon2.fr/~jvelcin
dans la partie “Enseignements”.
Lorsque la boite de dialogue suivante apparaı̂t, utiliser l’option “Enregistrer” pour télécharger
une copie du fichier import.mdb dans votre répertoire. Ne surtout pas ouvrir et/ou modifier ce
fichier en ligne, utiliser votre copie !
2. Ouvrir la base de données “Retraites”, puis activer le menu “Fichier / Données externes /
Importer”. Sélectionner la base de données “Import”, puis la table “Adhérents”, valider. Commentaires ?
Téléchargement