UNIVERSITE CADI AYYAD Facult´e PolyDisciplinaire de Safi
Fili`ere SMI/SMA
2019−2020 Base de donn´ees Avanc´ees
TD / TP : LCD
Exercice 0 : Profile
Cr´eer une fonction de v´erification du mot de passe qui satisfait les conditions suivantes :
• Le mot de passe doit d´epasser 6 caract`eres.
• Le mot de passe doit ˆetre diff´erent du nom d’utilisateur.
• Le nouveau mot de passe doit ˆetre diff´erent de l’ancien mot de passe Donner les ´etapes d’utilisation de cette fonction.
Exercice 1 : Les ´etudiants notent leurs profs
La FPS veut mettre un dispositif pour permettre aux ´etudiants(ide,nome) d’´evaluer leurs profs(idp,nomp). Pour cela, on doit cr´eer une application PL/SQL. Un ´etudiant peut donner une seule note entre 1 et 5 `a un de ses profs. Un prof peut consulter la moyenne des notes donn´ees par ses ´etudiants.
• Partie I (utilisateur system):
L’utilisateur system doit cr´eer un utilisateurDEVAPP(d´eveloppeur application) avec les privil`eges n´ecessaires pour d´evelopper cette application qui seront rassembl´es dans un role rolea.
• Partie II (utilisateur DEVAPP):
1. Donner le MLDavec des commentaires.
2. Cr´eer une proc´edure noterprof()qui permet `a un ´etudiant de noter un prof.
3. Cr´eer une proc´edure consulter()qui permet `a un profs de consulter la moyenne de ces notes.
4. Cr´eer deux roles role1 pour les ´etudiants et role2 pour les profs avec leurs privil`eges.
5. Cr´eer un utilisateurADMIN qui va g´erer l’application.
6. Donner un exemple d’ajout d’un ´etudiant et d’un prof.
7. Cr´eer un utilisateuretd1etprof1 avec les privil`eges n´ecessaires.
• Partie III (utilisateur etd1):
. 8. Donner un exemple d’appel de la proc´edure noterprof().
• Partie IV (utilisateur prof1):
. 9. Donner un exemple d’appel de la proc´edure consulter().
Mardi 7 Avril 2020 A. Bendarag
UNIVERSITE CADI AYYAD Facult´e PolyDisciplinaire de Safi
Fili`ere SMI/SMA
2019−2020 Base de donn´ees Avanc´ees
Exercice 2 : Mails par LCD
Le but de cet exercice est de donner la possibilit´e `a des utilisateurs SQL*PLUS de s’envoyer des mails. Un utilisateur peut envoyer un mail soit `a un utilisateur soit `a tous les utilisateurs.
Un utilisateur peut consulter ces mails et il peut les supprimer.
• Partie I (utilisateur system):
1. Donner le MLDavec des commentaires.
2. Cr´eer une proc´edure envoyer() qui permet `a un utilisateur d’envoyer un mail.
3. Cr´eer une proc´edure lire() qui permet `a un utilisateur de lire un mail.
4. Cr´eer une proc´edure supprimer() qui permet de supprimer un mail.
5. Cr´eer deux utilisateursuser1et user2avec les privil`eges n´ecessaires.
• Partie II(utilisateurs user1 et user2):
1. Donner un exemple d’appel de la proc´edure envoyer().
2. Donner un exemple d’appel de la proc´edure lire().
3. Donner un exemple d’appel de la proc´edure supprimer().
Exercice 3 : LCD forum de discutions
On souhaite r´ealiser une base de donn´ees pour stocker un forum de discussion sur internet.
Les utilisateurs du forum devront ˆetre inscrits, la base de donn´ee contiendra donc un profil de l’utilisateur (nom, mail, date d’inscription, nombre de participation au forum). Le forum sera divis´e en diff´erentes salles de discussion, chaque salle aura une th´ematique et un de ses utilisateurs jouera le rˆole de mod´erateur. Un mod´erateur sera automatiquement nomm´e dans une salle lorsqu’il sera l’utilisateur ayant post´e le plus de message dans cette salle. Dans chaque salle de discussion, les utilisateurs pourront cr´eer de nouveaux sujets ou r´epondre `a des messages existants. Un message aura un auteur, une date de r´edaction et du texte. Les discussions auront une structure arborescentes : un message pourra avoir un unique parent et de multiple fils. Un sujet pourra ˆetre ouvert ou clˆot (dans ce cas on ne pourra plus poster).
Consid´erons le MLD suivant :
utilisateur(#idutil,nom,mail,inscription,nb_action);
salle(#idsal,theme,idmod#,nb_thread);
message(#idmsg,idparent#,idauteur#,date_envoi,idsal#,corps, etat);
• Partie I (utilisateur system):
L’utilisateur system doit cr´eer un utilisateur DEVAPP (d´eveloppeur application) avec les privil`eges n´ecessaires pour d´evelopper cette application qui seront rassembl´es dans un rˆolerolea.
• Partie II (utilisateur DEVAPP):
1. Ajouter des commentaires au MLD.
2. Cr´eer 3 s´equences sequti, seqmes et seqsal qui incr´ementent respectivement les iden- tifiants des tables utilisateurs, message et salle (une seule cr´eation est n´ecessaire).
3. Cr´eez une proc´edure permettant d’ajouter un nouvel utilisateur du forum.
Mardi 7 Avril 2020 A. Bendarag
UNIVERSITE CADI AYYAD Facult´e PolyDisciplinaire de Safi
Fili`ere SMI/SMA
2019−2020 Base de donn´ees Avanc´ees
4. Cr´eez une proc´edure permettant d’ajouter une nouvelle salle.
5. Cr´eer une proc´edure qui permet de poster un message.
6. On souhaite compter le nombre d’interventions d’un utilisateur sur le forum. Cr´eez un trigger qui se d´eclenche lors de l’insertion d’un message et incr´emente automa- tiquement l’attribut nb action de l’auteur du message.
7. Cr´eez une proc´edure qui permet de clore un sujet. La proc´edure doit g´en´erer une erreur si l’utilisateur n’est pas mod´erateur de la salle.
8. Cr´eez une proc´edure qui permet d’empˆecher toute r´eponse `a un sujet clˆot.
9. On souhaite afficher l’arborescence des messages et de leurs r´eponses, cr´eer une proc´edure qui permet cela.
10. Comment empˆecher la suppression des messages ayant des r´eponses.
11. Cr´eer un utilisateurADMINqui va g´erer l’application avec les privil`eges n´ecessaires qui seront rassembl´es dans un rˆoleroleb.
• Partie III (utilisateur ADMIN )
1. Donner un exemple d’ajout d’une salle.
2. Donner un exemple d’ajout d’un utilisateur.
3. Cr´eer un rˆole rolec qui va permettre aux utilisateur d’utiliser le forum.
4. Cr´eer un utilisateuruser1avec les privil`eges n´ecessaires qui seront rassembl´es dans un rˆole rolec.
• Partie VI (utilisateur user1)
1. Poster un message. Traiter les deux cas possibles
Mardi 7 Avril 2020 A. Bendarag