TP N°3 : Compléments sur la création d`une base de données et sur

publicité
Outils en Informatique - TP Bases de Données élémentaires
DE1
TP N°3 : Compléments sur la création d’une
base de données et sur les requêtes
Les questions et manipulations ci-dessous portent
BD_Test_TD1.mdb, que vous avez créée précédemment.
I.
sur
la
base
de
données
Complément sur la création de base de données : définition
des contraintes d’unicité
Cette section va vous indiquer comment créer des contraintes d’unicité multi-attributs.
Une contrainte d’unicité mono-attribut (ne portant que sur un seul attribut) permet de vérifier
que les valeurs d’un attribut sont uniques, c’est-à-dire que chaque valeur de l’attribut
n’apparaît qu’une seule fois dans la colonne correspondante. Chaque valeur de l’attribut est
unique.
Par défaut, tout attribut clé primaire est unique. Lorsque vous avez défini vos clés
primaires lors du TP N°1, ACCESS a automatiquement mis à jour la propriété Indexé en lui
donnant la valeur Oui – sans doublon (cf. Question 1 du TP N°1).
Lorsque vous choisissez d’indexer un attribut (non clé primaire) sans doublon vous définissez
une contrainte d’unicité sur cet attribut.
1.
Reprendre la relation Cours, créée lors du TP N°1, et définir une contrainte
d’unicité sur l’attribut Intitulé (On ne veut pas deux intitulés de même nom pour deux
cours différents).
§
Une contrainte d’unicité multi-attributs porte sur plusieurs attributs (A1, A2,…,An)
et permet de vérifier l’unicité des ensembles de valeurs (v1, v2,…,vn) où vi est la
valeur de l’attribut Ai.
Pour plus de clarté, prenons l’exemple de la relation Telephones, créée lors du TP N°1.
Si vous avez choisi comme clé primaire de cette relation (table) le couple
(RefEtudiant,Numero), alors par défaut le couple est unique. Par exemple, le couple
(123456,06 72 34 45 67), indiquant que l’étudiant de numéro de carte 123456 a comme
téléphone le numéro 06 72 34 45 67, ne peut apparaître qu’une seule fois dans la table.
En revanche, si vous avez choisi comme clé primaire de la relation Telephones, un attribut
numérique s’incrémentant automatiquement, alors il est possible de créer deux nuplets avec le
même couple (RefEtudiant,Numero), car ce couple n’est pas défini comme unique. Les étapes
suivantes vont permettre de définir une contrainte d’unicité sur ce couple d’attributs.
2.
Reprendre la relation (table) Telephones et, si ce n’est pas déjà fait, choisir ou
définir une clé primaire correspondant à un numéro s’incrémentant automatiquement.
3.
Insérer deux nuplets avec le même étudiant et le même numéro de téléphone.
Aucun message d’erreur ne doit être affiché si vous avez bien défini la clé primaire
comme indiqué précédemment.
4.
Supprimer ensuite un des deux nuplets ajoutés.
Université Paris-Dauphine
1/4
Outils en Informatique - TP Bases de Données élémentaires
5.
DE1
Revenir en mode Création pour la relation (table) Telephones et cliquer sur
l’icône
. Une fenêtre de la forme de celle de la Figure 1 doit s’afficher. Cette fenêtre
indique l’existence de trois index. Le deuxième index s’appelle PrimaryKey (pour clé
primaire en anglais), porte sur l’attribut N° et ordonne les valeurs de cet attribut par ordre
croissant. Il est créé par défaut par Access sur l’attribut clé primaire de la relation
Telephones. Le troisième index s’appelle RefEtudiant, porte sur l’attribut de même
nom. Il a été crée lorsque dans le TP N°1 vous aviez choisi d’indexer l’attribut
RefEtudiant avec doublons. Le premier a été créé par défaut par access, sans raison
valable apparente.
Figure 1 - Fenêtre de création d'index de la relation Telephones.
Rappel : un index est une structure de données qui accélère l’accès aux données. Un index de
base de données ressemble un peu à un index de livre. L’index à la fin d’un livre indique,
pour chaque mot-clé, les pages du livre où apparaît ce mot-clé. Un index de base de données
indique, pour chaque valeur de l’attribut indexé, quels sont les nuplets correspondants.
Supposons que l’on recherche les nuplets contenant les numéros de téléphone de l’étudiant
numéro 12345. Sans index, Access doit lire chaque nuplet de la relation Telephones pour
vérifier si l’attribut RefEtudiant a pour valeur 12345. Avec l’index, Access sait
exactement quels sont les nuplets ayant 12345 comme valeur de l’attribut RefEtudiant.
Voir transparents 26 et 27 du cours.
6.
Dans la fenêtre Index, sur une ligne vierge et dans la colonne Nom de l’index,
inscrire ContrainteUnicité. Il s’agit du nom de l’index que l’on va créer pour préciser que le
couple (RefEtudiant,Numero) doit être unique. Dans la colonne Nom du champ sur la même
ligne, sélectionner RefEtudiant dans la liste. Sur la ligne du dessous, toujours pour la colonne
Nom du champ (laissez la colonne Nom de l'index vierge au niveau de cette ligne),
sélectionner Numero.
7.
Cliquer sur le nom de votre index (ContrainteUnicité) et dans le bas de la
fenêtre, sélectionner Oui pour la propriété Unique – voir Figure 2. Vous venez de créer une
contrainte d’unicité multi-attributs portant sur le couple d’attributs (RefEtudiant,Numero).
Université Paris-Dauphine
2/4
Outils en Informatique - TP Bases de Données élémentaires
DE1
Figure 2 - Création d'une contrainte d'unicité pour le couple (RefEtudiant,Numero) de la relation
Telephones.
8. Insérer maintenant un nuplet avec les même valeurs pour le couple d’atributs
(RefEtudiant,Numero) qu’un nuplet existant dans votre relation Telephones. Si
vous avez bien défini votre contrainte d’unicité multi-attributs, un message
d’erreur doit s’afficher.
II.
Requête « complexe »
Cette section complète le TP N°2.
A. Requête de sélection
9. Insérer deux nuplets dans la relation Cours correspondant à un cours d’Analyse et un
cours d’Algorithmique.
10. Insérer deux nuplets dans la relation Notes pour le même étudiant de telle sorte que cet
étudiant ait 14 en note d’examen de Session 1 d’Analyse et 12 en note d’examen de
Session 1 d’Algorithmique. Insérer également deux autres nuplets dans la relation Notes :
un pour un autre étudiant ayant eu 14 en note d’examen de Session 1 d’Analyse (mais pas
12 en note d’examen de Session 1 d’Algorithmique), et vice-versa.
11. Créer une requête permettant de sélectionner le nom et le prénom des étudiants ayant eu
14 en note d’examen de première session en Analyse et 12 en note d’examen de première
session en Algorithmique.
 Rappel : un nuplet a une et une seule valeur pour chaque attribut.
 Astuce : il va peut-être falloir créer des sous-requêtes pour écrire celle demandée.
B. Requête d’ajout
Une requête d’ajout permet d’ajouter des nuplets dans une relation (table), à partir des
données d’une relation de la même base de données ou d’une autre base de données.
Pour tester le fonctionnement des requêtes d’ajout, prenons l’exemple suivant. On suppose
que la base de données BD_Test_TD1.mdb est utilisée par le secrétariat du département
MIDO. On suppose que le CRIO Informatique possède sa propre base de données dans
laquelle une relation (table) LoginsACreer contient les numéros de carte, les noms et prénoms
Université Paris-Dauphine
3/4
Outils en Informatique - TP Bases de Données élémentaires
DE1
des étudiants pour lesquels il faut créer des comptes sur les machines du CRIO. Vous allez
créer une requête d’ajout permettant d’ajouter des nuplets dans la relation LoginsACreer de la
base de données du CRIO à partir des données issues de la relation Etudiants de la base de
données que vous avez créée précédemment.
Les étapes à suivre sont les suivantes :
12.
Créer une nouvelle base de données, intitulée par exemple BD_CRIO.mdb.
13.
Créer dans cette base de données, une relation LoginsACreer contenant les
attributs suivants :
§
Une clé primaire de type entier s’incrémentant automatiquement
§
Un attribut NumeroCarte de type Numérique
§
Un attribut Nom de type Texte
§
Un attribut Prenom de type Texte
14.
Retourner dans la base de données BD_Test_TD1.mdb.
15.
Créer une nouvelle requête en mode Création.
16.
Sélectionner la relation Etudiants dans la fenêtre Ajouter une table et fermer la
fenêtre Ajouter une table.
17.
18.
Dans le menu Requêtes, sélectionner Requête Ajout.
Dans la fenêtre qui apparaît (voir Figure 3), indiquer, dans Nom de fichier, le
nom de la base de données que vous avez créée à l’étape 12, en précisant le chemin
d’accès1 complet, BD_CRIO.mdb, et dans Nom de la table sélectionner le nom de la
relation LoginsACreer (qui apparaît après que vous avez indiqué le nom de l’autre
base de données).
Figure 3 - Fenêtre de destination des données ajoutées.
19. Sélectionner les attributs NumeroCarte, Nom et Prenom de la relation Etudiants
(comme pour une requête de sélection) et sélectionner les noms d’attributs
correspondant dans la ligne Ajouter à (au-dessus des critères de recherche).
20. Exécuter la requête.
21. Vérifier dans la relation LoginsACreer de la base de données BD_CRIO.mdb que
les nuplets ont bien été insérés.
1
Le chemin d’accès complet correspond à la liste des répertoires où trouver le fichier depuis le répertoire
racine de la machine (C:\ pour le répertoire racine du disque C ou D:\ pour le répertoire racine du disque D)
Ex. D:\MAUDE\COURS\POLY_06_07\BD\L1\FichiersACCESSTP\BD_CRIO.mdb
Université Paris-Dauphine
4/4
Téléchargement