Stéphane Crozat NF17 3. Travaux Dirigés 3. Université de Technologie de Compiègne Génie Informatique http://www4.utc.fr/~nf17



Documents pareils
Bases de données relationnelles

CONCEPTION Support de cours n 3 DE BASES DE DONNEES

Bases de Données. Plan

Bases de Données Avancées

Langage SQL (1) 4 septembre IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes

Introduction aux Bases de Données

Bases de Données relationnelles et leurs systèmes de Gestion

A QUOI SERVENT LES BASES DE DONNÉES?

UML et les Bases de Données

Chapitre 5 LE MODELE ENTITE - ASSOCIATION

COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2

Diagrammes de classes et d objets

Application web de gestion de comptes en banques

1 Modélisation d une base de données pour une société de bourse

TP 8: LES OPERATEURS ENSEMBLISTES

Introduction aux Bases de Données

AGRÉGATION «ÉCONOMIE ET GESTION»

Exemple accessible via une interface Web. Bases de données et systèmes de gestion de bases de données. Généralités. Définitions

Bases de données avancées Introduction

Le niveau conceptuel : la modélisation des bases de données

Comprendre Merise et la modélisation des données

16H Cours / 18H TD / 20H TP

PROJET 1 : BASE DE DONNÉES REPARTIES

Introduction aux bases de données Cours 1 : Généralités sur les bases de données

Cours Base de données relationnelles. M. Boughanem, IUP STRI

ECR_DESCRIPTION CHAR(80), ECR_MONTANT NUMBER(10,2) NOT NULL, ECR_SENS CHAR(1) NOT NULL) ;

1. Qu'est-ce que SQL? La maintenance des bases de données Les manipulations des bases de données... 5

Bases de données Cours 1 : Généralités sur les bases de données

1 Introduction et installation

1. LA GESTION DES BASES DE DONNEES RELATIONNELLES

A QUOI SERVENT LES BASES DE DONNÉES?

Information utiles. webpage : Google+ : digiusto/

A. Définition et formalisme

TP Bases de données réparties

Modélisation des données

LE MODELE CONCEPTUEL DE DONNEES

Le Langage De Description De Données(LDD)

INSTITUT NATIONAL DES TELECOMMUNICATIONS CONTROLE DES CONNAISSANCES. 2. Les questions sont indépendantes les unes des autres.

Principes de la conception des bases de données

Langage SQL : créer et interroger une base

I4 : Bases de Données

TD : Requêtes SQL (BDR.TD2-1) INSA 3IF

Chapitre 10. Architectures des systèmes de gestion de bases de données

Chapitre 3 LE MODELE RELATIONNEL ET SQL (DDL)

INFO 364 : Bases de Données Projet Professeur : Esteban Zimányi Assistants : Pierre Stadnik et Mohammed Minout Année Académique :

Modélisation de bases de données : Le modèle relationnel

TP Contraintes - Triggers

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

Modèle conceptuel : diagramme entité-association

Le Langage SQL version Oracle

Nom de l application

BASES DE DONNÉES. CNAM Centre associé de Clermont-Ferrand Cycle A Année J. Darmont I. INTRODUCTION II. LES SYSTÈMES HIÉRARCHIQUES

Chapitre 07 Le modèle relationnel des données

Gestion des transactions et accès concurrents dans les bases de données relationnelles

Conception des bases de données : Modèle Entité-Association

Bases de Données. Le cas des BD relationnelles ouverture sur les BD relationnelles spatiales Séance 2 : Mise en oeuvre

Rappel sur les bases de données

Chapitre 1 : Introduction aux bases de données

Les bases de données

Formation à l utilisation des Systèmes de Gestion de Bases de Données Relationnelles. organisée avec la collaboration du

Compte-rendu de projet de Système de gestion de base de données

Dossier I Découverte de Base d Open Office

NFA 008. Introduction à NoSQL et MongoDB 25/05/2013

14/04/2014. un ensemble d'informations sur un sujet : exhaustif, non redondant, structuré, persistant. Gaëlle PERRIN SID2 Grenoble.

Créer le schéma relationnel d une base de données ACCESS

Bases de Données Relationnelles. Le Modèle Relationnel

Utiliser Access ou Excel pour gérer vos données

Les bases de données Page 1 / 8

INTRODUCTION : Données structurées et accès simplifié

Bases de données. Chapitre 1. Introduction

2 Grad Info Soir Langage C++ Juin Projet BANQUE

Plan. Exemple: Application bancaire. Introduction. OCL Object Constraint Language Le langage de contraintes d'uml

Concevoir un modèle de données Gestion des clients et des visites

Le modèle de données

Compétences Business Objects

Cours Bases de données 2ème année IUT

Introduction au Système de Gestion de Base de Données et aux Base de Données

Langage propre à Oracle basé sur ADA. Offre une extension procédurale à SQL

Chapitre 1 Généralités sur les bases de données

D.E.S.C.F - UV 1 - Module 8 Consolidation dans les groupes de sociétés. Corrigé - Cas IG/IP/MEE

Access 2010 Entraînement 1 Garage Renault Dossier 24 MCD

Systèmes d information et bases de données (niveau 1)

MODE OPERATOIRE OPENOFFICE BASE

Le langage SQL pour Oracle - partie 1 : SQL comme LDD

CREATION WEB DYNAMIQUE

Auto-évaluation Oracle: cours de base

Programmation Objet - Cours II

Créer une base de données

Ecole Polytechnique de Louvain INGI Fichiers et bases de données

NF26 Data warehouse et Outils Décisionnels Printemps 2010

Initiation aux bases de données (SGBD) Walter RUDAMETKIN

TP base de données SQLite. 1 Différents choix possibles et choix de SQLite : 2 Définir une base de donnée avec SQLite Manager

Encryptions, compression et partitionnement des données

Partie 0 : Gestion des tablespace et des utilisateurs... 3

SOMMAIRE. Travailler avec les requêtes... 3

Bases de Données. Stella MARC-ZWECKER. Maître de conférences Dpt. Informatique - UdS

Diagramme de classes

ISC Système d Information Architecture et Administration d un SGBD Compléments SQL

Plan Général Prévisionnel (1/2) (non contractuel) Internet et Outils L1/IO S2-IO2 Bases de données: Jointures, Transactions

Transcription:

Stéphane Crozat NF17 3 Travaux Dirigés 3 Université de Technologie de Compiègne Génie Informatique http://www4.utc.fr/~nf17

