QCM : Gestion des emprunts en bibliothèque — 12 questions

Questions et réponses du QCM

1. Dans le schéma relationnel de la bibliothèque, quel attribut permet d’identifier qu’un emprunt est encore en cours ?

book_id égal à NULL
return_date à NULL
penalité égale à 0
subscription_id égal à NULL

return_date à NULL

Explication

Un emprunt en cours est repéré par une valeur NULL dans return_date. Les autres attributs ne servent pas à marquer directement qu’un emprunt n’a pas encore été retourné.

2. Quelle contrainte exprime correctement le lien entre un membre et son type d’abonnement ?

BORROWINGS[book_id] doit référencer MEMBERS[member_id]
MEMBERS[subscription_id] doit référencer SUBSCRIPTIONTYPES[subscription_id]
BOOKS[category] doit référencer SUBSCRIPTIONTYPES[subscription_id]
MEMBERS[member_id] doit référencer BORROWINGS[borrow_id]

MEMBERS[subscription_id] doit référencer SUBSCRIPTIONTYPES[subscription_id]

Explication

Le champ subscription_id de MEMBERS doit bien pointer vers SUBSCRIPTIONTYPES via la clé subscription_id. Les autres propositions mélangent des clés étrangères qui concernent d’autres tables.

3. Que mesure la sélectivité d’un prédicat dans l’estimation des requêtes ?

Le nombre de pages occupées par une table
La taille fixe d’un bloc mémoire de jointure
La capacité du prédicat à réduire le nombre de tuples candidats
Le nombre de niveaux d’un index B-arbre

La capacité du prédicat à réduire le nombre de tuples candidats

Explication

La sélectivité décrit à quel point un filtre réduit les tuples candidats, ce qui sert à estimer la taille des résultats. Elle ne mesure ni le nombre de pages, ni le nombre de niveaux d’index.

4. Dans l’estimation des coûts, que représente le parcours d’un niveau d’un index B-arbre ?

Une lecture de page
Une lecture de table complète
Une lecture de ligne par tuple
Une écriture de page de données

Une lecture de page

Explication

Le cours indique qu’un niveau d’index B-arbre correspond à 1 page lue pour le calcul du coût. Ce n’est pas une lecture de table complète ni une lecture tuple par tuple.

5. Dans le contrôle d’intégrité par trigger, sur quoi doit se baser la vérification avant d’autoriser un nouvel emprunt ?

Sur le nombre d’emprunts actifs, donc ceux dont return_date vaut NULL
Sur le nombre total d’emprunts historiques du membre
Sur le nombre de livres disponibles dans BOOKS
Sur la valeur de la pénalité cumulée du membre

Sur le nombre d’emprunts actifs, donc ceux dont return_date vaut NULL

Explication

La contrainte vise le nombre de livres empruntés simultanément, donc uniquement les emprunts non rendus avec return_date = NULL. Compter tous les emprunts historiques donnerait une mauvaise décision.

6. Quel événement est principalement visé par le trigger chargé de faire respecter max_borrow_limit ?

L’insertion d’un nouvel emprunt
Le tri des abonnements par durée
La modification du titre d’un livre
La consultation d’un membre

L’insertion d’un nouvel emprunt

Explication

Le texte précise que les emprunts ne sont pas modifiés et que le cas principal est l’insertion, éventuellement complétée par la suppression selon l’implémentation. Les autres opérations ne concernent pas cette contrainte.

7. Que garantit le niveau d’isolation read committed lors d’une lecture ?

L’absence totale de blocage entre transactions
La visibilité des données non validées d’une autre session
Un ordonnancement strictement équivalent à une exécution sérielle
La lecture de données validées au moment de la lecture

La lecture de données validées au moment de la lecture

Explication

En read committed, une lecture ne doit voir que des données déjà validées. Les données non validées d’une autre transaction ne doivent pas être visibles.

8. Quel est l’effet principal du niveau d’isolation serializable ?

Supprimer toute nécessité de commit
Obtenir un comportement équivalent à une exécution en série
Permettre uniquement des transactions en lecture
Autoriser la lecture des versions non validées

Obtenir un comportement équivalent à une exécution en série

Explication

Serializable vise un comportement équivalent à une exécution séquentielle des transactions, quitte à bloquer ou faire échouer certaines opérations. Il ne permet pas la lecture des versions non validées.

9. Dans le mapping JPA, quelle association doit être portée par l’entité Member ?

Une association vers SubscriptionType via subscription_id
Une association vers Borrowing via return_date
Une association vers Book via book_id
Une association vers Members via member_id

Une association vers SubscriptionType via subscription_id

Explication

Member doit être mappé avec son type d’abonnement grâce à subscription_id. Les autres propositions confondent les rôles des entités et des clés étrangères.

10. Quelle propriété doit être correctement reflétée dans le mapping JPA de Borrowing ?

book_id doit toujours être NULL
member_id est stocké comme une chaîne de caractères
subscription_id est la clé primaire de Borrowing
return_date peut valoir NULL

return_date peut valoir NULL

Explication

Borrowing doit permettre que return_date soit NULL, car cela représente un emprunt en cours. Les autres propositions contredisent le schéma ou les associations décrites.

11. Quelle valeur de sélectivité faut-il utiliser par défaut lorsqu’on ne connaît pas la cardinalité d’un ensemble associé à un prédicat ?

CARD(X)/10
1/CARD(X)
1/10
1 - S(p)

1/10

Explication

Lorsque la cardinalité n’est pas connue, la sélectivité est estimée par défaut à 1/10. La formule 1/CARD(X) s’applique seulement quand CARD(X) est connue.

12. Comment se calcule la sélectivité d’une conjonction F = F1 ∧ F2 ?

S(F1) * S(F2)
S(F1) / S(F2)
S(F1) + S(F2) - S(F1) * S(F2)
1 - S(F1)

S(F1) * S(F2)

Explication

Pour une conjonction, la règle donnée est le produit des sélectivités : S(F) = S(F1) × S(F2). La formule d’inclusion-exclusion correspond, elle, à la disjonction.

Révisez avec les flashcards

Mémorisez les réponses avec 12 flashcards sur Gestion des emprunts en bibliothèque.

Schéma relationnel bibliothèque — rôle ?

Modéliser les données et leurs relations

Optimisation requêtes — but ?

Réduire le coût d'exécution

Contraintes d'intégrité — mécanisme ?

Garantir la cohérence des données

Voir les flashcards →

Approfondir avec la fiche

Consultez la fiche de révision complète sur Gestion des emprunts en bibliothèque.

Voir la fiche →

Cours similaires

Crée tes propres QCM

Importe ton cours et l'IA génère des QCM avec corrections en 30 secondes.

Générateur de QCM