EXAMEN FINAL Flashcards
Alice est une administratrice d’une base de données. Un jour, elle remarque que Bob, un utilisateur légitime, se connecte à la base de données et télécharge une grande quantité de données. Plus tard, elle réalise que le contenu de la base de données a été dérobé et se retrouve maintenant en vente en ligne. Après investigation, Bob n’est pas responsable, ses informations de connexion lui ont été dérobées à son insu.
De quel type d’attaque s’agit-il?
Vol d’identité (hameçonnage)
Une compagnie considère le salaire de ses employés comme une information confidentielle, mais est obligée de publier le salaire moyen de chaque département. Le nombre d’employés dans chaque département est une information publique. Bob est jaloux de la nouvelle employée, Alice, et veut connaitre son salaire. Il obtient donc le salaire moyen et le nombre d’employés du département qui va accueillir Alice la journée avant son embauche formelle, et la journée après son début, et utilise ces statistiques pour calculer l’information qu’il désire.
De quel type d’attaque est-ce qu’il s’agit?
Canal caché
Quel niveau d’isolation minimal devez-vous utiliser pour prévenir ce problème? lecture fantôme.
SERIALIZABLE
Quel niveau d’isolation minimal devez-vous utiliser pour prévenir ce problème? mise à jour perdue.
REPEATABLE READ
Une requête populaire est SELECT * FROM Employes WHERE salaire > 40000 AND age = 42;. Vous avez l’option de créer un index de hachage non-groupé sur age, un index de hachage non-groupé sur salaire, ou un index de hachage non-groupé sur (age, salaire). Lequel choisir? Expliquez.
Index sur age car c’est le seul qui s’applique dans ce cas.
Une requête populaire est SELECT * FROM Employes WHERE salaire > 40000 AND age = 42;. Vous avez l’option de créer un index de hachage groupé sur (age) ou un index en arbre B groupé sur (salaire, age). Lequel choisir? Expliquez.
Index de hachage lira un ou deux secteurs d’âge = 42 pour trouver les personnes ayant le bon salaire. Index en arbre B ordonne par salaire et lit un secteur par (salaire, 42). Si on suppose plusieurs personnes de 42 ans avec une gamme de salaires > 40k, alors sélectionner par âge est plus avantageux.
Une requête populaire est SELECT nom FROM Employes WHERE age = 28 AND salaire = 50000;. Vous avez l’option de créer un index en arbre B non-groupé sur (age, salaire) ou un index en arbre B non-groupé sur (salaire,age). Lequel choisir? Expliquez.
ça ne fait pas de différence car l’optimisateur de requêtes peut changer l’ordre du WHERE pour l’adapter à l’index disponible.
Une requête populaire est SELECT nom FROM Employes WHERE age > 28 AND salaire = 50000;. Vous avez l’option de créer un index en arbre B non-groupé sur (age, salaire) ou un index en arbre B non-groupé sur (salaire,age). Lequel choisir? Expliquez.
L’index sur (salaire, age) car il sera plus sélectif.
Une requête populaire est SELECT * FROM Employes WHERE ID = 8 ORDER BY nom;. Vous avez l’option de créer un index de hachage non-groupé sur ID ou un index de hachage groupé sur ID. Lequel choisir? Expliquez.
L’index non-groupé, car la requête est une égalité de clé primaire et donc retourne toujours un seul tuple.
Considérez les deux requêtes suivantes :
SELECT nom FROM Employes WHERE age > 28 AND salaire < 50000.
SELECT nom FROM Employes ORDER BY age;
Vous avez le choix entre un index en arbre B non-groupé sur age ou un index en arbre B nongroupé sur (salaire, age, nom). Dans quel cas est-ce que le deuxième index sera préférable?
Le deuxième index fait de la requête 1 une requête index-seulement très efficace mais ne s’applique pas à la requête 2. Donc cet index est préférable si la requête 1 est plus fréquente ou importante à optimiser que la 2.
Considérez la requête suivante : SELECT nom, min(age) FROM Employes WHERE titre = ‘associé’;.
Le SGBDR ne supporte pas les requêtes d’index seulement. Proposez le meilleur index pour améliorer sa performance.
Index en arbre B non-groupé sur (titre, age).
Considérez les deux requêtes suivantes
SELECT SUM(salaire) FROM Employes WHERE titre = ‘directeur’;
SELECT * FROM Employes WHERE salaire > 50000 ORDER BY titre; Le SGBDR supporte les requêtes d’index seulement. Proposez le meilleur index pour améliorer leurs performances.
Index en arbre B groupé sur (titre, salaire).
Quel index améliorera le plus les performances de la requête :
SELECT E.nom
FROM Etudiants E
WHERE E.age > 10
GROUP BY E.cote;
A. Index en arbre B groupé sur E.age
B. Index en arbre B groupé sur E.cote
C. Index en arbre B groupé sur <E.age, E.cote>
D. Pas d’index
D Pas d’index
Quel index améliorera le plus les performances de la requête :
SELECT E.nom
FROM Etudiants E
WHERE E.age = 19 AND E.cote = ‘A’;
A. Index de hachage non-groupé sur E.age
B. Index de hachage non-groupé sur E.cote
C. Index de hachage non-groupé sur <E.age, E.cote>
D. Pas d’index
C Index de hachage non-groupé sur <E.age, E.cote>
Quel index améliorera le plus les performances de la requête :
SELECT E.nom
FROM Etudiants E
WHERE E.age > 19 AND E.cote = ‘A’;
A. Index de hachage groupé sur <E.age, E.cote>
B. Index de hachage groupé sur <E.cote, E.age>
C. Index en arbre B groupé sur <E.age, E.cote>
D. Index en arbre B groupé sur <E.cote, E.age>
D. Index en arbre B groupé sur <E.cote, E.age>