TRAVAUX DIRIGÉS NF17 III Conception de bases de données Stéphane Crozat Version 4.0 du 31 janvier 2006 Edité par : SCENARI

Edité par : SCENARI

Table des matières TD I. Relationnel............................................................. 7 Exercice n 1. Analyse d'un diagramme de classes.............................. Exercice n 2. Conception d'un diagramme de classes............................ Exercice n 3. Une société de transport routier.................................. Exercice n 4. Une agence immobilière........................................ Exercice récapitulatif I. Gestion d'une coopérative viticole......................... 7 9 10 11 11 TD II. Relationnel............................................................. 13 13 Exercice n 6. Gestion de parc informatique.................................... 13 Exercice récapitulatif II. Une usine........................................... 14 Exercice récapitulatif III. Gestion d'une agence immobilière........................ 15 Exercice n 5. Inviter ses amis............................................... TD III. SQL LMD.............................................................. 19 Exercice n 7. Gestion du personnel.......................................... Exercice n 8. Evaluation des enseignants..................................... Exercice n 9. Gestion de bus............................................... Exercice récapitulatif IV. Jeanne et Serge..................................... Exercice récapitulatif V. Gauloiseries......................................... 19 20 21 22 22 TD IV. Normalisation, SQL LDD et LCD.................................... 25 Exercice n 10. Redondance................................................ Exercice n 11. Gestion d'incidents........................................... Exercice n 12. Abécédaire................................................. Exercice n 13. Dépendances alphabétiques................................... Exercice récapitulatif VI. Le chemin à l'envers.................................. 25 26 27 27 28 TD V. Access................................................................. 31 Exercice récapitulatif VII. L'apprenti chimiste................................... 31

6 Conception de bases de données TD VI. Transactions.......................................................... 33 Exercice récapitulatif VIII. Opération bancaires et transactions..................... 33 TD VII. Oracle................................................................ 35 Exercice n 14. Dictionnaire de données....................................... 35 TD VIII. SGBDRO............................................................. 37 Exercice n 15. Des voitures et des hommes................................... Exercice n 16. Zoologie................................................... Exercice récapitulatif IX. Passage conceptuel logique............................ 37 38 39 TD IX. Optimisation.......................................................... 41 Exercice n 17. Big Brother is Watching You.................................... 41 Exercice récapitulatif X. Gestion de comptes bancaires................... 43

TD I Relationnel Exercice n 1. Analyse d'un diagramme de classes Un groupe industriel construisant des moteurs cherche à organiser la gestion des défauts observés sur des moteurs confrontés à des tests en situation réelle. Pour cela un de ses ingénieurs modélise le processus de gestion des défauts, tel qu'il existe actuellement, par le diagramme de classes suivant.

8 Conception de bases de données IMG. 1 : DIAGRAMME DE CLASSES DE GESTION DES DÉFAUTS Décrivez en français ce que représente ce diagramme. Question2 Etant donné ce modèle, est-il possible de savoir dans quelle usine a été fabriqué un moteur et qui est responsable de sa production? Question3 La responsabilité d'un modèle est elle toujours assumée par un employé travaillant dans l'usine dans laquelle ce modèle est produit? Question4 Pourquoi avoir fait le choix d'une classe Type pour codifier les défauts, plutôt qu'un attribut de type énuméré directement dans la classe Défaut? Question5 Pourquoi l'attribut kilométrage apparait-il à la fois dans les classes Défaut et Moteur et pourquoi avoir fait apparaître la méthode SetKilométrage?

Relationnel 9 Question6 Ce diagramme permet-il de répondre à la question : Quel est le nombre moyen de défauts rencontrés pour un moteur dont le modéle a été mis en service avant 2000? Quelles sont les classes et attributs utiles? Question7 Peut-on également répondre à la question : Quel est le kilométrage moyen pour lequel un moteur est concerné par au moins deux défauts de gravité supérieure à 5? Exercice n 2. Conception d'un diagramme de classes Le service de gestion du personnel d'une entreprise désire s'équiper d'un outil lui permettant de gérer informatiquement ses employés, leurs salaires et leurs congés. Les spécifications suivantes ont pu être mises en exergue par une analyse des besoins réalisée auprès des utilisateurs du service du personnel. Généralités : Tout employé est identifé par un nom, un prénom et une date de naissance. Tout employé remplit une fonction et appratient à un service. Pour chaque employé on gère la date d'embauche et la quotité (c'est à dire le pourcentage de temps travaillé par rapport au temps plein, en cas de travail à temps partiel) Gestion des salaires : Pour chaque employé on gère l'historique de ses salaires dans l'entreprise, chaque salaire étant affecté à une période de temps. Un salaire est composé d'un salaire brut, de charges patronales et de charges salariales. On cherchera à partir des ces données à obtenir également le salaire chargé (brut + charges patronales), et le salaire net (brut - charges salariales), et ce en particulier pour le salaire en cours (celui que touche actuellement le salarié). Gestion des congés : Pour chaque employé, on mémorise chaque congé pris (posant qu'un congé concerne toujours une ou plusieurs journées entières) Chaque employé a le droit aux jours de congés suivants : - 25 jours (pour une quotité de 1) et 25 x quotité sinon - Chaque fonction ouvre les droits à un certain nombre de jours de RTT - Chaque service ouvre les droits à un certain nombre de jours de RTT - Chaque tranche de 5 ans passés dans l'entreprise donne droit à 1 jour supplémentaire - Les employés de plus de 40 ans ont un jour supplémentaire, et ceux de plus de 50 ans deux. Pour chaque employé on cherchera à connaître le nombre total de jours de congés autorisés, le nombre de jours pris et le nombre de jours restants sur l'année en cours. Réaliser le diagramme de classes permettant de modéliser ce problème.

10 Conception de bases de données Exercice n 3. Une société de transport routier Une société de transport routier veut installer un système d'information pour rendre plus efficace sa logistique. Embauché au service informatique de cette compagnie, vous êtes donc chargé de reprendre le travail déjà effectué (c'est à dire ce schéma Entité-Association). IMG. 2 : UNE SOCIÉTÉ DE TRANSPORT ROUTIER Analyser ce schéma et discuter ses cardinalités. Chercher par exemple si les conducteurs peuvent avoir plusieurs permis, si un conducteur peut conduire plusieurs camions, si plusieurs conducteurs peuvent conduire le même camion, etc. Question2 Chercher les cardinalités (A,B), (C,D) et (E,F) manquantes, en fonction de ce qui vous paraît être le plus logique. Question3 Qu'exprime l'association 5-aire "EstLivré"? Pourquoi associe-t-elle deux instances de l'entité "Entrepôt"? Question4 Qu'exprime l'association réflexive "EstDistantDe" sur l'entité Ville?

