Quiz: Gestion des emprunts en bibliothèque — 12 domande

Domande e risposte dettagliate

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

Spiegazione

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]

Spiegazione

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

Spiegazione

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

Spiegazione

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

Spiegazione

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

Spiegazione

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

Spiegazione

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

Spiegazione

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

Spiegazione

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

Spiegazione

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

Spiegazione

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)

Spiegazione

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.

Ripassa con le flashcard

Memorizza le risposte con 12 flashcard su 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

Vedi le flashcard →

Studia la scheda di revisione

Leggi la scheda di revisione completa su Gestion des emprunts en bibliothèque.

Vedi la scheda di revisione →

Similar courses

Crea i tuoi quiz

Importa il tuo corso e l'AI genera quiz con correzioni in 30 secondi.

Generatore di quiz