Académique Documents
Professionnel Documents
Culture Documents
INTRODUCTION À LA MODÉLISATION ET
AUX BASES DE DONNÉES
STRUCTURE
EXAMEN
Floriane Riga
2
Floriane Riga
Structure ......................................................................................................................................... 1
Examen ........................................................................................................................................... 1
Comment devenir acteur du développement digital ? ..................................................................... 2
1. Chapitre 1 : La gestion de projet informatique......................................................................... 5
1.1. Notion de projet informatique ........................................................................................ 5
1.2. Processus de développement de logiciel ......................................................................... 6
1.3. Exemples de processus de développement de logiciel ..................................................... 7
1.3.1. Processus en cascade ...................................................................................................................... 7
1.3.2. Unified Process (UP)........................................................................................................................ 8
1.3.3. Agile ................................................................................................................................................ 8
1.4. Acteurs d’un projet : Quels sont les grands acteurs qui interviennent dans un projet
informatique? ........................................................................................................................... 10
1.5. Conclusion .................................................................................................................... 10
1.6. Questions d’examen ..................................................................................................... 11
2. Chapitre 2 : Représentation des exigences ............................................................................ 12
2.1. Modélisations de systèmes informatiques .................................................................... 12
2.1.1. Exigence ........................................................................................................................................ 12
2.1.2. Formes des exigences ................................................................................................................... 12
2.1.3. Un bon langage ? .......................................................................................................................... 13
2.1.4. Dimensions de la modélisation ..................................................................................................... 13
2.2. Diagramme de cas d’utilisation ..................................................................................... 14
2.2.1. Cas d’utilisation et acteur ............................................................................................................. 15
2.2.2. Hierarchie d’acteurs ...................................................................................................................... 15
2.2.3. Structuration des cas d’utilisation ................................................................................................ 16
2.2.4. Spécification des cas d’utilisation ................................................................................................. 17
2.2.5. Démarche de construction............................................................................................................ 18
2.2.6. Erreurs fréquentes ........................................................................................................................ 19
2.2.7. Exemple......................................................................................................................................... 20
2.2.8. Questions examen ........................................................................................................................ 23
2.3. Diagramme d’activité .................................................................................................... 24
2.3.1. Action et flux de contrôle.............................................................................................................. 24
2.3.2. Nœud ............................................................................................................................................ 25
2.3.3. Partition ........................................................................................................................................ 27
2.3.4. Flux d’objet, interruption et zone d’expansion ............................................................................. 29
2.3.5. Erreurs fréquentes ........................................................................................................................ 30
2.3.6. Exemple......................................................................................................................................... 31
2.3.7. Questions d’examen ..................................................................................................................... 34
2.4. Diagramme entité/association ...................................................................................... 36
2.4.1. Entité ............................................................................................................................................. 36
2.4.2. Association .................................................................................................................................... 37
2.4.3. Attribut.......................................................................................................................................... 38
2.4.4. Généralisation/spécialisation........................................................................................................ 40
2.4.5. Erreurs fréquentes ........................................................................................................................ 44
2.5. Notations ...................................................................................................................... 45
2.6. Conclusion .................................................................................................................... 45
3
Floriane Riga
4
Floriane Riga
- Définition 1 : Système d’information d’une organisation1 : est l’ensemble des ressources mises
en œuvre pour créer, collecter, stocker, traiter, diffuser
et sécuriser (gérer au sens large) l’information.
- Définition 2 : Système informatique : est un sous-
ensemble du système d’information dédié au
traitement de l’information digitale.
- Définition 3 : Domaine d’application : d’un système
informatique désigne la partie de monde qui interagit
avec ce système. Ex : une entreprise, un club de sport,
un métier, un département, etc.
o Développer un système est difficile.
- Processus de développement d’un logiciel :
Ingénierie logicielle Propose Processus de développement Guide Projet de développement
2
- Définition 4 : Un projet : est un effort délimité dans le temps pour fournir un livrable unique
dans un délais et un budget fixé.
- Le triangle des contraintes du projet3 : Il est souvent
difficile de respecter intégralement toutes les
contraintes d’un projet et on est donc obligé de mettre
la priorité sur l’une ou l’autre de ces contraintes.
- On parlera souvent de projets dont le livrable est le
programme informatique. Le domaine d’application
sera les entreprises/les métiers de gestion.
à Les 4P d’un projet informatique4 :
o Le livrable/le Produit : majoritairement du logiciel. Il y a aussi du matériel, de
l’infrastructure matérielle qui se cache derrière ou bien de la documentation et des
phases de test ;
o Personne (pour qui le produit est réalisé) : Pour qui le produit est réalisé. Les
spécialistes du domaine d’application/métier qui connaissent bien le fonctionnement
de l’entreprise/les utilisateurs finaux sont amenés à interagir avec les spécialistes
informaticiens/de la technologie de l’information et de la communication. Les
spécialistes TIC doivent construire le système alors que les spécialistes métier ont la
responsabilité d’exposer leurs attentes aux informaticiens ;
o Projet : Le développement d’un produit/logiciel/matériel. Gérer un budget, planifier les
tâches.
1
Figure : slide introductive
2
Figure 1-1 : Processus de développement de logiciel : pg 2
3
Figure 1-2 : Triangle des contraintes et exemples de projets : pg 3
4
Figure 1-3 : Les 4P d’un projet informatique : pg 4
5
Floriane Riga
données.
o Évaluer : Vérifier qu’il est bien conforme aux exigences
initiales. Si jamais on constate des défauts majeurs, on peut
Exécuter
recommencer un nouveau cycle. C’est très souvent le cas dans
l’informatique où on apprend des erreurs passées pour améliorer
sans cesse le système existant. C’est cette boucle qu’on retrouve entre « Évaluer et
Comprendre ».
5
Figure 1-4 : Phases et activités d’un processus de développement : pg 5
6
Figure 1-5 : Les phases génériques de l’ingénierie : pg 6
6
Floriane Riga
7
Floriane Riga
10
1.3.3. AGILE
- à Agile Manifesto : Repose sur des principes génériques repris dans un manifeste. Dans ce
manifeste, les concepteurs de la méthode agile mettent l’accent sur la collaboration,
l’interaction, la responsabilisation des personnes. L’humain est au cœur de la démarche. Agile
demande aussi du pragmatisme et de la flexibilité qui intègre par essence le changement.
- On y retrouve :
o Des interactions entre les personnes plutôt que des processus et outils
o Des collaborations plutôt que contrats
o Du logiciel plutôt que de la documentation
o De l’adaptation plutôt qu’un plan figé
- Exemple : Scrum :
o Les flèches représentent l’évolution dans le temps
o Dans scrum, le développement est organisé en itération. Une « itération » = un « sprint
».
o Lors d’un sprint, on traite une partie des exigences de l’utilisateur, ce qu’on appelle un
« sprint backlog ».
o Le sprint backlog va puiser dans un réservoir d’exigences complet qu’on appelle le
« product backlog ».
7
Figure 1-6 : Les phases du processus en cascade : pg 8
8
Répétitif
9
Décrire un ajout par palier, petit à petit, afin d'être certain que chaque valeur ajoutée apporte une amélioration
sans créer de dysfonctionnement.
10
Figure 1-7 : Les phases du UP : pg 9
8
Floriane Riga
o Chaque sprint est sensé produire une partie du livrable. Un « livrable incrémental est
un sous-système du « système informatique ».
o Scrum prévoit toute une série d’interactions entre les acteurs du projet (aspect humain,
collaborations importants pour Agile). Exemple : les mêlées quotidiennes de chaque
sprint durant lesquels l’équipe de projet se tient debout pendant 15 minutes et fait part
du travail réalisé la veille, du travail à réaliser le jour-même et des problèmes rencontrés.
o Des rétrospectives du sprint sont aussi organisées. Ce sont des retours d’expérience
dont l’objectif est d’améliorer la manière dont les prochains sprint vont se dérouler.
o Réunion de planification du sprint : identifier les exigences qui vont être traitées et les
actions à réaliser pour traiter ces exigences
o La revue du sprint : évalue le résultat, le livrable incrémental d’un sprint.
11
o Rôles :
• Product owner/le représentant utilisateur : dont la responsabilité est de
gérer/déterminer les exigences à Gérer le product backlog.
• Development Team : contribuent à créer le logiciel.
• Scrum master/chef d’orchestre/facilitateur : soutient tous les acteurs dans
l’application de scrum et qui n’a pas réellement un rôle d’autorité ou de chef
de projet mais plutôt une responsabilité de soutient, de motivation,
d’encouragement.
11
Figure 1-8 : L’organisation du processus Scrum : pg 10
9
Floriane Riga
1.4. ACTEURS D’UN PROJET : QUELS SONT LES GRANDS ACTEURS QUI INTERVIENNENT
DANS UN PROJET INFORMATIQUE?
Peu importe le projet informatique, il met en relation toute une série d’acteurs, de cultures et
de métiers différents.
Utilisateurs Informaticiens
(spécialistes (spécialistes des Sponsor
métier) TIC)
Utilisateur Chef de
Décideur
final projet
Business
analyst
Développeur
Expert
12
1.5. CONCLUSION
12
Figure 1-9 : Principaux acteurs d’un projet informatique : pg 11
10
Floriane Riga
Technologie
11
Floriane Riga
2.1.1. EXIGENCE
- Le problème : intégrer les spécificités métier
o Pas de prêt à porter : un même logiciel ne peut pas convenir à toutes les entreprises.
o C’est important pour que les entreprises sachent développer un avantage concurrentiel.
o Il faut que les attentes soient explicitées sous forme d’exigences et ces exigences
doivent être transmises aux informaticiens.
- Définition 6 : Exigence : Énoncé d’une capacité que doit posséder le système à construire pour
répondre à un objectif donné. Une exigence peut également être une contrainte que le système
doit respecter.
o Toutes ces exigences sont canalisées par une discipline appelée l’ »ingénierie des
exigences » qui compète l’ingénierie logicielle en couvrant les phases en amont du cycle
du développement de logiciel.
- Responsabilités du gestionnaire :
o Doit être capable de formuler ses exigences car c’est lui qui est le mieux placé pour
comprendre le business
o Transmettre les exigences aux informaticiens
12
Floriane Riga
Langage naturel libre Les articles du catalogues sont accessibles aux clients.
Langage naturel structuré En tant que client, je veux pouvoir accéder au catalogue des
articles pour choisir celui qui répond le mieux à mes attentes.
Langage graphique
Accéder au catalogue d’articles
Client
13
- Selon ces critères, on remarque que le langage graphique est relativement expressif,
relativement accessible et qu’il obtient un degré de formalisme ce qui permet d’être
partiellement interprété par des machines et exempt d’ambigüité.
13
Tableau 1 : exemples de représentations des exigences : pg 16
14
Tableau 2 : caractéristiques de différents langages de spécification : pg 17
13
Floriane Riga
o L’interface du système : Comment ce système va-t-il interagir avec des acteurs humains
et/ou d’autres systèmes ?
15
15
Figure 2-1 : dimensions du logiciel : pg 19
14
Floriane Riga
16
17
- Définition 9 : Un acteur : est une entité extérieure au système et interagit avec le système (en
invoquant l’exécution d’un cas d’utilisation).
Désignation
Cas d’utilisation
18
Acteur
o Bonhomme = Acteur
o Ovale = cas d’utilisation
16
Figure 2.2 : exemples de diagramme de cas d’utilisation ; d’entité/association ; d’activité : pg 20
17
Figure 2-3 : exemples de cas d’utilisation : pg 21
18
Figure 2-4 : notation des diagrammes de cas d’utilisation : pg 22
15
Floriane Riga
19
o Les acteurs peuvent être imbriqués dans des hiérarchies d’acteurs : nous avons un
internaute qui, par exemple, qui peut utiliser un système de forum pour poster un
message sur ce forum.
20
21
19
Vidéo 2B, 05:23
20
Figure 2-5 : généralisation d’acteurs : pg 22
21
Figure 2-6 : Participation multiple et généralisation: pg 23
16
Floriane Riga
22
23
22
Figure 2-7 : notation des relations entre cas d’utilisation : pg 23
Figure 2-8 : exemples de relations entre des cas d’utilisation : pg 24
23
Vidéo 2B, 09:07 (précisé en langage naturel)
17
Floriane Riga
24
24
Vidéo 2B, 09:07 (précisé en langage naturel)
25
Figure 2-9 : hiérarchie d’acteurs chez PetShop Top : pg 27
18
Floriane Riga
secondaire
Acteurs et
cas
s
26
( contre-
exemple)
27
26
Figure 2-12 : diagramme de cas d’utilisation pour PetShop Top : pg 28
27
Tableau 3 : exemples d’erreurs à éviter au niveau des diagrammes de cas d’utilisation : pg 29
19
Floriane Riga
2.2.7. EXEMPLE
- Exigence 128 : Un internaute peut consulter le catalogue des objets disponibles et éventuellement
lancer une recherche sur ce catalogue.
- Exigence 229 : Quand un internaute souhaite louer un objet, il doit s’enregistrer sur la plateforme
avant sa première location.
o On a enregistré auprès de l’internaute un nouveau cas d’utilisation qui s’appelle
« s’enregistrer ».
- Exigence 330 : Une fois enregistré, l’internaute peut, après s’être identifié, réserver un objet et le
louer. Il peut aussi commenter un objet qu’il a recherché. Il devra procéder à un paiement lors de
la réservation (acompte) et de la location (solde).
o L’internaute n’est plus n’importe quel internaute étant donné qu’il est déjà inscrit
et qu’il doit maintenant s’identifier. Il devient un locataire (acteur qui peut réaliser
tout ce que l’internaute peut faire). NB : on va de l’internaute spécialisé (locataire ;
il détient au minimum, les mêmes possibilités que l’internaute généralisé) vers
l’internaute généralisé. L’internaute ne peut pas louer des objets tant qu’il n’est pas
inscrit, alors que le locataire qui est inscrit, le peut.
o Include : Il faut Y pour X : X -----> Y (la phrase ne suit pas le sens de la flèche qui va
de gauche à droite)
Ou : Si tu veux X, alors du doit Y (suit le sens de la flèche qui va de gauche à droite)
o Extend : Si tu veux Y, alors X : X <------ Y (suit le sens de la flèche qui va de droite à
gauche)
28
Pg 30
29
Pg 30
30
Pg 31
20
Floriane Riga
- Exigence 431 : 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 commenter un objet après l’avoir posté sur la plate-forme.
o Comme le locataire, le propriétaire doit être identifié pour accéder à toutes ces
facilités. On va créer un nouveau rôle intermédiaire, l’utilisateur identifié avec deux
spécialisations : le locataire et le propriétaire. Le propriétaire peut spécifiquement
poster un objet, ce que le locataire ne peut pas faire. Par contre, comme le locataire,
il peut commenter un objet. Rappel, toutes les utilisations définies au niveau d’une
généralisation sont implicitement héritées par les spécialisations. Le commentaire
posté par le propriétaire peut se faire directement ou éventuellement lors du
déroulement du cas : « poster un objet »à représentés par la relation extend (s’il
y a des commentaires à formuler).
31
Pg 30
21
Floriane Riga
- Exigence 633 : L’administrateur de la plateforme gère les catégories servant à classifier les
objets et modère les commentaires sur les objets.
o On va créer un nouvel acteur avec deux cas d’utilisation : gestion des catégories et
modération des commentaires. NB : implicitement, l’administrateur devra aussi
s’identifier au niveau du système pour accéder aux facilités.
32
Pg 32
33
Pg 32
22
Floriane Riga
23
Floriane Riga
24
Floriane Riga
- Définition 13 : Flux de contrôle : représente une transition entre deux actions/une action
prédécesseur vers une action successeur. 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/ on
a donc une sémantique de déclanchement qui explicite le fait que la fin d’une action
provoque le début d’une autre action.
- Exemple :
o flux de contrôle = Flèche allant du prédécesseur vers le successeur
o La fin de la préparation de la commande enclenche l’expédition de cette dernière.
Préparer une Expédier une
commande commande
- Une activité décrit le déroulement d’un processus dans le temps. Il est donc naturel de
mentionner le début et la fin de l’activité.
o UML a prévu deux symboles :
§ Un cercle plein pour marquer le début de l’activité
§ Un cercle plein entouré d’un autre cercle pur marquer la fin de l’activité.
o Par convention, nous n’utiliserons qu’un seul nœud de début et qu’un seul nœud
de fin d’activité pour un même diagramme d’activité.
o NB : UML permet d’avoir plusieurs nœuds de fin et de début mais nous n’utiliserons
pas cette facilité.
34
2.3.2. NŒUD
- Définition 13 : Le nœud de contrôle : organise des flux d’exécution d’une activité au-delà
des enchaînements séquentiels.
- Le nœud de décision permet de choisir une action qui va succéder à une autre.
o Il est représenté par un losange.
o Le nœud de choix a typiquement un flux rentrant et un nombre indéterminé de flux
sortants (dans l’exemple : 2 flux sortant).
o Chaque flux sortant est assorti d’une condition de garde qui doivent être
mutuellement exclusives.
o L’action qui sera enchaînée après la décision sera celle pour laquelle la condition
de garde est vérifiée. Par exemple : l’action « Évaluer une demande de crédit » sera
suivi de l’action « accorder le crédit » si la condition de garde « client solvable » est
vérifiée. Par contre, si c’est la condition de garde « client insolvable » qui est
vérifiée, alors c’est l’action « refuser le crédit » qui sera exécutée. à Enchainement
d’une action OU d’une autre suite à la décision.
34
Figure 2-26 : notation et exemple de flux de contrôle, pg 42
25
Floriane Riga
Action 1
(Condition de)
garde 1
Action 3
(Condition de)
garde 2
Action 4
35
- Le nœud de fusion (losange) comporte plusieurs flux rentrant qui peuvent chacun
déclencher à eux-seuls un flux sortant. L’une ou l’autre action peut chacun déclencher
l’action sortante.
36
- Avec le nœud de jointure (représenté par une barre), on a plusieurs flux rentrant et un seul
flux sortant. Tous les flux rentrant doivent être réalisés pour enclencher le flux sortant.
37
35
Figure 2-27 : notation et exemple de nœud de choix, pg 43
36
Figure 2-28 : notation et exemple de nœud de fusion, pg 43
37
Figure 2-29 : notation et exemple de nœud de jointure, pg 44
26
Floriane Riga
- Le nœud de bifurcation (fork) : Un seul flux entrant peut enclencher, en parallèle, plusieurs
flux sortant.
38
2.3.3. PARTITION
- Partition :
o Construction optionnelle des diagrammes d’activité.
o Localisation des actions ou d’une partie des actions de l’activité.
o Par exemple : toutes les actions réalisées dans le couloir back office (voir schéma),
seront exécutées au sein du back office.
o On peut combiner des partitions verticales avec des partitions horizontales.
o N’influence en rien les flux d’exécution d’actions. C’est simplement une localisation
de la documentation de l’acteur qui prend en charge l’exécution des actions.
39
38
Figure 2-30 : notation et exemple de nœud de bifurcation, pg 44
39
Figure 2-31 : notation de partition, pg 45
27
Floriane Riga
- Exemple :
40
41
o NB : Pour chaque action, on ne peut jamais avoir qu’un seul flux rentrant et un seul
flux sortant.
40
Figure 2-32 : exemple de diagramme d’activité pour traiter une commande, pg 45
41
Vidéo 2D : 05:04
28
Floriane Riga
42
43
42
Figure 2-33 : exemple de flux d’objets, pg 46
43
Figure 2-34 : exemple de zone interruptible, pg 47
29
Floriane Riga
o Zone interruptible représentée par une région délimitée par des pointillés
o On veut représenter qu’à n’importe quel moment de cette zone interruptible, on
peut interrompre le processus et réaliser autre chose que ce qui était prévu dans
la suite de l’exécution de la zone interruptible.
o Pour cela, on doit représenter un évènement qui marque l’interruption des actions
de la zone interruptible (« abandon »). Lorsque ça survient, Ce sont les actions
pointés par l’évènement qui prend le relais.
§ Dans l’exemple, si abandon, on annule la commande et on termine
l’activité.
44
44
Figure 2-35 : exemple d’erreurs dans un diagramme d’activités, pg 48
30
Floriane Riga
- Ne jamais mentionner le nom d’un acteur/département qui réalise une action comme étant
une action (« vendeur »).
- Ne pas mentionner des conditions de garde d’un nœud de décision comme étant des
actions (« si montant >< à 1000/1200 »). Ils doivent être mentionnés sur les flux de contrôle
(flèches) sortant du nœud de décision.
- Les conditions de garde sortant d’un même nœud doivent être mutuellement exclusives
(1000 ≠ 1200).
- Toujours avoir un flux entrant et sortant de chacune des actions (« accorder une
réduction »).
- Toujours bien indiquer le sens des flèches.
2.3.6. EXEMPLE
Commande Web
- 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
correspondant à un sport, comme une rubrique tennis ou une rubrique jogging.
45
46
- Exigence 3 : L’internaute peut naviguer vers d’autres rubriques pour sélectionner d’autres
articles à commander.
45
Figure 2-36 : commande web - identification, pg 49
46
Figure 2-37 : commande web- choix d’article, pg 49
31
Floriane Riga
o NB : pour n’importe quel nœud, on peut avoir autant de nœuds entrants et sortants
que l’on souhaite.
47
- 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.
o Dans un premier temps : option « déjà identifié » :
48
47
Figure 2-38 : commande web- changement de rubrique, pg 50
48
Figure 2-39 : commande web- clôture de transaction, pg 51
32
Floriane Riga
49
49
Figure 2-40 : commande web- clôture avec identification, pg 52
33
Floriane Riga
34
Floriane Riga
35
Floriane Riga
- On a, jusqu’ici, parlé de traitements : ils peuvent agir sur les données. Les données peuvent
être modifiées, supprimées, etc. par les différentes actions qui s’enchaînent au cours des
traitements.
o Structure : rouge
o Données brut : bleu
o Ces grappes de données peuvent avoir des correspondances/connexions entre
elles.
- Définition 15 : Diagramme Entité/Association (DEA) : décrit les structures des données
utiles (qui sont pertinentes) pour l’utilisateur. Il spécifie la nature des liens (représente les
connexions) entre les données ainsi que les contraintes qui conditionnent leur validité (qui
vont contribuer à la qualité des données).
o Exemple : spécifier que le salaire d’un employé doit se trouver dans une fourchette
donnée.
o Relève de la partie structurelle des exigences (Système logiciel à Structures,
Interfaces, Fonctions, Dynamique : pg 19)
- Responsabilités du gestionnaire :
o Être attentif à bien représenter les structures de données utiles pour son entreprise.
o En informatique, poids important sur la gestion des données :
§ Faire l’inventaire des types de données.
o Penser à toutes les données indispensables pour mener à bien les processus
d’affaires au jour le jour.
o Anticiper tout ce qu’il souhaite produire comme tableaux de bord, indicateur de
performance pour l’aide à la décision (chap. 4).
2.4.1. ENTITE
- Définition 15 : Entité : représente un ensemble d’objets du domaine d’application qui
présentent des caractéristiques semblables (ensemble d’objets du monde réel auxquels on
souhaite garder une trace dans un futur système informatique).
o Ils ont la même nature
o Représenter ces objets au travers d’une entité
o Les différences deviennent des instances des entités.
36
Floriane Riga
50
2.4.2. ASSOCIATION
- Définition 15 : Une association : binaire (qui connecte deux entités) schématise une
correspondance entre deux entités, et représente l’ensemble des liens entre ces instances.
o Chacun des liens est une instance de cette association.
51
- Cardinalité : Sur chaque arque connectant une entité et une association, on a mentionné
un tandem de cardinalité : cardinalité minimale & cardinalité maximale.
o Exemple : pour une personne donnée, combien de villes connectées au minimum
et au maximum ?
52
50
Figure 2-46 : un exemple d’entités et de ses instances : pg 58
51
Figure 2-47 : exemple d’association binaire : pg 59
52
Vidéo 2E : 07:23
37
Floriane Riga
connue et est donc représentée par une inconnue de valeur « N » à Cfr. encadré
orange.
o La cardinalité minimale doit être ≤ à la cardinalité maximale :
§ Min : entier (0 compris)
§ Max : entier (0 exclus), N (indéterminé)
§ Contrainte
- Association entre deux mêmes entités (personne & villes):
o Connectées par plusieurs associations : entretenir, entre des personnes et des villes,
des liens de différente nature comme l’habitation ou le lieu de travail.
o Les arcs d’une association (« est un habitant », « a des citoyens ») peuvent être
libellées avec du texte libre pour mieux documenter le rôle d’une instance dans la
participation dans une association.
53
- Association cyclique :
o Des produits sont eux-mêmes connectés à d’autres produits selon une sémantique
de kits.
o Dès qu’on veut représenter des liens entre des instances de même nature (produits,
personnes, sociétés), ces liens peuvent être matérialisés par une association
« symétrique » ou « réflexive » qui connecte une entité à elle-même.
54
55
2.4.3. ATTRIBUT
- Définition 15 : 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.
- 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.
o Exemple classique : adresse à rue, numéro, code postal, etc.
53
Figure 2-48 : exemple d’association avec rôles et attributs : pg 60
54
Figure 2-49 : exemple d’association cyclique : pg 61
55
Vidéo 2E : 11:02
38
Floriane Riga
56
o Dans l’exemple ci-dessus, on voit que l’adresse est composée de différents attributs
– des attributs composant – qui sont légèrement indentés par rapport aux
composites (rue, numéro, etc.). ça permet de représenter une
structuration/hiérarchie dans les différents attributs d’une entité.
- Certains attributs jouent le rôle d’identifiant. C’est une valeur qui permet de distinguer une
instance d’une entité d’une autre.
o Dans le cas de l’entité « client », l’attribut « numéro » est unique et joue le rôle
d’identifiant.
o Un identifiant peut être composé de plusieurs attributs, comme l’entité « article ».
Nous aurons besoin de la valeur de deux attributs (famille et numéro) pour
retrouver une instance d’articles parmi d’autres.
o Parfois, le domaine d’application ne fournit pas d’identifiant claire. Pourtant, cette
identification est très importante, notamment pour la réalisation d’une base de
données.
§ Rajout d’un attribut un peu artificiel : identifiant technique. Ses valeurs
permettront de retrouver une instance parmi d’autres.
- Nous retrouvons la notion de cardinalité chez les attributs. Les cardinalités d’attribut
déterminent le nombre minimum et maximum de valeurs pour cet attribut, pour une
instance donnée.
o Dans le cas de l’attribut téléphone, nous avons une cardinalité de minimum de zéro
(on pourrait avoir minimum 0 valeurs, pour le téléphone, pour une instance
donnée). Cardinalité maximum = 5
o Si attribut minimum = 0 à facultatif
o Si attribut > 0 à obligatoire
o Attribut mono valué à Maximum = 1
o Attribut multi valué à Maximum > 1 (N valeur)
o Par défaut, les cardinalités sont évaluées à (1;1) à cas le plus fréquent à mono
valué et obligatoire.
- Domaine : ensemble de ses valeurs permises
o On peut spécifier pour un attribut donné, un ensemble de valeurs qui sont
autorisées à l’utilisateur, c’est ce qu’on appelle un domaine. C’est un exemple de
contrainte d’intégrité.
o Exemple : pour un attribut salaire, on pourrait tolérer que les valeurs comprises
dans une certaine fourchette à (500,10000). On attribuera, pour cet attribut
« salaire », un domaine.
- Attribut dérivé : certains attributs peuvent être calculés à partir des valeurs d’autres
attributs.
o Exemple : prix TVAC = prix HTVA*(1+taux TVA)
56
Figure 2-50 : exemple attributs, de cardinalités d’attributs et d’attributs composites : pg 62
39
Floriane Riga
2.4.4. GÉNÉRALISATION/SPÉCIALISATION
- Les trois entités recouvrent des concepts assez proches. Elles ont toute une série d’attributs
en commun (nom, numéro, prénom). Pourquoi ? Car ces trois entités (client, prospect et
employé) sont des déclinaisons d’un concept plus général, ce sont des personnes.
o On peut mentionner ce concept plus abstrait à travers une structure de
généralisation/spécialisation, représentée par un triangle, et qui connecte une
entité plus générale (personne) vers des entités plus spécifiques.
o Généralisation : aller du plus spécifique vers le plus général.
o Redondance au niveau des caractéristiques : numéro, nom, prénom. Avec le
mécanisme de généralisation/spécialisation, il est possible de le mentionner
qu’une seule fois en les définissant au niveau de l’identité personne et en
implémentant, de manière implicite, un mécanisme d’héritage : toutes les
propriétés de « personne » seront héritées par les « clients, prospects et
employés ».
o Les entités les plus personnalisées sont perçues comme des catégories de l’entité
la plus générale. Client/prospect/employé sont des catégories de personne.
57
58
57
Figure 2-52 : exemple de généralisation : pg 64
58
Figure 2-54 : exemple de spécialisation : pg 65
40
Floriane Riga
59
59
Figure 2-53 : exemple de l’héritage : pg 64
41
Floriane Riga
- Exemple n°1 :
o Des séminaires sont organisés sous forme de sessions qui se déroulent à une
certaine date. Une session est animée pour un ensemble de participants. Une
session est reliée à des locaux et un séminaire est animé par 1 ou plusieurs
conférenciers.
o Les conférenciers et les participants sont des catégories de personnes. Une même
personne peut être conférencier et participant (propriété de recouvrement).
- Exemple n°2 :
60
60
Figure 2-56 : exemple d’arbre de généralisation/spécialisation : pg 66
42
Floriane Riga
61
o Des personnes connectées à des villes selon deux associations. Rien n’empêche
d’avoir autant d’association qu’on souhaite entre deux mêmes entités (habite &
travaille).
o NB : On peut (option) libeller les arcs qui connectent les entités à l’association dans
une volonté de pédagogie de documentation.
62
o Un produit est associé à lui-même dans une composition de kit. Ça veut donc dire
que plusieurs produits peuvent rentrer dans la composition d’un autre produit (kit).
Mais ces produits qui rentrent dans la composition d’autres produits sont eux-
mêmes des produits. On se retrouve dans une situation particulière où une entité
est associée à elle-même.
61
Vidéo 2F : 08:06
62
Vidéo 2F : 08:43
43
Floriane Riga
- Stock : « numStock » devrait être définit comme identifiant de cette identité Stock
- Détail commande : pas d’identifiant déclaré à rajouter un identifiant technique
- La cardinalité d’ « article » vers « pour » : qui devrait être de 0-N étant donné qu’on peut
retrouver le même article dans plusieurs commandes/ un même article peut être repris
plusieurs fois dans un détail de commande.
- Triangle généralisation/spécialisation : oublié de mentionner les propriétés
- Brico : redéfinit les attributs « modèle » et « quantité en stock » qui sont pourtant hérités
au niveau d’ « article » .
- Employé/Facture : généralisation/spécialisation problématique étant donné que ni les
employés ni les factures sont une catégorie de commandes.
- NumCli dans « commande » : veut probablement mentionner le fait qu’une commande est
liée à un client mais pas correct car l’association « passe » exprime le lien entre une
commande et un client.
44
Floriane Riga
2.5. NOTATIONS
2.6. CONCLUSION
45
Floriane Riga
63
63
Figure 3-1 : systèmes et catégories de données : pg 82
46
Floriane Riga
o Conclusion :
- Pour interagir avec la base de données (ensemble de zéros et de uns), il faut du logiciel. Ce
logiciel, c’est un système de gestion de bases de données (SGBD).
47
Floriane Riga
3.2. ARCHITECTURES
48
Floriane Riga
64
65
64
Figure 3-3 : architecture d’une BD et d’un SGBD : pg 86
65
Figure 3-4 : fonctionnement de l’architecture client-serveur : pg 87
49
Floriane Riga
o Apports :
§ Autonomie du gestionnaire : rapatrier des données qui sont stockées dans
une BDD pour les exploiter à des fins personnelles : analyses, prédictions,
publipostage
67
66
Capacité d'être présent en plusieurs lieux à la fois
67
Figure 3-5 : architecture à trois tiers : pg 89
50
Floriane Riga
- Sécurité :
o Ampleur inouïe de la digitalisation de notre vie privée et professionnelle
o Systèmes d’informations et BDD des entreprises deviennent accessibles sur
internet
o Ces BDD contiennent des informations/données personnelles sur des clients, la
santé, le coût de revient sur les produits
o Ces patrimoines d’informations intéressent les cybercriminels car ils peuvent en
tirer un certain profit
o Les régulations émergent à RGPD (règlement général sur la protection des
données à caractère personnel) qui tente d’influencer dans le bon sens les acteurs
de la sécurité des systèmes informatiques
51
Floriane Riga
68
68
Figure 3-6 : exemples de questionnement à propos de la sécurité des BD : pg 90
52
Floriane Riga
3.4.1. TABLE
- Définition 29 : Une table : contient les données d’un ensemble d’objets similaires du
domaine d’application (toutes les données concernant des étudiants, des produits, etc.).
Les colonnes de la table correspondent aux caractéristique de ces objets, tandis qu’une
ligne reprend les données d’un même objet.
o Il n’y a pas de relation d’ordre au niveau d’une table (même si on peut demander à
un SGBD de trier des données sur l’une ou l’autre colonne à n’importe quel
moment)
69
o Colonne :
§ Nom de la contrainte
§ Type de données : caractère, de la date, du numérique
§ Contraintes : qui correspondent aux données enregistrées dans cette
colonne
69
Figure 3-7 : exemple d’une table EMPLOYE : pg 93
53
Floriane Riga
- Travailler avec une telle structure (voir ci-dessus), n’est pas terrible car :
o Il y a plein de redondances dans cette table :
§ La localisation du département de production, Wavre, est répétée pour
tous les employés de ce département (4x)
§ Problème de MAJ à si déménagement, il faut modifier la localisation pour
tous les employés ce qui est assez lourd
§ Comment faire pour représenter un département qui n’aurait aucun
employés (qu’on vient de créer) ? Ça manque de naturel
- Solution :
o Exploser cette table en 2 tables
54
Floriane Riga
- Définition 31 : Une clé étrangère d’une table : est une colonne ou une collection de
colonnes dont les valeurs font référence aux valeurs de la clé primaire d’une autre table.
o Les correspondances entre des employés et des départements (voir tableau)
suivent une logique de 1 à plusieurs (voir flèche bleue) à Pour 1 département, on
peut connecter plusieurs employés
o Dans le modèle relationnel, on peut représenter des correspondances de 1 à 1
(nous ne le développerons pas) ; de 1 à plusieurs (comme c’est le cas ici) ; mais pas
de plusieurs à plusieurs
- Dans la suite, nous allons représenter les schémas, de 1 à plusieurs (one to many), comme
suit :
70
o Rectangles qui reprennent les noms des tables ainsi que leurs colonnes respectives
o Des correspondances entre tables indiquées par des flèches entre ces différentes
tables
o Les clés primaires seront soulignées et les clés étrangères seront écrites en italique
- Les correspondances de plusieurs à plusieurs (many to many) :
o Exemple avec des commandes qui peuvent porter sur plusieurs articles et des
articles qui, eux-mêmes, peuvent porter sur plusieurs commandes
o On fait donc face à une correspondance de plusieurs à plusieurs qui n’est pas
directement supporté par les BDD relationnelles.
§ Rajouter une table de lien (ligne de commande) qui contiendra 2 clés
étrangères (NUMCOM & NUMART) qui feront respectivement référence
aux tables commande et articles
§ à Décomposer 1 correspondance de plusieurs à plusieurs en 2
correspondances de 1 à plusieurs
71
70
Figure 3-8 : exemple de correspondance de 1 à plusieurs : pg 94
71
Figure 3-9 : exemple de correspondance de plusieurs à plusieurs : pg 95
55
Floriane Riga
§ La commande 2016/21 porte donc sur les articles 1, 3 et 4. Pour une même
commande, on retrouve plusieurs articles
§ À l’inverse, le même article (par exemple : article 4) peut être repris dans
plusieurs commandes
72
qui garantit le maintien du caractère correcte et complet des données. Une donnée ne peut être modifiée ou
supprimée que par les utilisateurs autorisés.
56
Floriane Riga
- /
57
Floriane Riga
o Data Control Language (DCL) : Créer des utilisateurs. Avec l’instruction grant, on.
Peut autoriser l’utilisateur à accéder aux différents objets de la BDD.
o Data Manipulation Language (DML) : On peut agir sur les données proprement
dites.
§ Par exemple, l’insertion insert permet de rajouter des lignes dans une table
§ Effet de l’exemple : ajouter une nouvelle ligne dans la table. Employé qui
va comporter l’élément entre parenthèses
58
Floriane Riga
§ Delete : on peut supprimer des lignes dans une table : ex : supprimer toutes
les lignes des employés où la condition est satisfaite à NumDep =1
INSTRUCTION SELECT
- Syntaxe simplifiée :
o 2 clauses obligatoires:
§ Select : indiquer les colonnes qui doivent faire partie du résultat
§ From : spécifier la/les tables(s) d’où proviennent les colonnes à afficher
o 2 clauses optionnelles:
§ Where: indiquer des conditions pour filtrer les lignes à afficher
§ Order by: spécifier les colonnes qui vont jouer le rôle de clé de tri dans
l’affichage de résultats
o Exemple :
§ On affiche une colonne (nom) en provenance de la table « employé »
§ Le deuxième précise qu’on affiche toutes les colonnes (*) de la table
« employé »
59
Floriane Riga
TRI
- Par défaut, le résultat d’une instruction SQL n’est pas ordonné
o Order By : forcer le tri de colonne (sur le nom par exemple)
§ Résultat :
60
Floriane Riga
61
Floriane Riga
LIGNES DUPLIQUÉES
o Avec Select Fonction From Employé, on va afficher toutes les valeurs des fonctions
pour tous les employés de la table employé
§ La valeur d’une fonction sera renvoyée autant de fois qu’il n’y a d’employés
au sein de cette fonction
o Si on veut obtenir des valeurs différentes d’une ligne de résultats, il faut placer
derrière « select » le mot « distinct »
§ Select distinct fonction va afficher les occurrences uniques des fonctions
§ NB : l’unicité se joue sur la ligne et pas la colonne
62
Floriane Riga
CONDITIONS DE SÉLECTION
CONDITIONS DE SÉLECTION
- Très souvent, on va vouloir filtrer les lignes d’une table avec un condition where. Se
compose comme suit :
o Mot clé where suivit de 3 éléments :
§ Un opérateur (=)
§ Deux opérants de part et d’autre de l’opérateur
• À gauche, une colonne, la fonction
• À droite, un argument de type texte : « manager ». Attention,
l’argument de type texte doit être délimité par des guillemets. Ça
permet de faire la différence entre un argument de type texte et
le nom d’une colonne ou d’une table
o Le résultat filtre les lignes d’une table
- Notations :
o Égal : =
o Plus grand que : >
o Plus grand ou égal à : >=
o Plus petit que : <
o Plus petit ou égal à : <=
o Différent de : !=
- Opérateur like :
o Il peut être combiné avec deux symboles :
§ % : Chaîne de caractères de longueur quelconque
§ _ : symbolise une position, un caractère quelconque
o Exemple : Fonction like « %eur » à filtre les fonctions qui commencent par
n’importe quoi et qui termine par eur :
63
Floriane Riga
- A in (X, Y)
o La liste de valeurs qui suit « in » doit être placée entre parenthèses, chaque valeur
étant séparée de la suivante par une virgule
o Exemple : Numdep in (1,3) : les numéros de département doivent soit avoir la
valeur 1 soit la valeur 3
64
Floriane Riga
65
Floriane Riga
o NB :
§ On prend en compte l’ordre des opérations
§ On peut utiliser le
• « not » : pour nier la condition de sélection qui suit
• « xor » : ou « exclusif » logique, qui calcule l’union des lignes
sélectionnées par chacun des critères en excluant les
intersections , à savoir les lignes qui satisfont au plus à un critère
DONNÉES DÉRIVÉES
66
Floriane Riga
AGRÉGATION 73
- On peut ressortir des données agrégées à partir de tables en combinant le résultat de
plusieurs lignes pour obtenir un résultat agrégé
o Demander via le SQL de calculer la moyenne/somme/max /min/etc. des salaires de
tous les employés via une table employé
- Différentes fonctions d’agrégation :
o Select count(*) as NBR_EMPLOYES from EMPLOYE : a pour effet de compter le
nombre de lignes dans une table
o Select avg (Salaire) as SALAIRE_MOYEN from EMPLOYE : calcul le salaire moyen
(average)
o Select max(SALAIRE) – min(SALAIRE) as ECART_MAX from EMPLOYE : calcul le plus
grand écart de salaires
o Group by : produire des résultats agrégés pour des groupes de lignes qui
correspondent à un critère de sélection
73
Réunion d’éléments distincts en un tout homogène
67
Floriane Riga
HAVING
- La close having :
o Suit la close group by
o Il est possible d’appliquer un filtre ou une condition sur les données agrégées
o On a posé la condition telle que les salaires supérieurs/égaux à 2500 seront les seuls
pris en compte
68
Floriane Riga
WHERE
- Une même instruction SQL peut combiner à la fois un where et un having
o Le where va filtrer les lignes avant le regroupement
o Le having va appliquer une condition de sélection sur les données agrégées après
le regroupement
o Ordre à where, group by, having
69
Floriane Riga
VALEURS NULL
!! Attention !!
- Une expression calculée sur une valeur null renverra toujours une valeur null
o Somme des salaires et des primes : si la prime à une valeur nulle, la somme sera
null
- Attention aussi aux fonctions d’agrégation : si on applique sum/min/max/avg à un
ensemble vide à Null
- Le comptage d’un ensemble vide va renvoyer à 0 et pas null
TP - EXERCICES
select NOM
from employe
where SALAIRE > 6000
70
Floriane Riga
74
Attention, la prof s’est trompée et a calculé 110% au lieu de 10% (*1,1)
71
Floriane Riga
select NUMDEP
from employe
group by NUMDEP
having count(*) >= 5
Variante: pour afficher la colonne NUMDEP ET NBR_EMPLOYE :
select NUMDEP, count(*) as NBR_EMPLOYES
from employe
group by NUMDEP
having count(*) >= 5
select NUMDEP
from employe
where salaire > 4000
group by NUMDEP
having count(*) >= 5
72
Floriane Riga
select *
from client
where (ville in ("Namur", "Bruxelles") and remise > 10)
or (remise = 0 and Numemp = 3298)
order by remise desc, nom
73
Floriane Riga
- Il est possible d’adresser la même table dans la requête principale et dans la sous-requête
o Dans ce cas-ci, on va afficher la liste des employés dans le numéro de département
est celui d’un autre employé
o Le but est d’afficher toutes les personnes ayant le même NUMDEP que Pirlot
- On affiche le nom des employés dont le salaire est supérieur à la moyenne des salaires de
tous les employés de ma table employé
- On veut relier deux tableaux qui sont reliés via deux intermédiaires : on va devoir imbriquer
3 niveaux de sous-requêtes, chaque requête étant reliée au niveau supérieur sur base d’une
égalité clé primaire/clé étrangère
o On prend la table via laquelle on doit afficher la colonne : clients filtrés par des
commandes qui vont être filtrées par des lignes de commandes qui vont être
filtrées par rapport à des lignes de la table article qui correspondent à une condition
de sélection : groupe = vtt
- Jointure interne :
o Le principe de la jointure est de mentionner derrière la clause from non plus 1 table
mais deux tables voir plus
74
Floriane Riga
§ On est dans le cas d’une jointure interne car seul les lignes qui ont des
correspondances dans la table jointe sont affichées
§ Geldorf (directeur) n’avait pas de département donc pas affiché
- Jointure externe : Il est possible d’afficher toutes les lignes d’une table, mêmes celles qui
n’auraient pas de correspondance dans la table jointe
o On rajoute devant le mot clé join deux mots clés « left outer » pour afficher
complètement la table qui est à gauche du mot clé join
o L’emplacement de EMPLOYE et de DEPARTEMENT est arbitraire et peut être
échangé
75
Floriane Riga
3.8. EXERCICES
76
Floriane Riga
77
Floriane Riga
4.5. VISUALISATION
78
Floriane Riga
4.7. EXERCICES
5. MICROSOFT ACCESS
79
Floriane Riga
80
Floriane Riga
o Assistant liste de choix*1...: Pour sélectionner une liste déroulante contenant des
valeurs d’une autre table.
- Insérer le nom + type + (description)
o Eviter les noms trop génériques et les caractères spéciaux
- Sélectionner la clé primaire : clic droit sur l’extrême gauche de la ligne à Symbole d’une
clé
- Enregistrer : Ctrl/Cmd +S ou Fichiers + Enregistrer
o Donner un nom explicite à la table créée
- Insérer des contraintes / Propriétés
o De nullité (valeur obligatoire) : modifier « Null interdit : non » en « Null interdit :
oui »
o Espace = valeur : modifier « chaîne vide autorisée : ouià non »
o Modifier le format de Dates/Heure est possible :
o Règle de validation :
o Rajouter une fonction qui précise « <Date () » à La date de naissance est valide si
elle est inférieure à la date actuelle (la personne ne peut pas être née le jour même
ou le jour suivant).
81
Floriane Riga
o Masque de saisie :
82
Floriane Riga
83
Floriane Riga
84
Floriane Riga
85
Floriane Riga
o Résultat
- Requête paramétrée :
86
Floriane Riga
- Requêtes multitables :
o Il est possible de réaliser des requêtes sur plusieurs tables de manière simultanée
o Sélectionner deux tables (dans le tableau de droite)
87
Floriane Riga
- Créer un formulaire
o Créer
o Assistant formulaire
§ On peut en créer sur la base de tables ou de requêtes
88
Floriane Riga
o Choix d’affichage :
§ La partie gauche de la fenêtre vous donne une image du type de
présentation.
• L'option Colonne simple: chaque champ apparait sur une ligne
distincte avec, à sa gauche, une étiquette.
• L'option Tabulaire va afficher les champs l’un à côté de l'autre avec
adaptation de l’affichage par MS-ACCESS.
• L'option Feuille de données va afficher les champs de la même
manière que lors de l'entrée des données dans une table.
Remarque: cette option n'est pas pratique si l'utilisateur ne
connaît pas tous les champs.
• Le mode Justifié va afficher les champs l'un à coté de l'autre sauf
que l’option ne réduira pas la taille des champs. Il va afficher les
autres champs en dessous.
o Résultat
89
Floriane Riga
90
Floriane Riga
o Résultat
91
Floriane Riga
92
Floriane Riga
o Choisir le type d’affichage du bouton: avec un texte ou une image, puis Suivant
93
Floriane Riga
94
Floriane Riga
- Un état : est une représentation des enregistrements de la base de données qui est mise
sur papier. On peut trier et regrouper l'information sur des champs pertinents.
95
Floriane Riga
- Regroupement
o En option, si vous voulez regrouper les enregistrements sur un champ en
particulier, vous pouvez aussi faire des regroupements à l'intérieur de
96
Floriane Riga
regroupements.
o Si vous ne voulez pas regrouper en niveau, alors vous pouvez laisser tel quel.
97
Floriane Riga
98
Floriane Riga
99
Floriane Riga
100
Floriane Riga
101
Floriane Riga
102