Relationnel 11 Question5 A partir de votre analyse, pensez vous que ce modèle soit un bon modèle pour la gestion d'une société de transport routier? Exercice n 4. Une agence immobilière Une agence immobilière voudrait créer une base de données pour la gestion des biens immobiliers mis à sa disposition et pour l'exploitation statistique et/ou fiscale des informations accumulées. Pour chaque logement on possède plusieurs informations : l'adresse, le nom du propriétaire, le type (maison/appartement), le nombre de pièces constituant, superficie habitable, l'état d'habitation (neuf, bon état, très bon état, mauvais état), prix de mise en vente, la date de disponibilité, la ville. Chaque propriété peut avoir un ou plusieurs garages. Ces derniers sont caractérisés par le type (box, emplacement numérotés, etc.) et dans certain cas peuvent avoir des adresses différentes de celle de la propriété. Un logement peut être vendu ou acheté par une personne caractérisée par son nom et son adresse de contact. Pour chaque transaction de vente, l'agence touche une commission qui correspond à un pourcentage du prix de vente (qui est composé d'une valeur fixe de 1000 euros à laquelle on additionne entre 3 et 5% en fonction de la négociation). L'agence organise et gère également les visites des propriétés que les acheteurs potentiels (clients) pourraient réclamer. Pour des besoins d'exploitation fiscale, l'agence souhaite garder la trace du montant total de chaque transaction de vente effectuée (prix de vente) ainsi que de la somme des commissions. Proposez un modèle conceptuel permettant de répondre à ce problème. Exercice récapitulatif I. Gestion d'une coopérative viticole Cet exercice a été insipiré par (Gardarin, 1999). On considère une base "Coopérative" qui possède les caractéristiques suivantes : Un vin est caractérisé par un numéro entier unique nv, un cru, une année de production et un degré. Un viticulteur est caractérisé par un numéro entier unique nvt, un nom, un prénom et une ville. Un viticulteur produit un ou plusieurs vins et réciproquement, un vin est produit par un ou plusieurs producteurs (éventuellement aucun). Les buveurs sont caractérisés par un numéro de buveur nb, un nom, prénom et une adresse (limitée à la ville pour simplifier). Un buveur peut passer des commandes pour acheter une certaine quantité d'un vin précis. Lister toutes les types d'entité à considérer et les attributs associés à chaque type d'entité. Indiquer aussi pour chaque type d'entité sa clé et les domaines de valeurs de ses attributs. Question2 Lister toutes les associations à considérer, leurs attributs et indiquer leurs cardinalités. Question3 Donner le diagramme E-A de cette situation.

12 Conception de bases de données Question4 Donner le diagramme UML de cette situation.

TD II Relationnel Exercice n 5. Inviter ses amis Une maîtresse de maison s'est constitué une base de données sur les personnes (probables) qu'elle invite et les plats qu'elle leur sert. Cette base de données est composée de trois relations : REPAS (date, invité) donne la liste des invités qui ont été reçus et à quelle date MENU (date, plat) donne le menu servi à chaque date PREFERENCE (personne, plat) donne pour chaque personne ses plats préférés N.B. : les attibuts "personne" et "invité" ont même domaine. A l'aide de l'algèbre relationnelle exprimer les requêtes suivantes : Quels sont les invités du repas du 01/05/97? Question2 Quels sont les plats qui ont été servis à Alice? Question3 Quels sont les invités qui lors d'un repas ont eu au moins un de leur plat préféré? Question4 Quelles sont les personnes qui n'ont jamais été invitées? Question5 Quels sont les invités qui sont venus à tous les repas? Exercice n 6. Gestion de parc informatique Vous avez en charge la réalisation d'un modèle de base de données pour la gestion d'un parc informatique.

14 Conception de bases de données L'analyse des besoins révèlent les informations suivantes : tout matériel informatique est identifié de façon unique par un numéro de série et est décrit par une désignation. Il existe trois types de matériel informatique : les PC, les serveurs et les imprimantes. Pour les PC les informations que l'on veut gérer sont la taille de la mémoire vive et la cadence du micro-processeur, pour les serveurs on veut gérer leur volume de disque dur et pour les imprimante leur résolution maximale d'impression. On veut également gérer les connections réseau sachant que tout PC peut être relié à un ou plusieurs serveur et que chaque serveur sert bien entendu plusieurs PC ; et qu'un PC peut être rélié à une imprimante, qui est également utilisée par plusieurs PC. Quand un PC est relié à un serveur, on veut gérer le quota de disque dont il dispose sur ce serveur. Réaliser le modèle conceptuel E-A ou UML de ce problème. Question2 Réalisez le passage au modèle logique relationnel. Exercice récapitulatif II. Une usine Une usine cherche à modéliser sa production de véhicules et de moteurs : Les véhicules sont identifiés par un numéro d'immatriculation alphanumérique et caractérisés par une couleur, dont la dénomination est une chaîne de caractères. Chaque véhicule peut comporter un unique moteur et/ou un nombre quelconque de pneus. Chaque moteur est monté sur un et un seul véhicule et est identifié par le numéro d'immatriculation de celui-ci. Un moteur est caractérisé par une puissance, en chevaux. Tout pneu est monté sur un unique véhicule et est identifié localement par sa position sur ce véhicule (Dn pour les pneus de droite et Gn pour les pneus de gauche). Un pneu est caractérisé par un diamètre et une largeur en pouces. Les moteurs, les pneus et les véhicules sont fabriqués sous une marque. Les mêmes marques peuvent fabriquer indifféremment des moteurs, des pneus et/ou des véhicules, et un véhicule d'une certaine marque peut comporter un moteur et/ou des pneus de marque différente. Réaliser le modèle E-A ou UML de ce problème en faisant apparaître les domaines et les clés candidates, ainsi que les éventuelles entités faibles. Question2 Réaliser le passage au modèle relationnel, en faisant apparaître les clés primaires et les clés étrangères. Question3 Ecrivez en algèbre relationnelle la question permettant de connaître les numéros d'immatriculation des voitures rouges sur lesquelles sont montées un moteur et au moins un pneu de même marque que la voiture.

Relationnel 15 Exercice récapitulatif III. Gestion d'une agence immobilière Enoncé n 1 Une agence immobilière cherche à créer une base de données pour la gestion des biens immobiliers mis à sa disposition et pour l exploitation statistique et/ou fiscale des informations accumulées. Pour chaque logement on possède plusieurs informations comme l'adresse, le nom du propriétaire, le type (maison/appartement), le nombre de pièces, la surface habitable, l état de l habitation (neuf, bon état, très bon état, à rénover), l objectif de gestion (vente, location), le prix de mise en vente ou de location mensuelle, la date de disponibilité, la ville, etc. Chaque propriété peut avoir un ou plusieurs garages. Ces derniers sont caractérisés par le type (box, emplacement numérotés, etc.) et dans certain cas peuvent avoir des adresses différentes de celle de la propriété. Une personne, qui sera identifiée par son nom et son adresse, peut mettre en location ou en vente un de ses logements auprès de l agence. Un logement à vendre (resp. à louer) peut être acheté (resp. loué) par une personne. Pour chaque transaction de vente, l'agence touche une commission qui correspond à un pourcentage du prix de vente (qui est composé d une valeur fixe à laquelle on additionne entre 3 et 5% en fonction du montant de la transaction et des négociations particulière). Un logement vendu ou loué est rendu indisponible pour d autres éventuels clients. Un locataire peut donner son préavis, l agence signalant alors le logement disponible dans un délai de trois mois. L agence organise et gère également les visites faites par ses clients (les acheteurs ou locataires potentiels)..1 Reformuler l'énoncé du problème sous la forme de règles claires afin de poser les connaissances sous une forme littérale. Formuler des hypothèses, si nécessaire, pour compléter les informations manquantes..2 Réaliser le modèle Entité-Association du problème. Repérer le domaine de valeur des propriétés. Repérer les clés. Repérer les entités de type faible. Répérer les attributs dérivés..3 Réaliser le modèle relationnel en appliquant les règles de passage E-A vers relationnel. Indiquer les règles appliquées. Expliquer et détailler les cas particuliers. Utiliser la notation textuelle du modèle relationnel, du type : RELATION (PROP1, PROP2, PROPn). Souligner la clé primaire (les propriétés concernées seront en premier dans la liste). Les clés étrangères seront placées en dernier dans la liste, et l'on indiquera par un "=>" à quelle relation elles font références. Indiquer dans un tableau pour chaque propriété, son domaine de valeur et les contraintes supplémentaires qui la concerne (existentielle, par rapport à d'autres propriétés du tuple, etc.), Enoncé n 2 L'agence cherche à présent à interroger sa base de données, afin d'en exploiter les informations recueillies.

