Sgbd 2er année Cours 2/3, TP 2
Pré requis
Nous devons considérer pour avancer que le modèle mis en place lors du dernier cours, et de la première séance de TP, a été étudié et au moins partiellement implémenté. Ce modèle de départ est en ligne à l’adresse http://serecom.iut-tarbes.fr/ficheferrepatrick.htm Vous avez donc : à la rubrique « ressources » le moyen de :
Etudier le modèle de notre cahier des charges d’un SGBD « Poursuite d’Etudes »
Considérer le modèle non finalisé comme un « noyau » de départ adéquat
Comprendre qu’il faut le compléter, et aboutir à un modèle qui remplisse les exigences du cahier des charges.
A) Nous avons à ce stade :
R1 etudiants (a, b, c, …,n), R2 poursuites (a, b, c, .., n), R3 Utilisateurs (a, b, c, .., n) Ces trois tables sont les tables du noyau de notre application.
a) Ces tables permettent d’obtenir des résultats de recherches dans la base (sur les critères choisis). Le visiteur - et les étudiants fichés dans la tables étudiant avec un statut particulier - peuvent activer des requêtes de consultations. Exemple : SELECT * FROM poursuite WHERE diplome = ’licence Pro’ AND departement =’SRC’. Soit ici une requête demandant à ce que soit extrait de la base les licences professionnelles qui intéressent le département SRC.
b) Pour gérer la base en obtenant le droit d’écriture dans la base, les utilisateurs privilégiés peuvent insérer, modifier, supprime des fiches. Ils ont donc des droits étendus d’accès. En clair il peuvent insérer, modifier, supprimer des fiches. Les instructions qui sont alors utilisées sont les suivantes :
INSERT INTO poursuite (ID, Titre, Adresse, Descriptif, Diplome, Domaine, Commentaire, Departement, Ville) VALUES (' ', 'Licence Professionnelle SRC de Tarbes', 'http://serecom.iut-tarbes.fr', 'Licence Pro, à dominante gestion de projets multimédia', 'Licence Pro', 'Multimédia', 'Licence Pro qui accueillera les étudiants sur dossier dès la rentrée 2005', 'SRC', UCASE('Tarbes'));
UPDATE poursuite SET ID=' ', Titre=UCASE('Licence Professionnelle Multimédia Services et gestion de projet multimédia de Tarbes'),
Adresse='http//serecom.iut-tarbes.fr/Poursuite2', Descriptif='Licence Pro qui ouvrira à la rentrée 2005', Diplome='Licence Pro', Domaine
='Mulitmédia', Commentaire='Licence orientée Multimédia et gestion de projets des supports mulimédia', Departement=UCASE('SRC'), Ville=UCASE ('Tarbes') ;
DELETE FROM poursuite WHERE Titre ='Licence Professionnelle Multimédia Services et gestion de projet multimédia de Tarbes');
B) Conséquence, notre modèle est incomplet a) Le problème :
Il faudrait, entre autre, réaliser une relation qui rende compte du rôle des utilisateurs privilégiés sur la table poursuite. Il manque donc une relation. Et dès que ces utilisateurs devront pouvoir insérer, mettre à jour, ou modifier la table étudiants, et d’autres éventuelles, alors il manque plusieurs relations. On doit noter alors, que la mise en place de relations nouvelles nécessitera quelque modification des tables de départ…
1
Sgbd 2er année Cours 2/3, TP 2
b) Début de solution :
Pour mettre à jour le modèle, il est nécessaire d’établir une relation les « utilisateurs » gèrent les fiches de « poursuite ». vous retrouvez ici la règle 1 utilisateur peut gérer n fiches et une fiche peut être gérée par un ou n utilisateur(s). Cela donne, dans une première approche le modèle suivant.
C) Le travail à réaliser en conséquence :
a) Mettre à jour les tables qui seraient à compléter avec l’instruction ALTER :
Où l’on peut changer les caractéristique d’un champ, ou ajouter un champ etc. Exemple : Ici la table poursuite pour le champ ‘Diplôme’ avait un attribut typé varchar sur 20 caractères, que nous rendons plus adéquat en le fixant à 40 caractères. Et, il manquait une clé étrangère qui permettra la relation entre ‘etudiants’ et ‘poursuite’, nous la créons. Notez que ces modifications peuvent être réalisées à « chaud » alors que la base est en cours de fonctionnement.
ALTER TABLE PoursuiteEtude.poursuite CHANGE Diplome Diplome VARCHAR(40) NOT NULL;
S’agissant d’ajouter un champ manquant, la clé étrangère par exemple (CdeEtud) avec la commande
ALTER TABLE PoursuiteEtude.poursuite ADD CdeEtud INT(5);
b) Tester les requêtes qui apparaissent maintenant possibles.
___________________
2
Deux « nouveautés » non implantées dans la base
« poursuite » que vous consultez en ligne
1) La relation des étudiants aux fiches de la table
« poursuite », retenues comme intéressantes.
2) Les clés étrangères nécessaires aux requêtes où l’égalité de la clé primaire de l’étudiant avec la clé étrangère dans poursuite permet de retrouver les choix de l’étudiant… Soit une solution provisoire