Adloun

NSI (terminale) · Chapitre 11 · Exercice d'entraînement

Deux guichets, une seule place

Bases de données : le modèle relationnel · Contraintes d'intégrité et rôle du SGBD · niveau 3 (difficile)

Énoncé

Deux guichets, une seule place. Un théâtre vend ses billets depuis deux guichets, A et B, reliés à la même base. Pour le spectacle numéro , il reste une place. Chaque guichet exécute la même procédure :

  • (L) lire le nombre de places restantes ;
  • (T) si , vendre un billet au client ;
  • (E) écrire comme nouveau nombre de places restantes.
  • Les deux guichets reçoivent un client presque en même temps, et les étapes s'enchaînent ainsi : L de A, L de B, T de A, T de B, E de A, E de B. Dresser un tableau donnant, après chaque étape, la valeur stockée dans la base et ce que chaque guichet a fait. Combien de billets ont été vendus ? Que vaut finalement le nombre de places ?
  • Pourquoi un programme qui teste bien « » produit-il quand même une erreur ?
  • Expliquer comment la gestion des accès concurrents par le SGBD empêche ce problème.
  • Autre situation : un virement de euros d'un compte X vers un compte Y consiste à retirer de X puis à ajouter à Y. Que se passe-t-il si le serveur tombe en panne entre les deux opérations ? Quel service du SGBD l'évite ?

Un exercice à chercher : son corrigé n'est pas publié. Sur Adloun, le tuteur guide par questions, sans donner la réponse.

Exercices semblables

Le cours du chapitre · Tous les exercices du chapitre