16 Conception de bases de données Ecrire à l'aide de l'algèbre relationnelle les requêtes ci-après. On utilisera les notations suivantes : R = Restriction(Relation, Condition) R = Projection(Relation, Propriété1, Propriété2,...) R = Jointure(Relation1, Relation2, Condition) R = JointureExterne(Relation1, Relation2, Condition) R = JointureNaturelle(Relation1, Relation2) R = Union(Relation1, Relation2) R = Difference(Relation1, Relation2) R = Intersection(Relation1, Relation2) R = Produit(Relation1, Relation2) Question2.1 Pour constituer un fichier client complet, lister toutes les personnes. Question2.2 Pour relancer les anciens clients de l'agence, lister les noms et prénoms de tous les clients ayant effectué au moins une location ou un achat. Question2.3 En vue d'une enquête de satisfaction et de suivi par courrier, lister les noms et adresses des propriétaires ayant loué des logements à Lyon avant l'année 2000. Question2.4 En vue d'optimiser l'organisation du personnel et de préparer le passage aux 35 heures pour l'antenne de Compiègne, lister les jours pendant lesquels il y a eu au moins une visite pour des logements à Compiègne. Question2.5 Pour répondre à une demande particulière d'un client exigeant, chercher, si cela existe, à quelles adresses on peut trouver des F6 neufs, disponibles avant le 31 novembre 2002, de plus de 150m2, avec garage à la même adresse, rue de la Paix à Paris. Question2.6 Pour mettre en valeur l'activité de l'agence lors d'un conseil d'administration, préparer la liste de toutes les commissions réalisées pour des ventes supérieures à 500.000 euros. Question2.7 Pour convaincre un propriétaire d'accepter une proposition d'achat inférieure à son prix de mise en vente, lister toutes les transactions (date, montant, prix de vente, nom du client et nom du propriétaire) pour lesquelles le montant de vente est inférieur de plus de 10% au prix de mise en vente.

