Bonjour,
Année universitaire 2008/2009
Master 1 SIIO
Projet Introduction au Décisionnel, Oracle
Ce projet comporte trois parties sur les thèmes suivants : création de base de donnée, requêtes SQL, mise en œuvre de déclencheurs base de données en PL/SQL. Ces trois parties utilisent le schéma de la base de données de production décrit ci-dessous, extrait du schéma plus complet de la base de données d’une banque. Cette base de données décrit les clients de la banque et les comptes dont ils sont titulaires. Un client peut être titulaire de plusieurs comptes et un compte peut avoir plusieurs titulaires susceptibles d’y appliquer des opérations. Il existe trois types de comptes : les comptes courant, les comptes de revolving et les comptes d’épargne. Pour tout compte, on enregistre son numéro, son type et la balance actuelle du compte (montant disponible pouvant passer en négatif lorsque le compte est à découvert). Pour les comptes courants on enregistre en plus, dans la table CPTCOURANT, le montant du découvert autorisé et la date depuis laquelle le compte est à découvert (Null si le compte est positif). On maintient aussi la valeur minimum et la valeur maximum du solde de chaque compte courant, mois par mois, dans la table CPTCOURANT_MOIS. Les opérations sur les comptes sont enregistrées dans la table OPERATION. Cette table répertorie le compte concerné, le client auteur de l’opération, le type de l’opération, le montant de l’opération, la date de l’opération et l’état de l’opération. Le type de l’opération est soit un débit soit un crédit.
Extrait du dictionnaire données :
CliNum, CliNom Identifiant et nom d’un client
CliTel, CliAdresse Téléphone et adresse d’un client
CptNum, CptType Numéro et type d’un compte (cpte courant, revolving, épargne)
CptBalance, CptStatut Balance d’un compte (montant disponible)
DecouvertAutorise Montant du découvert autorisé d’un compte
DateDecouvert Date depuis laquelle le compte est en négatif
Mois, Annee Mois et année pour lesquels on a calculé les balances min et max
BalanceMin, BalanceMax Balances minimum et maximum d’un compte au cours d’un mois
OpNum, OpType Numéro et type d’une opération (débit, crédit)
OpMontant, OpDate Montant et date d’une opération.
Insérer 4 clients, 6 comptes et une quinzaine d’opérations de façon à pouvoir tester votre projet.
Pour insérer des lignes dans cette base de données, vous pouvez utiliser la commande SQL suivante : insert into NOMTABLE values (111,’aaa’, …) ;
Vous pouvez aussi remplir vos tables en utilisant un client ACCESS qui voit les tables Oracle via un interprète ODBC (commande fichier/donnée externes/lier les tables comme nous l’avons fait en TD). Attention, l’interprète doit être recréé chaque fois que vous changez de PC dans les salles d’accès libre.
Enfin, si vous avez respecté les noms de tables et les noms de colonnes donnés dans le schéma ci-dessus, vous pouvez aussi remplir vos tables en exploitant l’application formsBuilder banque.fmb placée dans dossier : ftp://ftpsip.univ-tlse1.fr/jean-marc.thevenin/M1SIIO/projet/89.
Partie II : requêtes SQL
1. Afficher le nom et l’adresse de tous les titulaires du compte n° X.
2. Afficher la liste des opérations effectuées sur le compte X au cours du mois de novembre ( to_date(OpDate,’mm/yy’) = to_date(’11/08’,’mm/yy’) ).
3. Afficher la valeur du solde minimum au mois de novembre, pour chaque compte dont monsieur ‘X’ est titulaire.
Remarque : pour tester vos requêtes vous remplacerez les X par des valeurs que vous avez mises dans votre base de données. Attention, Oracle est sensible à la casse (minuscules/majuscules).
Partie III : programmation PL/SQL
Ecrire le programme PL/SQL permettant d’actualiser automatiquement le solde d’un compte lors de l’enregistrement d’une opération.
Ecrire le programme PL/SQL permettant d’actualiser automatiquement la colonne DateDecouvert de la table CPTCOURANT et les colonnes BalanceMin et BalanceMax de la table CPTCOURANT_MOIS lors de la mise à jour du solde d’un compte courant.
Trouvez des réponses à vos questions sur les langages, les frameworks et les astuces de codage. Échangez avec d'autres développeurs passionnés pour améliorer vos compétences en programmation et rester au fait des dernières tendances du secteur.