2. Transactions, optimisation, concurrence

publicité
isUniversité de Sherbrooke
Faculté des sciences
Département d’informatique
IGE 487 – Modélisation de bases de données
Travail pratique 2
Optimisation, transactions, concurrence et récupération.
Le but de ce deuxième TP est de comprendre quelques concepts théoriques traités dans le
cours à l’aide d’un ensemble de questions et d’exercices.
1. Traitement et optimisation de requêtes.
1. Pourquoi faut-il transformer une commande SQL en requêtes de l’algèbre relationnelle
avant l’optimisation?
2. Quelle est la différence entre matérialisation et pipeline lors du traitement d’une
requête?
3. Pour les requêtes suivantes, dessiner l’arbre d’optimisation en forme canonique et à
partir de celui, proposer le meilleur arbre d’optimisation. Montrez toutes les étapes de
transformation :
a) select fname, lname, address
from employee, department
where dname = ‘Research’ and dnumber = dno;
b) select dname, lname, fname, pname
from department, employee, works_on, project
where dnumber = dno
and ssn = essn
and pno = pnumber
and lname = ‘Smith’
c) select e.fname, e.lname, s.fname, s.lname
from employee e, employee s
where e.super_ssn = s.ssn
4. Expliquez comment les décisions prises lors du design de la base de données peuvent
avoir un impact sur la performance de l’application.
5. Dans quelles situations faut-il appliquer la dénormalisation? Justifiez votre réponse.
6. Quel est l’impact de l’utilisation des index sur les requêtes? Justifiez votre réponse.
IGE 487 Modélisation de bases de données.
Été 2010
Deuxième travail pratique
1
7. Comment une table de hash peut aider à la base de données à accélérer l’accès aux
requêtes.
8. Un index est toujours une bonne manière d’augmenter la performance d’une base de
données. Si oui, pourquoi, si non, donner un exemple.
2. Traitement de transactions.
9. Toute transaction doit implémenter les propriétés ACID. Donnez un exemple de
violation de chacune de ses propriétés. Expliquez les conséquences de cette violation.
10. Quelle est la différence entre une histoire sérialisée et une histoire sérialisable?
11. Le nombre d’histoires de d’un ensemble de transactions est très grande. Pour ce petit
exemple, donnez toutes les histoires possibles pour les transactions T1 et T2. Quelles de
ces histoires sont conflit sérialisable (correctes) et lesquels ne le sont pas, pourquoi ?
3. Contrôle de la concurrence.
12. Quelles sont les conditions pour qu’un « dead-lock » arrive ?
13. Comment résoudre un « dead-lock » une fois qu’il est arrivé ?
14. Quel est l’avantage d’utiliser les verrous « exclusive/partagé » face aux verrous
binaires ?
4. Récupération de la base de données.
13. Quelle est l’utilité du système de log dans une base de données?
IGE 487 Modélisation de bases de données.
Été 2010
Deuxième travail pratique
2
14. Quelle est la différence entre les données « after image » et « before image » ?
15. Expliquez les opérations UNDO et REDO et son application dans les techniques de
récupération.
Livrables
Comme livrable pour ce deuxième travail il faut remettre un rapport en format PDF.
Toujours écrire la question et ensuite la réponse.
Remise
La date prévue pour la remise du premier TP est le jour de l’examen.
Utilisez la commande turnin pour remettre votre travail.
turnin –c ige487 –p ige487TP2 tp2.zip
IGE 487 Modélisation de bases de données.
Été 2010
Deuxième travail pratique
3
Téléchargement