Relationnel 17 Question2.8 Pour vérifier si quelques solutions idéales ne sont pas latentes, chercher les clients toujours en recherche (i.e. n'ayant jamais effectué de transaction) et habitant à une adresse à laquelle se trouve un logement disponible. Question2.9 Pour leur faire des offres particulières, chercher les personnes qui sont à la fois clients et propriétaires. Question2.10 Pour occuper votre temps pendant l'inactivité chronique du mois d'août, chercher les rues qui se retrouvent dans toutes les villes.

TD III SQL LMD Exercice n 7. Gestion du personnel Soit le schéma relationnel : Employe (Num, Nom, Prenom, Age, Salaire, Fonction=>Fonction, Societe=>Societe) Fonction (Intitule, SalaireMin, SalaireMax, NbHeures) Societe (Nom, Pays, Activite) Ecrivez une requête SQL permettant de sélectionner les noms de tous les directeurs de France. Question2 Ecrivez une requête SQL permettant de vérifier que les salaires de chaque employé correspond bien à ce qui est autorisé par leur fonction. Question3 Ecrivez une requête SQL permettant de licencier tous les employés qui travaillent en Allemagne. Question4 Ecrivez une requête SQL permettant le passage aux 35 heures, en modifiant le nombre d'heures travaillées pour chaque fonction, et en réajustant les échelles de salaire au pro-rata du nombre d'heures travaillées avant le passage aux 35 heures. Question5 Ecrivez une requête SQL permettant de calculer le nombre d'employés dans chaque société. Les sociétés présentant le plus grand nombre d'employés seront présentées en premier.

20 Conception de bases de données Exercice n 8. Evaluation des enseignants A la fin du semestre, chaque enseignant est évalué par les étudiants pour chacune de ses UV. Chaque note correspond à une UV assurée par cet enseignant, et est égale à la moyenne des évaluations attribuées par les étudiants de l UV. Dans le relevé de note apparaît une appréciation générale sur l enseignant. Cette appréciation est la moyenne de toutes les notes de l enseignant pour toutes ses UV. La figure suivante illustre le diagramme de classe et le modèle relationnel associé, qui modélisent l «évaluation des enseignants». SCH. 1 : SCHÉMA UML Enseignant(NSS, Nom, Prenom) ; UV(Code, Intitulé, Prof=>Enseignant) ; Etudiant(NumEtu, Nom, Prenom) ; Evaluer(NumEtu=>Etudiant, uv=>uv, Evaluation) ; Ecrire la requête SQL qui permet de calculer les notes de chaque enseignant et donnant le résultat ci-dessous (1pt) NOM Dupont Dupont Durand PRENOM Jean Jean Paul INTITULE Science de la Terre Informatique Français TAB. 1 NOTE 15 7.5 5

SQL LMD 21 Question2 Ecrire la requête SQL qui permet d afficher les enseignants ayant une appréciation>10 et donnant le résultat ci-dessous (2pt) NOM Dupont PRENOM Jean APPRECIATION 11.25 TAB. 2 Exercice n 9. Gestion de bus Une société de gestion d'autobus urbains dispose de la base de données suivante pour représenter ses conducteurs, ses bus et ses lignes de bus : Conducteur(matricule, nom, prénom) Ligne(n ligne, km) -- Une ligne de bus est représentée par un numéro et elle a une longueur exprimée en kilomètres. Bus(immat, type, kilométrage, matricule) -- Un bus est conduit par un seul conducteur référencé par son matricule. Le type du bus peut comprendre les valeurs : S, N et R {pour les bus à Soufflets, Normaux ou Réduits), le kilométrage correspond au nombre de kilomètres au compteur du bus. Trajets(n ligne, immat, nombre de trajets) -- Cette table permet de connaître le nombre de trajets effectués par un bus sur une ligne donnée pendant une journée. Stations(n station, nom, adresse) -- Cette table contient la liste des stations desservies par la société. Arrêts(n ligne, n station, rang) -- Cette table fait le lien entre les lignes et les stations qu'elle dessert. Le rang correspond au numéro de l'arrêt sur la ligne (le rang 1 correspond au départ de la ligne, l'arrivée est la station qui a le rang le plus élevé sur cette ligne). Donnez en algèbre relationnelle et en SQL les requêtes permettant d'obtenir les informations suivantes (pour la question 5, seul le SQL est requis) : Nom et prénom du conducteur du bus immatriculé "5657 MA 49". Question2 Immatriculation et type des bus qui partent de la station "Gare SNCF". Question3 Numéros des lignes desservant à la fois les stations "Royallieu" et "Gare SNCF". Question4 Numéros des lignes qui ne sont pas desservies par des bus à soufflets. Question5 Quelles lignes (numéros) ont pour arrivée la station "Royallieu".

22 Conception de bases de données Exercice récapitulatif IV. Jeanne et Serge Vous avez en charge la réalisation d'une base de données pour gérer un tournoi de Volley-Ball. Les équipes, identifiées par un nom, sont composées de deux à six joueurs idéntifiés par leur prénom (étant donnée l'équipe à laquelle ils appartiennent). Un match oppose deux équipes, à une date donnée, dont une est gagnante, et sont joués en deux sets gagnants (le score est donc toujours de 2 pour le gagnant et 0 ou 1 pour le perdant, on décide donc de ne gérer que le score du perdant). On notera que deux équipes se rencontrent au plus une fois. Réaliser le modèle conceptuel de la BD en utilisant le formalisme E-A. Enoncer les éventuelles contraintes non représentables en E-A. Question2 Traduire le MCD en modèle logique relationnel. Enoncer les éventuelles contraintes non représentables en relationnel. Question3 Proposer une implémentation SQL du modèle relationnel, en intégrant le maximum de contraintes. Enoncer les éventuelles contraintes non représentables en SQL. Question4 Ecrivez en algèbre relationnel l'expression permettant de sélectionner les équipes ayant gagné au moins un match et perdu au moins un match. Question5 Ecrire une requête SQL permettant de lister toutes les équipes ayant gagné un match, avec leur nombre de points (un match gagné valant 2 points et un match perdu 0 point), triées par leur nombre de points (avec l'équipe ayant le plus de points en premier). Exercice récapitulatif V. Gauloiseries Un vieux druide perdant la mémoire souhaite réaliser une base de données pour se souvenir de la composition de ses potions. Un de ses apprentis ayant suivi un cours sur les bases de données lors de son initiation druidique, il réalise le schéma conceptuel suivant : IMG. 3 : MODÈLE UML

SQL LMD 23 Réaliser le modèle logique correspondant en relationnel, en faisant apparaître les clés primaires et étrangères. Question2 Ecrivez une requête SQL permettant de préparer l'implémentation de la méthode NbIngrédients. Cette requête devra renvoyer le nombre d'ingrédients pour chaque potion. La méthode n'est bien entendu pas à écrire. Question3 Ecrivez une requête SQL permettant de trouver la recette de la potion magique. Question4 Ecrivez une requête SQL permettant de trouver les ingrédients utilisés par aucune potion. Question5 Critiquer le schéma conceptuel de l'apprenti : Est-ce qu'un même ingrédient peut apparaître deux fois dans la même potion? Peut-on gérer la quantité d'ingrédients pour chaque potion? Proposer une solution et redessiner le schéma conceptuel en Entité-Association, en y intégrant votre amélioration.

TD IV Normalisation, SQL LDD et LCD Exercice n 10. Redondance Soit la relation R suivante, définie en extension : A B C D E F G 0 1 1 10 5 X A 0 2 1 10 9 X G 0 1 2 10 6 X S 0 1 3 10 7 X D 1 2 3 20 7 Y D 0 3 3 10 9 X G 1 4 3 20 8 Y F 1 1 4 20 9 Y G TAB. 3 : RELATION R Proposez une clé primaire pour cette relation. Justifiez brièvement. Question2 Cette relation contient-elle des redondances? Si oui lesquelles? Justifiez brièvement. Question3 Si la relation contient des redondances, proposez une solution contenant exactement la même information, mais sans redondance.

