Base de Données PDF VF
Base de Données PDF VF
Base de Données PDF VF
BDD 1
Julie Paternotte 2020
Définition: Le système d’information d’une organisation est l’ensemble des ressources mises en
oeuvre pour créer, collecter, stocker, traiter, diffuser et sécuriser l’information
Certaines ressources d’un système d’information sont digitales, comme des ordinateurs, d’autres
non comme des documents papier.
Définition: Le système informatique (SI) est un sous-ensemble du système d’information qui est
dédié au traitement de l’information digitale. (domaine= métier ou entreprise ou encore
département)
Le fonctionnement des affaires implique toujours d’avantages les technologies digitales. La part
du système informatique au sein du système d’information est donc de plus en plus importante.
Le système informatique est construit pour automatiser certaines activités d’une entreprise, d’un
métier, d’un groupe d’utilisateurs, qui constituent le domaine d’application des technologies
digitales.
Définition: Le domaine d’application d’un système informatique désigne la partie de monde qui
interagit avec ce système.
Afin de subvenir aux exigences des managers, les informaticiens ont recourt à plusieurs
techniques et plusieurs outils. En particulier, le développement d’un logiciel se structure comme
un projet qui suit un processus de développement défini. L’ingénierie logicielle est la discipline
qui détermine les meilleurs processus de développement possible, comme le montre l’image ci-
dessous. Un processus de développement est une démarche organisée et systématique qui aide
à déterminer les phases, les activités et les rôles d’un projet de développement.
Image: Processus de
développement de logiciel
Les projets informatiques sont menés par les informaticiens mais ils impliquent largement les
managers qui doivent collaborer avec eux pour construire un système efficient! Le manager a
donc tout avantage à connaître les approches suivies par les informaticiens pour jouer un rôle
proactif dans un projet informatique.
Définition: Un projet est un effort délimité dans le temps pour fournir un livrable unique de qualité
dans un délai et un budget fixés. (caractérisé par une date de début et une date de fin)
BDD 2
Julie Paternotte 2020
managers de projets doivent trouver le meilleur compromis entre ces différentes contraintes et
sont parfois amenés à privilégier certaines d’entre elles.
Image: Triangle des contraintes et exemples de projets
BDD 3
Julie Paternotte 2020
L’organisation d’un projet en différentes phases en facilite la gestion et le contrôle. Une phase de
projet reprend un ensemble d’activités qui produisent un ou plusieurs livrables. On identifie une
phase quand la nature du travail à accomplir est cohérente à une portion du projet. Par exemple:
- une phase correspond à un accent particulier, comme la collecte des exigences auprès des
utilisateurs
- Une phase s’achève par la livraison d’une version plus ou moins aboutie du logiciel
2.2. Activités
En plus d'un phasage dans le temps, les projets de développement de logiciel sont également
décomposés au niveau des activités à réaliser au sein des différentes phases. Ces activités
peuvent être catégorisées en activités techniques et en activités managériales.
Les activités techniques sont directement liées à la réalisation des livrables. Sans vouloir être
exhaustif, on peut citer typiquement :
• la collecte et le traitement des exigences, qui consiste à comprendre les besoins des
utilisateurs et à voir dans quelle mesure un système informatique peut optimiser les processus
d'affaires existants ;
• la conception du futur système, où les informaticiens imaginent une solution technique qui
répond aux exigences des utilisateurs;
• la construction proprement dite du système, qui reprend notamment récriture des pro-
grammes;
BDD 4
Julie Paternotte 2020
• le test, qui consiste à mesurer la qualité du système produit et, si nécessaire, à entreprendre
des actions correctrices ;
Ces activités ne sont pas cloisonnées en elles. Par exemple, la conception requiert souvent
d'approfondir certaines exigences qui n'auraient pas été complètement spécifiées auparavant.
Les utilisateurs managers sont impliqués de près dans la collecte et le traitement des exigences,
les tests et le déploiement. La conception et la construction sont principalement du ressort des
informaticiens.
Les activités managériales, elles, ont trait à la gestion du projet, comme la planification ou la
gestion des équipes. Ces activités sont transversales aux différentes phases et viennent en
support aux activités techniques. Elles ne contribuent pas directement à la production des
livrables. Ces activités se retrouvent dans tous les projets, informatiques ou non, et sont bien
documentées dans la littérature dédiée à la gestion de projets. Si ces activités sont assumées par
les informaticiens, les utilisateurs managers familiarisés à la gestion de projet n'ont aucun mal à
s'y conformer, voire à y contribuer.
➔ Donner de la valeur aux utilisateurs. Chaque exigence exprimée doit donc être évaluée et
priorisée en fonction de la valeur qu'elle apporte. Un corollaire de ce principe est la nécessité de
construire un système qui répond réellement aux exigences des utilisateurs, ni plus ni moins. Trop
souvent, certaines fonctionnalités développées à grands frais sont peu ou pas utilisées...
➔ Garder le système simple. Une tendance naturelle des utilisateurs est de demander tout et tout
de suite, sans réflexion préalable sur les processus d'affaires qui doivent être automatisés.
Certains systèmes sont alors très complexes à utiliser et à maintenir dès leur naissance, sans parler
du coût de développement lié à leur complexité. Même si travailler à la simplification d'un
système prend du temps et s'avère paradoxalement plus difficile qu'il n'y paraît, les retours de la
simplification sont souvent appréciables.
➔ Rester ouvert au futur et intégrer la flexibilité. Les organisations ont l'obligation de réagir
rapidement dans leur environnement mouvant (concurrence, évolutions techniques, accélération
de l'apparition de nouveaux produits, etc.). Les systèmes informatiques doivent être souvent
adaptés aux nouvelles exigences des utilisateurs et doivent être pensés dès le départ pour le
changement. Concevoir des logiciels flexibles reste un défi technique pour les informaticiens,
alors que d'autres produits de l'ingénierie, comme des bâtiments ou des voitures, subissent peu
de modifications durant leur cycle de vie.
BDD 5
Julie Paternotte 2020
nous bornerons ici à citer quelques exemples représentatifs de processus, à savoir le processus en
cascade, le Unified Process et les processus Agile
En pratique, le choix d'un processus de développement pour un projet donné sera déterminé
notamment en fonction des particularités du domaine d'application, de la taille du logiciel ou du
profil des acteurs du projet. Le processus doit alors être vu comme un cadre méthodologique
générique qu'il faut adapter en décidant des phases et des activités pertinentes pour le projet.
Ce processus, bien qu'ancien, reste assez populaire et pertinent pour des projets réduits en taille
et en durée.
Exigences
Construction
Test
Déploiement
Le processus en cascade présente cependant plusieurs faiblesses qui sont prises en charge par
d'autres processus. En effet, un développement en une seule séquence est rarement réaliste pour
les raisons suivantes :
- La difficulté de cerner les exigences en une seule fois et au début du projet. En effet, imaginer
un système immatériel reste un défi difficile pour les utilisateurs. D'autres approches, comme
l'élaboration de prototypes successifs, les aident à faire émerger le système qu'ils attendent.
- La difficulté de construire des systèmes complexes en une seule fois. D'autres approches
découpent le système en sous-systèmes pour mieux maîtriser leur complexité et prévoient des
itérations pour retravailler des sous-systèmes particulièrement élaborés.
- L'instabilité des besoins dans un environnement changeant. Des modifications des exigences
peuvent intervenir même pendant la construction, qui s'étale parfois sur des années. D'autres
approches intègrent naturellement le changement et la flexibilité (ou l'agilité) dans le
développement.
- La lourdeur de concentrer les tests en fin de processus, avec le risque de découvrir fort tard des
défauts importants, pouvant même remettre le développement en cause. D'autres processus
suggèrent de se concentrer.d'abord sur les aspects les plus risqués pour les tester assez tôt,
afin de rapidement conformer la faisabilité du projet et de limiter l’investissement en cas de
problèmes bloquant.
BDD 6
Julie Paternotte 2020
Analyse et conception
Implémentation
Test
Déploiement
Temps
• Transition, qui livre le système abouti aux utilisateurs et assure leur autonomie.
Chaque phase est le lieu de différentes activités techniques reprises dans la Figure 1-7 et de
plusieurs itérations (notées« It »). UP prévoit aussi des activités managériales (appelées
disciplines de support), comme la gestion de projet ou la gestion du changement.
Les processus de développement Agile intègrent le fait que les besoins des utilisateurs, le
processus de développement et le logiciel à produire émergent progressivement au cours du
projet.
On notera l'accent mis sur la collaboration étroite entre les utilisateurs et les informaticiens avec
des feedbacks immédiats, et donc l'importance pour les managers de connaître la culture et les
approches des spécialistes informatiques.
BDD 7
Julie Paternotte 2020
Product
Backlog
Sprint
Planification du sprint Revue du sprint
• Les informaticiens, qui sont les spécialistes des technologies. En particulier, le business
analyst étudie les exigences des utilisateurs. Le développeur construit le système
correspondant. D'autres intervenants techniques, comme des ergonomes, des responsables
de la qualité (qualiticien), ou des experts en sécurité informatique assument des tâches
spécialisées.
• Le sponsor, qui donne son aval au projet. Il fournit les ressources et le soutien nécessaires au
projet.
BDD 8
Julie Paternotte 2020
Utilisateurs Informaticiens
(spécialistes (spécialistes Sponsor
métier) des TIC) Image: Principaux acteurs d’un projet informatique
l L
Utilisateur chef
final - de projet
décideur
1-
business
analyst
..... développeur 1
Il s'agit pour lui de motiver les équipes, de gagner l'adhésion de toutes les parties et de soigner
la communication tant à l'intérieur de l'équipe de projet qu'à l'extérieur.
Le chef de projet joue un rôle déterminant dans le succès d'un projet. Quelles sont ses principales
compétences interpersonnelles ?
Leadership
• Concentrer les efforts d'un groupe de personnes sur un but commun et les amener à
travailler en équipe.
• Faire réaliser des tâches par d'autres acteurs que soi-même.
Team building
• Aider un groupe de personnes, animées par un but commun, à travailler de manière
autonome et coordonnée entre elles.
• Établir les objectifs, définir et négocier les rôles et les procédures, gérer les conflits, etc.
• Résoudre les problèmes sans blâmer un membre de l'équipe.
Motivation
• Développer un environnement favorable à la réalisation d'objectifs tout en assurant un
maximum de satisfaction de chaque membre du projet.
• Promouvoir les valeurs de satisfaction et de réalisation professionnelles, d'achèvement de
pro- grès et de reconnaissance (y compris financière).
• Élargir la variété des tâches et les responsabilités de chaque acteur.
• Conférer un certain contrôle à l'acteur sur la réalisation de ses tâches, comme l'auto-
évaluation, la planification, etc.
Communication
• Diffuser la bonne information au bon moment.
• Adapter son style de communication à son interlocuteur.
• Savoir écouter.
BDD 9
Julie Paternotte 2020
Influence
• Orienter le comportement des personnes pour obtenir leur coopération.
• Utiliser subtilement son autorité, dans une perspective de collaboration à long terme (les
enne- mis ne sont jamais utiles).
Négociation
• Composer avec des parties d'intérêts opposés pour dégager un accord ou un compromis.
• Rechercher une solution win-win, sans qu'aucune partie ne se sente lésée.
5. Conclusion
L'ingénierie logicielle propose des processus de développement de logiciel organisés en phases
et en activités afin de guider la réalisation de projets. La gestion du projet est assumée par un
chef de projet, qui s'appuie sur un processus de développement défini. Un projet informatique
est pris en charge par l'équipe du projet qui regroupe des informaticiens et des utilisateurs.
Une des premières activités d'un projet informatique consiste à faire émerger les exigences du
système à construire. Il s'agit donc, pour les spécialistes métier, d'exposer ces exigences le plus
précisément possible, et pour les spécialistes informaticiens, de comprendre et de respecter ces
exigences. Pour faciliter ces échanges, le_s exigences sont souvent exprimées avec des lan-
gages ad hoc, comme ceux présentés dans le Chapitre 2. Il nous paraît donc essentiel que les
managers maîtrisent ces langages pour assurer la meilleure communication possible au sein
de l'équipe de projet.
BDD 10
Julie Paternotte 2020
Définition: une exigence est l'énoncé d’une capacité que doit posséder Ie système à construire
pour répondre à un objectif donné, ou exprime une contrainte que le système doit respecter
Par exemple, les utilisateurs pourraient exiger d’un système qu'il soit capable de calculer les frais
de port d'une commande en fonction du pays du client, ou qu'il respecte une contrainte de
confidentialité des données personnelles du client.
1.1.Différents langages
Les exigences peuvent être formulées avec différents langages, comme illustré dans Ie:
BDD 11
Julie Paternotte 2020
:- .,._~;. . . .~~\~t-J~"·•,:~(\.,_ -~::·;-· ' ·:,: .;
:~,i~\- êfflplè de:lang age
;fijOQ'ffiJ~ita~yrel structu ré
..- , -;-· •· i,.<' •.• ~:· _- • -... . ..
projet tentera alors de trouver Ie meilleur compromis dans le choix du langage, essentiellement
en fonction du profil des utilisateurs et de la nature du système à construire
• Ambiguïté : comment garantir qu'une exigence sera comprise de la même manière par tous
les acteurs? Par exemple, lorsqu'on écrit: le système doit prévoir un mécanisme de remise par
quantité et par type de clients, peut-on cumuler les deux types de remises ou non ?
• Silence : les utilisateurs ont parfois du mal à se mettre à la place d'un acteur externe qui ne
connaît pas leur métier ni leurs besoins. Ils ont donc trop souvent tendance à supposer que
certains éléments sont connus de leurs interlocuteurs et omettent de les spécifier.
Bruit : les exigences sont censées décrire principalement ce qui touche à l'information et à son
traitement, mais elles reprennent parfois des éléments qui n'ont que très peu d'intérêt pour la
construction du système, comme le client doit laisser son animal de compagnie à l'entrée du
magasin.
• Contradictions : elles surgissent surtout lorsque les spécifications sont rédigées par plu-
• Redondance : c'est un problème général dan~ la rédaction d~ contenus. Si on ne détecte pas
qu'une même fonctionnalité est décrite plusieurs fois, on risque de dupliquer inutilement
certains des développements.
BDD 12
Julie Paternotte 2020
1.4.Dimensions de la modélisation
La complexité des systèmes informatiques impose des stratégies de décomposition pour faciliter
leur spécification. En particulier, plusieurs modèles complémentaires sont requis pour circonscrire
les différents aspects d'un logiciel:
• Les modèles de spécification des structures de données : ils identifient des types de données
et leurs interrelations. Par exemple, un système devra gérer des données sur des clients, des
articles et des commandes. Les modèles les plus répandus sont les diagrammes de classes et
les diagrammes entité/association.
• Les modèles de spécification des traitements : ils décrivent la manière dont les données sont
créées, transformées ou exploitées. Par exemple, on exposera en détail comment créer une
commande ou comment mettre à jour un compte pour un client.
• Les modèles de spécification de la dynamique : ils précisent les séquences d'opérations per-
mises au cours du temps et les événements qui déclenchent ces séquences. Par exemple, un
évènement nouvelle commande induit la séquence suivante pour passer une nouvelle
commande. (l) créer un compte client, (2) choisir les articles et les quantités commandées, (3)
calculer les frais de livraison, et (4) calculer le total de la commande
Interfaces
Structures Quelle est la forme
Quels sant les types de données
et I' orga nisation de. I'i n;ertace
pris en charge par Ie système?
homme/mach1ne .
Système logiciel
. Dynamique
Fonctions
Quels traitements faut-il réaliser Quelles sent les séquences
de traitements
sur les types de données?
et leurs déclencheurs?
Nous nous limiterons par la suite aux modèles qui expriment les exigences vues par les
utilisateurs. D'autres modèles sont ciblés sur le travail de conception technique des
informaticiens, par exemple en représentant la structure interne du système.
La version 0.8 d'UML a été publiée en 1995 par la société Rational (qui est aussi à l'origine du UP)
avec une intention de rassembler plusieurs techniques de modélisation existantes dans un
ensemble cohérent. Depuis lors, UML est devenu un standard de l'industrie informatique défini
par l'Object Management Group. Notons que UML et UP partagent la même genèse, mais le
premier propose des représentations uniquement, et le second un processus de développement.
UML et UP sont donc complémentaires.
BDD 13
Julie Paternotte 2020
L’image ci-dessous montre des exemples simplifiés de modèles dans le contexte d’une maison
d’édition. Le diagramme de cas d’utilisation (en haut à gauche) montre les principales fonction
attendues d’un système et identifie ses utilisateurs génériques. Le diagramme entité/association
(en bas à gauche) donne une idée des données qu’il faudra traiter et de leurs inter connexions. Le
diagramme d’activité (à droite) montre le fonctionnement du processus d’une saisie de
commande.
Acteur Système
Éditeu
= emp
~I '
oye Exemple de diagramme
Rechercher de cas d’utilisation, de
un client
diagramme entité/
Client existant
Expédition association et
Créer un client
Afficher les données
diagramme d’activité.
non Web
CLIENT client
AUTEUR
NumCli Valider les données
NumAuteur
Nom client
Nom
Adresse
Prénom[ 1-N] NumTVA[0-1] Sélectionner Calcul des frais
1 1 un article l - - - - - - - - - - - - t -71 de port
0-N 0-N
dp 0-N
$ 1-1
Confirmer
la commande
Afficher l'ensemble
de la commande
COMMANDE
1
PRODUIT Porte sur NumCommande Annuler
l-N Date la commande
NumProduit 0-N- Quantité
Port
Titre PrixUnitaire
Adresselivraison
DatePaiement
Les diagrammes de cas d’utilisation fixent les choix des utilisateurs au niveau des fonctions à
prévoir ou à exclure, et conditionnent l’ensemble du projet de développement. Ils méritent donc
une attention toute particulière, car des omissions ou des imprécisions à ce stade auront des
conséquences importantes par la suite.
La spécification d'un système commence par l'identification des exigences qui apportent une
valeur à l'utilisateur, et donc, par extension, qui délimitent le système. Par exemple, un manager
pourrait décider que le système à construire doit prévoir les traitements suivants : gestion du
catalogue de produits, gestion des données client, gestion des commandes et gestion des
livraisons. Cette liste exclut implicitement d'autres traitements du périmètre du système, comme
la comptabilité. Trouver un consensus auprès des utilisateurs sur les exigences n'est pas trivial, car
plusieurs facteurs sont à considérer, tels que la faisabilité, le retour attendu et le coût de
développement d'une exigence. Par exemple, certains utilisateurs défendront le développement
BDD 14
Julie Paternotte 2020
d'un système d'évaluation automatique des collaborateurs, et d'autres non. Voilà qui promet des
discussions animées sur la faisabilité d'une évaluation informatisée... Citons encore le cas d'une
exigence impliquant des traitements complexes mais rarement invoqués. Parfois, garder un
processus manuel peut s'avérer moins coûteux qu'une automatisation.
2.2. Acteur
Définition: Un acteur représente une entité extérieure au système et interagit avec le système.
Un acteur peut désigner un utilisateur humain ou un autre système, tel qu'un utilisateur , un
internaute, un modérateur du forum, ou un SI extérieur. Un acteur représente plutôt un rôle
qu'une personne particulière, ce qui évite de mentionner nominativement tous les utilisateurs du
système. Par contre, un même utilisateur peut assumer plusieurs rôles, et par exemple interagir
avec le système tantôt en tant qu'acteur internaute et tantôt en tant qu'acteur modérateur du
forum.
Un acteur peut soit stimuler le système en vue de la réalisation d'un traitement, comme un client
qui utilise une application e-banking pour passer un ordre de virement, soit simplement participer
à la fonctionnalité du système, comme le système bancaire qui reçoit le virement de
la même application
Un acteur est connecté à un cas d'utilisation par une association qui représente le fait que l'acteur
interagit avec le système dans le cadre du cas d'utilisation. Un diagramme de cas d'utilisation
reprend donc les acteurs, les cas d'utilisation et les associations entre les acteurs et les cas
(symbolisées par un segment de droite reliant un acteur et un cas). Il mentionne également une
désignation du système et indique la limite entre le système et son environnement, comme dans
l’image ci-dessous.
Désignation E-banking
BDD 15
Julie Paternotte 2020
pour poster un message sur le forum, car il hérite de ce cas d'utilisation en tant que cas particulier
d’internaute.
Forum
Internaute
Image: Généralisation d’acteurs
f
Modère le forum
Modérateur
Si plusieurs acteurs sont connectés à un même cas d'utilisation, ils sont alors tous obligatoirement
impliqués dans son exécution. Dans l'exemple de gauche de l’image ci-dessous, un client et un
caissier participent tous deux à une vente au comptoir. Par contre, dans l'exemple de droite, le
client et le caissier héritent de l'association au cas vendre au comptoir, et donc soit le vendeur
seul soit le client seul (selfscanning) peut individuellement réaliser ce cas.
- - - , Vendre au comptoir
Caissier
Client Caissier
Deux types de relations permettent de relier les cas entre eux (image ci-dessous) :
• La relation include, qui signifie que le comportement d’un cas d'utilisation appelé est
systématiquement intégré dans un cas d’utilisation appelant. Cette relation est représentée
par une flèche pointillée dirigée vers le cas appelé.
• La relation extend, qui signifie que le comportement d'un cas d'utilisation peut éventuellement
être intégré au comportement d'un cas d'utilisation appelant si une certaine condition est vérifiée.
Cette relation est représentée par une flèche pointillée dirigée vers le cas appelant. La condition
est notée entre accolades et est préfixée du mot clé condition.
« include » ___.,,
--- --- -- -- -- --
Cas appelé
Condition: sous
{condition condition
d'extension}
BDD 16
Julie Paternotte 2020
Dans l'exemple de l’image ci-dessous, le cas d'utilisation passer une commande inclut
systématiquement le cas d'utilisation payer une commande, ce qui signifie qu'à un moment
donné de la saisie d'une commande, le client devra inévitablement la payer. Par contre, Le cas
d'utilisation changer d'adresse livraison peut étendre le cas d'utilisation passer une commande si
la condition si autre adresse est vérifiée.Notons qu'un cas d'utilisation appelé peut être invoqué
directement par un acteur, indépendamment des cas d'utilisation appelants, et un même cas
d'utilisation peut être appelé par plusieurs autres cas d'utilisation et vice versa.
E-shop
Payer
une commande
1
1
« include » 1
1
Passer
une commande
client
1
« extend »
1
t- - - - - - - - - - -
Condition:
1
1
{si autre adresse}
Changer d'adresse
livraison
Voici par exemple le détail d'un cas d’utilisation: Acheter des articles.
Nom du cas: Acheter des articles
Acteurs: Clients
Objectif: Saisir une vente et son paiement
Description :Un client se présente à la caisse pour régler ses achats. Le caissier enregistre les
articles choisis et encaisse le paiement du client. Finalement, le client quitte la caisse avec ses
articles.
BDD 17
Julie Paternotte 2020
Scénario:
Parfois, un scénario mentionnera des interactions qui ne concernent pas directement le système,
mais qui permettent de bien comprendre le processus d'affaires sous-jacent. Dans l'exemple
précédent, l'action 7. Le client donne les espèces au caissier ne concerne pas la
spécification du système, mais documente utilement le processus d'achat des articles.
UML n'impose pas une manière de décrire les cas d'utilisation. Le lecteur trouvera des recom-
mandations complémentaires dans la littérature dédiée. Par exemple, un cas d'utilisation peut
être détaillé avec les rubriques: nom, résumé, scénario de base, chemins alternatifs, points
d'extension, déclenchement, hypothèse, pré-conditions, post-conditions, règles métier
correspondantes, auteur et date.
Par exemple :
BDD 18
Julie Paternotte 2020
Voici un exemple de démarche de construction possible d'un diagramme de cas d'utilisation qui
est présentée à travers un exemple de magasin vendant des articles pour animaux, et dont voici
une brève description :
- PetShopTop vend de la nourriture et des accessoires pour animaux à des clients privés ou
professionnels. Deux modes de vente sont proposés : une vente au comptoir et une
commande Web pour les professionnels uniquement.
- Les magasiniers se chargent de la préparation des commandes et de la facturation. Ils
s'occupent du réassortiment du stock et tiennent la caisse.
- De temps en temps, des délégués commerciaux viennent en magasin pour organiser les
rayons.
Î Î
=:lient professionnel Caissier
PetShopTop
Vente comptoir
Client particulier
Caissier
Î
Préparation de commande
Client professionnel
Facturation
Magasinier
Réassort stock
BDD 19
Julie Paternotte 2020
~angement r a y ~
PetShopTop
« extend » r--------
1
{si paieme t
1
par carte}
« include » :
Client professionnel
réparation de comm
Facturation
Magasinier
Arrangement rayons
Délégué commercial
BDD 20
Julie Paternotte 2020
• le comportement décrit par un cas d'utilisation ne doit être ni trop limité, ni trop large. Par
exemple, des cas d'utilisation comme cliquer sur le bouton OK ou gérer le back office n'ont pas
une granularité idéale. Typiquement, un cas d'utilisation est détaillé en une à deux pages, mais il
n'y a pas de règle absolue en la matière.
Piège à éviter:
2.7. Exemple
Imaginons un projet de développement d’une plateforme de location d’objets. Son objectif est
de mettre en relation des locataires et des propriétaires qui souhaitent louer des objets, comme
des outils, des vêtements, ou des appareils photo.
Voici chaque exigence et sa formulation sous la forme d’un diagramme de cas d’utilisation.
Exigence 1
un internaute peut consulter le catalogue des objets disponibles et éventuellement lancer une
recherche sur ce catalogue.
L’image ci-dessous montre un diagramme de départ avec un premier acteur principal et une
première utilisation du système.
Location d'objets
« extend »
Consulter le catalogue
_____ ï ____ _
Rechercher un objet
Internaute Condition:
{si recherche
selon des critères}
Exigence 2
Quand un internaute souhaite louer un objet il doit s’enregistrer sur la plateforme avant sa
première location.
Cette seconde exigence complète le diagramme avec un cas d’utilisation s’enregistrer, comme
dans la figure ci-dessous
Locat ion d'objets
« extend
_____ ï
»
____ _
Consulter le catalogue
Internaute Condition :
S'enregistrer {si recherche
selon des crit ères}
Exigence 3
Une fois enregistré, l'internaute peut, après s'être identifié, réserver un objet et le louer. Il peut
aussi laisser un commentaire sur un objet qu'il a recherché. Il devra procéder à
un paiement lors de la réservation (acompte) et de la location (solde).
Location d'objets
Cette exigence suggère une
catégorie particulière « extend »_
_ _ _ _ _ T" _ _ _ _
ulter le catal
d'internaute: le locataire, qui
Internaute
hérite des utilisations de Condition:
{si recherche
l'internaute, mais qui accède à selon des critères}
d'autres facilités.
------
L'identification, le paiement et la
recherche d'objet sont des
comportements communs à
Locataire
« include »'e-<~~~~~~-~~---
.....
BDD 22
Julie Paternotte 2020
Exigence 4
Le système permet à un propriétaire de poster les données d'un objet qu'il met en location et, à
cette occasion, d'ajouter éventuellement des commentaires sur ses objets. Un propriétaire peut
laisser un commentaire sur un objet après l'avoir posté sur la plateforme.
L’image ci-dessous fait apparaître le propriétaire et son cas d’utilisation poster un objet. Le cas
laisser un commentaire sur un objet a été associé à un nouvel acteur (Utilisateur identifié) qui
généralise le propriétaire et le locataire (dont les cas d'utilisation spécifiques ne sont pas
représentés dans l’image).
Location d'objets
---------------- 1
1
1
1
Utilisateur identifié
Condition: 1
f \
1
{s'il y a __ -: « extend »
des commentaires
à formuler}
X
Locataire
X
Propriétaire
Poster un objet -----------------------
Exigence 5
Tout comme le locataire, le propriétaire doit s’enregistrer sur la plateforme et s’identifier pour
accéder à toutes ses fonctions.
Location d'objets
S'enregistrer
Internaute
f
1
1
.... 1
Utilisateur identifié 1
« include ;---- ........
? \
1
1
,: « extend »
/ 1
« include » / 1
/ 1
/ 1
I
/ 1
·· ~ --------------- -----~ --' I
I
I
Condition: I
Locataire Propriétaire I
{s'il y a
des commentaires
à formuler}
Exigence 6
L’administrateur de la plateforme gère les catégories servant à classifier les objets et modère les
commentaires sur les objets.
BDD 23
Julie Paternotte 2020
Location d'objets
« extend »
Internaute
Condition :
S'enregistrer {si recherche :
selon des critères} « include » :
-----~
--- ---- --- ----
1
1
Utilisateur identifié -- ........ ........ «include» 1
.... 1
1
1
Administrateur - - + - - - - - - ~
3. Diagramme d’activité
Les diagrammes d'activité décrivent les fonctions et la dynamique du futur système, c'est- à dire
l’ordre dans lequel les traitements sont réalisés. Ces diagrammes sont une des tech- niques
d'UML pour modéliser le comportement d'un système. En pratique, les diagrammes d'activité
sont souvent utilisés pour détailler ou reformuler le scénario d'un cas d’utilisation.
Définition: un diagramme d’activité décompose une fonction attendue d’un système informatique
en actions. Il montre comment ces actions s’enchaînent dans le temps et comment elles se
transmettent de l’information.
Définition: Une activité est un graphe orienté dans les noeuds représentent ses composants,
comme des actions ou des noeuds de contrôle. Ces noeuds sont comme connectés par des flux
de contrôle ou des flux d’objets.
BDD 24
Julie Paternotte 2020
Cette section propose une version épurée des diagrammes d'activité, mais qui est suffisante pour
couvrir bon nombre de problèmes de gestion.
Spécifier uniquement le nom des actions n'est pas suffisant pour permettre aux informaticiens de
les programmer. Une technique usuelle consiste à décrire l'effet d'une action en termes de
postconditions, c'est-à-dire des affirmations qui doivent être vérifiées après l'exécution de
l’action.
Définition: un flux de contrôle représente une transition entre 2 actions. La fin de l’exécution
d’une action à l’origine du flux de contrôle déclenche l’exécution d’une seconde action située à
l’extrémité du flux.
Les flux de contrôle montrent donc les séquences d’enchaînement des actions dans le temps. Par
la suite, nous imposerons u’une même action ne peut accepter qu’un seul flux entrant et qu’un
seul flux sortant pour des motifs de simplification.
( ]
/
"
Action 1
] Flux de contrôle
{ Action 2
Préparer
une commande
-., Expédier
une commande
3.2. Noeud
Un diagramme d'activité composé uniquement d'actions et de flux de contrôle n'est pas
suffisamment expressif pour représenter des enchaînements complexes d'actions, comme des
répétitions ou des branchements conditionnels. UML prévoit donc des nœuds spéciaux pour
représenter de tels enchaînements.
BDD 25
Julie Paternotte 2020
Définition: Un noeud de contrôle organise des flux d’exécution d’une activité au-delà des
enchainements séquentiels
Début et fin d’activité image ci-dessous. Le nœud de début d'activité marque le démarrage de
l'activité. Le nœud de fin d'activité marque sa terminaison. UML permet de mentionner plu- sieurs
nœuds de début pour exprimer des séquences d'actions concurrentes. Par la suite, nous nous
limiterons à un seul nœud de début et un seul nœud de fin dans un même diagramme, toujours
pour des motifs de simplification.
Notation Exemple
Début Fin
Poster Interviewer Analyser les Sélectionner
une offre les candidats candidatures un candidat
d'emploi
3.2.1. Décision
Le nœud de décision (choice) exprime plusieurs alternatives possibles, dont une seule sera choisie
en fonction de conditions appelées conditions de garde. Dans la partie gauche de l’image ci-
dessous, après la terminaison de l'action 1, soit l'action 2 est exécutée si la condition garde 2 est
vraie, soit l'action 3 est exécutée si la condition de garde 3 est vraie. Un nœud de choix peut
comporter autant de flux sortants que l'on veut, du moment qu'ils sont assortis d'autant de
conditions de garde mutuellement exclusives.
Notation Exemple
Évaluer
Action 1 une demande
de crédit
Client
[garde 3] solvable Accorder
Action 3
Image: notation et exemple de noeuds de
le crédit
Client
insolvable
.( 2
Action
Refuser choix
le crédit .
3.2.2. Fusion
Le nœud de fusion (merge) enclenche un flux sortant dès qu'une action liée à un des flux entrants
dans le nœud est terminée. Dans la partie gauche de l’image ci-dessous, l'action 3 est exécutée
après la terminaison de l'action 1 ou la terminaison de l'action 2. Un nœud de fusion peut
comporter autant de flux entrants que l'on veut.
Notation Exemple
Fabriquer
Action 1
un article
3.2.3. Jointure
Le nœud de jointure (join) représente une conjonction synchronisée de flux. Dans la partie gauche
de l’image ci-dessous ,l'action 3 est exécutée après la terminaison de l’action 1 et la terminaison
BDD 26
Julie Paternotte 2020
de l'action 2 (les deux actions doivent être terminées).Un nœud de fusion peut comporter autant
de flux entrants que l'on veut.
Notation Exemple
Clôturer
Action 3
la commande
3.2.4. Bifurcation
Le nœud de bifurcation (fork) représente un déclenchement de flux de contrôle concurrents. Dans
la partie gauche de la Figure 2-30, l'action 2 et l'action 3 sont exécutées après la terminaison de
l'action 1. Un nœud de bifurcation peut comporter autant de flux sortants que l'on veut.
Notation Exemple
Action 1 Préparer
une commande
Expédier Envoyer
Action 2 Action 3
la commande la facture
C'"
·.p
Vl
Client Département vente Département logistique Cl
0
.....J
Envoyer Réassortir
une commande le stock
d’activité décrivant un processus de
Stock traitement d’une commande. Les actions
Enregistrer suffisant
la commande sont réalisées soit par le client, soit par le
département vente, soit par le
Payer
la commande Préparer
la commande
département logistique. Après renvoi
d’une commande par le client, deux flux
Recevoir Expédier
d'exécution parallèles sont enclenchés: le
paiement du client et le traitement de la
la commande la commande
BDD 27
Julie Paternotte 2020
cas de rupture de stock, le département logistique réassort le stock. La commande ne peut être
expédiée qu’après son paiement et sa préparation.
3.4.2. Interruption
Une zone interruptible est une partie délimitée du diagramme d'activité qui englobe un groupe
d'actions. L'exécution d'une zone interruptible peut être arrêtée lorsqu'un événement donné se
produit. Après interruption, un flux de contrôle est dirigé en dehors de la zone interruptible pour
exécuter des actions ad hoc. Par exemple, une activité de commande en ligne peut être
abandonnée à tout moment par le client s'il quitte le site de vente. Dans ce cas, un traitement
spécifique est exécuté, par exemple pour annuler la commande qui était en cours avant
l'interruption. L’image ci-dessous illustre cette situation, en délimitant la zone interuptible par des
pointillés, et en indiquant l'événement provoquant l'interruption (abandon) par un rectangle
biseauté à droite.
---------------- - - _.,
1 J
'------------------
BDD Annuler 28
la commande
Julie Paternotte 2020
Si montant Si montant
supérieur à 1 000 inférieur à 1 200
ccorder Imprimer
une réduction la facture
3.6. Exemple
Pour illustrer les digrammes d'activité, imaginons le cas d'un détaillant d'articles de sport qui
souhaite représenter un processus de prise de commande sur le Web. Le diagramme d'activité
correspondant va être construit en traitant progressivement chaque exigence d'un énoncé en
langage naturel.
Exigence 1
le système affiche une page d'accueil à partir de laquelle un internaute peut choisir une rubrique
de produits en s'identifiant éventuellement au préalable. Une rubrique correspond à un sport,
comme une rubrique tennis ou une rubrique jogging.
Pour commencer, l'internaute peut naviguer vers une rubrique de son choix après une éventuelle
identification. On a décidé de ne pas indiquer de partition vu la nature du problème, comme le
montre l’image ci-dessous.
Choisir
rubrique
BDD 29
Julie Paternotte 2020
Exigence 2
Au sein d'une rubrique, l'internaute sélectionne un ou plusieurs articles à commander.
Naturellement, les articles proposés sont ceux de la rubrique.
Après avoir précisé une rubrique, l'internaute peut choisir autant d'articles à commander au sein
de cette rubrique qu'il le souhaite. L’image ci-dessous indique donc une boucle sur l'action choisir
article (la boucle est indiquée sur la figure mais est hors formalisme UML).À ce stade, cette boucle
reste incomplète car il n'y a pas encore de moyen d'en sortir.
S' i ndentifier
Exigence 3
L’internaute peut naviguer vers d’autres rubriques pour sélectionner d’autres articles à
commander. L’image ci-dessous introduit une seconde boucle pour répéter l’action choisir
rubrique.
S'indentifier
Ne veut pas
s'identifier
Choisir Choisir
rubrique article
Autre
article
Autre
rubrique
Exigence 4
Quand l'internaute a sélectionné tous les articles qu'il veut commander, et s'il ne souhaite plus
consulter d'autres rubriques, le système lui montre alors le récapitulatif de sa commande et l'invite
à s'identifier si ce n'est déjà fait. L'internaute clôture la transaction en confirmant la commande.
La sortie de la seconde boucle enchaîne sur le récapitulatif de la commande. Dans l’image ci-
dessous l'internaute clôture la transaction en cas d'identification en début de commande et
l’activité prend fin.
BDD 30
Julie Paternotte 2020
S'indentifier
Déja
identifié
Clôturer
transaction
Choisir Choisir
rubrique article
Autre
article
Autre
rubrique
Récapituler
Pas d'autre rubrique commande
Par contre, si l'internaute ne s'est pas identifié en début d'activité, il doit le faire avant de clôturer
la transaction. L’image indique qu'après l'identification:
• soit la transaction peut être clôturée si une commande est en cours de réalisation ;
• soit on est au début de l'activité et le flux d'exécution est dirigé vers les choix de rubriques et
d'articles. Pas identifié
S'indentifier
Commande
en cours
Clôturer
transaction
Choisir Choisir
rubrique article
Autre
article
Récapituler
Pas d'autre rubrique commande
4. Diagramme entité/association
Les systèmes informatiques développés pour les métiers de gestion sont majoritairement orientés
vers les données. Le langage entité/association a pour finalité de cerner les données
nécessaires aux différents processus d’affaires.
Définition: un diagramme entité/association (E/A) décrit les structures des données utiles pour
l’utilisateur. Il spécifie la nature des liens entre les données ainsi que les contraintes qui
conditionnent leur validité
Le diagramme E/A complète les diagrammes dédiés aux traitements en précisant les données qui
font l'objet de ces traitements. Rappelons qu'un même système informatique est
BDD 31
Julie Paternotte 2020
4.1. Entité
Un système informatique devra bien souvent gérer de l'information à propos d'objets du domaine
d'application. Plutôt que de s'intéresser à chaque objet en particulier, on va raisonner en termes
de groupes ou de classes d'objets similaires.
Définition: une entité représente un ensemble d’objets du domaine d’application qui présentent
des caractéristiques semblables.
Les objets sont donc représentés par une entité, dont ces objets sont des instances. Par exemple,
l’image ci-dessous montre comment les objets Citroën 2CV, Fiat 600 et Ferrari F40 peuvent être
schématisés à travers une entité Voiture. Toutes les voitures sont caractérisées par un modèle, une
année, une cylindrée et un nombre de portes. Ces caractéristiques sont appelées attributs de
l'entité (cf. Section 2.4.3). Chaque instance de l'entité Voiture possède des valeurs particulières
pour ces attributs. Par exemple, l'attribut c y l i n d r é e de l’instance Citroën 2CV a comme valeur
650.
Voiture
modèle Entité
année
cylindrée
nombre de portes
Le fait de ne retenir que certains attributs pour des objets modélisés par une entité est un cas
typique d'abstraction. Le choix de ces attributs dépend des exigences du domaine d'application.
Par exemple, le système d'information d'une entreprise va gérer, pour une personne employée,
les attributs nom, prénom, salaire, fonction, etc., alors qu'un hôpital retiendra, pour la même
personne, les attributs nom, prénom, groupe sanguin, âge, et taille.
En fait, de nombreux mécanismes d'abstraction sont implicitement appliqués pendant la
modélisation. Plus généralement, l'abstraction est un processus mental selon lequel nous
établissons une certaine perception de la réalité sans en considérer tous les détails.
De la même manière, considérer une classe d'objets plutôt que ses instances permet de se
concentrer sur les propriétés de la classe tout en ignorant les particularités de ses instances. Le
mécanisme d'abstraction à l'œuvre ici s'appelle la classification.
4.2 Association
Les objets du domaine d'application sont naturellement reliés entre eux. Les associations
représentent leurs liens.
BDD 32
Julie Paternotte 2020
Définition: une association binaire schématique une correspondance entre 2 entités, et représente
l’ensemble des liens entre leur instances.
Par exemple, considérons deux entités Personne et Ville. Le fait qu'une personne habite une ville
est modélisé par une association binaire habite, qui lie une personne à une ville et vice versa,
comme illustré par l’image ci-dessous. Un lien entre une personne et une ville est une instance de
l'association habite. Les liens d'une association vers des entités peuvent être facultativement
libellés pour une meilleure compréhension du diagramme.
....
Personne Ville
8
1
1
1
1
1
1
1
1
1
1
Luc
4.2.1. Cardinalités.
Les associations sont caractérisées par des contraintes portant sur le nombre d’instances
connectées par cette association. Ces contraintes sont appelées cardinalités et sont notées entre
crochets au niveau de l'arc reliant l'association à l'entité. Dans l'exemple précédent, une personne
habite dans une et une seule ville, comme Paul qui habite à Bruxelles. On indiquera alors une
cardinalité minimale (ici 1) et une cardinalité maximale (également 1) exprimant respectivement le
nombre minimum et le nombre maximum d'instances de Ville auxquelles Paul, une instance de
Personne, peut être lié via habite. Inversement, une instance de Ville est reliée à minimum aucune
instance de Personne (soit une cardinalité minimale de O), et si le maximum de connexions vers
des personnes pour une ville donnée n'est pas déterminé, on indiquera une cardinalité maximale
N.
Le nombre d'instances réellement connectées doit être compris entre la cardinalité minimale et la
cardinalité maximale. Par exemple, Paul ne peut pas habiter dans deux villes, mais B r u x e l l e s
peut compter n'importe quel nombre d'habitants.
Notons que par convention, les cardinalités placées sur l'arc reliant une entité et une association
portent sur le nombre de connexions possibles entre une même instance de cette entité et des
instances de l'autre entité connectée à l'association. Ainsi, dans la Figure 2-47, les cardinalités 1-1
entre Personne et habite répondent à la question suivante: une même personne peut être reliée à
combien de villes au minimum et au maximum ?
BDD 33
Julie Paternotte 2020
4.2.3.Attributs d’association
Une association peut être caractérisée par des attributs, au même titre que les entités. Par
exemple, s'il faut gérer le fait qu'une personne habite une ville depuis une certaine date, alors
l'association habite de l’image ci-dessous comportera un attribut date d'installation.
habite
date d'installation
Personne est un habitant a des citoyens
1-1---- --0-N Ville
nom
prénom nom
date de naissance code postal
0-N 0-N
travaille à
4.2.4. Cycle
Une association est cyclique quand elle lie une entité à elle-même, c'est-à-dire quand les
instances d'une même entité sont liées entre elles. Dans ce cas, on peut expliciter les deux rôles
joués par l'entité dans l'association cyclique. Par exemple, l’image ci-dessous représente des
produits qui sont associés à d'autres produits dans des kits. Un produit peut être le composant
de maximum un autre produit, mais un produit peut être composé d'un nombre indéterminé de
produits. Un produit entre dans la composition d'un autre produit à concurrence d'une certaine
quantité. Pour être tout à fait complet, il faudrait annexer le diagramme en précisant qu'un
produit ne peut pas être son propre composant. Comme autres exemples d'associations
cycliques, citons des personnes qui seraient reliées entre elles par un lien de subordination
hiérarchique, ou encore des sociétés liées à des sociétés filiales.
est composant de
Produit 1-1
kit
libellé
quantité
prix de vente
se compose de
0-N
BDD 34
Julie Paternotte 2020
4.3. Attribut
Le concept d'attribut a déjà été introduit dans la Section 2.4.l comme étant une caractéristique
d'une entité.
Définition: un attribut modélise une propriété élémentaire d’une entité ou d’une association, et
pour laquelle les instances peuvent prendre une ou plusieurs valeurs
4.3.1. Cardinalité
Un attribut possède une cardinalité minimale et une cardinalité maximale, qui précisent
respectivement le nombre minimum et le nombre maximum de valeurs qu'il peut prendre pour
une instance donnée. Les cardinalités sont notées entre crochets derrière le nom de l’attribut.
Par convention, les cardinalités d'un attribut prennent la valeur par défaut [l-1] quand elles ne sont
pas spécifiées.
4.3.2.Composition.
Un attribut composite est constitué d'un groupe d'attributs ayant des affinités fonctionnelles, mais
ne justifiant pas la création d'une entité. L'attribut composite offre un niveau de détail
supplémentaire dans la description de l'entité ou de l'association. Un exemple
BDD 35
Julie Paternotte 2020
classique est l'attribut adresse de l’image ci-dessous, constitué des attributs rue, numéro, code
postal, localité et pays.
Client
numéro
nom
Article
prénom[0-1]
téléphone[0-5] achète
famille
date de contact[O-N] --0-N date t---1-1--..
numéro
adresse[1-3] remise libellé
rue prix
numéro
code postal
localité
pays
4.3.3. Identifiant
En général, chaque instance d'une entité se différencie des autres par une valeur d'un attribut
identifiant Dans l’exemple de l’image ici au dessus , chaque client possède un numéro unique.
L'attribut numéro joue donc le rôle d'identifiant pour Client, ce qui est représenté en le
soulignant.
La notion d'identifiant contribue à comprendre la vraie nature d'une entité, en spécifiant précisé-
ment ce qui distingue les instances entre elles. De plus, l'identification des instances est
primordiale pour une future implémentation dans une BD relationnelle (Section 3.4) :
l’identification dans ces systèmes se fait par les valeurs, c'est-à-dire que l'utilisateur fournit lui-
même les don- nées permettant l'identification.
Le choix des identifiants n'est pas toujours aisé, surtout lorsque le domaine d'application ne
fournit pas spontanément d'identifiant naturel. Dans ce cas, on introduit des identifiants tech-
niques, c'est-à-dire sans signification réelle pour l'utilisateur, comme des numéros séquentiels.
4.3.4.Composition de l'identifiant
Un identifiant peut être composé de plusieurs attributs. Par exemple, une instance d’Article, est
identifiée par la combinaison d’une valeur de l'attribut famille et d'une valeur de l'attribut numéro.
Les deux attributs de l’identifiant sont alors soulignés.
4.3.5. Domaine
On peut également indiquer le domaine d'un attribut, à savoir l'ensemble de ses valeurs
permises. Par exemple:
• le domaine de l'attribut code postal est l'ensemble des nombres entiers compris entre 1 000 et
9 999 ;
• le domaine de l’attribut salaire est l’ensemble des nombres réels compris entre 500 et 10000.
4.3.6.Attribut dérivé
Un attribut est dit dérivé lorsque sa valeur peut être obtenue en combinant les valeurs d'autres
attributs. Par exemple, l'âge d'une personne peut être calculé sur la base de sa date de naissance
et de la date du jour.
BDD 36
Julie Paternotte 2020
4.4. Généralisation/spécialisation
L'association constitue un premier mécanisme pour conne~ter les entités entre elles. La
généralisation/spécialisation est un second moyen de relier des entités mais avec une logique de
catégories.
Imaginons par exemple qu’une entreprise doive gérer des données sur ses clients, ses prospects
et ses employés, comme dans l’image ci-dessous.
Ces entités peuvent être généralisées par une entité Personnes, comme les montre l’image ci-
dessous. Un triangle relie les entités à généraliser vers une nouvelle entité plus générale, et qui
est connectée par un trait en gras.
Personne
Client
Employé
numéro
numéro
nom
nom
prénom Prospect prénom
date de contact[O-N]
numéro adresse
téléphone
nom salaire
prénom
consentement e-mailing
e-mail
Les entités Client, Prospect et Employé sont alors vues comme des catégories de Per- sonne, et
leurs instances sont aussi des instances de Personne.
Dans cette configuration, les attributs communs aux catégories seront« remontés» vers l'entité
plus générale, ce qui simplifie le diagramme puisqu'ils ne seront plus spécifiés qu'une seule fois,
comme dans l'exemple de l’image ci-dessous. Un mécanisme d'héritage implicite assure que
les attributs de Personne seront hérités par Client, Prospect et Employé. Cet héritage porte aussi
sur les associations et les identifiants.
Personne
numéro
nom
prénom
Client Employé
L'exemple précédent a montré comment des entités semblables ont été généralisées. À l'inverse,
voyons comme une entité pourrait faire l'objet d'un raffinement en catégories plus détaillées.
BDD 37
Julie Paternotte 2020
Dans l’image ci-dessous, une entité Article apparaît en premier lieu avant d'être spécialisée en
deux catégories: Article Food et Article Non-Food. Les attributs communs aux catégories restent
au niveau de A r t i c l e , et sont implicitement hérités par les catégories, alors que les attributs
spécifiques sont placés au niveau des catégories.
Article
héritage
numéro
Article libellé
prix de vente
numéro
libellé
prix de vente
garantie
date de péremption
catégories
4.4.1.Propriétés
Une structure de généralisation/spécialisation est caractérisée par deux propriétés qui annotent le
diagramme :
• disjoint versus avec recouvrement : dans le cas disjoint, il n'existe pas d'intersection entre les
populations des spécialisations. Autrement dit, une instance ne peut pas appartenir à plus d'une
spécialisation. Par exemple, une personne ne pourrait pas être à la fois prospect et client. Dans
le cas avec recouvrement par contre, les catégories possèdent des instances en commun,
comme un employé qui pourrait aussi être client ;
• total versus partiel : dans le cas partiel, il peut exister des instances appartenant à la
généralisation, mais n'appartenant à aucune de ses spécialisations. Par exemple, il existerait des
personnes qui ne sont ni client, ni prospect, ni employé, comme des auditeurs externes. Dans le
cas total par contre, toutes les personnes sont nécessairement reprises dans au moins une des
catégories Client, Prospect ou Employé.
Par exemple, l’image ci-dessous indique que toutes les personnes sont reprises dans les
catégories, et que ces catégories n’ont pas d’intersection.
Personne
numéro
nom
prénom
Client Employé
Plusieurs niveaux de généralisation / spécialisation sont possibles. On obtient alors des arbres de
généralisation / spécialisation, comme celui ci-dessous.
Article
héritage
numéro
Article libellé
prix de vente
numéro
libellé
prix de vente
garantie
date de péremption
catégories
4.5. Contrainte
Définition: une contrainte d’intégrité est une propriété sue les données doivent satisfaire en toute
circonstances.
Les contraintes imposent aux utilisateurs des règles incontournables qui visent à garantir un
niveau de qualité des données. Le modèle E/A autorise plusieurs types de contraintes d'intégrité,
comme celles liées :
• à un identifiant, dont les valeurs doivent être uniques ;
• aux cardinalités d'association, qui imposent des obligations et des limites dans les connexions
entre des instances;
• aux cardinalités d'attribut, qui contrôlent le nombre de valeurs d'un attribut;
• à la généralisation/spécialisation, dont les propriétés régissent l'appartenance d'instances aux
entités spécialisées ;
• au domaine d'un attribut, qui définit un ensemble de valeurs valides pour cet attribut.
Cependant, d'autres types de contraintes d'intégrité peuvent être formulés par les utilisateurs,
sans pouvoir être exprimés par le modèle E/A, dont l'expressivité trouve ici ses
limites. Ces contraintes seront alors annexées à un diagramme E/A et formulées soit en
langage naturel, soit avec des langages formels ad hoc. Ces contraintes peuvent porter entre
autres sur:
• les valeurs des cardinalités d'association. Par exemple, on ne peut associer davantage
d'étudiants à un cours que le nombre de places disponibles dans l'auditoire où se donne le cours;
• la complétude des instances d'une entité. Par exemple, tous les codes postaux d'un pays
doivent être repris dans une entité code postal ;
• les modifications permises des données. Par exemple, on ne peut pas réduire le salaire d'un
employé.
BDD 39
Julie Paternotte 2020
Une discussion détaillée sur les différentes stratégies et méthodes de construction, d’un
diagramme E/A dépasse le cadre de cet ouvrage.
Cette représentation est malheureuse car il faudra spécifier la même adresse pour tous les
employés d'un même département, avec toutes les redondances que cela entraîne. Le
diagramme de la partie droite de la Figure 2-57 évite ce problème en distinguant les concepts
d'employé et de département, ce qui permet notamment la représentation naturelle d'un
département qui ne compterait aucun employé.
La transformation d'un diagramme susceptible d'amener des redondances en un diagramme sans
redondance fait partie d'une démarche plus générale de validation d'un diagramme appelée
normalisation.
Employé
matricule Employé
nom employé matricule Département
prénom nom employé r---1-1 travaille dans 0-N- nom département
fonction prénom adresse
nom département fonction
adresse
Ensuite, on évitera une application malheureuse des concepts du modèle E/A, comme dans
l’image ci-dessous
• l'utilisation du mécanisme de généralisation/spécialisation pour relier des entités qui n'ont
pas de lien de catégorie, comme Employé et Facture qui ne sont pas des catégories de
Commande;
• la mention d'un attribut faisant référence à une autre entité, comme l'attribut numCli de
Commande, qui veut indiquer erronément qu'une commande est liée à un client, ce qui est déjà
exprimé par l'association passe.
Finalement, on n'oubliera pas de mentionner complètement les identifiants, les cardinalités ou les
propriétés des structures de généralisation/spécialisation.
Client
numCli l~L~tdentifiant mar, qu~ "'+Ji--){~: nu~~~~ck )
nom
0-N 0-N
Référence
(pafse) (co+en9
1-1 1-1
vers ·le client
superflue Commande Article
numCom
date
1-N-fa'--1_1 DetailCommande
quantité 1_1.. ~pour, _ 9~_,,' d
mo èle
nümëir--,, quantité en stock
' ...
-----
' ... ----__________._
Brico Electro
.._,
le """,,
Q~antité en sto_ç:k
BDD 40
Julie Paternotte 2020
4.8. Exemple
L'exemple qui suit porte sur la construction progressive d'un diagramme E/A pour une entreprise
de formation. Chacune des exigences de l'énoncé est intégrée progressivement au diagramme en
cours.
Exigence 1
une entreprise de formation organise des séminaires pour des participants. Cette proposition a
priori anodine amène déjà plusieurs questions :
• Faut-il une entité correspondant à l'entreprise de formation? On décide que non, en
argumentant du fait que le système sera développé pour cette entreprise, mais qu'il ne faudra
pas gérer des données sur l'entreprise elle-même. De plus, il n'y aurait qu'une seule ins- tance
pour l'entité correspondante.
• Combien de participants peuvent suivre un même séminaire ? On peut raisonnablement
supposer qu'un séminaire peut ne pas compter de participant, par exemple au moment de sa
planification, mais rien n'indique le nombre maximum de participants pour un séminaire. Ce
nombre est donc considéré comme indéterminé, et les cardinalités entre l'entité Séminaire et
l'association est donné pour sera 0-N, comme dans l’image ci-dessous.
• Un participant doit-il être rattaché à au moins un séminaire pour exister dans le système? On
peut supposer que oui, d'où la cardinalité minimale de 1 entre Participant et est donné pour.
Exigence 2
un séminaire possède un intitulé unique, une durée et un prix.
Exigence 3
un participant est décrit par un email unique, un nom, un prénom et une adresse.
Ces deux propositions détaillent les attributs de Séminaire et de Participant et fournissent leurs
identifiants. Rappelons que les cardinalités par défaut de tous les attributs sont 1-1 (monovalué et
obligatoire).
Participant
Séminaire email
intitulé t----0-N--.(est donné pou~...---1-N---. nom
du rée prénom
pnx adresse
Exigence 4
un séminaire donne lieu à plusieurs sessions, chacune possédant un numéro unique et une date
de début.
Cette proposition introduit la notion de session et implique de rattacher les participants à une
session plutôt qu'à un séminaire. De toute façon, une session se rapporte à un et un seul
séminaire, et donc le lien entre participant et un séminaire peut être retrouvé indirectement.
Le calendrier des sessions impose une contrainte additionnelle qui ne peut être exprimée
directement avec le langage E/A : un participant ne peut pas être lié à des sessions qui se
chevauchent dans le temps. De telles contraintes sont habituellement annexées au diagramme.
Participant
Séminaire
Session email
intitulé ~ o - N ~ 1 - 1 - numéroSession - 0 - N ~ 1 - N - no!11
durée ~ - date de début prenom
pnx adresse
BDD 41
Julie Paternotte 2020
Exigence 5
une session d'un séminaire a lieu dans un même local, lui-même décrit par un numéro de local, un
nombre de places et plusieurs équipements éventuels.
Exigence 6
un séminaire est animé par un ou plusieurs conférenciers, dont il faut connaître le numéro unique,
le nom et le prénom.
Dans l’image ci-dessous on notera l'attribut multivalué équipement et la contrainte additionnelle
suivante : un conférencier ne peut animer plus d'une session en même temps.
Participant
Séminaire
Session email
intit,ulé '-Ü-Nfdonne lieu à"\_1-1- nu méroSession ,-Q-N-(est donné pour)--1-N- nom
duree '.F prénom
date de début
pnx adresse
o!N
animé par donné dans
Conférencier Local
numéro numérolocal
prénom nombre de places
nom équipement[O-N]
Comme les conférenciers et les participants sont des personnes, les entités correspondantes
peuvent être généralisées. Moyennant l'hypothèse qu'un conférencier peut aussi suivre des
séminaires en tant que participant, la généralisation-spécialisation sera avec recouvrement.
Attention cependant aux contraintes additionnelles que cela engendre : un participant ne peut
suivre un séminaire qu'il anime lui-même, et l'email d'un participant est unique.
L’image ci-dessous détaille la solution complète correspondante. La généralisation n'est pas
explicitement suggérée par les exigences, mais elle a du sens dans une démarche d'optimisation
du diagramme.
Personne
numéro
prénom
nom
Local
numérolocal
nombre de places
équipement[O-N]
BDD 42
Julie Paternotte 2020
5. Conclusion
Nous avons présenté trois langages de modélisation graphique pour formuler les exigences des
utilisateurs et décrire le fonctionnement d'un futur système informatique de leur point de vue.
Premièrement, les diagrammes de cas d'utilisation représentent les acteurs qui vont interagir avec
le système ainsi que les scénarii d'utilisation. Ces diagrammes sont souvent utilisés en début de
projet de développement et guident les phases en aval, en suggérant une découpe des
fonctionnalités.
Pour le manager, un diagramme de cas d'utilisation est un outil simple et abordable qui fait
émerger une vue abstraite du système, c'est-à-dire débarrassée de tout détail technique. Le dis-
cours est orienté vers les fonctionnalités (le « quoi ») et non vers la manière de réaliser le système
avec les technologies digitales. Le manager peut donc se concentrer sur l’optimisation des
processus d'affaires et leur automatisation.
Deuxièmement, les diagrammes d'activité portent sur la modélisation des processus , qu’ils
fassent l'objet d'une automatisation ou non. Ils peuvent être utilisés pour détailler les processus
annoncés par les cas d'utilisation. Le manager utilisera cette technique pour décomposer des
enchaînements complexes d'actions.
Troisièmement, les diagrammes E/A décrivent les structures de données utiles pour les
utilisateurs. Ils cernent l'aspect informationnel du futur système, qui a toute son importance en
informatique de gestion. Les managers y répertorient les données qui font l’objet des traitements
spécifiés par les cas d'utilisation.
L'élaboration de ces diagrammes est une tâche délicate et créative, car il s'agit de représenter un
futur système immatériel. L'enjeu est important, car ces représentations vont conditionner la
construction proprement dite du système, et leurs défauts et manquements s’amplifieront dans la
suite du développement. Les utilisateurs et les informaticiens seront donc particulièrement
attentifs à la gestion de la qualité à ce stade, en cherchant à produire des diagrammes :
• d'un niveau d'abstraction approprié, en omettant les détails non pertinents> tout en étant
complets par rapport à leur objectif;
• compréhensibles par eux-mêmes;
• précis, et donc exempts d'ambiguïtés ou de redondances.
Sur la base des exigences des utilisateurs, les informaticiens vont développer un système
informatique adapté en mettant en action les technologies digitales. E~ informatique de gestion,
une de ces technologies, les bases de données, est particulièrement importante. Elle sera
abordée dans le prochain chapitre.
BDD 43
Julie Paternotte 2020
1. Définitions et applications
Base de données (BD). Un système informatique est la partie du système d'information qui traite
les données numériques ou digitales. Une partie de ces données sont dites structurées, dans le
sens où elles respectent une structure régulière. Par exemple, les données concernant chaque c l i
e n t sont toutes organisées selon un même schéma reprenant un nom, une adresse, un email et
un numéro de TVA. Les données structurées sont généralement enregistrées dans une BD.
Information
Système
d'information
Données
numériques
Système
informatique
Données
structurées
SGBD
Définition : une base de données (BD) est une collection de données essentiellement structurées
Par exemple, la BD d’une entreprise de formation rassemble des données sur les formations
qu’elle propose, sur les participants qui suivent ces formations ou sur les conférenciers qui les
animent. En l’occurrence, les spécifications de données du diagramme E/A peuvent être
matérialisées par une BD correspondante et qui serait prête à enregistrer les données de
l’entreprise.
Une BD est conçue pour un groupe d'utilisateurs, généralement d'une même organisation. Elle
réalise une intention de centralisation1, visant à ne maintenir qu'une version unique des données.
Par conséquent, elle est accédé par de multiples programmes d'applications et utilisateurs qui
traitent les données qu'elle stocke.
Les systèmes informatiques gèrent d'autres types de données que les données structurées,
comme:
• les données non structurées, par exemple des images ou des tableaux de calcul, qui ne
présentent
pas ou peu de structure régulière ;
• les données semi-structurées, qui adoptent une structure partiellement régulière. Par exemple,
les ouvrages d'une même collection présentent chacun une introduction, des chapitres et une
conclusion, mais tous ne contiennent pas le même nombre de chapitres, ou certains comportent
une préface ou un glossaire. La structure de tous ces ouvrages est donc partiellement régulière.
Les données semi-structurées sont représentées avec des langages informatiques spécifiques,
comme le XML (Extensible Markup Language), très répandus pour formater les données du Web.
Les BD ont progressivement intégré ces deux types de données. D'ailleurs, certains éditeurs pro-
posent des BD spécialisées, comme des BD dédiées aux Big Data, des BD géographiques, ou des
BD documentaires.
BDD 44
Julie Paternotte 2020
chaque ligne représente un employé particulier. Un modèle permet aussi d,imposer des
contraintes d'intégrité, comme: le salaire doit être
compris entre 1 000 et 20 000.
Il faut bien distinguer modèle et schéma : le modèle fournit les briques de base pour élaborer des
représentations des structures de données, et le schéma décrit les structures particulières d'un
domaine d'application donné, tout comme le langage naturel propose du vocabulaire, une
grammaire, etc. pour formuler un texte décrivant par exemple un paysage particulier.
Ensuite, le schéma peut être vu comme un moule auquel les données doivent correspondre. Il est
lui-même enregistré dans un espace dédié de la BD appelé dictionnaire de données. Par exemple
le schéma suivant décrit la manière dont les données relatives aux employés sont structurées:
BDD 45
Julie Paternotte 2020
Un SGBD offre des services de gestion de la persistance des données aux programmes
d'application. Ces derniers vont interagir avec le SGBD pour créer, lire, mettre à jour et supprimer
des données d'une BD. Techniquement, la délégation du stockage auprès du SGBD simplifie
l'écriture des programmes d'application, et donc leur coût de développement et de maintenance.
1.3.Applications
Une première utilisation générique des BD dans l'entreprise est la gestion des données
nécessaires à l'exécution des processus d'affaires routiniers. Le fonctionnement des organisations
implique en effet le stockage centralisé de données accédées par une multitude de programmes
d'application, comme ceux de l’image ci-dessous.
Dans ce contexte, les SGBD sont utilisés dans un mode transactionnel (OLTP - On Line Transaction
Processing), c'est-à-dire qu'ils fournissent aux utilisateurs des facilités de traitement des données
en temps réel.
-. -- · ·-·X - . . .......
• .. ·· ··.··-.. ..
/ ·<.··:-:_.:-·:. :.:.: :.- ::.~ ... ... :
Les BD trouvent une seconde utilisation générique à travers les systèmes d'aide à la décision, qui
cherchent à dégager des tendances à partir de gros volumes de données pour faciliter la prise de
décision. Certaines données d'exploitation gérées par les systèmes transactionnels ou en
provenance de l'environnement de l'organisation sont importées dans des entrepôts de données.
Ces entrepôts (Data Warehouses) sont des SGBD spécialisés dans l'analyse massive de données,
et seront présentés plus en détail dans un section ultérieure.
2. Architectures
De manière générale, la notion d'architecture a trait à la décomposition d'un système complexe.
Définition: Une architecture décrit l’organisation d’un système en différents composants ainsi que
leurs interactions.
BDD 46
Julie Paternotte 2020
Programmes d'application
SQL
Base de données
(_____
o_o_nn_e_'e_s____) (_____
sc_h_é_m_a_____]
Client Serveur
Dans le contexte des BD, le processus serveur est un SGBD qui est exécuté par le serveur de BD,
et le processus client est un programme d'application exécuté sur un poste client d'un utilisateur.
Le poste client soumet des requêtes formulées en SQL à l'intention du serveur de BD. Les
BDD 47
Julie Paternotte 2020
réponses calculées par ce serveur sont des lignes de données et/ou des messages documentant
l'exécution de ces requêtes. Les composants de l'architecture client-serveur de BD se
répartissent le travail comme suit :
• le poste client prend en charge l'interface homme-machine (affichage, saisie, etc.) et le
traitement local des données ;
• le serveur de BD gère notamment la persistance des données, l‘exécution des requêtes SQL
(et donc le traitement de données) et le contrôle d'accès.
Pour le manager, la technologie client-serveur de BD apporte une réelle valeur car elle permet
davantage d'autonomie dans les traitements. L'utilisateur traite des données d'une BD comme il
le souhaite, et avec ses outils personnels, comme des progiciels bureautiques. Cela évite de
solliciter un informaticien pour certains traitements, avec des réductions de délais et de coût de
développement appréciables.
Par exemple, considérons le cas d'une entreprise commerciale qui gère des produits, des clients
et des commandes dans une BD centralisée au sein d'une architecture client-serveur.
Le responsable marketing réalise régulièrement des mailings ciblés sur certaines catégories de
clients. Il a sélectionné les coordonnées des clients qui n'avaient plus rien commandé depuis plus
de trois mois avec une requête SQL de son cru. Il génère alors, avec son traite- ment de texte,
des courriers personnalisés en fusionnant une lettre type et les résultats de
sa requête.
Quant au directeur financier, il a développé un tableau de bord des ventes avec son tableur
favori. Grâce au client-serveur, il incorpore dynamiquement dans une feuille de calcul les volumes
mensuels des ventes directement extraits de la BD.
De manière générale, l’architecture à trois tiers compte trois processus logiciels, souvent appelés
couches, qui collaborent en s’échangeant des messages :
• la couche présentation, qui prend en charge l'interface homme-machine;
• la couche traitement, qui gère les transformations des données ;
• la couche données, qui gère la persistance.
Dans le contexte des BD, ces trois couches sont généralement prises en charge par des machines
différentes :
• la couche présentation se matérialise par un navigateur exécuté par un poste client
«léger», ou client Web, c'est-à-dire qui ne dispose pas nécessairement de grosses capa-
cités; ,
• la couche traitement est réalisée par des programmes exécutés par des serveurs Web. En
particulier, un de ces serveurs, appelé serveur d'application, se charge d'accéder à un serveur
de BD, de traiter et de mettre en forme les données en générant des pages Weh
envoyées vers le client Web. Ces pages sont générées à la volée, c'est-à-dire lorsque le client
les demande ;
• la couche données est assumée par un SGBD exécuté par un serveur de BD.
BDD 48
Julie Paternotte 2020
L’image ci-dessous illustre les interactions typiques entre les trois tiers. Le client Web échange des
requêtes et des pages Web avec des serveurs Web à travers l'Internet. Ces serveurs Web
échangent des requêtes et des données (ou d'autres résultats d'exécution) avec un serveur de
BD.
L'architecture à trois tiers permet d'accéder à des facilités potentiellement élaborées à partir d'un
navigateur, sans installation de programme particulier sur le poste client. Ces facilités sont
accessibles moyennant une connexion à l'Internet, et donc de (presque) partout.
Pour le manager, cette architecture offre davantage d'ubiquité. L'utilisateur peut accéder à une
BD de n'importe où, à travers Internet, et à partir d'un terminal mobile, comme un smartphone.
Pour les entreprises, cette technologie a contribué à l'essor de l'économie digitale, en
informatisant leur front office et en ouvrant leur système d'information à leurs clients et leurs
partenaires d'affaires. Les applications sont innombrables, comme les magasins en ligne du
commerce électronique. Même les applications du back office, comme des logiciels de gestion
intégrés ou des logiciels comptables, sont maintenant déployées dans des architectures à trois
tiers.
'------
y
___ / '------
y
___/
BDD 49
Julie Paternotte 2020
• Qui voit les données que je crée dans une base de données?
• Quelles sont les données me concernant dont disposent
les entreprises avec lequelles j'interagis ?
• Comment être certain que mes données ne vont pas
être transmises à des tiers sans mon autorisation ?
La sécurité informatique est devenue aujourd’hui un enjeu important pour le citoyen et pour
l’entreprise, essentiellement à cause de :
• notre dépendance croissante aux systèmes informatiques, dont nous avons de plus en plus de
mal à nous passer pour réaliser nos activités ;
• la multiplication des incidents de sécurité, et en particulier des attaques informatiques ;
• l'émergence de prescrits légaux, comme le RGPD4 (Règlement Général sur la Protection
des Données).
La suite de cette section traite de deux mécanismes importants des SGBD pour contribuer à la
sécurité : la gestion des transactions et le contrôle d’accès.
Les SGBD doivent donc traiter l'exécution de (nombreuses) opérations simultanées entraînant la
lecture ou la modification des mêmes données. Ces opérations sont exécutées dans le cadre
d'une transaction.
Définition: une transaction reprend un ensemble d’opérations à réaliser sur les données et
correspond à une seule unité logique de traitement du point de vue l’utilisateur.
Par exemple, lors de l'inscription d'un nouvel étudiant dans la BD d'une université, un employé
administratif enregistre d’abord les données personnelles de l’étudiant, comme son nom ou sa
date de naissance, puis ses diplômes antérieurs et enfin les cours qu'il va suivre. Toutes ces
opérations sont perçues par remployé comme étant un tout cohérent et s'inscrivent dans la même
transaction.
La plupart des SGBD relationnels garantissent la bonne exécution des transactions en assurant
que:
BDD 50
Julie Paternotte 2020
• les transactions respectent les contraintes définies au niveau du schéma de données, ce qui
contribue à l'intégrité des données (propriété de cohérence);
• l’exécution parallèle de transactions simultanées produit le même état des données que si les
transactions étaient exécutées les unes après les autres. Par conséquent, les opérations réalisées
par un utilisateur ne sont pas perturbées par celles d'un autre utilisateur agissant en même
temps sur les mêmes données, ce qui contribue également à l'intégrité des don- nées
(propriété d'isolation) ;
• lorsqu'une transaction se termine avec succès, son effet sur la BD persiste en toute circonstance
et indépendamment de la survenance d'incidents, comme une panne matérielle, ce qui
contribue indirectement à la disponibilité (propriété de durabilité).
Finalement, les transactions assurent une propriété d'atomicité, signifiant que toutes les
opérations d'une même transaction sont effectivement exécutées ou qu'aucune de ces opérations
n'est exécutée. Les quatre propriétés que doivent respecter les transactions sont reprises sous
l'acronyme ACID (Atomicité, Cohérence, Isolation et Durabilité).
Du point de vue du manager, la technique des transactions permet des accès simultané aux
données et soutient donc le travail collaboratif, tout en assurant un certain niveau d’intégrité
et de disponibilité.
Plusieurs modèles et techniques de contrôle d'accès mettent en œuvre ces étapes, notamment le
modèle discrétionnaire et le modèle basé sur les rôles :
• Dans le modèle discrétionnaire (ou DAC pour Discretionary Access Control): les autorisations
sont attribuées explicitement (ou à discrétion) à chaque utilisateur par les propriétaires des
données. Cette façon de faire s'avère être lourde quand beaucoup d'utilisateurs doivent
accéder à beaucoup de données différentes, car le nombre d'autorisations à accorder devient
alors important.
• Le modèle basé sur les rôles (ou RBAC pour Role-Based Access Control) : ce modèle
fonctionne comme le modèle discrétionnaire, mais ici un utilisateur peut être associé à un ou
plusieurs rôles. Un rôle bénéficie d'un ensemble d'autorisations qui s'appliquent
automatiquement à tous les utilisateurs associés à ce rôle. Par exemple, le rôle « vendeur »
sera autorisé à accéder aux données sur les produits et les clients. En rattachant tous les
vendeurs à ce rôle, il ne faut plus définir les autorisations pour chacun des vendeurs
BDD 51
Julie Paternotte 2020
séparément, car ils héritent tous automatiquement de l'accès aux données des produits et des
clients accordés au rôle « vendeur ».
4. Modèle relationnel
Cette section présente informelle- ment les fondements du modèle relationnel qui est le modèle
de données le plus répandu dans les SGBD du même nom.
Le modèle relationnel prescrit une organisation logique des données, des contraintes d'intégrité
et les opérations possibles sur les données. Ces dernières seront présentées à travers le langage
SQL.
4.1 Table
Le modèle relationnel range les données dans des tableaux à deux entrées appelés tables. Une
table représente un concept du domaine d'application pour lequel on souhaite gérer des
données, et correspond principalement à la notion d'entité d'un diagramme E/A.
Définition: Une table contient les données d’un ensemble d’objets similaires du domaine
d’application. Les colonnes correspondent aux caractéristiques de ces objets, tandis qu’une ligne
reprend les données d’un même objet.
Dans la table employe ci-dessous, les données d’un même employé sont placés sur une même
ligne, appelé aussi enregistrement. La structure de la table, comprenant notamment son nom et
le nom de ses colonnes, fait partie du schéma de la BD.
:,J,Q~CllON 1
2145 Geldorf directeur 2015 - 01 - 01
2378 Artois manager 7100 2015-02-01
2685 Charlet assistant 6500 2015-09-01 données
3144 Peeters monteur 4900 2016-02-01
3298 Lemoine vendeur 5000 2000 2016-06-15
Il n'y a pas de relation d'ordre entre les lignes d'une table, mais un SGBD propose des facilités
pour trier une table selon une ou plusieurs colonnes.
Dans la théorie relationnelle, que nous ne détaillerons pas, une table est appelée relation, une
colonne est appelée attribut et une ligne est appelée tuple. Une relation est une agrégation
d'attributs.
Si une ligne n'a pas de valeur pour une colonne, on lui attribue par convention une valeur NULL.
Par exemple, l'employé Artois n'a pas de valeur pour la PRIME dans la table ci-dessus. Une valeur
NULL est ambiguë pour l'utilisateur, car elle peut signifier que:
• la donnée n'est pas pertinente pour l'objet du domaine d'application, par exemple A r t o i s
BDD 52
Julie Paternotte 2020
Définition: La clé primaire d’une table est une colonne ou une collection de colonnes dont les
valeurs identifient univoquement une ligne de la table
Il peut exister plusieurs clés primaires possibles, appelées clés candidates. Par exemple, un
employé pourrait être identifié par son matricule ou par son numéro de registre national. Dans ce
cas, on choisit une des clés candidates que l'on définit comme clé primaire, les autres clés
candidates étant appelées clés secondaires.
Les colonnes d’une clé primaire sont soumises à une double contrainte :
• elles doivent obligatoirement comporter une valeur pour chaque ligne. En d'autres termes,
les valeurs NULL ne sont pas autorisées dans une clé primaire ;
• toutes les valeurs de la clé primaire doivent être uniques.`
Par exemple, la colonne NUMEMP est la clé primaire de la table EMPLOYE dans l’image ci-
dessus.
NUMEMP
NOM
FONCTION - - clé primaire
SALAIRE
PRIME LOCALISATION
DATECONTRAT
clé étrangère - - - NUMDEP
Définition: une clé étrangère d’une table est une colonne ou une collection de colonnes dont les
valeurs font références aux valeurs de la clé primaire d’une autre table.
La clé étrangère doit être du même type que la clé primaire correspondante, mais pas
nécessairement du même nom. Si une clé primaire est composée de plusieurs colonnes, alors la
clé étrangère correspondante sera elle aussi constituée de plusieurs colonnes.
BDD 53
Julie Paternotte 2020
Comment faire alors pour représenter des liens de plusieurs à plusieurs entre deux tables, par
exemple lorsqu'une commande peut comporter plusieurs produits, et qu'un produit peut être
repris dans plusieurs commandes ?
La solution consiste à décomposer le lien de plusieurs à plusieurs en créant une nouvelle table et
deux liens de 1 à plusieurs. Dans l’image ci-dessous la table COMMANDE, dont la clé primaire
est NUMCOM, et la table ARTICLE, dont la clé primaire est NUMART, sont connectées à une
table de liens LIGNECOM dont les deux colonnes, NUMCOM et NUMART sont des clés
étrangères faisant respectivement référence aux tables COMMANDE et ARTICLE.
~---1
NUMCOM
DATECOMMANDE NUMART NOM
DATE LIVRAISON PRIX
GROUPE
Le modèle relationnel présenté ci-dessus correspond à la norme SQL2. Il est assez simple et donc
limité en expressivité, mais son implémentation par les SGBD commerciaux est stable et
performante. Ces dernières années, les BD relationnelles ont connu des évolutions dans deux
directions différentes :
• un enrichissement, avec le modèle relationnel-objet (SQL3), qui supporte des constructions
comme l'héritage entre les tables ou des correspondances directes de plusieurs à plusieurs. Son
application est cependant assez complexe ;
• une simplification, avec les technologies NoSQL (pour Not Only SQL), qui choisissent de ne pas
implémenter certaines facilités afin de gagner de la performance dans le traitement de très gros
volumes.
BDD 54
Julie Paternotte 2020
4.2.2.Contrainte de domaine
Les valeurs permises d'une colonne peuvent être limitées par une liste de valeurs ou des
fourchettes de valeurs autorisées. Par exemple, le domaine d'une colonne GENRE est {masculin,
féminin}, et celui d’une colonne SALAIRE est [1 000 9 500]. Notons que le domaine d'une clé
étrangère est l'ensemble des valeurs de la clé primaire de la table référencée.
4.2.3.Non-nullité
Les valeurs d'une colonne doivent être obligatoirement alimentées pour chaque ligne. Par
exemple, toutes les lignes de la table EMPLOYE doivent avoir une valeur dans la colonne NOM.
4.2.4.Unicité
Les valeurs d'une colonne doivent être toutes différentes. Par exemple, les numéros de compte
des employés sur lesquels une entreprise verse les salaires doivent tous être différents. Une
colonne avec la contrainte d'unicité peut contenir des valeurs NULL.
Pour rappel, une clé primaire combine l'unicité et la non-nullité.
Du point de vue du manager, ces contraintes contribuent à la qualité des données et donc
indirectement au bon déroulement des processus d'affaires.
Tout comme le modèle E/A, le modèle relationnel ne permet pas de formuler directement toutes
les contraintes du domaine d'application, telles que des contraintes de cardinalité, comme un
département doit compter au moins deux employés.
Par conséquent, la vérification de certaines contraintes sera prise en charge soit par des
mécanismes avancés des SGBD, comme les déclencheurs, soit par les programmes d'application.
BDD 55
Julie Paternotte 2020
mieux adaptée pour gérer la persistance des données. Un choix fréquent est la technologie des
BD relationnelles, mais des alternatives existent, comme des BD NoSQL ou
des systèmes de fichiers.
Ensuite, le diagramme E/A va servir à élaborer des schémas de données pour la technologie
cible. Par exemple, un schéma relationnel est d'abord généré à partir du diagramme E/A, puis
des instructions de création de ce schéma sont produites pour créer effectivement la BD, comme
dans l'exemple de la Figure 3-11.
La difficulté principale dans la génération d'un schéma relationnel à partir d'un diagramme ElA est
la limite sémantique du modèle relationnel, du moins dans sa version historique (norme SQL2). En
effet, des constructions de l'E/A, comme la généralisation/spécialisation, ne sont pas disponibles
dans le monde relationnel, et il faut transformer le diagramme E/A pour éliminer ces constructions
avant de produire le schéma relationnel.
Employé
NUMEMP
numEmp Département NOM
nom FONCTION
fonction ---0-1-(travaille dans}O-N numDep NUMDEP
nom SALAIRE
salaire NOM
localisation PRIME
prime[0-1] LOCALISATION
DATECONTRAT
dateContrat
NUMDEP
Diagramme E/A Schéma relationnel
5.1.1.Entité
Une entité est réalisée par une table, dont l'identifiant devient la clé primaire. Dans l'exemple de
ci-dessus, les entités Employé et Département produisent les tables EMPLOYE et DEPARTEMENT,
respectivement identifiées par NUMEMP et NUMDEP. Les règles de nomenclature pour les noms
de tables et de colonnes sont libres. Par exemple, ces noms peuvent être libellés en majuscules
dans le schéma relationnel, mais ce n’est pas du tout une obligation.
BDD 56
Julie Paternotte 2020
La table LIGNECOM a un statut différent des tables COMMANDE et ARTICLE: elle ne représente
pas des objets du domaine d'application, mais des liens entre ces objets.
Le fait que certaines tables d'un schéma relationnel soient des tables de liens, et que certaines
associations soient converties en tables et pas d'autres en fonction de leurs cardinalités maxi- ·
males complique l'interprétation d'un schéma relationnel. Ceci est dû à l'incapacité des BD
relationnelles à supporter les liaisons de plusieurs à plusieurs entre deux tables, du moins dans la
norme SQL2.
Article
Commande
numCom numArt
, t· ._, _ porte sur 0-N- nom NUMART NOM
d at eC.rea . ,on .
pnx
d ate L1vra1son groupe DATE LIVRAISON PRIX
GROUPE
5.1.4.Association cyclique
L'exemple de l’image ci-dessous montre qu'un employé peut dépendre d'un autre employé qui
serait son supérieur hiérarchique, et qu'un même employé peut superviser plusieurs employés
dont il serait le manager.
dépend de
Employé 0-1
matricule lien hiérachique
nom
fonction .
supervise
0-N
1 Durant vendeur 2
2 Dupond responsable vente
3 Warnant assistante commerciale 2
4 Degrève analyste
BDD 57
Julie Paternotte 2020
5.2.1.Attribut composite
Au minimum deux possibilités sont offertes pour transformer les attributs composites avec, pour
la première, une perte de sémantique, comme dans l'exemple de
L’image ci-dessous
• éliminer l'attribut composite (a) et considérer tous ses composants comme
des attributs atomiques indépendants (b). La notion de composition est alors
perdue;
• isoler l'attribut composite dans une entité ad hoc (c).
Etudiant
Etudiant
nom Email
adresseKot[0-1] nom o-s a 1-1---+----l
email[0-5] adresseKot[0-1] email
BDD 58
Julie Paternotte 2020
6. Language SQL
Rappelons que pour interagir avec un SGBD, l’utilisateur lui soumet des instructions formulées
dans un langage informatique spécialement pensé pour les BD.
Définition: Le SQL( Structured Query Language) est le langage normalisé des SGBD relationnels
pour gérer un schéma de données, traiter les données et contrôler les accès.
Pour le programmeur, le SQL est indispensable pour atteindre les données d’une BD au niveau
des programmes d’application.
Les managers ont également besoin du SQL pour manipuler eux-mêmes des BD lors d'opé-
rations quotidiennes ou pour la prise de décisions. Souvent, ils traitent des données extraites
d'une BD avec des outils bureautiques
A priori, on pourrait penser que toutes les requêtes sur les données pourraient être program-
mées à l'avance par des informaticiens, mais la pratique montre que ce n'est pas réaliste car les
besoins des managers sont changeants. La connaissance du SQL permet au manager de
s'affranchir de la dépendance à un informaticien.
Le SQL comporte de nombreuses instructions qui ont été regroupées dans différents sous-lan-
gages selon leur nature.
Par exemple, la première colonne de la table EMPLOYE est dénommée NUMEMP. Elle peut
contenir jusqu'à dix caractères alphanumériques et est définie comme la clé primaire de la table.
On peut aussi réaliser des requêtes pour sélectionner des données à afficher, comme avec
l'instruction select suivante qui affiche le nom et le salaire des employés:
BDD 59
Julie Paternotte 2020
Pour accorder un droit de lecture sur la table EMPLOYE à l’utilisateur JAMES, on utilise
l’instruction suivante:
Déclaratif Procédural
Langage normalisé.
Le SQL est normalisé et implémenté par la plupart des SGBD relationnels. La norme SQL est en
évolution constante6 et présente au moins trois avantages :
• la portabilité des programmes d'application. Ces programmes peuvent fonctionner avec les
différents SGBD qui respectent la norme, moyennant cependant des adaptations mineures en
pratique ;
• l'universalité des compétences acquises : les informaticiens et les utilisateurs ne doivent
maîtriser qu'un seul langage pour piloter des SGBD d'éditeurs différents ;
• une concurrence bénéfique pour les utilisateurs, car les éditeurs de SGBD doivent se
différencier par exemple sur la performance plutôt que sur les fonctionnalités qui restent
majoritairement standard.
Les SGBD commerciaux implémentent la norme SQL assez largement, même si des écarts à la
norme existent.
BDD 60
Julie Paternotte 2020
Où:
• <liste de colonnes> : liste des colonnes à afficher. Le symbole* représente toutes les colonnes ;
• <nom de la table> : table contenant les colonnes à traiter ;
• < c o n d i t i o n > : expression booléenne qui permet la sélection d'enregistrements;
• order by<liste de colonnes>:liste des colonnes selon lesquelles les lignes doivent être
ordonnées (clés de tri).
Les tables de l’image ci-dessous portent sur une gestion du personnel fictive et serviront
d'exemples de données pour les prochaines requêtes. Les colonnes clés primaires sont soulignées
et la colonne clé étrangère est mise en italique.
EMPLOYE
,,
' ~ '
."'-'<;
·NHMOEP :~•4t1!
. ~: //,- /<,-(_;,,,;,
~· ; ·':f:,~/,"',:;,: : ,, /-0'~ 0.
:?;;{Mf2
~:~;
1 vente Bruxelles
2 production Wavre
3 finance Bruxelles
4 support Wavre
Sélection simple
L’instruction suivante sélectionne toutes les colonnes et toutes les lignes de la table EMPLOYE:
Plusieurs clés de tris successives peuvent figurer derrière order by. Le tri s'opèrera d'abord sur les
valeurs de la première colonne de la liste, et en cas de valeurs identiques, un tri supplémentaire
aura lieu sur les valeurs de la seconde colonne et ainsi de suite. Par défaut, l'ordre de tri est
ascendant. Pour obtenir un tri en ordre descendant, il faut rajouter la clause d e s c e n ding (ou
simplement desc) derrière la colonne de tri correspondante.
Avec la requête suivante, le résultat sera trié d'abord par ordre décroissant de la fonction, puis, au
sein de chaque groupe d'employés de même fonction, par ordre croissant du nom.
BDD 61
Julie Paternotte 2020
Lignes dupliquées
La clause DISTINCT permet d’obtenir les occurrences uniques d’un seul résultat. Par exemple,
l’instruction suivante n’affiche qu’une seule fois les valeurs de la colonne FONCTION.
Le résultat de cette instruction affiche les 7 fonctions différentes occupées par les 14
collaborateurs de la table EMPLOYE
,'
f~·
FONCTION
~~~- ~~~-~-.i;"'""""...,,..-----~~
l
c.omptable
ld~gne,
dnr~cteur
manager
~ ~~-~-~=-..--:-
1
1
monteur
~- >"', :e: l4S('. •<. -
.
.... -~.,....l"l'7:+: ... ~..,.,.,,t?o/--;..,.,..~,ll"'..,..J"Jl"!r:,...,.,,._.,.,,.,..,..,.,....f
l
ii vendeur
Conditions de sélection
L’instruction suivante filtre les lignes de la table EMPLOYE sur la base d’une condition de sélection
sur la colonne FONCTION.
Les opérandes alphanumériques d'une condition sont délimités par des guillemets (ou guillemets
simples). Les opérandes numériques, eux, ne doivent pas être délimités.
Les conditions de sélection peuvent inclure :
• des opérateurs de comparaisons: =, >, >=, <, <=, != (pour« différent de »8) ;
• des opérateurs relationnels: between <valeur 1> and <valeur 2>, in (<liste de valeurs>) ;
• un opérateur de recherche de patrons : 1 i ke combiné avec le symbole %, qui remplace une
chaîne de caractères de longueur quelconque, et/ou avec le symbole _, qui remplace une
seule position ;
• des fonctions, comme CURRENT_ DATE () qui renvoie la date système;
• des opérateurs logiques: and, or, not et xor, ainsi que des parenthèses pour combiner et
grouper des conditions de sélection.
• Le Tableau 5 montre des exemples de conditions de sélection qui pourraient compléter
l'instruction suivante :
-1; - - ~ ...··Y":;';,,.~::." ... .... •..-.•.,,. ..,._.,....,..._......... .. ·.•.•.• ·.•.;. •.::·:?w::::::::···:<:::::i'.;•:·:·· .
EMPLOYE
•,.,.
·. ·-·=·-·····-
____ -;:§~15Jj'.ii:i_'1Ii;i.;,, ,
BDD 62
Julie Paternotte 2020
~fü~.ès1·2B~~~I~
-=-,--=-,-=-,,.c,.;;
. <
select*
from EMPLOYE
where SALAIRE> 5000 SALAIRE > 5000
and PRIME is null
and NUMDEP = 2
PRIME
is null
select*
from EMPLOYE
where SALAIRE > 5000
or PRIME is null
or NUMDEP = 2
Par contre, l'opérateur n o t n'a qu'un seul argument, à savoir le critère ou l'opérateur qui le suit.
Les parenthèses sont utiles pour regrouper les critères de manière à expliciter leur ordre
d'exécution. Par exemple, l'instruction suivante affiche les employés :
• qui ont un salaire supérieur à 6 000 et une prime non NULL ;
• ou qui travaillent dans le département 2 et qui ont une prime égale à NULL.
Certaines expressions en langage naturel se montrent ambiguës quand il s'agit de les convertir en
une requête SQL. Par exemple, pour afficher la liste des assistants e t des monteurs, il faudra
transposer le e t français en o r SQL.
BDD 63
Julie Paternotte 2020
Notons que dans cette dernière instruction, les deux conditions doivent être complètement
exprimées même si elles portent sur la même colonne (la formulation FONCTION = "assis-
tant" or "monteur" est erronée). Une formulation équivalente et plus compacte est
Données dérivées. Le SQL est capable de calculer des résultats dérivés à partir d'expressions
combinant des colonnes, des opérateurs et des fonctions. Les expressions définies au niveau de la
clause s e l e c t sont évaluées pour chaque ligne du résultat. Une expression peut être rebaptisée
avec le mot dé as (technique des alias). Dans l'exemple suivant, le système affiche
une colonne dérivée, baptisée BONUS, et calculée comme étant 25 % du SALAIRE:
De telles expressions peuvent figurer à plusieurs endroits de l'instruction, comme dans des
critères de sélection ou des tris.
Le SQL définit un ensemble de fonctions pour transformer les données au sein d'expressions.
Voici quelques exemples :
• extract (year from <argument>) : retourne l'année d'un argument de type date;
• power (<x>, <y>) : élève x à la puissance y;
• coalesce (<argument>,<valeur si NULL>) :renvoie une valeur non NULL précisée en second
argument si la valeur spécifiée en premier argument est NULL.
Les éditeurs de SGBD implémentent plus ou moins librement les fonctions du standard SQL. Par
exemple, le système MySQL propose la fonction i f n u l l plutôt que la fonction standard
coalesce. On se réfèrera aux documentations des SGBD pour la syntaxe détaillée de leurs
fonctions.
Voici quelques illustrations avec MySQL
BDD 64
Julie Paternotte 2020
Agrégation et groupage. Ces facilités sont très utilisées pour l'aide à la décision. Elles pro-
duisent des résultats agrégés comme des comptages ou des moyennes. Par exemple, la requête
suivante calcule le nombre de lignes (count (*) ) , la moyenne des salaires (avg pour average) et
l'écart entre le salaire le plus élevé (max) et le salaire le plus bas (min) de la table
EMPLOYE.
Voici le résultat :
La clause group by regroupe les lignes ayant des valeurs identiques pour l’expression qui suit
cette clause. Des données agrégées peuvent être calculées pour chaque groupe de lignes avec
les opérateurs comme sum, count, avg, etc. Par exemple:
Le résultat affiche des données agrégées pour chaque groupe d'employés de même départe-
ment. Notons que les employés sans département (ici, un seul employé) sont repris dans un
groupe dont la valeur de NUMDE P est NULL :
Les résultats agréés peuvent faire l’objet de sélections après regroupement avec la clause having.
Par exemple, la requête suivante n’affiche que les groupes dont la somme des salaires est
supérieure à 25000
BDD 65
Julie Paternotte 2020
Rien n’empêche de stipuler une clause WHERE dans une requête de groupage. WHERE filtrera les
lignes avant l’agrégation, alors que having filtrera les résultats agrégés. Par exemple, la requête
suivante va afficher des données sur les départements comptant plus de 2 employés gagnant au
moins 5000
where group by
• Uniquement
• Uniquement les • Calcul les agrégats
• Tous les enregistrements des agrégats sélectionnés
enregistrements sélectionnées par par la clause
la clause where • Ex. : liste agrégée having
• Ex.: tous des départements
les employés • Ex. : uniquement avec la somme • Ex. : uniquement
les employés qui des salaires et la liste des
gagnent plus le nombre départements
de 5000 d'employés qui comptent plus
de deux employés
Notons finalement que plusieurs clés de groupage sont permises. Par exemple, l’instruction
suivante calcule la somme des salaires pour chaque groupe d’employés qui ont la même fonction
et le même numéro de département:
Voici le résultat :
BDD 66
Julie Paternotte 2020
Valeurs NULL. Les valeurs NULL exigent la plus grande attention dans la formulation de
requêtes. Sans rentrer dans les détails, ces valeurs NULL se propagent selon les règles (simpli-
fiées) suivantes :
• sum Imin Imax Iavg (ensemble de valeurs) = NULL si l'ensemble des valeurs à
traiter est vide, mais count (ensemble de valeurs) = 0 pour un ensemble vide;
• une expression dont un des arguments est NULL renvoie NULL.
Par exemple, l'instruction suivante renverra une valeur NULL pour TOTAL quand la PRIME est une
valeur NULL.
Par exemple, l'instruction suivante renverra une valeur NULL pour TOTAL quand la PRIME
est une valeur NULL.
6.2. Sous-requête
Une fonctionnalité remarquable du SQL est la formulation de critères de sélection incluant une
sous-requête introduite par un second select.
Par exemple, pour afficher la liste des noms des départements qui emploient un a s s i s t a n t ,
on devrait a priori :
1. rechercher, à partir de la table EMPLOYE, les numéros des départements dans lesquels il y a
des assistants ;
2. utiliser le résultat de cette première requête pour afficher, dans une seconde requête sur la
table DEPARTEMENT, les noms des départements correspondants, comme le montre l’image ci-
dessous.
select NUMDEP
from EMPLOYE
ltMDEPI
where FONCTION = "assistant"
Cette manière de faire n'est pas très commode. Heureusement, la technique des sous-requêtes
perm~t de combiner deux requêtes en une seule :
BDD 67
Julie Paternotte 2020
On arrive donc à sélectionner des lignes de la table DEPARTEMENT accédé par la requête
principale sur la base de critères impliquant la table EMPLOYE accédé par la sous-requête. Le
critère de sélection de la requête principale compare ici les valeurs de la clé primaire de
DEPARTMENT avec les valeurs de la clé étrangère d,EMPL0YE.
Pour connaître les noms de clients qui ont commandé un article du groupe VTT, il faut filtrer
les clients ... dont les commandes contiennent des lignes de commande elles-mêmes liées à un
article dont le groupe est VTT :
Ici, chaque niveau de sous-requête est coordonné avec le niveau supérieur sur la base d’égalités
entre clé primaire et clé étrangère.
BDD 68
Julie Paternotte 2020
6.3. Jointure
La technique des sous-requêtes permettait déjà de manipuler plusieurs tables dans une
même instruction, mais en n’affichant que des colonnes de la table accédé par la requête
principale.
La technique des jointures autorise l’affichage de colonnes de tables différentes avec la même
instruction. Les tables accédées sont coordonnées (ou jointes) avec des conditions de jointure.
Ces dernières sont presque toujours basées sur des égalités entre clés primaires et clés étran-
gères.
6.3.1.Jointure interne
L'accès à des colonnes de tables différentes requiert de spécifier la liste de ces tables après la
clause f rom. Les colonnes de toutes les tables sont alors traitées identiquement et peuvent faire
l’objet de critères de sélection, d'expressions, de tris ou de groupages.
L'instruction suivante affiche les noms des départements et les noms des employés qui y
travaillent, triés selon ces colonnes. Elle joint les tables EMPLOYE et DEPARTEMENT avec le mot
clé join. La correspondance entre la clé primaire et la clé étrangère est exprimée par la condition
de jointure placée derrière le mot clé on. Comme la clé primaire et la clé étrangère portent le
même nom - NUMDE P - , on les préfixe du nom de la table source et d'un point pour lever
l'ambiguïté de leur appartenance à une table. La même technique s'applique aux colonnes
NOM, elles aussi présentes dans les deux tables jointes.
venté .
Cependant, seuls les employés rattachés à un département sont affichés, excluant l'employé
Geldorf qui n'est rattaché à aucun département. C'est le sens de la jointure interne, qui ne
reprend que les lignes pour lesquelles il y a une correspondance dans les tables jointes.
Précisons que des tables peuvent être jointes sur la base de n'importe quelle condition de
jointure et pouvant inclure par exemple des colonnes qui ne sont pas des clés primaires ou
étrangères, ou des opérateurs autres que l'égalité.
BDD 69
Julie Paternotte 2020
6.3.2.Jointure externe
La jointure externe inclut dans le résultat les lignes qui n'ont pas de correspondance dans les
tables jointes. Elle est exprimée par les mots clés [left I right I full] outer join. Par exemple,
l'instruction ci-dessous affiche tous les employés, y compris ceux sans département. L'expression
left outer join signifie que la table à gauche du mot j o i n sera complètement affichée.
À l'inverse, il est possible d'afficher tous les départements, y compris ceux qui ne sont pas atta-
chés à un employé, avec la formulation suivante de la jointure :
La combinaison full outer j oin inclut toutes les lignes sans correspondance en prove- nance des
deux tables.
<= 5500
BDD 70
Julie Paternotte 2020
Pour réaliser un full outer join, il suffit de réaliser l'union d'une instruction avec une jointure
externe à gauche et de la même instruction mais avec une jointure externe à droite.
6.4.Modification de données
Le SQL permet naturellement de créer, de supprimer ou de modifier des données. En pratique,
ces opérations sont souvent effectuées par l'utilisateur à travers des programmes d'application.
Cependant, les utilisateurs avertis peuvent utiliser directement le SQL pour traiter un ensemble de
données avec une seule instruction, comme augmenter les salaires de tous les
employés.
Insertion. L'instruction suivante crée des lignes dans une table existante:
Dans l'exemple qui suit, un département marketing est inséré dans la table DEPARTEMENT:
PAR'I'EMENT
,,. /~- /,
Si on ne spécifie pas une valeur pour toutes les colonnes, il faut préciser celles qui seront ali-
mentées:
L'instruction suivante change la fonction des assistants et leur attribue une prime égale à 15 %
de leur salaire :
6.5. Vue
Une vue est une table virtuelle qui résulte d'une requête sur les tables du schéma. Une vue per-
met d'offrir à l'utilisateur une perspective personnalisée sur la BD, notamment en lui masquant
l'éventuelle complexité de son schéma. Les vues peuvent aussi aider à contrôler les accès aux
données sensibles, par exemple en limitant l'accès d'un utilisateur à une vue qui ne sélectionne
que certaines données, et l'empêchant ainsi d'accéder aux données non sélectionnées par la vue.
Les vues sont exploitées exactement comme des tables hormis certaines restrictions relatives aux
mises à jour. Par exemple, l'instruction suivante crée une vue sur la table EMPLOYE
ereàte, ~±~w'~vÛE · GRH
' - EPARTEMENT.
_;;,._
NOM as ' .. . . ·. . ' - .
:IRE* 1.1 a!?
Joi:- -•«" ·. - -"- .. - -
Une vue n’est pas une copie de quelque donnée que ce soit, mais elle est bien recalculée à
chacune de ses utilisations en accédant aux données des tables sources.
7. Big Data
Le développement phénoménal de nos univers digitaux a fait émerger de nouvelles sources et
formes de données, telles que :
• les traces laissées par les utilisateurs humains, comme des messages postés sur les réseaux
sociaux ou des évaluations de produits ;
• les données contenues dans des historiques de navigation de sites Web, reprenant par exemple
les temps de connexion ou le pays d'origine des internautes ;
• les données générées par des équipements, comme des senseurs RFID (Radio Frequency
Identifers) , des systèmes de géolocalisation des terminaux mobiles, et plus généralement par
des objets connectés (Internet ofThings).
On les désigne par le terme Big Data, même si ce concept n'est pas encore formellement défini
et est parfois présenté comme un ensemble d'approches pour traiter des ensembles très
volumineux de données. L'analyse des Big Data est susceptible de mettre en lumière des
informations nouvelles, comme des tendances dans la consommation ou des opinions
dominantes.
Définiton: les données du Big Data sont des ensembles très volumineux de données structurées
ou non qui présentent un intérêt en termes d’analyse automatique en vue de déduire de
l’information nouvelle.
7.1. Propriétés
Les données du Big Data sont souvent caractérisées par 3 propriétés principales:
• Volume : la production annuelle est estimée à quelques dizaines de zettabytes10
• Variété : les formats des données du Big Data sont très diversifiés, incluant par exemple des
données structurées comme celles générées par des senseurs, mais aussi des-vidéos (You- Tube,
caméras de surveillance, etc.), du contenu texte (mails, tweets, etc.), etc.
• Vélocité : les données du Big Data sont produites à une fréquence élevée. Leur valeur peut
dépendre de la rapidité de leur traitement pour certains processus nécessitant une analyse en
temps réel (Streaming Analytics). En effet, certaines données doivent être exploitées rapidement
pour déboucher sur des actions immédiates, comme l'atterrissage d'un avion dont l'analyse des
données techniques de vol laisse présager une panne imminente.
7.2. Applications
Les applications du Big Data fleurissent dans tous les domaines où la digitalisation s'intensifie,
comme la médecine, la météorologie ou l'économie. L'entreprise, elle aussi, profite des
opportunités du Big Data pour améliorer sa compréhension de son environne- ment, de ses
clients et de son fonctionnement. Et c'est l'ensemble des fonctions de l'entreprise qui est
concerné. Par exemple:
• l'e-réputation d'une entreprise peut être mesurée à partir des commentaires et évaluations
postés sur des réseaux sociaux, et aider un responsable marketing à valoriser l'image de
l'entreprise ;
• l'activité physique des employés peut être suivie à partir des données produites par des
montres connectées. Cela peut aider un responsable du personnel à décider des pro- grammes
de bien-être au travail;
BDD 72
Julie Paternotte 2020
• la production de produits finis peut être suivie en temps réel par le responsable de la
production en plaçant des puces RFID sur les matières premières et les produits semi-finis. Il peut
alors analyser l'évolution de la production et détecter les postes de travail qui ralentissent le
rythme de production, puis décider ensuite d'actions pour adapter la capacité des goulots
d'étranglement et harmoniser les cadences de l'ensemble de la chaîne ;
• le comportement des clients est analysé par le responsable commercial, par exemple à travers
leurs achats et les messages qu'ils postent, afin de détecter des signes avant-coureurs d'attrition ;
• le suivi de la flotte de transport peut être réalisé en temps réel par le responsable de la logis-
tique grâce aux données de géolocalisation produites par les véhicules.
7.3.Technologies spécifiques
Les SGBD traditionnels sont peu adaptés pour traiter le Big Data,
essentiellement à cause des volumes et de la variété des formats de ces données. On utilise
donc des technologies ad hoc, comme des BD avec des modèles spécifiques, comme NoSQL,
ou des techniques de traitement massivement parallèles, comme le Cloud ou les technologies
Hadoop.
Les technologies Hadoop sont Open Source. Elles ont été développées à l'origine par les grands
acteurs du Web comme Yahoo! et sont largement utilisées par Facebook, Twitter, Linkedln, etc.,
ainsi que par les éditeurs de solutions analytiques du Big Data.
Elles mettent en œuvre un environnement pour déployer des applications distribuées afin de
traiter des gros volumes dans des délais raisonnables. L'idée est d'appliquer l'adage « diviser
pour régner » tant au niveau des données que des traitements. Hadoop distribue le travail
d'analyse sur un grand nombre de machines fonctionnant en parallèle à travers un réseau. Le
nombre de ces machines, souvent localisées dans le Cloud, peut être adapté en fonction de la
charge.
Finalement, les SGBD NoSQL sont des SGBD optimisés pour de gros volumes de données. Afin
d'augmenter la vitesse de traitement, ces systèmes adoptent des modèles de données simplifiés
et non relationnels. Ils ont été épurés de certaines fonctionnalités des SGBD classiques, comme la
gestion des transactions, voire carrément le langage SQL. Ces systèmes sont prévus pour
fonctionner dans des réseaux de serveurs Cloud. Citons notamment les systèmes Big- Table
(Google), Project Voldemort (Linkedln) ou MongoDB. Là encore, les gros acteurs du Weh sont à
l'œuvre : ne trouvant pas de solution suffisamment performante pour gérer leurs énormes
volumes de données, ils ont développé leurs propres technologies, quitte à sacrifier certaines
fonctionnalités pourtant essentielles dans de nombreux domaines d'application, comme les
contrôles d’intégrité.
BDD 73
Julie Paternotte 2020
1.1.Niveaux de décision
Gérer, c'est aussi décider. Les managers sont amenés à prendre des décisions à trois niveaux:
ex. : recommandation
Niveau d'articles aux clients,
opérationnel réalisation d'opérations décisions
boursières programmables
1.2.Processus de décision
Les décisions sont prises suivant un processus qui s'articule sur les étapes de l’image ci-dessous
1) La détection et la compréhension d'un problème ou d'une opportunité. Par exemple, une
nouvelle molécule est développée par le département R&D d'une firme pharmaceutique. Une
décision doit être prise concernant le lancement d'un médicament basé sur cette molécule.
2) La préparation de la prise de décision : les données utiles pour la décision sont collectées,
puis analysées à travers différents modèles de calcul. Par exemple, des données concernant
des tests d'efficacité ou des estimations des coûts et de revenus vont être traitées par
différents modèles de prédiction d'efficacité, de rentabilité, etc.
3) La prise de décision et son implémentation : en fonction des résultats de l'étape précé- dente,
un choix est posé et des actions correspondantes sont réalisées. Par exemple, une entreprise
va décider du lancement d'un nouveau médicament, de son prix de vente, de son volume de
production, etc., et mettre en œuvre ce qu'elle a décidé.
BDD 74
Julie Paternotte 2020
4) Le résultat est évalué, et un nouveau cycle recommence pour encore améliorer la réponse au
problème ou à l'opportunité de départ. Par exemple, l'entreprise va évaluer le succès
thérapeutique et commercial d'un médicament. En cas de faibles performances, d'éventuelles
actions correctrices seront décidées, comme réduire le prix de vente. En cas de bons résultats,
l'entreprise va décider d'actions de développement de ses ventes à partir des données du
marché, de la concurrence, de coût de production de masse, etc
Identifier et comprendre
un problème ou
une opportunité
!
Évaluer les résultats Préparer la décision
\ /
Prendre la décision et
déployer la solution
Finalement, le processus d'une prise de décision en groupe peut induire un choix trop rapide et
peu argumenté sous la pression sociale ou par facilité. Si des décisions en groupe se justifient
pour traiter de questions complexes ou pour gagner une adhésion large, elles peuvent être
influencées par une dynamique de groupe déséquilibrée, notamment à cause d'une influence
exagérée de membres autoritaires.
L'architecture typique d'un système d'aide à la décision inclut, comme [ Modèles de traitement
]
d'autres systèmes informatiques, des répertoires de données et de Répertoire de données
Plus précisément, les systèmes d'aide à la décision traitent des données en provenance :
• de sources internes à l'organisation, à savoir essentiellement les systèmes transactionnels,
comme les données relatives aux achats d'un client enregistrées dans un système ERP (Enter-
prise Ressource Planning) ou un logiciel CRM (Customer Relationship Management);
• de sources externes, comme les avis postés par un client sur les réseaux sociaux à propos
des produits de l'entreprise.
Ensuite, ils mettent en œuvre des modèles de traitement qui organisent, connectent et analysent
des données pour produire des formes variées de connaissances. Les principales catégories de
modèles sont :
• les modèles d'analyse descriptive, visant la description d'un état existant et la caractérisation
des données, comme une pyramide d'âges des employés ou une distribution géographique
des ventes;
• les modèles prédictifs, visant la projection d'un état futur. Leur principe est d'induire des
valeurs futures à partir de modèles et de données connues, comme l'estimation des ventes
à venir en fonction des ventes passées ;
• les modèles prescriptifs visant la proposition d'un état souhaitable, comme l'adaptation
automatique de la tarification d'une compagnie aérienne.
Finalement, ces systèmes sont manipulés par une interface qui dispose :
• d'outils de visualisation pour présenter la connaissance produite, comme des histogrammes,
des nuages de points, ou des arbres de décision ;
• de mécanismes de diffusion de la connaissance, comme la publication de tableaux de bord
sur le Web ou l'envoi d'alertes.
Définition: un système de Business Intelligence (BI) est un système d’aide à la décision conçu pour
le manager, et qui vise à:
BDD 76
Julie Paternotte 2020
Toutes ces informations aident les managers à décider des actions qui vont contribuer à atteindre
les objectifs fixés.
Le système BI détermine également dans quelle mesure les objectifs sont rencontrés à la
suite des actions réalisées. Il intervient donc en amont et en aval de la décision/action, et
s'inscrit dans un cercle vertueux d'amélioration continue, où l'effet des actions est évalué
pour déboucher ensuite sur de nouvelles décisions/actions correctrices.
Conformément à l'architecture des systèmes d'aide à la décision, un système BI (Sharda, Delen, &
Turban, 2014) se décompose sans surprise en:
• un entrepôt de données (Data Warehouse) : il s'agit d'un répertoire centralisé où sont stockées
les données utilisées pour l'analyse et les résultats de traitements analytiques;
• des outils de traitements de données (Business Analytics) pour produire des informations et des
connaissances à partir de différents modèles de calcul ;
• une interface utilisateur, avec des outils de reporting et de visualisation interactive des don-
nées, de l'information et de la connaissance
2. Data Warehouse
L'analyse de données à des fins décisionnelles pose plusieurs défis techniques, dont l'accès aux
données et la performance des traitements analytiques.
En effet, les données d'une entreprise sont parfois dispersées dans plusieurs systèmes
informatiques distincts dont les schémas de données peuvent être différents. Or, certaines ana-
lyses nécessitent d'accéder à l'ensemble de ces données. Par exemple, une entreprise de la
grande distribution qui souhaite calculer l'évolution de CA total dans le temps devra intégrer les
données de chaque point de vente, et donc accéder à leur système informatique respectif, ce qui
n'est pas toujours aisé techniquement. Sans compter que les systèmes transactionnels ne
gèrent pas tous des historiques anciens, parfois bien utiles pour l'analyse.
Ensuite, les systèmes transactionnels restent limités en performance quand ils doivent traiter de
gros volumes à des fins décisionnelles, et des traitements analytiques pourraient dégrader les
temps de réponse des traitements transactionnels.
Voilà pourquoi bon nombre d'entreprises ont déployé un système BI distinct des systèmes
transactionnels, dont les données sont régulièrement transférées vers un entrepôt de données ou
Data Warehouse (DW). Le DW rassemble des données issues de plusieurs sources comme illustré
par l’image ci-dessous.
Définition: un entrepôt de données ou de Data Warehouse (DW) est une base de données qui
consolide des données à analyser à partir de différentes sources. Un DW assure la persistance
d’un système BI.
BDD 77
Julie Paternotte 2020
Data Warehouse
2.1.Propriétés d'un DW
Un DW est une BD qui se distingue des BD transactionnelles par les propriétés suivantes :
• Un DW est orienté sujet, c'est-à-dire qu'il est conçu pour etud1er les donnees relatives à une
activité ou pour analyser certains indicateurs, comme la productivité, le CA ou la rentabilité. Par
contre, les systèmes transactionnels sont plutôt orientés processus, puisqu'ils visent
l'automatisation des processus d'affaires. Seules les données jugées pertinentes par rapport au
sujet analysé sont stockées dans le DW.
• Les données transférées dans un DW ne sont pas mises à jour. Par contre, un DW gère
l'historique des données, alors que les systèmes transactionnels sont généralement limités à un
historique récent.
• Un DW stocke, en complément des données à analyser:
o des données pré-agrégées pour une meilleure performance;
o des métadonnées, comme la source et la date de création des données au sein du DW.
• Les règles de construction du schéma du DW sont spécifiquement adaptées pour faciliter
l'analyse des données et la performance des traitements.
2.2.Architecture d'un DW
L’image ci-dessous montre comment des sources de données sont consolidées dans un DW pour
être analysées.
Gérer les transferts entre les sources et le DW est une tâche complexe assumée par trois com-
posants principaux repris dans une couche logicielle appelée couche ETL (Extract - Trans- form -
Load) :
• le moniteur, qui surveille les évolutions des données au niveau des sources. Lorsqu'une mise à
jour est détectée, le moniteur identifie les données à transférer vers le DW ;
• l'adaptateur, qui prépare l'intégration des données dans le DW en les transformant, par
exemple moyennant la conversion de différentes devises ;
• le médiateur, qui pré-agrège les données et les complète avec des métadonnées avant de les
intégrer dans le DW.
Le DW est géré assez classiquement par un SGBD. Ce dernier peut offrir certaines facilités
additionnelles, comme la réalisation de certains traitements préalables à l'analyse, tels que le
calcul de pré-agrégats. Les données sont traitées par des composants externes essentiellement.
Ces derniers réalisent du reporting, de l'analyse interactive (OLAP ou On Line Analytical
Processing ) ou encore du Data Mining.
BDD 78
Julie Paternotte 2020
SI trans.
reporting
,._ DW
J
::J
Fichiers Q)
C
+-'
CU
+-' ,._
a. ::J données
r
CU Q)
-0 +-'
OLAP
J
CU CU
,._
ETL -0
CRM -<1J
::J
Q) E agrégats
:!::'.
C
0
E
ERP métadonnées Data Mining
etc.
En pratique, le développement de la couche ETL est rarement simple, car elle doit aplanir des
différences de schémas et de formats entre des sources de données hétérogènes, mais aussi
corriger des incohérences, des manques ou des erreurs dans ces données. Certaines
transformations assurées par l'adaptateur relèvent d'ailleurs du « nettoyage » de données (data
cleaning).
Plus récemment, les données du Big Data se sont invitées dans l'aide à la décision, non sans
amener de nouveaux défis techniques. En effet, le volume ou l'irrégularité de la structure des Big
Data complique la consolidation dans un DW unique supportant toutes les catégories de données
et leur traitement.
Les entreprises choisissent souvent de mettre en place des architectures complexes, com- binant
par exemple une plateforme DW et une plateforme Big Data, pour rassembler ensuite les sorties
de différents sous-systèmes pour une visualisation intégrée des résultats des analyses.
3.1.OLTP et OLAP
La première préoccupation des éditeurs de SGBD a été de garantir une fiabilité et une
performance raisonnables pour l'exécution des transactions en temps réels. Les SGBD furent alors
pensés pour un mode de fonctionnement des BD appelé OLTP (On Line Transaction Processing)
BDD 79
Julie Paternotte 2020
qui met l'accent sur les mises à jour d'un volume contrôlé de données dans le cadre d'une
transaction, d'où l'appellation de BD transactionnelle et, par extension, de système
transactionnel.
L'avènement de l'informatique décisionnelle a poussé les éditeurs de SGBD à développer un
autre mode de fonctionnement des BD centré cette fois sur l'analyse de gros volumes, à savoir le
mode OLAP (On Line Analytical Processing). Le Tableau ci-dessous compare l'OLTP et l'OLAP.
Dans le mode OLAP, les données sont présentées sous la forme d'un hypercube, comme expliqué
ci-dessous. Techniquement, un hypercube est stocké dans un DW dont le schéma de don- nées
est spécifiquement conçu pour une analyse performante.
Géographie
Une valeur de la variable est calculée pour chaque
CA résultant des ventes
combinaison des valeurs des dimensions à partir des produits VTT en 2018
1 /
l'occurrence 12 6 9. 1
1 1/ /
/
/
____ J
Temps
Groupe de produits
2016 2017 2018 2019
Belgique
Un hypercube reprend toutes les valeurs
CU
France ..c possibles des variables étudiées. Par exemple,
Q.
Dans l’exemple ci-dessous, sont extraites avec une requête de jointure pour produire les données
cibles de l'analyse :
• une colonne MontantVente est calculée comme PRIXVENTE * QUANT ;
• une colonne Géographie contient le pays de la vente et est déduite de la colonne CODE
POSTAL de la table CLIENT ;
• une colonne Temps reprend l'année de la colonne DATE COMMANDE;
• une colonne GroupeProduits contient la colonne CATEGORIE de la table ARTICLE.
Ces données peuvent être insérées puis exploitées au sein d'un DW pour former par exemple :
• un plan calculant le CA à partir de la somme des valeurs de la colonne MontantVente selon les
dimensions Temps (année) en tête de colonnes, et Géographie (pays) en tête de lignes. Le CA est
calculé pour chaque combinaison de Temps et Géographie, mais aussi pour chaque colonne,
chaque ligne et pour l'ensemble du plan (affiché en grisé);
• un cube, dont chaque tranche correspond à une valeur d'une troisième dimension
G r o u p e P r o d u i t s . À nouveau, les cellules grisées contiennent tous les sous-totaux
possibles.
Données transactionnelles Plan (hypercube à 2 dimensions)
60 BE 2017 cit
Des opérations comparables peuvent produire des hypercubes dont le nombre de dimensions est
supérieur à 3.
BDD 81
Julie Paternotte 2020
Une dimension peut également recouvrir plusieurs attributs. Par exemple, la dimension Produit
peut comporter un attribut Catégories, Game et PublicCible.
Definition : un hypercube résulte du calcul des valeurs d’une ou plusieurs variables ou faits selon
les valeurs possibles de plusieurs dimensions. Une dimension peut s’exprimer selon des échelles
de granularités différentes et peut contenir plusieurs attributs.
Par exemple, imaginons une BD transactionnelle d'une université reprenant des données
d'étudiants, de cours, de professeurs, d'examens, etc. Un hypercube orienté vers l'étude de la
réussite des étudiants pourrait être le suivant:
• Faits à étudier:
o moyenne des cotes obtenues;
o proportion d'étudiants avec une cote supérieure à 10/20.
• Dimensions :
BDD 82
Julie Paternotte 2020
L’image ci-dessous montre un exemple de schéma en étoile pour un DW dont le sujet est la
performance commerciale :
• cette performance s'exprime à travers deux variables de la table de faits VENTE, qui sont
TOTAL MONTANT VENTE et TOTAL_QUANT, respectivement pour la somme des montants des
ventes et la somme des quantités vendues ;
• la performance varie selon trois dimensions, qui sont représentées par les tables TEMPS,
GEOGRAPHIE et ARTICLE. Ces tables peuvent être jointes à la table de faits VEN_TE qui
contient les dés étrangères correspondantes, à savoir DATE, CODE POSTAL et NUMART. Les
tables de dimension contiennent des attributs et des hiérarchies, comme HIERARCHIE GEO
dans la table GEOGRAPHIE. Une hiérarchie permettra des changements d'échelle dans la
visualisation des faits.
ANNEE
MOIS
JOUR
HIERARCHIE_DATE NUMART
ANNEE TOTAL_MONTANTVENTE CATEGORIE
MOIS TOTAL_QUANT SEGMENT
JOUR .._____, DA TE ARTICLE
..-----1 CODEPOSTAL HIERARCHIE_PRODUIT
NUMART CATEGORIE
CODEPOSTAL SEGMENT
VILLE ARTICLE
REGION
PAYS
HIERARCHIE_GEO
VILLE
REGION
PAYS
5. Visualisation
Les systèmes BI proposent de nombreux types de visualisation, comme des tableaux croisés, des
histogrammes, des graphiques en secteurs, et bien d'autres encore. Ces visualisations sont
souvent interactives et manipulables via des interfaces Web ou des applications mobiles. Elles
peuvent être modifiées en temps réel par l'utilisateur par exemple en appliquant les opérations
définies sur un hypercube, ou en changeant leur apparence (taille, couleurs, etc.).
BDD 83
Julie Paternotte 2020
Voici quelques illustrations réalisées avec Microsoft Power BI. L’image ci-dessous montre un
tableau reprenant le total des ventes par année et par catégorie d'articles. L'outil dispose de
commandes pour agir sur l'échelle des dimensions à partir des hiérarchies d'un DW, comme dans
le tableau d’après où les dimensions TEMPS et ARTICLE sont affinées respectivement comme
suit: mois, et segment.
VTT Total
....ANNEE I city
/
équipement
_CA
_._TE_GO
_ Rf_E--r- ty- : - - - - - , - - ~ - - , - - - - ~
ci... éa.;;i.;u;;;,iiD
~1e;.;.;m.;.;;e;;,,;.nt;,_._____ _ _....,.;.VTT.;..;..._...,..._ _ _-r-_ _--l Total
ANNEE basic excellence Total basic excellence Total basic excellence Total
12 34.645 34.128 68.773 40.100 16.840 56.940 14.151 79.150 93.301 219.014
i'P{i 458.77~ 497.358 956.128 726.100 299.120· 1.025.220 211.952 1.350.050 1.562.002 3.543.350
1 30.225 35.712 65.937 54.700 23.480 78.180 15.438 111.135 126.573 270.690
38.304: 70.28' 58.125 266.477
3 43290 48.3.30 91.620 60.725 22.160 82.885 , 16.816 111.515 128.331 302.836
·4 38.870 42.732 81.602 58.025 24.$~,, Jl~45 1'6~ 5
>J J)0510 117.115 281.862
S 40.755 39.078 79.833 64.800 26.800 . 91.600 1 17.369 100.955 118.324 289.757
38.675 39.114 77.789 67.475 ,3 08.007
7 43.355 42.408 85.763 58.100 26.760 84.860 ! 17.696 119.525 137.221 307.844
8 32~695 45.846 78.541 51.JOO 288.996
9 38350 36.540 74.890 50.975 18.040 69.015
16.071 109.720 125.791 269.696
10 33.735 41 .868 75.603 56.175 2.3.000 ·. .79.t'lS
17.981 106.720 124.701 280.279
11 41 .990 47.2 14 89.204 72.700 32.000 104.700 21 .452 129.885 151.337 345.241
12 44.850 40212 85.062 72..600 29.280 101;$80 19.1 68 126355'.. 145:.523
2018 561.795 622.530 1.184.325 846.725 348.360 1.195.085 268.533 1.612.095 1.880.628 4.260.038
1 ·-· · .. ... ?.~~5.!). •-·· 62.568 . JJ6.~1~ ... 78.1~.5 .. 25.920 1~.045. ~?!~??o:. , J 4S.085 16&042, .. 388.6C!5.
Total 1.396.525 1.540.368 2.936.893 2.127.950 880.320 3.008.270 660.937 4.019.785 4.680.722 10.625.885
La figure ci dessous montre une transformation comparable mais au niveau d’un graphique en
courbes affichant l’évolution du total des ventes par année, puis par mois à la suite d’une
commande de drill down.
CA
4,5
4,0
3,5
3,0
2,5 2018
2016 2017
(a) ANNÉE
CA
0,4M - - - - - - - - - - - - - - - - - - - - - --1r- - - - - -~
La Figure ci-dessous montre l'évolution de deux variables selon deux dimensions : un cercle
représente les variables montant total des ventes et quantité totale vendue, respectivement avec
le positionnement du cercle en ordonnées et sa surface. La dimension catégorie de produits est
reprise en abscisses, et la dimension pays est exprimée avec la duplication des cercles pour
chaque valeur de cette dimension (ici Belgique et France).
Les systèmes BI sont souvent utilisés pour représenter des indicateurs, comme ceux de la Figure
ci-dessous. Un indicateur montre, par exemple, la valeur courante d'une variable, différentes
BDD 84
Julie Paternotte 2020
3,0M---:-----------....:;_...:.;--_;__---:-:.,-
. w · . ..
/ 2,5 M - - - - - - - - - - - . . . , . . . . , . --;-;:-"""'7r
LLI
95,00 %
;; c(
~ 20M-
. , · -
1- Indicateur
lZ de CA
:o
. :E 1,5M---------__;_,.---'--:-:-~ ::---:;:-~-t:;
1,0M---
· -:---+--~
·o~SM-·- . "-:-;>-.. -ci_ty______•--;éq-'-u"'"';"i:::-Rè:-:m=-e=-=n::t:-
</"\V' . . ÇATEGORIE,
• .f<
.
·:.-..~•·.'':-<,.
.
,<:..;ê,:;$-.,~:,;;:, ._,:,:,-., ..,
105,00 %
{a) {b)
Les outils de visualisation sont précieux pour le manager, car ils facilitent la recherche interac- tive
d'informations pertinentes pour le processus de décision. Ils contribuent aussi à améliorer la
communication de l'information à l'aide de représentations adaptées.
6 Data Mining
Les techniques OLAP discutées plus haut produisent des ànalyses descriptives en proposant
principalement des représentations agrégées de gros volumes de données expliquant la situation
courante ou passée d'une entreprise.
Avec le Data Mining, il est possible d'induire par inférence d'autres formes de connaissance. En
recherchant des régularités significatives dans des données transactionnelles et/ou dans des Big
Data, on peut réaliser entre autres:
• des catégorisations automatiques d’éléments, comme la segmentation d’un groupe de per-
sonnes à partir de données comme d’âge, le niveau de revenu ou le type d’habitat;
• des modélisations de comportements, comme l’analyse de paniers d’achats pour identifier des
comportements fréquents tels que: si un client achète un ordinateur, il y a 58% de chances qu'il
achète également une imprimante;
• des prédictions de valeurs de variables, comme des niveaux futurs d'indicateurs de performance
en fonction de l’activité de l’entreprise.
Exemple. Les arbres de décision constituent une des formes de connaissance mise en évidence
par le Data Mining. Imaginons le cas d’une banque qui analyse les données relatives aux per-
sonnes auxquelles elle a accordé ou refusé des prêts. Il est
possible de déterminer quelles sont les caractéristiques de
ces personnes qui sont les plus déterminantes dans la
décision d’octroi de prêt, et de les représenter comme dans 30 .. 40
BDD 85
Julie Paternotte 2020
Définition. Plus généralement, les techniques de Data Mining fournissent des connaissances en
combinant différentes disciplines, parmi lesquelles l'intelligence artificielle, les statistiques et les
sciences de l'information.
Contrairement à l'OLAP, le processus de découverte du Data Mining est conduit par la machine
sous la supervision de l'utilisateur. Cette autonomie peut même être totale dans certaines
situations, ce qui en inquiète plus d'un, par exemple lorsque des opérations boursières sont
décidées par des algorithmes sans validation humaine.
De plus, le Data Mining aide à expliquer les comportements courants ou passés et à prédire des
comportements futurs en mettant en lumière des liens de causalité, alors que l'OLAP se limite à
les décrire.
6.1.Applications
Le Data Mining trouve de nombreuses applications dans les métiers de gestion,
parmi lesquelles :
• la gestion de la relation client, et notamment le contrôle de l’attrition;
• la vente de détail et la logistique, et plus particulièrement l'optimisation du stockage et du
rayonnage, ainsi que la prédiction de demandes saisonnières;
• le secteur bancaire, par exemple l'automatisation d'octrois de crédits ou la détection de fraudes;
• la gestion de la production, avec la prédiction de pannes ou la détection de défauts de
fabrication.
Le Data Mining concerne d'abord les systèmes d'aide à la décision, où les analyses OLAP sont
complétées par les résultats produits par le Data Mining. Mais l'informatique transactionnelle
profite également du Data Mining à travers l'automatisation poussée de certains processus
d'affaires.
Ainsi, des acteurs humains peuvent être remplacés par des« intelligences artificielles» qui
intègrent des techniques de Data Mining. Par exemple, les systèmes de recommandation
automatique d'articles d'un magasin en ligne se basent sur l'analyse de comportements d'achats
passés et sur un pro- filage du client pour lui suggérer des articles susceptibles de l'intéresser.
Certaines formes d'intelligence artificielle, comme les techniques de Machine Learning,
développent même des facultés d'apprentissage à partir des données. Le comportement du
système n'est alors plus déterminé uniquement par son programmeur. Une application typique
est l'interprétation automatique d'images, par exemple pour repérer des tumeurs dans des
radiographies de patients.
BDD 86