Théorie des graphes : Exercice 0 profil etudiant v1
Télécharger PDFUNIVERSITE CADI AYYAD
Facult ́e PolyDisciplinaire de Safi
Fili`ere SMI/SMA
2019−2020Base de donn ́ees Avanc ́ees
TD / TP : LCD
Exercice 0Profile
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 1Les ́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 rolerolea.
•Partie II (utilisateur DEVAPP):
1. Donner leMLDavec des commentaires.
2. Cr ́eer une proc ́edurenoterprof()qui permet `a un ́etudiant de noter un prof.
3. Cr ́eer une proc ́edureconsulter()qui permet `a un profs de consulter la moyenne
de ces notes.
4. Cr ́eer deux rolesrole1pour les ́etudiants etrole2pour les profs avec leurs
privil`eges.
5. Cr ́eer un utilisateurADMINqui va g ́erer l’application.
6. Donner un exemple d’ajout d’un ́etudiant et d’un prof.
7. Cr ́eer un utilisateuretd1etprof1avec les privil`eges n ́ecessaires.
•Partie III (utilisateur etd1):
. 8. Donner un exemple d’appel de la proc ́edurenoterprof().
•Partie IV (utilisateur prof1):
. 9. Donner un exemple d’appel de la proc ́edureconsulter().
Mardi 7 Avril 2020A. Bendarag
UNIVERSITE CADI AYYAD
Facult ́e PolyDisciplinaire de Safi
Fili`ere SMI/SMA
2019−2020Base de donn ́ees Avanc ́ees
Exercice 2Mails 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 leMLDavec des commentaires.
2. Cr ́eer une proc ́edureenvoyer()qui permet `a un utilisateur d’envoyer un mail.
3. Cr ́eer une proc ́edurelire()qui permet `a un utilisateur de lire un mail.
4. Cr ́eer une proc ́eduresupprimer()qui permet de supprimer un mail.
5. Cr ́eer deux utilisateursuser1etuser2avec les privil`eges n ́ecessaires.
•Partie II(utilisateurs user1 et user2):
1. Donner un exemple d’appel de la proc ́edureenvoyer().
2. Donner un exemple d’appel de la proc ́edurelire().
3. Donner un exemple d’appel de la proc ́eduresupprimer().
Exercice 3LCD 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’utilisateursystemdoit cr ́eer un utilisateurDEVAPP(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 auMLD.
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 2020A. Bendarag
UNIVERSITE CADI AYYAD
Facult ́e PolyDisciplinaire de Safi
Fili`ere SMI/SMA
2019−2020Base 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 (utilisateurADMIN)
1. Donner un exemple d’ajout d’une salle.
2. Donner un exemple d’ajout d’un utilisateur.
3. Cr ́eer un rˆolerolecqui 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ˆolerolec.
•Partie VI (utilisateuruser1)
1. Poster un message. Traiter les deux cas possibles
Mardi 7 Avril 2020A. Bendarag