26 Conception de bases de données Exercice n 11. Gestion d'incidents Consigne 25 minutes. 5 points (1 point par question). La justification précise des réponses sera prise en compte dans la notation. Soit la table ci dessous permettant d'enregistrer des relevés d'incident sur les chaînes de montage d'un grand groupe de construction de tondeuses. Chaque ligne de la table permet de relever un incident. Attribut Abrégé Explication NumIncident DateIncident Num Dat GraviteIncident Gra NombrePieces Nom UsineDeMontage Usi Piece Magazin Fournisseur Pie Mag Fou Modèle Mod CatégorieModèle Cat TypeIncident Typ FamilleIncident Fam Numéro d'enregistrement de l'incident. Date à laquelle est intervenu l'incident. Niveau de gravité de l'incident (nombre de 1 à 100) Nombre de pièces concernées par l'incident. Usine de montage dans laquelle a eu lieu l'incident Code de la piece concernée par l'incident. Magazin où a été acheté la pièce. Fournisseur du magazin. Modèle de tondeuse sur lequel a eu lieu l'incident. Catégorie du modèle (particulier, entreprise, villas) Type de l'incident (cassure, éraflure, dysfonctionnement, etc.) Famille de l'incident (carosserie, moteur, etc.) TAB. 4 : TINCIDENT Soit le relevé des DF suivant : Num Dat, Gra, Nom, Typ Pie Mag, Fou, Mod, Usi Mod Cat Typ Fam Etablissez la fermeture transitive des DF. Justifiez votre réponse. Question2 Donnez toutes les clés possibles de ce modèle et choisissez la meilleure candidate comme clé primaire. Justifiez votre réponse. Question3 En quelle forme normale est ce schéma (vos clés font partie du schéma)? votre réponse. Justifiez

Normalisation, SQL LDD et LCD 27 Question4 Proposez une couverture minimale des DF. Justifiez votre réponse. Question5 Proposez un modèle relationnel décomposé normalisé en 3NF, sans pertes. Justifiez votre réponse. Exercice n 12. Abécédaire Soit la relation R(A, B, C, D) et l'ensemble de dépendances fonctionnelles: F = {C D, AB C, B C}. Donner les clés possibles. Question2 En rappelant la définition de 3e forme normale, montrer que le schéma < R, F > n'est pas en 3FN. Question3 Illustrer votre démonstration en proposant un contenu de la relation qui met en évidence au moins une des anomalies dues au non respect de la 3e forme normale. Question4 Proposer une décomposition du schéma respectant la 3e forme normale. Exercice n 13. Dépendances alphabétiques Considérons le schéma de la relation suivante : r (A, B, C, D, E) Cette relation est instanciée par les tuples : (a1, b2, c2, d3, e2) (a1, b2, c2, d1, e4) (a2, b3, c2, d1, e5) (a2, b4, c5, d1, e5) Parmi les dépendances fonctionnelles suivantes, lesquelles ne s'appliquent pas à r? E-->D D-->E C-->A E-->B E-->A B-->C

28 Conception de bases de données B-->D B-->A Question2 Trouver une clé pour r. Question3 En quelle NF est cette relation? Exercice récapitulatif VI. Le chemin à l'envers Soit une base de données, composée d'une seule table et de deux vues, permettant de gérer les chanteurs préférés des françaises et des français. Cette base est définie par le code SQL LDD ci-après. create table t_personnes ( pk_n number (4), numss char(13) UNIQUE NOT NULL, nom varchar(50) NOT NULL, prenom varchar (50), sexe char(1), conjoint char(13) UNIQUE, chanteur_préféré char(50), nationalité_chanteur_préféré char(20), PRIMARY KEY (pk_n), CHECK (sexe IN ('H', 'F')) ); create view v_hommes (pk_n, numss, nom, prenom, conjoint, chanteur_préféré, nationalité_chanteur_préféré) as select pk_n, numss, nom, prenom, conjoint, chanteur_préféré, nationalité_chanteur_préféré from t_personnes where sexe='h'; create view v_femmes (pk_n, numss, nom, prenom, conjoint, chanteur_préféré, nationalité_chanteur_préféré) as select pk_n, numss, nom, prenom, conjoint, chanteur_préféré, nationalité_chanteur_préféré from t_personnes where sexe='f'; On notera que, selon ce modèle, le conjoint d'une femme ou d'un homme est un homme ou une femme ; que X est conjoint de Y n'implique pas que Y est conjoint de X ; et que X peut être conjoint de X. Quel attribut est la clé primaire de "t_personnes"? Comment appelle-t-on ce genre de clé? Quel est le statut de "numss"? Quel est le statut de "conjoint"?

Normalisation, SQL LDD et LCD 29 Question2 Expliquez pourquoi si "conjoint" référence la table "t_personnes", alors son domaine n'est pas correct. Modifiez le domaine de "conjoint", puis ajouter une contraite à la table "t_personnes" pour que "conjoint" soit une clé étrangère vers "t_personnes", en s'assurant que les contraintes d'intégrité référentielles seront respectées. Vous utiliserez pour cela deux instructions ALTER. Question3 Enoncez les DF du modèle relationnel sous-jacent à cette implémentation (en se fondant sur la vraisemblance) sous la forme d'une couverture minimale des DFE. A partir de la couverture minimale des DFE, prouvez que ce schéma est en 2NF mais pas en 3NF. Question4 Proposez un programme SQL permettant de décomposer le schéma de cette BD afin qu'il soit en 3NF, sans perdre d'information, sans perdre de DF et sans perdre les données déjà existantes dans la BD. Pour ce faire vous utiliserez une instruction CREATE TABLE permettant de créer la nouvelle table engendrée par la décomposition, puis une instruction INSERT permettant d'initialiser correctement cette nouvelle table avec les valeurs existantes dans "t_personnes", et enfin deux instructions ALTER pour modifier la table "t_personne" de façon à en supprimer la redondance et à établir la référence à la nouvelle table. On fera l'hypothèse que la BD ne contient pas d'incohérence. Question5 A l'aide d'uml rétro-concevez le MCD qui aurait permis d'arriver directement à votre modèle après normalisation. Justifiez. On notera la présence des vues dans le schéma initial de la BD et l'on ne reportera pas sur ce schéma les clés artificielles. Question6 Ecrivez une requête qui compte le nombre de personnes qui ont le même chanteur préféré que leur conjoint. On notera que cette requête est équivalente sur le schéma avant ou après normalisation.

TD V Access Exercice récapitulatif VII. L'apprenti chimiste Soit la requête suivante exprimée en QBE sous Access : IMG. 4 : REQUÊTE EN QBE Qu'exprime cette requête? Question2 Ecrivez une requête équivalente en SQL.

