mercredi 15 juillet 2009

Dossier 4 – Procédures stockées & Triggers ( 10 Pts) :

Vous participez à la réalisation d’un logiciel permettant de gérer les comptes bancaires d’un particulier.

Dans un premier temps, l’utilisateur définit les différents comptes à gérer en déclarant pour chacun le numéro de compte, le nom de la banque, …

L’utilisateur saisit ensuite chacune des opérations réalisées sur l’un de ces comptes. Une opération correspond à un débit (paiement par chèque de la facture de téléphone, retrait d’espèce à l’aide d’une carte bancaire, …) ou à un crédit (dépôt à la banque de chèque reçu par exemple).

Chaque fin de mois, l’utilisateur reçoit un relevé de compte ( un par compte bancaire). Il effectue alors le rapprochement entre les opérations qu’il a saisies et celles constatées par la banque :
- pointage des opérations saisies apparaissant sur le relevé. Ce pointage consiste à mémoriser le fait qu’une opération a été constatée par la banque. L’opération est dite « pointée » et le numéro du relevé est mémorisé.
- Ajout des opérations non saisies apparaissent sur le relevé (réception d’un virement correspondant au salaire mensuel par exemple). Ces opérations sont automatiquement pointées puisqu’elles ont été constatées par la banque.

Les opérations permettent de calculer le solde d’un compte, différence entre la somme des opérations de crédit et la somme des opérations de débit. En fait, chaque compte possède deux soldes :
- le solde réel qui prend en considération toutes les opérations saisies par l’utilisateur, qu’elles aient été constatées ou non par la banque.
- Le solde en banque qui ne prend en considération que les opérations constatées par la banque, c’est à dire ayant fait l’objet d’un pointage à partir d’un relevé.

Le calcul des soldes des comptes conduit à additionner un grand nombre d’opérations, et ce depuis la mise en service de l’application. Pour éviter ces calculs, il a été décidé de mémoriser les soldes réels et « en banque » dans la table Compte.

Dès lors se pose le problème de la cohérence entre les opérations et le solde des comptes. La solution adoptée est le recours à un ensemble de procédures stockées et de déclancheurs destinés à maintenir à jour les soldes dans la table COMPTE.


Schéma de la base de données :

Banque (Bid, Bnom)
Compte ( Cid, Cnuméro, Clibelle, CsoldeReel, CsoldeBanque, #Cbanque)
Operation (Oid, Odate, Omantant, Osens, #Oreleve, #Ocompte)
Releve (Rid, Rdate, #Rcompte)

Remarques :

- CsoldeReel et CsoldeBanque représentent respectivement le solde réel et le sole en banque du compte.
- Osens est un caractère mémorisant la nature de l’opération (D : Débit, C : Crédit)
- Oreleve contient le numéro de relevé Rid ayant permis de pointer l’opération. Cet attribut contient la valeur NULL si l’opération n’a pas encore été pointée.


Rédiger l’ensemble des procédures stockées et des déclencheurs nécessaires à la gestion des informations calculées CsoldeReel et CsoldeBanque :

- PROCEDURE MAJSOLDEBANQUE (2 Pts)
- PROCEDURE MAJSOLDEREEL (2 Pts)
- TRIGGER INSERTION OPERATION (2 Pts)
- TRIGGER MISE A JOUR OPERATION (2 Pts)
- TRIGGER SUPPRESSION OPERATION (2 Pts)

3 commentaires:

  1. c'est un tres bon exercice pour les développeurs qui veulent consolider ses connaissances en SQL

    RépondreSupprimer
  2. Complet ! très bon exercice !
    Y'a-t-il une correction ?

    RépondreSupprimer
  3. oui, y a t il une correction? merci par avance

    RépondreSupprimer