Système de gestion de bases de données I ( SGBD II )
Examen Fin Module 1 :
Schéma de la base de données de la société QualitE_Products
La société QualitE_Products a décidé de mettre en place plusieurs opérations et contraintes sur les données des livraisons saisie dans sa base de données, donc il a confié à son informaticien programmeur de mettre en œuvre ces opérations. Vous devez aussi traduire ces opérations en SQL :
1. Ecrire un script SQL qui permet d’afficher les noms et prénoms des fournisseurs concaténés en utilisant un curseur ; (2 point)
2. Ecrire une fonction qui retourne le prix proposé pour un produit par un fournisseur bien déterminés; (3 point)
3. Ecrire une fonction qui renvoie le nombre des fournisseurs qui ont proposé un prix pour un produit bien déterminé ; (3 point)
4. Ecrire une fonction qui renvoie la réponse "Oui" s’il existe une proposition pour un produit bien déterminé et "Non" s’il n’existe pas; (3 point)
5. Ecrire une fonction qui renvoie la liste des fournisseurs qui ont proposé un prix pour un produit bien déterminé ; (4 point)
6. Ecrire une procédure qui affiche tous les fournisseurs et leurs propositions ; (2 point)
7. Ecrire une procédure qui affiche pour un fournisseur bien déterminé, la liste de ses propositions, et pour chacun de ces proposition le détail livraison ; (3 point)
8. Dernièrement, QualitE_Products a décidé de mettre sur le marché une collection de matière première de bonne qualité. Alors quelques Fournisseurs de notre société ont décidé d’acheter cette collection nécessaire à leur production. Donc on est besoin d’effectuer plusieurs changements sur notre Base de données. Parmi ces changements on doit ajouter une entité "Client" en association avec la table "Fournisseurs" : Un fournisseur peut être un client de la société ; L’entité "Client" possède comme attributs : CIN, Nom_clt, Prénom_clt, Adresse_clt, Téléphone_clt, numFou.
a. Ecrire le script SQL qui permet cette table à la base de données avec les contraintes nécessaires pour mettre cette table en relation avec la table "Fournisseurs" ; (4 point)
b. Ecrire une procédure stockée utilisant un curseur pour recopier les enregistrements de la table FOURNISSURS dans la table CLIENT ; (4 point)
9. Ecrire les Triggers qui permettent de vérifier les contraintes suivantes en affichant les messages convenables :
• Le numéro du téléphone du CLIENT ne doit pas dépasser 10 chiffres pour une insertion ou une modification; (2 point)
• Le prix proposé pour un produit doit toujours >= 254.28 pour une insertion ou une modification; (3 point)
• Le Quantite livrée doit rester dans l’intervalle {10,1000} que pour une insertion ou une modification ; (3 point)
• La suppression d’une proposition n’est pas permise ; (1 point)
• La date d’une livraison ne sont pas modifiable ; (1 point)
• A l’insertion d’une livraison, la date de livraison ne doit pas être inférieur à la date d’aujourd’hui ; (2 point)
Système de gestion de bases de données I ( SGBD II )
Examen Fin Module 2 :
Schéma de la base de données de la banque -BanQBon-
Après la conception de sa base de données, la banque BanQBon a décidé de confier la mission de programmer un ensemble d’opérations à son informaticien spécialisé :
1. Ecrire un script SQL qui permet d’afficher les noms et prénoms des clients concaténés en utilisant un curseur ; (2 point)
2. Ecrire une fonction qui retourne le numéro du client d’un compte bien déterminé; (3 point)
3. Ecrire une fonction qui renvoie le nombre des clients qui ont un type de compte bien déterminé ; (3 point)
4. Ecrire une fonction qui renvoie la réponse "Oui" si un client bien déterminé est un personnel de banque et "Non" sinon; (3 point)
5. Ecrire une fonction qui renvoie la liste des comptes d’un client bien déterminé ; (4 point)
6. Ecrire une procédure qui affiche tous les clients, et pour chaque client, la liste des comptes ; (2 point)
7. Ecrire une procédure qui prend en paramètre le numéro d’un client, pour affiche la liste de ses comptes, et pour chacun de ces comptes, l’historique des opérations ; (3 point)
8. Ecrire une procédure stockée utilisant un curseur pour recopier les nom et prénom de la table PERSONNEL dans la table CLIENT ; (4 point)
9. Ecrire une procédure stockée qui permet d’afficher pour un type d’opération bien déterminée et un compte bien précis les informations du client concerné par cette opération ; (4 point)
10. Ecrire les Triggers qui permettent de vérifier les contraintes suivantes en affichant les messages convenables :
• Le numéro du téléphone du CLIENT ne doit pas dépasser 10 chiffres pour une insertion ou une modification; (2 point)
• Le salaire d’un PERSONNEL doit toujours >= 1254.28 pour une insertion ou une modification; (3 point)
• Le montant d’une OPERATION doit rester dans l’intervalle {−1000,1000} que pour une insertion ou modification (3 point)
• La suppression d’un compte n’est pas permise ; (1 point)
• La date et le montant d’une opération ne sont pas modifiable ; (1 point)
• A l’insertion d’une opération, le numéro du type de l’opération ne doit pas être nul ; (2 point)
Système de gestion de bases de données I ( SGBD II )
Examen Fin Module 3 :
Gestion des comptes bancaires :Soit le schéma de la base de données qui décrit les mouvements des comptes de clients d'une banque :
Client(#id_c, nom, prenom, adresse, tel, nbre_comptes)
Compte(#NCompte, solde, Id_c*, seuil, TypeC*)
TypeCompte(#TypeC,type)
Mouvement(#NMouvement, NCompte*, montant, type, dateM)
Un client est identifié par un Id_c possède un nom, un prénom, un téléphone ainsi que le nombre de comptes qui lui appartiennent.
Le compte est identifié par un numéro de compte, possède un solde, appartient a un client, la propriété seuil fixe le montant maximum que le compte peut avoir comme découvert.
La propriété nous renseigne sur le type de compte.
La table TypeCompte liste tous les types de comptes de la banque.
La table Mouvement archive les mouvements effectués sur chaque compte on retiendra le montant et la date du mouvment, le type peut être un retrait signalisé par ( R ) ou un dépôt signalisé par ( D ).
1. Ecrire la procédure stockée Retirer qui accepte en argument le numéro du compte, le montant à retirer puis ajoute la ligne corrsponante dans la table mouvement. (8pts) La procédure doit effectuer le traitement suivant :
- le NMouvement doit s'inscrémenter automatiquement. (Ne pas utiliser de séquence (ORACLE) ni la propriéré Identity (SQL SERVER)).
- Vérifier l'existence du compte et renvoyer le message d'erreur s'il n'existe pas.
- La date ddu mouvemnt est égale à la date système.
- L'argent est disponible sur le compte.
2. Ecrire une procédure stockée qui renvois en sortie le nombre de dépôts et de retraits par client dont le numéro de compte est transmis en argument. Effectuer un jeu d'essai.
3. Ecrire une procédure stockée qui permet d'octroyer à tous les comptes de type (épargne) une augmentation du soldes de 6%, à tous les comptes de type (age d'or) une augmentation du solde de 7%, à tous les comptes de type (éducation) une augmentation du solde de 8%.
4. Créer une fonction permettant de renvoyer pour un client le total général de tous les comptes qu'il possède.
5. Définir une fonction qui liste les mouvements effectués sur un compte entre deux dates données en argument.
6. Ecrire le trigger CHECK_STOCK en insertion sur la table Mouvement permettant de vérifier s'il s'agit d'un dépôt ou d'un retrait d'argnt et de mettre a jour le sodle après avoir vérifié la disponibilité d'argent en cas de retrait.
7. Ecrire un trigger permettant de mettre à jour le nombre comptes des clients a chaque ajout ou suppression de comptes.
8. Ecrire un trigger qui empêche la diminution de nombre de comptes.
Autres EFM (s) sur le lien suivant :
correction svp
ReplyDelete