TD VI Transactions Exercice récapitulatif VIII. Opération bancaires et transactions Enoncé n 1 On désire réalisation une BD [Base de Données] permettant de gérer les comptes bancaires des clients selon les modalités suivantes : Chaque client possède un compte courant et éventuellement un compte d'épargne. Un compte est identifié par un numéro unique composé d'un numéro de pays, d'un numéro de ville (relatif au pays), d'un numéro d'agence (relatif à la ville), et d'un numéro propre (fourni par l'agence). A des fins d'identification du compte par un opérateur humain, on gardera dans la BD un intitulé pour les pays, villes et agences. Il est possible de faire des transferts d'un compte sur l'autre Il est possible de débiter (enlever) de l'argent depuis le compte courant Il est possible de créditer (ajouter) de l'argent sur les deux comptes Les comptes doivent toujours être positifs On ne garde pas la mémoire des opérations, seules les soldes sur les comptes sont gérés Un client est décrit par son nom, son prénom, sa civilité. Indice La conception complète signifie la MCD [Modèle Conceptuel de Données], le MLD [Modèle Logique de Données] et le code SQL de création de l'implémentation physique..1 Réaliser la conception complète de la BD

34 Conception de bases de données Enoncé n 2 Soient les évènements suivants survenants sur la BD : Le client Robert Dupont est créé dans l'agence du centre ville de Compiègne, qui vient d'ouvrir. Le client Alphonse Durand est créé dans la même agence, mais il veut également un compte d'épargne sur lequel il dépose tout de suite 1000. Le client Robert Dupont dépose deux chèques de 100 sur son compte courant. Le client Alphonse Durand transfère 500 de son compte d'épargne à son compte courant. Question2.1 Ecrire le code SQL permettant de traiter ces évènements, sans utiliser de transactions. Enoncé n 3 Suite à des problèmes de coupure réseaux, on constate des problèmes sur les comptes. Ainsi suite à l'exécution des opérations précédentes, la requête suivante renvoie des résultats érronés. SELECT tcomptecourant.fkclient AS N, tcomptecourant.asolde + NVL(tCompteEpargne.aSolde,0) AS SoldeDeTousComptes FROM tcomptecourant LEFT JOIN TCompteEpargne ON tcomptecourant.fkclient=tcompteepargne.fkclient ; N SoldeDeTousComptes 2 500 1 100 Question3.1 Expliquez à quoi peuvent être dus les problèmes rencontrés Indice La fonction NVL renvoie comme valeur le second paramètre, si le premier à pour valeur NULL. Question3.2 Proposez une solution permettant d'assurant la cohérence des opérations, en aménageant cotre code SQL.

TD VII Oracle Exercice n 14. Dictionnaire de données On souhaite créer la table EMPLOYEE de telle façon que le dictionnaire de données graphique d'oracle affiche le tableau ci-dessous. IMG. 5 : LA TABLE EMPLOYEE Ecrivez le code SQL pour créer cette table sous Oracle. Question2 Vérifier que la table a bien été créée. Indice Utiliser DESCRIBE. Question3 Modifier la table EMPLOYEE pour pouvoir allonger les noms de famille des employés à 50 caractères. Vérifiez cette modification. Question4 Vérifiez l'existence de la table EMPLOYEE dans le dictionnaire de données. Indice Faites une requête de sélection sur la table du dictionnaire USER_TABLES.

36 Conception de bases de données Question5 Ajouter une contrainte PRIMARY KEY de niveau de table dans la table EMPLOYEE en utilisant la colonne ID. Question6 Vérifier que la contrainte a bien été ajoutée en USER_CONSTRAINTS ainsi que dans le mode graphique. utilisant la table Question7 Rechercher les noms et types d'objets dans la vue USER_OBJECTS du dictionnaire de données correspondant à la table EMPLOYEE. Question8 Modifier la table EMPLOYEE. Ajouter une colonne SALARY de type NUMBER avec une précision 7. Question9 Renommez la table EMPLOYEE en EMPLOYEE2. 0 Supprimez la table EMPLOYEE2.

TD VIII SGBDRO Exercice n 15. Des voitures et des hommes Soit le diagramme de classe UML suivant : IMG. 6 : DES VOITURES... A partir de ce modèle conceptuel établissez un modèle logique en relationnel-objet, sachant que le coeur du problème concerne la gestion des voitures. Indice On utilisera des OID pour disposer de clés artificielles. Question2 Proposer une implémentation sous Oracle de votre modèle logique.

38 Conception de bases de données Exercice n 16. Zoologie Consigne 60 minutes (10 minutes par question). 9 points (1,5 points par question). Un zoologue souhaite réaliser une base de données pour l'étude des chaînes alimentaires. Il souhaite étudier deux populations d'animaux les carnivores et les herbivores, sachant que les carnivores ne mangent que des herbivores et que les herbivores, évidemment, ne mangent pas d'animaux. La base gère donc des espèces d'animaux, identifiées par leur nom (Lion, Biches, etc.). Les carnivores et les herbivores sont étudiés selon deux paramètres communs : taille moyenne et poids moyen. Pour les herbivores on étudie en plus le poids moyen de végétaux mangé par jour. Bien entendu le zoologue souhaite connaître également le poids moyen mangé par jour pour chaque espèce de carnivore et pour chaque espèce d'herbivore qu'il mange. Il souhaite enfin pouvoir obtenir très facilement le poids total mangé par un carnivore par jour (donc en sommant le poids de chaque herbivore mangé par jour). On fera apparaître cette opération sur le modèle. Réalisez le modèle conceptuel du problème posé. Question2 Réalisez le modèle logique relationnel-objet du problème (on utilisera les OID pour toutes les tables référencés). Question3 Implémentez le modèle relationnel-objet en SQL3 sous Oracle (sans implémenter de méthode). Question4 Implémenez la méthode permettant de calculer le poids total d'herbivore mangé par un carnivore par jour. Question5 Ecrivez une requête qui permet de retourner tous les carnivores, triés par leur poids, avec le poids total d'herbivore qu'ils mangent par jour. Question6 Proposez et implémentez une solution d'optimisation pour améliorer les performances de la requête précédente. Justifiez votre choix et expliquez, éventuellement à l'aide d'un petit schéma ou d'un exemple, pourquoi l'exécution sera améliorée.

SGBDRO 39 Exercice récapitulatif IX. Passage conceptuel logique IMG. 7 : MODÈLE UML On pose que l'héritage est exclusif (un B ne peut pas être aussi un C) et que A est une classe abstraite (il n'existe pas de A qui ne soit ni un B ni un C) Proposez un modèle logique relationnel correspondant au modèle conceptuel UML. Question2 Si vous avez fait le bon choix de traduction de la relation d'héritage, une des classes du modèle conceptuel doit-être représentée sous forme de vue. Proposez l'opération relationnelle qui permet de calculer la vue. Question3 Proposez le code SQL2 permettant l'implémentation du modèle relationnel. Question4 Proposez le code SQL2 permettant l'implémentation de la vue. Question5 Proposez un modèle logique relationnel-objet correspondant au modèle conceptuel UML. On utilisera les OID. NB : On notera que la création de la vue est identique au cas relationnel, aussi l'on ne s'en préoccupera plus pour la suite de cet exercice. Question6 Proposez le code SQL3 permettant l'implémentation du modèle relationnel-objet. NB : On utilisera les OID et les collections seront implémentées sous forme de NESTED TABLE.

