Les Systèmes de Gestion de Bases de Données
...
2.1 Le groupe d'étude (angl. Project group)
Un système d'information qui n'est pas trop complexe et volumineux en terme d'informations, peut facilement être informatisé par une seule personne, qui ne doit pas nécessairement être un informaticien. Il suffit d'être un peu familiarisé avec une méthode de modélisation, et de savoir manipuler un SGBD pour réaliser une implémentation informatique, cohérente et fonctionnelle, d'un tel système d'information.
Dès que le système d'information atteint une certaine envergure (par exemple: informatiser la gestion des sinistres d'une compagnie d'assurances), un groupe d'étude est généralement créé.
Ce groupe ne devra en aucun cas contenir seulement des informaticiens mais également:
Généralement, un responsable du groupe (angl. Project Manager) est nommé, afin de coordonner les travaux effectués par le groupe et de suivre le déroulement à partir de l'analyse jusqu'à la mise en place du système informatisé.
2.2 Les étapes
Chaque projet d'informatisation, qu'il soit exécuté par une seule personne, ou géré par un groupe d'étude, prévoit plusieurs étapes.
En général, nous avons les étapes suivantes:
2.3 Sources d'information
La première étape de chaque projet est donc l'analyse de l'existant et des besoins. Afin de pouvoir réaliser une analyse correcte sur laquelle on peut baser la suite du projet, il faut d'abord identifier les sources d'information, et puis collectionner exactement les informations importantes pour le projet.
Sources d'information primaires:
Pour les projets d'une certaine envergure s'ajoutent:
Pour les projets qui se basent sur un système déjà partiellement informatisé s'ajoute:
3.1 Définition
Nous avons vu que la démarche classique d'un projet informatique comprend les étapes suivantes:
En ce qui concerne la première étape, nous n'allons pas introduire de vraies règles, mais simplement utiliser nos connaissances de gestion d'une entreprise, notre esprit ouvert et même notre fantaisie pour analyser correctement la situation existante et les besoins des utilisateurs. Le résultat de l'analyse est généralement un ou plusieurs documents, qui contiennent les indications principales sur le fonctionnement désiré du système informatisé. Le document d'analyse contient souvent déjà des prototypes de certains documents importants, que le futur système devra être capable de produire.
Une fois que l'analyse est terminée, il s'agit d'élaborer une série de modèles, basés sur le document d'analyse. Ces modèles nous permettront plus tard d'implémenter une base de données, qui contiendra toutes les informations nécessaires au bon fonctionnement du système informatisé.
Le développement de ces modèles se fait selon une méthode qui prévoit une conception par niveaux. Nous retenons 3 niveaux essentiels:
Voici donc les 4 étapes nécessaires pour traduire un système d'information naturel en une base de données:
3.2 Pourquoi modéliser ?
Nous avons vu qu’une base de données est constituée par un ensemble de tables qui contiennent toutes les données de la base. Une méthode de modélisation nous permet de trouver le bon nombre de tables pour une base de données et de déterminer quelles données sont représentées à l’intérieur de quelle table.
Pour l’instant, il nous suffit de savoir qu’une table est un ensemble d’enregistrements, dont chacun est composé par les mêmes champs de données. On pourrait comparer une table à une liste en MS-Excel1. Les tables sont étudiées en détail dans le chapitre 6.
Voici un exemple d’une table :
Un champ de données
Marque
Modèle Cylindrée Poids
BMW 525i 2500 1360
Ford Orion 1800 1080
BMW 320i 2000 1200
... ... ... ...
A l’aide d’un exemple précis, nous allons voir pourquoi il est important de bien réfléchir sur le nombre de tables d’une base de données et sur la structure de chaque table.
A première vue, la solution suivante s’impose :
NoEmp Nom Emp Prénom Emp NoEntr Nom Entr Localité
102 Boesch Emil 1 Schaffgaer S.à r.l. Differdange
103 Midd Erny 2 Gudjâr Colmar Berg
104 Witz Evelyne 1 Schaffgaer S.à r.l. Differdange
105 Kuhl Menn 1 Schaffgaer S.à r.l. Differdange
106 Super Jhemp 2 Gudjâr Colmar Berg
... ... ... ... ... ...
1 voir cours de la classe 12CG
Nous voyons ici uniquement quelques enregistrements. Une caisse de maladie ayant des miliers de membres, et cette table possédant un enregistrement par membre, on peut bien s’imaginer la taille réelle de la table.
Or, bien que cette solution soit correcte dans le sens le plus large du terme, elle nous impose un certain nombre de problèmes .
Exercice 1
Essayez de trouver en discussion quelques problèmes qui peuvent se manifester lors du travail journalier avec cette table.
Exercice 2
Comment est-ce qu’on pourrait éviter ces problèmes sans toutefois perdre des informations ?
Informatique 13CG Modélisation d'un système d'information
3.3 Le modèle conceptuel des données (MCD)
3.3.1 Définition
En se basant sur un document d'analyse, le modèle conceptuel des données (MCD) fait référence à tous les objets du système d'information et à des relations entre ces objets.
Le formalisme utilisé dans ce modèle est celui du langage de modélisation UML (Unified Modeling Language).
A l'aide de ce langage nous pouvons créer un diagramme de classes qui se base autour de 3 concepts principaux, les classes, les associations et les attributs.
Voici par exemple un MCD / Diagramme de classes qui représente une entreprise avec ses employés.
Pour la suite de ce cours, MCD et diagramme de classes sont synonymes.
Pierre Stockreiser 19 Lycée du Nord Wiltz
Dans l'exemple du chapitre précédent, la classe Entreprise spécifie donc l'ensemble des entreprises, qui nous intéressent dans le contexte de notre système d'information. De même, la classe Employé représente tous les employés de notre système d'information.
Une classe est caractérisée par son nom et ses attributs. Représentation graphique:
Prenons par exemple une classe Client:
Voici quelques exemples de clients
Chacun de ces clients représente un objet ou une instanciation de la classe Client.
1 Dans la littérature on trouve également la notion entité pour désigner une classe.
3.3.3 La notion d'attribut
Voici quelques exemples d'attributs:
Pour une classe Client:
Pour une classe Salarié:
Pour une classe Contrat d'assurance:
Exemple:
La classe Client est définie par les attributs suivants:
A l'intérieur de chaque objet, chaque attribut prend une valeur, qui est dans la plupart des cas une valeur numérique, une valeur sous forme de texte ou encore une date.
L'attribut Nom prend p.ex. les valeurs "Meier", "Muller" et "Weber" dans les 3 objets ci-dessus.
Le client 002 par exemple ne peut pas avoir 2 adresses.
3.3.4 La notion d'identifiant
Afin de pouvoir distinguer les différents objets d'une même classe, la classe doit être dotée d'un identifiant. L'identifiant est composé d'un ou de plusieurs attributs de la classe. Chaque objet d’une classe doit avoir une valeur différente pour l’identifiant
Comme choix pour l'identifiant d'une classe nous distinguons généralement 3 possibilités:
Exemple: Le nom d'un pays pour une classe Pays
Indiquez graphiquement les classes qui représentent :
3.3.5 La notion d'association
3.3.5.1 Définition
Exemple d'une association binaire:
L'instanciation d'une association est représentée par les instanciations des classes liées à l'association.
Voici quelques instanciations de l'association Ecrire.
Cette instanciation de l'association écrire p.ex. nous dit que l'auteur Twain a écrit le livre Tom Sawyer. Cette instanciation peut être identifiée par l'identifiant composé A002/L0031
1 Comme chaque livre est uniquement écrit par un seul auteur, on peut également identifier l’instanciation de l’association par le seul NoLivre L003.
3.3.5.2 Les multiplicités d'une association
Exemple 1:
Se lit: Un client passe au minimum 1 et au maximum plusieurs commandes
Se lit: Une commande est passée au minimum par un et au maximum par un client
Exemple 2:
Interprétez les multiplicités concernant la classe Employé.
Interprétez les multiplicités concernant la classe Ordinateur.
Y a-t-il des employés qui n'utilisent pas d'ordinateurs ?
Y a-t-il des ordinateurs qui ne sont pas du tout utilisés ?
Y a-t-il des employés qui utilisent plusieurs ordinateurs ?
Y a-t-il des ordinateurs utilisés par plusieurs employés ?
Comme nous indiquons pour chaque classe reliée à une association les multiplicités sous la forme: <Multiplicité minimale> .. <Multiplicité maximale>, nous avons les possibilités suivantes:
0..1
1..1 Forme abrégée: 1 (utilisée dans ce cours Î logiciel Win'Design 5.8.0)
0..* Forme abrégée: *
1..*
En pratique, afin de déterminer les bonnes multiplicités, le concepteur doit se référer aux résultats de l'analyse.
Exemple 3:
...
3.3.8 L’utilisation d’une association ternaire
Lors de l’introduction des associations (voir chapitre 3.3.5.1) nous avons déjà mentionné la notion d'association ternaire. Une association ternaire est une association liée à 3 classes.
Bien que dans la pratique la plupart des associations soient binaires (2 classes) il existe cependant des situations où l’utilisation d’une association ternaire s’impose.
Exemple :
A partir des 3 classes Professeur(CodeProf_{id}, Nom, Prénom); Matière(CodeMatière_{id}, Libellé) et Classe(Nom_{id} ,Cycle) il s’agit de créer un MCD qui renseigne sur le fait quelle matière est enseignée dans quelle classe par quel professeur pour une année scolaire donnée.
Exercice
Essayez de montrer les limites/défauts d’un MCD qui représente l’énoncé de l’exemple précédent en utilisant uniquement des associations binaires.
Solution de l’exemple précédent :
Voici une solution avec une association ternaire
On peut lire/interpréter ce modèle de trois façons différentes:
Attention: Selon ce modèle, plusieurs professeurs peuvent enseigner la même matière dans une même classe pendant une année scolaire. Si on veut représenter le fait qu’une matière est enseignée dans une classe par au maximum un seul professeur, il suffit de changer les multiplicités du côté Professeur en 0..1 .
Solution qui permet la gestion sur plusieurs années scolaires.
L'identifiant de l'association enseigner est le quadruple CodeProf_{id} / CodeMatière_{id} / Nom_{id} / Année_{id}.
Il n’est pas toujours facile de déterminer quand il faut utiliser une association ternaire. Généralement, on peut affirmer que si plusieurs des classes liées à une association ternaire possèdent une multiplicité maximale de 1, la modélisation n’est pas optimisée dans le sens qu’il faudrait mieux décomposer l'association ternaire, c.à.d. la représenter par 2 associations binaires.
Pierre Stockreiser 37 Lycée du Nord Wiltz
Exemple :
La direction d’une chaîne d’hôtels désire gérer les séjours des clients dans les différents hôtels. Comme on peut effectivement dire "Un client effectue un séjour dans un hôtel" on est amené à proposer la modélisation suivante.
Chaque instanciation de l'association effectuer associe donc un séjour à un client et à un hôtel.
Or, cette modélisation porte une contrainte supplémentaire, puisque les multiplicités 0..1 nous indiquent que pour chaque instanciation de Séjour il ne peut exister qu'une et une seule instanciation de l'association. Donc chaque séjour est associé une et une seule fois à une combinaison client/hôtel. Dans ce cas il vaut mieux décomposer l'association ternaire en deux associations binaires:
Pierre Stockreiser 38 Lycée du Nord Wiltz
3.3.9 Exercices
Voici le résultat simplifié d'une analyse faite auprès d'une compagnie d'assurance qui désire informatiser la gestion des contrats auto.
Créez le modèle conceptuel des données correspondant à cette situation
Le responsable d'un magasin de location de cassettes vidéo désire informatiser le système de gestion des locations. Voici les informations recueillies pendant l'analyse:
Créez le modèle conceptuel des données
Afin d'informatiser la gestion des séances du cinéma Limelight, vous disposez des informations suivantes.
Un club de vente de livres par correspondance propose à ses membres l'achat d'un ou de plusieurs livres via des bons de commandes. Pour cela, des bons de commandes ainsi qu'un catalogue sont envoyés à tous les membres deux fois par an.
Le responsable du club désire informatiser la gestion des commandes de livres. Voici à titre d'exemple un bon de commande:
Bicherwuerm S.à r.l.
Commande de livres
Votre numéro membre : 123578
☛ Veuillez nous indiquer des changements éventuels de vos coordonnées personnelles.
Nom: Prénom:
Adresse: CP:
Localité: No. Téléphone:
Votre commande :
☛ Indiquez s.v.p. pour chaque livre le numéro ISBN et le titre (voir catalogue).
Numéro ISBN Titre
Cher membre
Les livres commandés vous seront envoyés le plus vite possible. Une facture vous parviendra après livraison complète.
Exercice 5
Le commandant de la brigade municipale des Sapeurs-Pompiers d'Esch-sur-Alzette se propose d'informatiser la gestion des différentes interventions. Etant responsable de l'administration de la brigade, vous êtes en charge de créer une base de données pour stocker les informations relatives aux interventions.
PARTIE 1
Voici le résultat de l'analyse préliminaire menée auprès des responsables de la brigade (p.ex. le commandant, le sous-commandant ...)
Travail à réaliser:
Créez le modèle conceptuel des données
PARTIE 2
Le commandant vous demande de représenter également l'utilisation des véhicules de la brigade. Lors d'une intervention, les sapeurs-pompiers sont affectés aux différents véhicules selon les circonstances. Jusqu'à présent, le commandant a rempli une fiche pour chaque intervention (Exemple: voir page suivante)
Travail à réaliser:
Créez le modèle conceptuel des données