Utilisation de Bases de Données TD2

publicité
Bases de Données TP1 09-10
Définition et Manipulation de Données en SQL et QBE
1. Définir (sur papier) les tables de la base S-P avec leurs clés. D’abord, en utilisant la commande Create Table
du cours. Puis, créez la base appelée S_P sous MsAccess. Si possible prévoyez sa sauvegarde sur votre clé USB,
elle pourrait se perdre après la fin de TPs autrement. Observez la manière de cette création et que l’instruction
Create Database n’existe pas sous SQL standard (incroyable, mais vrai) et MsAccess. Eessayez la syntaxe et les
types réellement disponibles pour la commande Create Table de MsAccess. A découvrir dans l’aide de
MsAccess en l’interrogeant avec les mots clés « Create Table », puis avec « Data type SQL ». Ensuite,
restructurez S en y ajoutant l’attribut la photo disons du siège de la société et émail. Utilisez d’abord les types de
l’interface graphique (QBE). Puis, tentez d’employer les types réellement disponibles sous MsAccess qui sont
les mêmes que pour Create Table. Commentez le résultat. Enfin, supprimez toutes les tables.
2. Définir ensuite les tables de la base S-P encore une fois, cette fois-ci par l’interface QBE (ex. pratique).
Commencez par le mode par exemple, complétez par Mode Création. Ajoutez les titres de colonnes de votre
choix qui apparaîtront dans les requêtes impliquant la table P. Définissez les liens sémantiques dans S-P en
utilisant la fenêtre Relations. Choisissez ensuite pour tout type de jointure les jointures internes. Puis,
transformez chaque lien en contrainte d’intégrité référentielle. Enfin, ajoutez la propagation en cascade des mises
à jour de la clé. Remplissez la base en mode QBE (insertion directe de lignes en mode Feuille de Données).
Observez les effets de l’existence de contraintes d’intégrité référentielle sur la base. En tentant ajouter une ligne
(S7, P7, 300) dans SP et en tentant de modifier S1 en S10 dans S. Enfin en tentant de supprimer le tuple
identifié par P1 dans P. Avez-vous réussi ? Ajoutez les contraintes que Status < 100, que si status = 200 alors la
ville du fournisseur est Paris, puis, que la couleur d’une pièce n’est que ‘Red’, ou Green’ ou ‘Blue’. Enfin,
exécuter la requête du cours avec les jointures implicites.
3. Faire les mêmes opérations pour la base Ecole de Conduite, ci-joint en UML. Créer aussi un petit jeu
d’essais. Comme résultat, on pourrait avoir les tables qui suivent. Comprenez, ou rappelez vous, pourquoi. Créez
aussi les liens sémantiques ou contraintes d’intégrité référentielles selon vous adéquates et possibles en utilisant
la fenêtre de Relations de MsAccess.
Cl (Cl#, Nom, Prenom, Adr, D_Naiss)
S_Code (Se#, D_sess, Heure, Cd#, S#)
A (Cl#, Se#, N_Fautes)
E (PC#, D_pref, Heure, Lieu)
E-R (PC#, Cl#, N_Fautes)
CD (Cd#, Edit)
S (Cd#, S#)
SRQ (Cd#it d, S#, Q#, P#)
Q (Q#, Int, Rep, Diff, Theme)
A noter que le mot Date simplement pour tout nom d'attribut désignant une date dans les tables ci-dessus est
possible sous MsAccess. Mais c'est aussi le nom réservé deMsAccess. Ce qui peut créer des problèmes.
4. Définir dans le langage de définition de l’interface graphique de MsAccess les contraintes d’intégrité
suivantes, en sachant que les opérateurs de comparaison sont comme suit (< , >, <=, >=, =, Entre, <>) :
a. Dans la définition de A : formuler de deux manières, au moins que le nombre de fautes est entre 0 et 40.
Dire dans quel endroit on fait cette déclaration. Ajouter (où ?) le message « Nombre de fautes incorrect » si la
contrainte est violée.
b. Pour la table Q : formuler de deux manières la contrainte : Si la difficulté est plus que 10, alors le
Thème est « Conduite de Rallye ». Avec un message « La difficulté ou le Thème erronés ». Les opérateurs
logiques disponibles sont (Eqv, Et, Imp, Ou, Ou_x, Pas).
c. Pour Q aussi formuler la contrainte: Si la difficulté est 5 ou plus, alors la réponse est nécessaire.
5. Définir pour la table Cl l’indexe ascendant sur le nom comme 1èr critère, suivi de prénom.
Téléchargement