Académique Documents
Professionnel Documents
Culture Documents
Mastère Spécialisé Management Des Systèmes D'information Répartis
Mastère Spécialisé Management Des Systèmes D'information Répartis
Herv de MILLEVILLE
hdm@eisti.fr
Cas entreprise
Mai 2004
Sommaire
INTRODUCTION........................................................................................................3 ENONCE DU CAS .......................................................................................................4 SCHMA GLOBAL DU SYSTME ................................................................................5 A. DIAGRAMME DES CLASSES UML ...................................................................................... 5 B. COMMENTAIRES .......................................................................................................... 6 C. PROCEDURE POUR LE PASSAGE EN BASE DE DONNEES PHYSIQUE.............................................. 6 SCHEMAS DES BASES DE DONNEES .........................................................................8 A. SCHEMA GLOBAL DES TABLES.......................................................................................... 8 B. DEFINITIONS ET HYPOTHESES ........................................................................................ 9 C. SCHEMA DE CHAQUE SITE .............................................................................................10 1. Sige ............................................................................................................................ 10 2. Usine............................................................................................................................ 10 3. Point de vente ............................................................................................................... 11 D. EXEMPLE DE REPARTITION DES DONNEES EN FONCTION DES HYPOTHESES RETENUES ..................12 1. Fragmentations horizontales ........................................................................................... 12 2. Fragmentations verticales............................................................................................... 12 3. Rplication .................................................................................................................... 12 4. Agrgation par vue ........................................................................................................ 13 SIMULATION DE L'UTILISATION ...........................................................................14 A. CREATION DE LA BASE DE DONNEES ................................................................................14 B. QUELQUES REQUETES DE TEST.......................................................................................14 CONCLUSION..........................................................................................................15 ANNEXES ................................................................................................................16 COMMENTAIRES SUR LE COURS DISPENSE A LEISTI ...............................................................16 1. Pdagogie et organisation .............................................................................................. 16 2. Contenu........................................................................................................................ 16
-2-
Anne 2004
Introduction
Une base de donnes rpartie est un ensemble de donnes stockes sur plusieurs bases connectes par un rseau (moyen de communication entre sites) et gr par un SGBD (Systme de Gestion de Base de Donnes). Pour dcider de mettre en place un tel systme, il faut prendre en compte les critres de choix suivant : le cot installation (logiciel, matriel, formations), de communication (frais tlcoms), de sret (intgrit, vol de donnes) et de disponibilit (donnes toujours accessibles pour tous). Dans une base de donnes rpartie, lexcution des transactions est soit locale (accs aux donnes sur site), soit globale (accs sur plusieurs sites). Les donnes peuvent tre locales ou rparties. La cohrence des donnes doit tre assure (semantic data controler), ainsi que le contrle de concurrence (transaction manager) et la reprise aprs panne (recovery manager).Il est plus que jamais conseill doptimiser les requtes (query processor) pour amliorer les temps daccs et volume manipuls aux fins de restitutions de donnes. Enfin, linfrastructure (hardware et software) doit tre transparente pour lutilisation. Les avantages de ce type de systme rparti rsident dans une plus grande fiabilit (pannes matrielles non fatales lensemble de la population), de meilleures performances grce notamment la proximit des donnes et la scalabilit du systme. A linverse, les cots sont plus importants, une procdure de synchronisation efficace des donnes doit tre labore, la scurit est moindre et il existe des risques dinterblocages distribus (par exemple : une base sur un site attend une base dun autre site qui attend elle-mme la base en attente). Lors de la phase de conception darchitecture, il y a lieu de dterminer lquilibre que lon souhaite obtenir entre le degr dautonomie des sites et la fluidit des changes ou modes daccs intersites. Le client peut aussi communiquer avec tous les serveurs ou avoir pour interface un serveur unique (architecture 3 tiers). Contrairement cette logique client serveur, on peut aussi dcider de mettre en place une architecture peer-to-peer o toutes les machines ont le mme rle. On distingue deux processus de conception de bases de donnes rparties. La mthode top-down design o lon commence par dfinir un schma global (Global Conceptual Schema) que lon distribue vers des schmas locaux avant de raliser la fragmentation et lallocation des fragments. A linverse, la mthode bottom-up design part des schmas locaux quil convient de redsigner et consolider pour aboutir un schma global remani (mthode utile pour une reconception partir dun SI prexistant).
Le cas qui va tre prsent consiste mettre en uvre les mthodes et les techniques de dfinition et de mise en place dune base de donnes rpartie laide dun cas dcole. La mthode utilise est celle du top-down design . Nous allons donc commencer par vous prsenter le schma global, c'est--dire le diagramme des classes UML de tout le systme. Nous prsenterons ensuite le schma des tables dcoulant de ce diagramme et celui des bases de donnes que nous souhaitons mettre en uvre sur chaque site.
-3-
Anne 2004
Enonc du cas
1- L'entreprise et sa demande Il s'agit d'une entreprise qui fabrique et vend des biens de consommation. Elle dispose : - De plusieurs usines de fabrication - De plusieurs points de vente - D'un sige social Il faut dfinir et installer la base de donnes rpartie qui permette de grer toutes les activits de l'entreprise. 2- Les usines La base de donnes rpartie doit permettre aux diffrents responsables d'usines : 1) De grer les fournisseurs. 2) De grer les produits et matires premires. 3) De grer les commandes provenant des points de vente. 4) De grer le quotidien des salaris de l'usine. 5) De pouvoir consulter le stock des autres usines 3- Les points de vente La base de donnes rpartie doit permettre aux diffrents responsables des points de vente : 1) De grer les clients 2) De grer les commandes des clients 3) De grer le quotidien des salaris du point de vente. 4- Le sige social La base de donnes rpartie doit permettre aux diffrents responsables du sige social : 1) De grer la carrire des salaris de toute l'entreprise 2) D'avoir des tableaux de bord propos de l'activit de production et commerciale de l'entreprise 3) De grer le quotidien des salaris du sige social
-4-
Anne 2004
Produit 0..* (from general) 0..n 1..* QuantiteProduit (from general) quantitep
0..*
Client (from general) Partenaire (from general) nom adresse datecreation 1 0..* 0..* CommandeClient (from general) date couttotal 0..*
-5-
Anne 2004
NB : lobjectif du cas ntant pas la ralisation dune application, nous navons indiqu dans le logiciel ni les oprations, ni les attributs daccs (private, public, protected), ni les libells des relations et des rles, ni les types des attributs (qui auraient pourtant t repris lors du passage en schma de tables). De mme, nous navons pas tudi la possibilit de crer des packages pour regrouper les lments ayant les mmes fonctionnalits (ex : package production, package vente et package siege).
B. Commentaires
La lecture de lnonc nous a permis de distinguer 21 classes pour pouvoir grer les besoins formuls dans le cahier des charges. Les classes Site, Element et Partenaire ont t cres pour gagner en gnricit. Ces dernires sont des super-classes qui regroupent les attributs (et oprations) communes aux classes hritires . Nanmoins, nous pouvons remarquer que ces classes filles nont pas dattributs particuliers. Cela pourrait tre vu comme contraire la thorie de lhritage mais nous avons conserv ces gnralisations dans un but dvolutivit du logiciel. Pour exprimer les connexions smantiques entre ces classes, nous avons cr des relations classiques et une agrgation. Celle-ci indique que nos produits sont constitus de matires premires (et non composs puisque la matire premire nexiste plus dans sa forme dorigine dans le produit final). Remarque : L'agrgation et la composition sont des vues subjectives qui ne reprsentent pas obligatoirement la ralit mais servent ajouter de la smantique au modle. Pour certaines relations, nous avons choisi de crer des classes dassociations qui stockent les attributs en rapport avec la relation. Par exemple, la relation entre un salari et un site est caractrise par une fonction, pour laquelle nous gardons dailleurs un historique pour la gestion des carrires. Enfin, nous avons indiqu les cardinalits pour informer sur le nombre dinstances qui participent la relation.
-6-
Anne 2004
au nom des classes UML). On voit alors apparatre le schma relationnel dans l'arborescence de Rose. Pour visualiser nos tables cres, on les fait glisser dans un diagramme de modle de donnes. Celui-ci est cr en faisant sur le schma un clic-droit Data modeler new Data model diagram. On peut alors visualiser nos tables et leurs relations.
-7-
Anne 2004
T_Salarie nom : SMALLINT prenom : SMALLINT dateembauche : SMALLINT T_Salarie_ID : INTEGER T_Site_ID : INTEGER
T_ActiviteSalarie <<Non-Identifying>>
1
1 1 <<Non-Identifying>> 0..*
1..*
<<Non-Identifying>>
<<Identifying>>
<<Non-Identifying>> 1..*
0..* T_Mois mois : SMALLINT T_Mois_ID : INTEGER T_ActiviteSalarie_ID : INTEGER T_Salarie_ID : INTEGER
0..* T_F onctionSalarie indicesalarial : SMALLINT niveauhierarchique : SMALLINT regimehoraire : SMALLINT salairemensuel : SMALLINT T_FonctionSalarie_ID : INTEGER T_Site_ID : INTEGER T_Salarie_ID : INTEGER T_DateFonction_ID : INTEGER <<Non-Identifying>> 1 1 T_DateFonction date : SMALLINT T_DateFonction_ID : INTEGER T_Salarie_ID : INTEGER T_Site_ID : INTEGER <<Identifying>> 0..* 1
1 <<Identifying>>
<<Identifying>> 0..1 <<Identifying>> T_ReapprovisionnementPointDeVente T_Usine 1 <<Non-Identifying>> 1 <<Identifying>> T_CommandeFournisseur date : SMALLINT T_CommandeFournisseur_ID : INTEGER T_Site_ID : INTEGER COL_13 : INTEGER T_Element_ID : INTEGER COL_14 : INTEGER T_Partenaire_ID : INTEGER COL_15 : INTEGER 0..* << Non- Identi fy >> ing 1 0..* 0..* 0..* 0..1 0..* <<Identifying>>
1 1
T_Site_ID : INTEGER
<<Non-Identifying>>
0..*
0..*
0..*
<<Non-Identifying>> 0..*
0..*
T_StockUsine date : SMALLINT quantite : SMALLINT T_Element_ID : INTEGER T_Site_ID : INTEGER <<Non-Identifying>> 0..* <<Identifying>> 1 << Identi fy >> ing
<<Identifying>> <<Non-Identifying>> 1
1
<<Non-Identifying>>
<<Non-Identifying>>
0..* 1 T_QuantiteMP quantitemp : SMALLINT T_QuantiteMP_ID : INTEGER COL_14 : INTEGER T_CommandeFournisseur_ID : INTEGER 1 <<Identifying>>
1
1
1
1 0..1 T_Produit 1
1
<<Identifying>>
0..1 T_MatierePremiere
<<Non-Identifying>> 0..*
0..*
date : SMALLINT couttotal : SMALLINT T_CommandeClient_ID : INTEGER T_Site_ID : INTEGER T_Partenaire_ID : INTEGER
1 <<Identifying>>0..*
1
-8-
Anne 2004
Chaque classe persistante a donn une table. Chacun des attributs a donn un champ dans la table. Rose a cr un champ supplmentaire dans la table parent pour accueillir une cl primaire gnre par numrotation automatique (paramtrage par dfaut). Le logiciel a aussi insr une cl trangre dans la table fille correspondante. Les relations dans le diagramme des classes ont t traduites en relations classiques notes non Identifying . Les agrgations ont donn des relations de type Identifying . Pour renforcer le fait quun fils ne peut exister sans un pre, la cl trangre du fils vers le pre est aussi un lment de la cl primaire du fils. Notons que Rose ne sachant pas grer les classes d'association, il faut crer les relations entre nos tables la main dans le schma. On utilise alors licne qui permet de crer des "Identifying relationship" ou des "Non Identifying relationship" (agration ou non). On clique alors sur la classe concerne et on relche le bouton sur la classe dassociation.
B. Dfinitions et hypothses
Tableaux de bord : Les tableaux de bord (TdB) sont mensuels. les TdB de l'activit commerciale contiennent : . la quantit de produits vendus . le CA mensuel . le nombre de nouveaux clients . le panier moyen d'un client (nombre moyen de produits, CA moyen par client) Les TdB de l'activit de production contiennent : . l'tat du stock produit en fin de mois . l'tat du stock MP en fin de mois . la quantit de MP commande sur le mois . la quantit totale de produits commands par point de vente Gestion du quotidien des salaris : Dans chaque site, point de vente et usine, la gestion du quotidien des salaris correspond la gestion de leur temps de travail et congs. Gestion des produits : La gestion des stocks est ralise dans les usines, par contre, le catalogue produit et la description des produits sont raliss au niveau du sige social. Gestion des salaris : L'laboration de toutes les feuilles de paye est faite au sige puis retransmise par courrier aux points de ventes et usines. Mcanisme de rapprovisionnement des points de vente : A un point de vente correspond une unique usine vers laquelle les commandes de rapprovisionnement sont mises. Dans le cas o la commande dpasse le niveau du stock disponible dans cette usine, c'est celle-ci de dcider si elle lance une chane de production pour honorer la commande ou si elle puise dans le stock d'autres usines.
-9-
Anne 2004
1..*
1 <<Non-Identifying>> 0..*
1
<<Non-Identifying>>
0..*
mois : SMALLINT T_Mois _ID : INT EGER T_ActiviteSalar ie_ID : INTEGER T_Salarie_I D : INTEGER
<<Identifying>> 0..1 <<Identifying>> T_ReapprovisionnementPointD eVente quantite : SMALLINT T_Site_ID : INTEGER COL_12 : INTEGER T_Element_ID : INTEGER
T_Usine 1 <<Non-Identifying>>
1
T_Site_ID : INTEGER 1
0..*
<<Identifying>> T_CommandeFournisseur date : SMALLINT T_CommandeFournisseur_ID : INTEGER T_Site_ID : INTEGER COL_13 : INTEGER T_Element_ID : INTEGER COL_14 : INTEGER T_Partenaire_ID : INTEGER COL_15 : INTEGER 0..* <<Non-Identifying>> 1 0..* 0..* 0..* 0..1 0..* << Identifying >>
1 1
0..*
T_StockUsine date : SMALLIN T quanti te : SMALLIN T T_Element_ID : INTEGER T_Site_ID : INT EGER 0..* <<Identifying>>
Fragmentation horizontale : chaque usine ne voit que son point de vente (rappel : nous avons suppos qu' un point de vente correspond uen usine unique)
<<Identifying>> <<Non-Identifying>>
1
<<Non-Identifying>>
0..*
1
1
1
T_Partenaire nom : SMALLINT adresse : SMALLINT datecr eation : SMALLINT T_Par tenai re_ID : INTEGER
1 1
1 0..1 T_MatierePremiere
0..*
<<Identifying>> 0..1 1
- 10 -
Anne 2004
3. Point de vente
T_Salari e nom : SMALLINT prenom : SMALLINT dateembauche : SMALLINT T_Salarie_ID : INTEGER T_Site_ID : INTEGER <<Non-Identif y ing>>
1
T_Activ iteSalarie heuresup : SMALLINT congespris : SMALLINT T_Activ iteSalarie_ID : INTEGER T_Salarie_ID : INTEGER
1 1
1..*
T_Mois mois : SMALLINT T_Mois_ID : INTEGER T_Activ iteSalarie_ID : INTEGER T_Salarie_ID : INTEGER
1 T_Sit e nom : SMALLINT adresse : SMALLINT T_Site_ID : INTEGER 1 <<Identif y ing>> 0..1 <<Identif y ing>> T_Reapprov isionnementPointDeVente T_Usine T_Site_ID : INTEGER
1
0..* 0..1 <<Identif y ing>> Fragmentation horizontale : chaque point de v ente ne v oit que son usine (rappel : nous av ons suppos qu' un point de v ente correspond uen usine unique) 1 T_PointDeVente T_Site_ID : INTEGER
1
0..*
<<Identif y ing>>
<<Non-Identif y ing>>
T_Partenaire no m : SMALLINT ad ress e : SMALLIN T da tecreat io n : SMALLIN T T_ Part enaire _ID : INTEG ER 1 <<Identif y ing>> 0..1 T_CommandeClient T_Client T_Partenaire_ID : INTEGER
1 1
1 <<Identif y ing>>
0..* 0..*
date : SMALLINT couttotal : SMALLINT T_CommandeClient_ID : INTEGER T_Site_ID : INTEGER T_Partenaire_ID : INTEGER
Fragmentation horizontale : chaque point de v ente ne v oit que ses commandes et ses clients
- 11 -
Anne 2004
- 12 -
Anne 2004
Gestion des fournisseurs (T_Fournisseurs) : Un fournisseur pouvant fournir plusieurs usines, il est justifi que la table des fournisseurs soit gre au sige de manire centralise. Par contre, il nous parat indispensable que celle-ci soit rplique de faon diffrentielle sur chaque site usine (transmission des modifications uniquement), les mises jour trs occasionnelles depuis les usines pouvant tre ralises par accs rseau. 4. Agrgation par vue Une agrgation par vue permet de faire des consolidation entre les donnes de tous les sites. Ceci est trs utile (surtout pour du dcisionnel) mais implique la rcupration de beaucoup de donnes (grand besoin en espace de stockage) de tous les sites (ce qui augmente les frais tlcoms). Dans ce cas, la diffrentiation des cls de chacun des sites se fait avec un prfixe pour chaque site (pour que la commande n10 de Toulouse soit bien diffrente de la n10 de Lyon pour le sige social qui voit toutes les commandes). Ce prfixe peut tre paramtr dans la rgle de cration des cls dans les bases ou on indique un libell lors de la cration de la vue "select 'toulouse'||cle ". Par exemple, le sige a une vue de toutes les commandes pour faire des tableaux de bord, mais sur lesquelles il ne peut pas faire de modification.
- 13 -
Anne 2004
Simulation de l'utilisation
- 14 -
Anne 2004
Conclusion
La manire de faire expose prcdemment est certes pdagogique et didactique, mais elle ne sera vraisemblablement bientt plus dactualit dans la pratique lorsque XML SGBD grera tout ceci en automatique ! Restera toujours aux humains raliser la conception initiale, matire noble sil en est !
- 15 -
Anne 2004
Annexes
- 16 -
Anne 2004