TD IX Optimisation Exercice n 17. Big Brother is Watching You Soit une base de données composée d'une seule table destinée à recevoir un enregistrement pour chaque personne vivante au monde. Le schéma de la base est le suivant : Habitant (Numero, Nom, Prenom, N Rue, Rue, Quartier, Ville, Etat, Pays, DateNaissance, PaysNaissance, VilleNaissance) On dispose également des informations concernant les questions qui seront posées à cette base ainsi que les performance attendues quand aux réponses à ces questions : 1. Recherche d'individus Sélection d'enregistrements étant donné un nom et un pays, projection sur les noms et prénoms et tri alphabétique sur les noms. Cette requête doit être le plus performante possible. 2. Recensement Comptage de tous les habitants d'un pays. Cette requête doit être performante. 3. Informations sur un individu Sélection d'un enregistrement étant donné un numéro et projection de l'ensemble des informations. Si cette requête est performante, tant mieux, mais elle n'est pas exécutée très souvent et la réponse peut généralement attendre. 4. Statistiques Calcul de l'age moyen de la population mondiale étant donné une tranche d'age. Aucune performance n'est attendue de cette requête qui s'exécute assez rarement et toujours en tâche différée. Ecrivez en SQL les questions qui seront posées à la BD.

42 Conception de bases de données Indice --On pose : --[X] désigne le paramètre X -- Now() est une fonction qui renvoie la date du jour Question2 Proposez des solutions pour optimiser l'implémentation physique de cette base de données. Indice On cherchera à utiliser les partionnement horizontaux et verticaux, les index et les vues matérialisées. Question3 Réécrivez les requêtes avec le nouveau schéma de la base.

Exercice récapitulatif X Gestion de comptes bancaires Enoncé n 1 Nouvel employé d'une entreprise bancaire, vous avez pour mission de restructurer une base de données existante pour la gestion des opérations bancaires (débits et crédits sur un compte). La base de données existante a été conçue sous MS Access, avec une unique table. IMG. 8 : SCHÉMA DE LA SEULE TABLE DE LA BD NB : Un débit est différencié d'un crédit par la valeur de MontantOperation : Si elle est négative il s'agit d'un débit, si elle est positive il d'agit d'un crédit. En vue de préparer la re-conception de cette base, un stagiaire a effectué le rescencement des DF [Dépendance Fonctionnelle] de ce schéma. Voici le résultat de ses travaux, sous la forme de la fermeture transitive des DF : NumClient Nom, Prenom

44 Conception de bases de données NumCompte NumClient, Nom, Prenom, Agence, Ville, Pays, Monnaie Agence Ville, Pays, Monnaie Pays Monnaie DateOperation, NumCompte MontantOperation.1 En quelle forme normale est le schéma de la base existante? Justifier..2 Trouvez la meilleure clé primaire pour ce schéma. Justifier..3 Afin de préparer la décomposition du schéma relationnel, trouvez une couverture minimale des DFE pertinente..4 Décomposer le schéma relationnel de la base existante, en préservant les DF, pour aboutir à un schéma en 3NF. Choisissez la meilleure clé primaire pour chaque relation. Présentez le schéma relationnel resultant et justifiez..5 A des fins de documentation, retro-concevez le MCD, à l'aide du formalisme E-A, qui aurait permis d'aboutir directement à ce schéma relationnel. Enoncé n 2 Une équipe technique est désignée afin de réaliser la nouvelle base de données que vous avez préconisée sous Oracle. Une fois le schéma relationnel créé, elle fait appel à vous pour récupérer les données existantes. Question2.1 Ecrivez une série d'instructions SQL permettant la récupération des données depuis l'ancienne base de données vers la nouvelle. Enoncé n 3 L'équipe technique ne connaissant pas Access, elle fait appel à vous pour traduire les requêtes qui existaient dans l'ancien système. On s'attache en particulier à la requête QBE suivante :

Gestion de comptes bancaires 45 IMG. 9 : REQUÊTE RTOTALPARPERSONNEETPARMONNAIE Vous avez accès à son équivalent SQL grâce au générateur automatique de SQL de Access : SELECT TBank.NumClient, TBank.Monnaie, Sum(TBank.MontantOperation) AS SommeDeMontantOperation FROM TBank GROUP BY TBank.NumClient, TBank.Monnaie; Question3.1 En SQL (fonctionnant sous Oracle), créez une vue équivalente à cette requête QBE. Enoncé n 4 L'équipe technique fait à présent appel à vous pour certains aspects particuliers de l'application. Notez la table suivante qui a été ajoutée au schéma relationnel : CREATE TABLE TDeficit ( NumCompte number(10)); Question4.1 Ecrivez un trigger qui, lorsque l'on insère une opération de débit qui conduit à un solde négatif du compte, insère le numéro du compte dans la table "TDeficit". Question4.2 Ecrivez une méthode booléenne Java qui prend en paramètre d'entrée un numéro de client et renvoie vrai si ce client a déjà été en déficit. On notera que la base se nomme "bank", qu'elle est accédée par la méthode sur la machine "www.oracle.bank.com" (port "1521"), par l'utilisateur "Java" (mot de passe "Tango"). Enoncé n 5 L'équipe informatique fait maintenant appel à vous pour fiabiliser la base de données, à présent utilisée. Un problème récurrent survient sur la procédure PL/SQL "pvirement" donnée ci-dessous. En effet suite à des micro-coupures réseau, il arrive que le débit du "Compte1" soit effectué, tandis que le crédit du "Compte2" n'est jamais effectué.