Vous êtes sur la page 1sur 383

Plan pour le module:

Systèmes d’information et bases de données


 Analyse et conception des systèmes d’information :
- Notion de systémique- cycle de vie- typologie des méthodes
modèles- Démarches.
- Modèles de données : schéma entité- association.
- Modèles de conception et de traitements.
- Maîtrise de la méthode MERISE
 Introduction aux Bases de données :
- Introductions aux SGBD et au modèle relationnel.
- Langage d’interrogation SQL

1
Introduction
Objectif

A la fin de ce cours l’étudiant devra être apte à:


• Comprendre les différents concepts liés à la notion de système d’information,
• Identifier dans un contexte donné les acteurs et leurs tâches,
• Aider à modéliser les flux, les structures, les traitements de données,
• Maîtriser les principales étapes de conception d’une base de données
relationnelle,
• Connaître des progiciels permettant la construction et la gestion d’une base de
données relationnelle,
• Connaître les principales étapes de conception, de développement et de
réalisation d’un système d’information.

2
Analyse et conception des systèmes
d’information

3
Notion de systémique- cycle de vie- typologie des méthodes
modèles- Démarches.

4
Introduction

• Dans l’activité de chaque organisation, on utilise une quantité importante


d’informations.
• Pour être utilisables pour la prise des décisions, ces informations doivent être
stockées, diffusées, traitées et transformées.
• Toute entreprise utilise de l’information pour son fonctionnement ou pour
communiquer avec son environnement. Le gestionnaire doit être capable de
traiter (ou accompagner le traitement) l’information et la rendre utile et
rentable pour l’entreprise.
• Ce cours pose les bases de la prise en main de la méthode Merise en passant
par des modèles simple de différents cas de gestion.

5
Vision globale d’un entreprise

Décider des actions à conduire. Système de DECISION

Collecter,
mémoriser,
traiter, Système
distribuer, d’INFORMATION
l’information.

Assurer les fonctions :


. facturer les clients,
. fabriquer les produits, Système OPERANT
.…

6
Analyse Systémique de l’Entreprise
Chaque système apporte des services à l’autre

7
Système découpage
• On peut distinguer 3 sous-systèmes :
• Le système de pilotage : direction, régulation, contrôle, décisions,
définition des objectifs
• Le système opérant : Réalisation des tâches, donne des informations sur
l’état du système
• Le système d'information : Interface entre les deux systèmes précédents.
Le SI est la mémoire de l'organisation.
• Le système de pilotage : Contrôle et dirige l'ensemble
 Élaborer des règles de gestions et produire des décisions
• Le système opérant : transforme les flux d'entré es et flux de sorties
 La transformation des flux
• Le SI transmet les ordres au système de production (ou système opérant)
et renvoie au système de pilotage

8
Analyse Systémique de l’Entreprise

9
Exemples de flux d’information

10
L’information…?

• Ensemble complexe, composé de données et de liens.

• Décrit une activité.

• Plusieurs valeurs possibles.

11
Approches pour étudier le SI

12
Système d’information - Définition

Un système d'Information (noté SI) représente l'ensemble des éléments


participant :
• Collecter l’information : Enregistrer une information (support papier,
informatique…) avant son traitement
• Mémoriser l’information (stockage) : Conserver, archiver (utilisation
ultérieure ou obligation légale)
• Traiter l’information : effectuer des opérations (calcul, tri,
classement, résumé, …)
• Diffuser : transmettre à la bonne personne (éditer, imprimer, afficher,
… une info après traitement)

13
Et la grande question est…

Comment réaliser un « bon » système d’information ?


La réponse sur les techniques et démarches classiques du Génie Logiciel :

•Analyse
• de l’existant et des besoins de l’utilisateur.
•Conception
• du système et du logiciel.

•Réalisation
• Traduction des algorithmes dans un langage choisi.
•Tests du logiciel
• Vérification et validation du logiciel.
• Tests de non régression.
•Exploitation
• Utiliser le logiciel une fois installé.
•Maintenance
• Correction des erreurs.
• Ajouts de fonctionnalité.
•… 14
Qualités d’un SI

• Rapidité et facilité d’accès à l’information


– Trop lent ou compliqué peut décourager les utilisateurs
– L’utilisateur doit pouvoir réagir au plus vite
– Efficacité et pertinence des décisions
•Pour ce faire
– Machines performantes
– BDD et réseaux locaux
– Interfaces conviviales

15
Qualités d’un SI

• Fiabilité des informations


– Informations sûres et fiables
– Le SI doit fournir des informations à jour
•Ex : Pour commander un article il faut connaître l’état du
stock. Le stock doit donc être mis à jour automatiquement.
•Pour ce faire
– Humain : Promptitude des saisies (procédures)
– Machine : Disponible quand on en a besoin
• Les indispensables opérations de maintenance en
dehors des heures de travail

16
Qualités d’un SI

• Intégrité des informations


– Le système maintient les informations dans un état cohérent
– Le SI doit savoir réagir à des situations qui risquent de rendre les
informations incohérentes
•Ex : Si communication interrompue entre 2 ordinateurs
qui doivent synchroniser leurs données
•Le système doit être capable de reconstituer une
situation correcte

17
Qualités d’un SI

Pertinence de l’information
– Filtrer l’information en fonction de l’utilisateur
• Ex: Le directeur commercial n’a pas besoin de connaître
le détail de chaque commande, mais simplement le
montant des commandes en cours
• Sécurité de l’information
– Sauvegarde
• Système critique => machine à tolérance de panne
élevée
– Malveillance, attaques extérieures
• Routeurs filtrants, anti-virus, pare-feu, détecteurs
d’intrusions

18
Qualités d’un SI

Confidentialité de l’information
–Aspect crucial, espionnage industriel, …
– Moyens matériels
•Lecteurs de cartes, de badges
•Lecteurs d’empreintes
– Moyens logiciels
•Identification
•Permissions sur des fichiers ou des BDD
•Cryptage des canaux de transmission
•Terminaux mobile : qui le consulte ? Attention!!!!!

19
Analyse et Conception de Système
d’Information

Que faut-il pour analyser, concevoir…?

On doit :
• avoir une vision abstraite du fonctionnement,
• garantir les délais, la pertinence, l’efficacité,
• faciliter la maintenance,
• prolonger la durée de vie,
• …

Nous avons, donc, besoin :


• de MODELES,
• de METHODOLOGIE.

20
Modèle…c’est quoi ?

• Un modèle est par définition une représentation abstraite, d’une partie du

monde réel, exprimée dans un langage de représentation.

• Ce langage peut être :


• formel : ayant une syntaxe et une sémantique bien définies comme
• la logique du premier ordre ou,
• un langage informatique,
•…
• Semi-formel : notation graphique normalisée.
(NB. Un langage semi-formel peut être défini comme un langage artificiel
dont la sémantique comporte des éléments d'ambigüité. Par exemple,
un langage de pseudocode informatique est une sorte de langage semi- 21

formel.)
• Informel : description en langage naturel.
Modèle…pourquoi ?
Les principales motivations sont (Vernadat, 2000) :

- comprendre et analyser la structure et le fonctionnement de l’entreprise ;

- prévoir (de manière fiable) le comportement et les performances des


processus opérationnels avant leur implantation ;

- choisir la (ou les) meilleure(s) alternative(s) d'implantation ;

- identifier les risques d'implantation à gérer ;

- justifier les choix d'implantation sur des critères liés aux ressources et
aux coûts (méthodes de comptabilité par activités, par exemple) ;

- bâtir une vision commune du fonctionnement de l’entreprise et la


communiquer facilement au plus grand ensemble possible du
personnel.
22
Méthodologie…pourquoi ?
• Formalisation claire et complète du problème informationnel.

• Maîtrise de la résolution du problème par l’utilisation de critères


objectifs pour évaluer les solutions.

• Construction de SI pertinents, complets, cohérents, fiables flexibles


et adaptatifs.

• Évaluation du SI à tout moment de son cycle de vie.

• Faciliter la coopération entre concepteurs, informaticiens


gestionnaires, utilisateurs.

• Rigueur dans l’élaboration de la solution.

• Réduire les coûts et les délais.

23
Méthodologie…Typologie
• Approche cartésienne.
• Orientée traitements.

• Approche systémique.
• Orientée données.

• Approche Objet.
• Orientée données et traitements.
Méthodologie…exemples
• MERISE : Méthode d’Etude et de Réalisation Informatique pour les
Systèmes d’Entreprises (Tardieu, 83).

• AXIAL : analyse et conception des systèmes d’informations assistés


par logiciel (IBM, 86).

• SSADM : Structured Systems Analysis and Design Method (CCTA,


80).

• SADT : Structured Analysis and Design Technique (Softech, 77).

• RUP : Rational Unified Process.(IBM, 2003).


Merise…Démarche
Partir de principes théoriques,

pour développer un ensemble cohérent de


modèles,

par des raisonnements simples, se


basant sur des définitions et un langage
(visuel) précis,
permettent de construire un système
d’information cohérent et efficace.
26
Merise…deux modèles
 Deux modèles : données et traitements.

 Elaborés séparément.

 Déclinés sur trois niveaux :


1. Conceptuel.
2. Organisationnel.
3. Opérationnel.

 Validation données / traitements.

27
Merise…cycle d’abstraction

Système d’information
manuel
•Recueil des informations
•Délimiter le système.
Expression des Besoins •…

•Construire les MCD et MCT


Modèle Conceptuel

•Construire les MOD et MOT


Modèle Organisationnel

•Construire (entre autres) les MLD,MPD …


Modèle Opérationnel

Système d’information
28
automatique
Recueil de l’information
• Sources externes (Environnement du système)
• Flux en provenance des partenaires (Clients, Fournisseurs,
Administration, …)
• Être à l’écoute pour anticiper les changements et adapter son
fonctionnement
• Sources internes
• Flux générés par les acteurs du système (Approvisionnements,
Production, Gestion des salariés, Comptabilité, Ventes, …)
• Flux formalisés par des procédures
• Flux informels (climat social, savoir faire, …)
Difficiles à recueillir et à exploiter, mais grande importance

29
Recueil de l’information

• Alimenter le SI
– La saisie de l’information est généralement onéreuse
•Nécessite souvent intervention humaine
– Efforts pour automatiser le recueil d’information
• Systèmes en temps réel
• Lecture optique (questionnaires, …)
• Numérisation, Robots d’analyse de contenus, …
•L’info est précieuse, vitale pour l’entreprise
– Mais elle a aussi un coût

30
Mémorisation de l’information

• Assurer la pérennité c’est garantir un stockage durable et fiable


– Les supports privilégiés de l’information sont aujourd’hui les
disques des ordinateurs
• Fichiers sur Disque Dur, DVD, …
• Le SGBD est une composante fondamentale du SI
• Archivage
comme SAP (SAP (Systems, Applications and Products for data
processing)

31
Traitement de l’information

• Pour être exploitable, l’information subit des traitements


– Tri des commandes par date et clients
– Calcul du montant à payer
– Classement, Résumé, …
•Ces traitements peuvent être :
– Manuels (de moins en moins souvent)
– Automatiques (réalisés par des ordinateurs)

32
Diffusion de l’information

• Pour être exploitée, l’information doit parvenir dans les meilleurs


délais à son destinataire
– Forme orale
– Support papier (courrier, note interne, …)
– Support numérique (de plus en plus)
• Vitesse optimale
• Large diffusion
• Internet (web, email, mobiles), Interconnexion des SI

33
Système d’information

Présentation générale des concepts de base


Définition d’un système
Un système est un ensemble d’éléments rassemblés pour réaliser un
objectif:
Produire des sorties par transformation d’un ensemble d’entrées.
Une entreprise par exemple est un système (composé d’Hommes, de
matériel, de méthodes …. Etc.) qui transforme de la matière première en
produits finis.
Un système peut être représenté par le schéma suivant:

Entrée Système Sortie

34
Système exemple

• Une entreprise commercialise une liste de produits :


• En entrée. Les produits achetés, commandes, paiements (clients)
• En sortie. Les produits vendus, factures, paiements (fournisseurs)

• Ou en terme de flux
• Flux physiques : produits acheter, produits vendus
• Flux d'information : paiements clients/fournisseurs

35
Système exemple

• On peut donc conclure qu'un flux déclenche un PROCESSUS.

• Tout chose peut être considérée comme un système

36
SI en bref

1. Le système d’information – SI comporte :


• Des ressources humaines ;
• Des moyens matériels ;
• Des données et des modèles d’interprétation ;
• Des procédures et des règles de fonctionnement
organisationnel.

2. Le SI doit apporter à TOUS les acteurs de l’organisation,


l’INFORMATION dont ils ont BESOIN pour AGIR et
DÉCIDER.

37
Infrastructure logicielle du SI
• Démarche globale d’informatisation :

analyse du problème

conception de la solution

réalisation du système

38
La notion multidimensionnelle du SI

• Le système d’information comporte trois dimensions :


 La dimension informationnelle : manipulation et production de
l’information ;
 La dimension technologique : utilisation des technologies matérielles
et logicielles, et ;
 La dimension organisationnelle : réunissant des individus, des
procédures de travail, une coordination, des partenariats

Nécessité de considérer et d’étudier le SI comme un


objet multidimensionnel, susceptible d’être caractérisé
selon les trois dimensions informationnelle,
technologique & organisationnelle.

39
La dimension
INFORMATIONNELLE

40
La dimension informationnelle

• La vocation première d’un SI est de fournir de l’INFORMATION à ses


utilisateurs.
• Cette INFORMATION, pour être utilisable par l’être humain, doit être
matérialisée sous forme de signaux accessibles à nos sens. Cela conduit à
construire des REPRESENTATIONS…
• …la qualité de ces représentations est susceptible d’influer de manière
importante sur le comportement de leur utilisateur, d’où la PERTINENCE
d’une information.

41
La dimension informationnelle

42
La dimension informationnelle
• Le bilan et le compte de résultat sont des représentations
possibles de l’entreprise…
• …un site Internet est une représentation de l’entreprise…
• …une carte géographique est une représentation d’un territoire
d’un pays…
(*)Ces supports sur lesquels apparaissent des signes, des
signaux…sont des représentations du monde réel…
Une représentation est une image du monde réel : cette
image est composée de signaux pouvant être perçus par
nos sens.

43
La dimension informationnelle
1. Conservation de l’information à laquelle nous
n’aurons plus directement accès : une photographie par
exemple est une représentation d’un moment, d’un paysage
auquel nous n’aurons plus accès direct ou nous n’allons
plus revivre…

2. Communication qui permet l’échange des informations entre


les individus par l’échange de représentations. Exemple : un bon
de commande est une représentation qui une fois communiqué à
un fournisseur, permet à ce dernier de préparer le produits ou le
service en faveur de son client…

3. Concrétisation (simplification) une représentation permet


la simplification et la facilitation de la perception des concepts et
des modèles non directement (facilement) perçus par nos sens.
Exemple : un bilan d’une société rend possible la perception du
patrimoine de celle-ci.
44
La dimension informationnelle
• la pertinence des représentations !

La PERTINENCE d’une représentation est directement liée à


l’utilisation de l’information : est pertinent ce qui CONVIENT, ce qui
EST APPROPRIÉ à une ACTION.
Une représentation sera pertinente si elle répond aux attentes de son
utilisateurs, si elle le satisfait.
La pertinence est donc une notion relative à un utilisateur et à un
contexte d’utilisation…
…est pertinente, l’information qui permet de prendre la bonne
décision…

45
La dimension
TECHNOLOGIQUE

46
La dimension technologique

• Introduction

Système d’information : SI VS Système informatique : SI

Matériel :
Collecte
Hardware
Saisie
ordinateur
Stockage
Traitement Logiciel :
Stockage programme
Communication software

47
La dimension technologique
Fonction de base Exemple de dispositifs technologiques
Saisie
Obtenir des données sous une
forme permettant leur Clavier d'ordinateur, lecteur de codes à barres, scanner,
stockage, leur traitement et enregistreur de sons (magnétophone), caméra vidéo, appareil
leur transmission photographique, etc…
Transmission
Réseau téléphonique, réseau spécialisé dans la transmission des
Déplacement des données données, réseau local, réseau de télévision, réseau radio, réseau
dans l'espace Internet…
Stockage
Conservation organisée des Imprimé (papier), bande magnétique audio et vidéo, CD (compact
données permettant de les Disc), clé USB, mémoire centrale d'ordinateur, disque dur
retrouver ultérieurement d'ordinateur…
Traitement

Création de données nouvelles


à partir des données brutes par Ordinateur + Logiciel correspondant.
le calcul, la mise en ordre, le
changement du format…
Restitution
Remettre les données sous
forme communicable à Imprimante (papier), écran, haut parleur…
l'homme
48
La dimension technologique
• Les principaux apports des techniques du traitement électronique de l’information
peuvent être résumés en 3 principaux apports :

1. Compression du Temps : traiter des données revient à les trier, les calculer, les
sélectionner, les transmettre...pour produire des représentations pertinentes. Les nouveaux
outils de traitement électronique ont permis l’automatisation des opérations avec des
performances de vitesse sans aucune mesure avec celle d’un opérateur humain.
2. Compression de l’espace : à l’heure actuelle, il est possible de transmettre des
volumes considérables à l’aide d’internet entre deux points, quelque soit leur emplacement
dans le globe. L’émergence du télétravail, du bureau à distance, l’entreprise virtuelle, le
phénomène de la globalisation des marchés…sont des conséquences directes de cette
élimination de la distance par le recours aux techniques électronique de communication.
3. L’expansion de l’information stockée : les nouveaux procédés de stockage
permettent aujourd’hui de stocker et d’archiver des volumes importants de données.

49
La dimension
ORGANISATIONNELLE

50
La dimension organisationnelle
• 1 - Le SI est un élément déterminant dans le fonctionnement d’une
organisation :
Le SI fournit dans des conditions déterminées, des représentations nécessaires
aux différents acteurs d’une organisation. Les formes évoluées des technologies
de l’information confèrent au SI des rôles de structuration, d’intégration, de
coordination et d’automatisation du travail susceptibles de modifier
considérablement les conditions du fonctionnement de l’organisation.

1 - Le SI est un élément constitutif de la structure de l’organisation

Le SI redimensionne les frontières d’une organisation, il peut l’étendre à ses


clients, à ses fournisseurs… donnant naissance à de nouvelles formes
d’organisations d’entreprise

51
Conception & mise en place d’un SI

52
Conception & mise en place d’un SI
• Introduction…

Un Système d’Information n’est pas un phénomène spontané. Il est le


résultat d’un travail de CONCEPTION aboutissant à une
IMPLANTATION, synonyme de CHANGEMENT dans
l’organisation…La conception d’un SI peut être caractérisée à la fois
par ses OBJECTIFS et par sa DÉMARCHE.

53
Conception & mise en place d’un SI

Les objectifs :
Un système d’information doit répondre aux besoins spécifiques
de ses futures utilisateurs. Un travail préliminaire consiste à définir
un CAHIER DES CHARGES qui exprime de façon structurée, les
besoins que doit satisfaire le futur SI…
…ce cahier des charges va ensuite être interprété par des
spécialistes, analystes, concepteurs en un schéma de système à
réaliser…
…ce schéma doit intégré de manière cohérente les choix relatives
aux trois dimensions composantes d’un SI « informationnelle,
technologique & organisationnelle ».

54
Conception & mise en place d’un SI
1.1 Les choix informationnels :
• Correspondent aux choix relatifs aux représentations souhaitées. Il s’agit ici de
choisir quelles sont les représentation à produire pour chaque utilisateur ce qui
conduira à la définir des MODÈLES de données et les règles de transformation
de ces données par des modèles de traitements.

1.2 Les choix organisationnels :


Correspondent aux choix relatifs aux acteurs et aux procédures de travail. Il s’agit
de répondre à la question « QUI FAIT QUOI ? ».

1.3 Les choix techniques :


Correspondent aux choix relatifs aux matériels et logiciels à utiliser et la façon dont ils
seront utilisés.

55
Conception & mise en place d’un SI

56
Conception & mise en place d’un SI
• …pour résumer :

• Contrainte de pertinence : les représentations fournies par le SI doivent être


pertinentes pour les utilisateurs et correspondre à leurs besoins.
• Contrainte de praticabilité : les représentations utilisées et les traitements demandées
doivent être manipulables par les outils techniques utilisés ;
• Contrainte d’adéquation : les techniques retenues doivent être compatibles avec les
moyens économiques de l’organisation et utilisables dans le contexte de travail.

57
Conception & mise en place d’un SI
La démarche

Pour les SI de dimension très limitée, la construction peut prendre des formes
d’essais, d’erreurs, de tâtonnements, de modifications... Au-delà d’une certaine
dimension, cette approche empirique n’est pas possible et il est indispensable de
PLANIFIER le SI « Schéma directeur » et d’ORGANISER le processus de sa
construction et sa mise en place de manière MÉTHODIQUE…

…cette démarche méthodique peut être schématisée comme suit (cycle de vie du
projet) :

58
Conception & mise en place d’un SI

59
Conception & mise en place d’un SI
2. 1 Schéma directeur

La démarche de planification d’un SI doit fournir la réponse à deux questions :


1. Quels sont les objectifs à retenir ?
2. Quelles sont les ressources à prévoir ?

Cette démarche de planification produit un ensemble de résultats désignés généralement par le


terme « schéma directeur »…
Ce dernier comprend généralement :

Schéma directeur

Plans d’action
Projets à réaliser Moyens à utiliser
par projet

60
Conception & mise en place d’un SI
2. 1 Schéma directeur (suite)

Schéma directeur

Plans d’action
Projets à réaliser Moyens à utiliser
par projet
Traduction des Définition des moyens Pour chaque projet
objectifs assignés au nécessaires pour la inscrit dans le schéma
SI en objectifs. réalisation des projets directeur, le plan
Les applications que (matériels, logiciels et d’action explicite les
l’entreprise cherche à humains). Ce volet choix essentiels :
développer sont permet d’évaluer objectifs, moyens
décrites par leur l’adéquation alloués, contraintes à
caractéristiques ressources disponibles respecter, délais,
principales : objectifs à dans l’entreprise et limites…
satisfaire, champs permet leur ajustement
couvert, en cas d’insuffisance.
fonctionnalités
principales… 61
Conception & mise en place d’un SI

2. 2 Définition initiale « analyse préalable »

Dans le cas de l’existence d’un schéma directeur, l’objectif de l’analyse préalable est :

La Mise à jour du plan d’action par rapport aux changements d’orientation


stratégique, changements technologiques

Par ailleurs, en l’absence d’un schéma directeur, cette phase est l’occasion pour
l’entreprise de définir et mettre en place l’AVANT PROJET de la solution à
concevoir.

Étude de Diagnostic Évaluation des


Recherche de
l’existant Formulation solutions
solutions
du problème

62
Conception & mise en place d’un SI
2.3 La conception
La phase de conception est le « pont » entre la définition du besoin (problème) et la
réalisation...
elle comporte généralement 2 phases :

Phase 1 Phase 2

Définition de la dimension Introduction de la dimension


informationnelle à travers la organisationnelle avec les choix
définition des données technologiques.
nécessaires pour l’exécution des
Définition des rôles de chacun, « qui fait
tâches.
quoi », la chronologie « quand » la répartition
spatiale « où », et comment « quel outil »
Il s’agit de répondre à la question : (liaison avec les choix de la technologie).
Quelle structure des données et
pourquoi faire?
63
Conception & mise en place d’un SI
2.3 La conception en schéma :

64
Conception & mise en place d’un SI
2. 3 Le développement
Cette étape correspond à l’intégration totale de la dimension technologique. L’analyse, la
programmation et les tests sont les principales sous étapes…on peut distinguer deux grandes
phases.

Phase 1 Phase 2

Analyse détaillée (organique) Programmation et tests

Il s’agit d’établir une description détaillée Une fois bien décris, les programmes sont
des traitements d’une part (programmes), écrits et testés (cette phase peut être réduite
des données d’autre part en tenant compte si on utilise des logiciels achetés).
des particularités du matériel et logiciel
Les tests du programme sont effectués à
utilisés.
partir d’un échantillon de données, d’une
situation bêta…

65
Conception & mise en place d’un SI
2. 3.1 L’implantation : Travaux à mener en parallèle

 Installation des matériels : peut être lourde si la solution exige un saut technologique ;
 Installation et tests des logiciels : toutes les applications doivent être installées dans
leurs conditions normales de fonctionnement ;
 Constitution des bases de données : dans le cas où la solution fait appel à de
nouvelles bases de données ;
 Formation des utilisateurs aux nouvelles procédures de travail tant pour les parties
manuelles (inputs) que pour les tâches assistés par ordinateurs (graphiques, tableaux,
…). Cette phase de formation est indispensable !

66
Conception & mise en place d’un SI

2. 3.3 L’implantation : démarrage effectif.

Après une série de corrections et d’adaptations des versions


provisoires…la réception et l’installation définitive de la solution est
opérée…
…cette étape marque l’aboutissement du projet qui entrera par la suite
dans un cycle de maintenance.

67
Conception & mise en place d’un SI
2. 3 L’implantation en schéma

68
Conception & mise en place d’un SI
2. 3.1 Conséquences de l’implantation

Le passage d’un SI en projet à un SI effectif opérationnel implique inéluctablement, une


modification des tâches, des rôles, de l’affectation des personnes, des processus de
travail, de communication…donc, introduction du changement dans l’organisation.

En général :

Implantation d’un Changement des Changement du


SI procédures de travail mode opératoire

69
Conception & mise en place d’un SI

2. 3.1 Conséquences de l’implantation (suite)

L’introduction d’une nouvelle technologie se traduit par un double apport :

1. Elle génératrice de règles et contraintes ;

2. Elle offre des ressources supplémentaires.

70
Conclusions
1. La notion de SI est une notion multidimensionnelle comprenant trois dimension :
informationnelle, technologique & organisationnelle …pour bien comprendre la
notion de SI, il est indispensable de prendre simultanément ces trois dimensions !

2. Le SI doit répondre de manière efficace aux besoins exprimés par ses futurs
utilisateurs…le SI n’est qu’un INSTRUMENT devrant faciliter, organiser,
structurer, coordonner le travail en organisation !

3. La mise en place d’un SI doit s’inscrire dans une démarche durable et constitue
donc un objet qu’il faut PLANIFIER, ORGANISER, FINALISER, ANIMER,
MAINTENIR et CONTRÔLER.

4. Les usages d’un SI peuvent prendre plusieurs formes, pouvant être regroupées en
2 grandes catégories, les usages fonctionnels et les usages pour l’aide à la
décision

71
Les applications fonctionnelles du SI

72
Introduction

Usages des SI

Applications
Applications Applications
Applications d’aide à la
d’aide à la d’aide à la
fonctionnelles gestion des
décision communication
connaissances
APPLICATION FONCTIONNELLE

Une application informatique est un ensemble de logiciels articulés entre eux pour
automatiser et faciliter le traitement des informations…

Une application fonctionnelle désigne des réalisations informatiques conçues pour assister
la conduite des fonctions essentielles de toute entreprise. On peut donc parler de :

 Gestion comptable et financière ;


 Gestion commerciale ;
 Gestion de la production ;
 Gestion des ressources humaines…
APPLICATION FONCTIONNELLE

Une application fonctionnelle est caractérisée par deux objectifs généraux :

1. Assistance pour le traitement des transactions « courantes »;


2. Information des gestionnaires à différents niveaux.

…les systèmes d’information fonctionnels assurent le traitement des transactions


& des opérations et fournissent l’information utile pour la gestion.
Le système d’information et l’Aide à la
décision
Aide à la Décision - Introduction
Au début des années 70, le professeur Henry Mintzberg a mis au point un nouveau
modèle de gestion…
…ce modèle considère la gestion comme l’exécution de rôles de gestion.
Un gestionnaire est dans une position qui lui donne l’autorité d’endosser les
rôles suivants :

1 Les rôles interpersonnels

2 Les rôles informationnels

3 Les rôles décisionnels


Aide à la Décision - Introduction
1 Les rôles interpersonnels
Un gestionnaire devrait être :
1. Un superviseur hiérarchique pour ses subordonnés ;
2. Un agent de liaison avec l’environnement externe ;
3. Un représentant de l’ensemble de l’organisation lors des
cérémonies officielles.

2 Les rôles informationnels


Un gestionnaire doit être :
1. Un contrôleur de l’information relative au rendement
organisationnel
2. Un diffuseur de l’information à l’intérieur de l’organisation
3. Un porte-parole face à l’environnement externe.
Aide à la Décision - Introduction

3 Les rôles décisionnels

Un gestionnaire devrait être :


1. Un entrepreneur innovant ;
2. Un redresseur qui prend des mesures correctives ;
3. Un répartiteur de ressources ;
4. Un négociateur (en cas de conflits).
La Décision c’est QUOI…& QUAND?
QUAND
Décision Choix
Mais avant de faire ce choix…il existe tout un processus de prise de conscience du
problème, d’investigation et d’analyse qui précède la phase finale de choix puis suivi par la
phase d’évaluation.

Problème à
résoudre

Un problème en gestion = un écart entre la situation réelle et la situation


prévue ou espérée
La Décision c’est QUOI…& QUAND?
QUAND

Le gestionnaire est toujours en position d’évaluation des choix offerts face à un


problème pour la prise de la décision optimale.
Processus de prise de Décision
Le modèle classique issu des travaux de Herbert SIMON, économiste et lauréat
d’un prix Nobel (Modèle IMC) apporte une représentation permettant de bien
caractériser les phases du processus de résolution de problème.

Le modèle IMC de SIMON propose quatre phases :


1. Intelligence ;
2. Modélisation ;
3. Choix, et;
4. Évaluation.
Modèle IMC
INTELLIGENCE
Identification du problème

MODÉLISATION
Recherches des actions
possibles

CHOIX
Application de règles pour
choisir une action

ÉVALUATION
Test du choix retenu

SATISFAISANT exécution
NON OUI
?
Modèle IMC

Le modèle IMC de SIMON :

1. Intelligence :
répondre à la question « de quoi s’agit-il?, le mot intelligence correspond ici
au sens militaire du terme : recherche et renseignement.
C’est une phase de sondage de l’environnement et de repérage des
événements requérant des décisions.
Modèle IMC
2. Modélisation :
C’est une phase de conception et de formulation des voies de solutions
possibles…
Il s’agit de définir des scénarii de réponse à travers des modèles d’action

3. Choix :
C’est une phase de prise de position et de sélection d’un choix entre ceux
possibles, explorés durant la phase précédente.
Modèle IMC
2. Évaluation
C’est une phase importante dans la mesure où elle détermine si le choix
retenu est adapté donc validé, sinon il est remis en cause et entraîne un
retour en arrière vers une ou plusieurs phase du processus IMC

En quoi le système d’information peut il aider les gestionnaires tout


au long de ce processus de prise de décision ?
SI & Aide à la Décision

1.Intelligence :
Un SIAD permet à l’aide d’un ordinateur, de rechercher des données,
de faire des traitements et de déceler toute anomalie ou détecter tout
écart …
Un ordinateur équipé d’un logiciel d’alerte peut alerter le décideur soit
par un message, soit en éditant un mail d’une situation de dépassement,
d’insuffisance, de rupture,…
Outre cette fonction, un ordinateur permet le stockage des données et
leurs restitution pour toute éventuelle réutilisation dans des cas
similaires.
SI & Aide à la Décision
2.Modélisation :
Un SIAD à travers une base de données de modèles de tableaux de calculs, de
logiciels de traitement, permet une aisance dans l’utilisation du modèle, dans la
modification, dans l’enregistrement des versions et de garder une traçabilité quant
aux modèles utilisés

3.Choix \ évaluation :
Une fois le modèle adapté est choisi ou conçu, on passe au test du choix retenu en
procédant d’une manière rétroactive. Autrement dit, l’essor des systèmes
d’information a permis l’évaluation des choix et le test des scénarii envisageables
avant toute prise de décision.
SI & Aide à la Décision
Un SIAD est un système d’information :
1. Un système fournissant une assistance aux décideurs essentiellement
pour des problèmes non totalement structurés
2. Combinant le traitement automatisé de l’information et le jugement
humain
3. Améliorant la qualité et l’efficacité du processus de prise de décision
« contrôle, coût, temps)…
DIFFERENTS MODELES DE CYCLE DE
VIE DE LOGICIEL

90
DIFFERENTS MODELES DE CYCLES DE VIE
INTRODUCTION

Notion de cycle de vie


C'est la description d'un processus couvrant les phases de:
- Création d'un produit,
- Distribution sur un marché,
- Disparition.
Le but de ce découpage est de
- Maîtriser les risques,
- Maîtriser au mieux les délais et les coûts,
- Obtenir une qualité conforme aux exigences.
On distingue deux types de cycle de vie
- Le cycle de vie des produits s'applique à tous les types de produits, et peut être
considéré comme un outil de gestion.
- Le cycle de développement des logiciels s'insère dans le précédent, on
l'appelle souvent abusivement cycle de vie des logiciels

91
Justification du cycle de vie

• Cycle de vie et assurance qualité sont fortement liés; il faudra donc en

permanence assurer:

• la validation: sommes nous en train de faire le bon produit?

• la vérification: est ce que nous faisons le produit correctement

92
LES DIFFERENTES PHASES DU CYCLE DE VIE

Le management étudie la stratégie et décide de la nécessité de fabriquer ou


acheter un nouveau produit. On s'intéresse aux produits contenant du
logiciel.

C'est pendant cette phase qu'est défini un schéma directeur dans le cas de la
création ou de la rénovation d'un système d'information complet d'une
entreprise prenant en compte la stratégie de l'entreprise (voir méthode
Merise).

93
Définition des Besoins

• Un cahier des charges est établi par le client après consultation des
divers intervenants du projet ( utilisateurs, encadrement...), un appel
d'offres est éventuellement lancé.

• Le cahier des charges décrit, en langage naturel, les fonctionnalités


attendues du produit ainsi que les contraintes non fonctionnelles
(temps de réponse, contraintes mémoire...). Dans le cas de la refonte
d'un système complet on peut avoir un cahier des charges par sous
domaine.

94
Définition du Produit

Les spécifications précises du produit sont décrites ainsi que les contraintes
de réalisation. A l'issue de cette phase, les fournitures intermédiaires sont
le dossier de spécifications fonctionnelles et une première version du
manuel utilisateur.

On peut également désigner cette phase par le terme analyse des besoins. A
l'issue de cette phase, le client et le fournisseur sont d'accord sur le produit
à réaliser et les contraintes auxquelles il doit obéir ainsi que sur la façon de
l'utiliser et en particulier sur l'interface utilisateur qu'il s'agisse d'une
interface homme-machine ou d'une API.

95
Planification et gestion de projet
Il est évident que le client comme le développeur doivent être d'accord sur
les coûts et la durée du projet. La phase de planification permet de
découper le projet en tâches, de décrire leur enchaînement dans le
temps, d'affecter à chacune une durée et un effort calculé en
homme*mois.

96
Conception globale

A l'issue de cette phase les produits intermédiaires sont

- le dossier de conception
- le plan d'intégration
- les plans de tests
- le planning mis à jour

97
Codage et tests unitaires
A l'issue de cette phase les produits intermédiaires sont

- les modules codés et testés

- la documentation de chaque module

- les résultats des tests unitaires.

- le planning mis à jour

98
Intégration
Chaque module testé est intégré avec les autres suivant le plan d'intégration
et l'ensemble est testé conformément au plan de tests.

A l'issue de cette phase, les produits intermédiaires sont:

- le logiciel testé

- les tests de régression

- le manuel d'installation

- la version finale du manuel utilisateur

99
Qualification
Lorsque le logiciel est terminé et les phases d'intégration
matériel/logiciel achevées, le produit est qualifié, c'est à dire testé en
vraie grandeur dans des conditions normales d'utilisation. Cette phase
termine le développement. A l'issue de cette phase le logiciel est prêt

à la mise en exploitation

100
Maintenance
Lorsque le produit a été accepté, il passe en phase de maintenance jusqu'à son
retrait. C'est pendant cette phase que tous les efforts de documentation faits pendant
le développement seront particulièrement appréciés de même que la transparence
de l'architecture et du code.

101
Durée de cycle de vie

Durée de cycle de vie


La durée d'un cycle de vie est très variable d'un projet à l'autre.
Exemple 1 : SGBD RELATIONNEL
- Premier prototype: 5 à 7 ans
Investissement > 100 H x A
- Premier système commercial: 3 à 4 ans
Investissement > 150 H x A
- Maintenance > 10 ans
10 à 15 H x A par an
- Relivraison tous les 6 mois /1an

102
Durée de cycle de vie

Exemple 2: Langage ADA


- Définition et analyse des besoins: 3 ans
4 candidats retenus par le DOD
Premier compilateur prototype
- Compilateur industriel : 3 ans
Investissement > 50 H x A
- Maintenance : > 15 ans
Investissement 5 à 10 H x A par an
Relivraison tous les 1 à 2 ans.

103
Facteurs d'instabilité

Le modèle de cycle de vie n'est pas une panacée, malgré les précautions
prises, des facteurs d'instabilité subsistent:
Facteurs externes: l'utilisateur évolue, l'environnement évolue
- Environnement modifié par le logiciel,
- Evolution de la législation,
- Evolution de la technologie,
- Evolution du marché et de la concurrence.
Facteurs internes: l'équipe de développement évolue
- Individus membres de l'équipe,
- Qualification de ces individus,
- Organisation qui gère le projet.

104
Récapitulation : Les tâches d'un projet logiciel par
activités et par phases

105
CYCLE DE VIE DES LOGICIELS EN
CASCADE ET EN V
Modèle en cascade

106
CYCLE DE VIE DES LOGICIELS EN
CASCADE ET EN V
Modèle en V

107
Analyse de ces modèles de cycle de vie
La représentation en V tient d'avantage compte de la réalité, le processus de développement n'est pas
réduit à un enchaînement de tâches séquentielles.

Elle montre que:

- c'est en phase de spécification que l'on se préoccupe des procédures de qualification

- c'est en phase de conception globale que l'on se préoccupe des procédures d'intégration

- c'est en phase de conception détaillée que l'on prépare les tests unitaires

Le modèle de cycle de vie en V permet d'anticiper sur les phases ultérieures de développement du
produit. En particulier le modèle en V permet de commencer plus tôt:

- Plan de tests de qualification,

- Plan d'évaluation des performances,

Les deux modèles permettent de développer parallèlement différents modules lorsque la phase de
conception globale est validée

108
Analyse de ces modèles de cycle de vie

109
MODÈLE EN SPIRALE (BOEHM 1988)

• Proposé par B. Boehm en 1988, ce modèle de cycle de vie tient compte de la possibilité de
réévaluer les risques en cours de développement.

La démarche:

− Identifier les risques, leur affecter une priorité,

− développer une série de prototypes pour identifier les risques en commençant par le plus
grand risque

− utiliser un modèle en V ou en cascade pour implémenter chaque cycle

− si un cycle concernant un risque a été achevé avec succès,

− évaluer le résultat du cycle et planifier le cycle suivant

− si un risque n'a pu être résolu, terminer le projet immédiatement

110
MODÈLE EN SPIRALE (BOEHM 1988

Modèle en spirale d'après [Boehm 88]


1. détermination des objectifs du cycle, des alternatives pour les
atteindre et des contraintes ; à partir des résultats des cycles
précédents , ou de l'analyse préliminaire des besoins;
2. analyse des risques, évaluation des alternatives à partir de
maquettage et/ou prototypage;
3. développement et vérification de la solution retenue, un modèle «
classique » (cascade ou en V) peut être utilisé ici ;
4. revue des résultats et vérification du cycle suivant.

111
MODÈLE EN SPIRALE (BOEHM 1988

112
Analyse des risques
• risques humains:
− défaillance du personnel ; surestimation des compétences
− travailleur solitaire, héroisme, manque de motivation
• risques processus
− pas de gestion de projet
− calendrier et budget irréalistes ;
− calendrier abandonné sous la pression des clients
− composants externes manquants ;
− tâches externes défaillantes ;
− insuffisance de données
− validité des besoins ;
− développement de fonctions inappropriées
− développement d'interfaces utilisateurs inappropriées

113
Analyse des risques

• risques technologiques
− produit miracle, "plaqué or";
− changement de technologie en cours de route
− problèmes de performance
− exigences démesurées par rapport à la technologie
− incompréhension des fondements de la technologie

114
Conditions d'application
Le modèle en spirale s'applique essentiellement en interne , lorsque les
clients et les fournisseurs font partie de la même entreprise, si l'analyse
de risque démontre que le projet doit être continué, une équipe peut être
réaffectée au projet. Alors que dans une relation client-fournisseur
ordinaire, il y a eu signature de contrat et donc l'effort doit être estimé à

l'avance. Le modèle en spirale ne peut donc s'appliquer. Ou bien il doit


être adapté en signant des contrats partiels pour chaque itération.

115
Modèles de données
schéma entité- association

116
organisation des informations

• Faire l'inventaire des éléments d’informations circulant dans le système :


existants et demandés.

• Plusieurs approches sont possibles :


• Orientée Donnée
• La plus complète (orientée traitement) est basée sur :
• la création du Modèle Conceptuel d’Activité (MCA) et,
• du Modèle Conceptuel de Communication (MCC).

117
Modèle Conceptuel de Données (MCD)

• Toute donnée recensée doit être mémorisée.

• Le MCD modélise cette mémoire (collective) du système.

• Un formalise de référence :

◦ le modèle Entité-Association(MEA) ou Entity Relation Ship Model


◦ Concepts d’entités et d’associations.
◦ Particulièrement adapté aux Base de Données relationnelles.
◦ Le modèle le plus utilisé pour représenter dans un premier temps la
structure de données

118
Modèle Conceptuel de données

• Deux utilisations des schémas EA :

Concevoir le schéma de la base de données avant que la moindre donnée ne


soit stockée : c’est la conception conceptuelle. A partir d’un tel schéma, il est
plus clair de raisonner sur les concepts à stocker, les attributs dont on a besoin,
les relations entre les concepts… Une fois terminée, un tel schéma est traduit
selon des règles précises en son schéma relationnel correspondant

Faire de la réingénierie : à partir d’une base existante complexe, dont la


documentation est inexistante, on peut créer un schéma EA pour avoir une
première vue synthétique de la situation et prendre des décisions comme
restructurer la base, la normaliser, en créer une nouvelle plus large permettant de
stocker les données de l’ancienne,…

119
Concepts de base
• Modèle entité-association (EA)

• Le modèle EA propose une description sur la base des trois concepts de

base qui sont l’identifications des objets, des liens entre ces objets et des

propriétés de ces objets :


- Objet entité
- lien association
- Propriété attribut

120
Définitions
• Entités
Une entité est un objet concret ou abstrait du monde réel à propos duquel on veut
enregistrer des informations.
ex : M. Dupont, Mme Dupont, un crayon, l’atelier de distribution, le bureau du
directeur…
Un type d’entité (TE) est un ensemble d’entités qui possèdent les mêmes
caractéristiques.
ex : Personne (représentation de l’ensemble des personnes telles que les entités M.
Dupont et Mme Dupont), Employé (représentation de l’ensemble des employés),
Article (représentation de l’ensemble des articles tels que les crayons et les livres)

Un attribut d’une entité est une propriété associée à un TE. L’ensemble des
attributs d’un TE
représente l’ensemble des informations inhérentes que l’on souhaite conserver sur
les entités du TE.
ex : (nom, prénom, salaire) sont des attributs du TE Employé…

121
Entités

122
Entités
On distingue deux types d’entités :
- Entité forte = entité qui n’a pas besoin d’une autre entité pour exister.
- Entité faible = entité qui a besoin d’une autre entité pour pouvoir être
définie. Elles sont
notées avec un double rectangle. On distingue deux cas:
1er cas :
Employé est une entité faible car
l’ensemble des numéros de
sécurité sociale des élèves est
contenu dans l’ensemble des
numéros de sécurité sociale des personnes.
On dit qu’il y a un lien d’héritage entre
les deux entités.

123
Entités
2nd cas :
Appartement est une entité
faible car sa clé est
composée de l’attribut clé de
Bâtiment (N°Bâtiment) et d’un
autre attribut (N°Appart.).
On dit qu’il y a un lien
d’identification entre les deux
Entités.

124
Associations

Une association (ou une relation) est un lien entre plusieurs entités, où
chaque entité liée joue un rôle déterminé ; si l’association lie des entités
du même type, elle est dite cyclique ou réflexive et, dans ce cas, la
spécification des rôles est indispensable.

ex : lien de travail entre l’employée M. Durant et le service de gestion,


lien de mariage entre M. X et Mme Y.

125
Associations
Un type d’association (TA) est un ensemble d’associations qui
possèdent les mêmes caractéristiques (liant des entités de mêmes types
avec mêmes rôles et mêmes propriétés, respectifs)
ex : le TA « fabrique » lie le TE « Atelier de fabrication » au TE «
Article », le TA « travaille » lie « Employé » à « Service », le TA « est-
marié-avec » lie « Personne » à lui-même.
Un attribut d’une association est une propriété associée à un TA.
L’ensemble des attributs d’un TA représente l’ensemble des
informations inhérentes que l’on souhaite conserver sur les
associations du TA.
ex : (quantité-en-fabrication) est un attribut du TA fabrique…

126
Association (Bref)

Une association est un lien entre deux ou plusieurs entités


➢ Une classe d’association est un lien entre deux ou plusieurs Types
d’entité
➢ Chaque entité joue un rôle dans l’association Dans la pratique on parle
d’association pour la classe d’association
Dans la pratique on parle d’association pour la classe d’association

127
Propriétés – Attribut

• Dans les associations, l’attribut doit obligatoirement relier les entités (Le role relie, un acteur
et le film dans le quel il a joué,
• Une propriété (attribut) peut-être
o Monovaluée : nom, c’est une composante atomique
o Composée ; adresse=ville, rue, numéro , code-pPostal → multivaluée
• La valeur de l’attribut est son occurrence
• Un attribut est constitué de :
o D’un identifiant qui sert d’identifiant à l’ensemble des attributs
o De propriétés qui sont les attributs hors identifiant
128
identifiant
• Identifiant d’une entité
➢ Chaque occurrence doit être identifié d’une manière unique ; clé naturelle
➢ L’identifiant est une valeur qui identifie sans ambiguïté une entité
➢ L’identifiant peut être artificiel, c’est une surrogate Key
➢ L’identifiant naturel est la clé primaire
➢ Généralement la clé d’identifiant est un attribut souligné

129
Clé artificielle

• Dans le domaine des bases de données, une clé artificielle (en opposition


à une clé naturelle), aussi parfois appelée clé de remplacement (de
l'anglais surrogate key) désigne un ensemble de données adjointes aux
données d'une table pour les indexer.

• La génération de la clé artificielle est effectuée par le concepteur de la


table. Toute clé indexant chaque ligne de manière unique est valable.
Parmi les méthodes de génération courantes de clé artificielle nous
pouvons citer les clés incrémentales (les lignes sont numérotées au fur et
à mesure de leur introduction dans la table).
il existe un risque significatif que des doublons de lignes existantes soient
introduits ultérieurement dans la table 

130
Identifiant d’une association

• Implicite, obtenu en juxtaposant identifiants des entités associées à


l’association
• Les entités-types qui interviennent dans une association sont appelés
:participants
• L’ensemble des participants d’une association est appelé : collection
• La dimension d’une association est le nombre d’entité rattaché à
l’association

131
Exemple:
Schéma
global

132
Typologie des associations : cardinalités des rôles (1)
Une association permet de relier, une ou plusieurs entités. Le rôle
détermine la façon dont les entités sont reliées.
— 3 types d’association

133
Typologie des associations : cardinalités des
rôles (2)
Le rôle d’une association est défini par deux nombres (min, max)
représentant le nombre de fois minimum et le nombre de fois
maximum qu' ’une entité participe à une association.
 Les valeurs possibles sont : (0,1), (1,1); (0,N), (1,N)

• Min : Correspond à la réponse à la question :


— combien de fois au moins une entité de
A est relié à une entité de B
• Max : correspond à la réponse à la question :
— combien de fois au plus une entité de A est
relié à une entité de B
— Attention ces questions, il faut les poser dans
les deux sens de A vers B puis de B vers A.

134
Exemple (1)
Schéma globale

135
Exemple (2)

Commentaires :
Acteurs vers Films : le rôle de type 1,N
- (1) un acteur a joué dans au moins un film
- (N) un acteur peut avoir joué dans plusieurs films
De Films vers Acteurs 0,N:
-(0) : un film n’ayant pas d’acteurs, possible si c’est un film
documentaire
-(N) : un film peut avoir plusieurs acteurs
De Films vers Réalisateurs :
-Un film a au moins un réalisateur min=1 d’ailleurs souvent
- Il y a au plus un réalisateur (max=1). Un film a un seul réalisateur

136
Règles de complétude

 Chaque classe d ’objets (entité , association, attribut) doit posséder


toutes les propriétés requises par le modèle EA.
 Pour une entité
• Un nom
• Une liste d ’attributs
• Un identifiant
 Pour une association
• Un nom
• La liste des entités qui participent à l ’association
• Les rôles et leur cardinalité
• La liste des attributs (éventuellement)

137
Démarche de conception

• Identifier les entités les plus naturelles (sujets, compléments)

• Identifier les associations entre ces entités ( verbes n’exprimant pas de


dépendances fonctionnelles)

• Identifier les attributs et les identifiant de ces entités et de ces association


(compléments de verbe exprimant des dépendances fonctionnelles).

• Exprimer les cardinalités et les rôles (distinguer le singulier du pluriel).

• Enumérer des CI (Contraintes d ’Intégrité)

138
Contraintes d ’Intégrité
• Dans une base de données, une contrainte d'intégrité permet de garantir
la cohérence des données lors des mises à jour de la base. En effet, les
données d'une base ne sont pas indépendantes, mais obéissant à des
règles sémantiques, après chaque mise à jour, le SGBD contrôle
qu'aucune contrainte d'intégrité n'est violée.
Il existe deux types de contraintes :
 sur une colonne unique,

 ou sur une table lorsque la contrainte porte sur une ou plusieurs


colonnes.
Les contraintes sont définies au moment de la création des tables.

139
SYNTHAXE EXEMPLE

140
Lien entre le modèle Entité Association et
le modèle relationnel

141
Passage d’un schéma Entité/Association à un Schéma Relationnel (1)

142
Passage d’un schéma Entité/Association à un Schéma Relationnel (1)

143
Passage d’un schéma Entité/Association à un Schéma Relationnel (1)

144
OPTIMISATION

145
Passage d’un schéma Entité/Association à un Schéma Relationnel (3)

 Résultat le schéma Final de la base de données est :

• ACTEURS(NumActeur, Nom, Prénom)


• FILMS(NumFilm, Titre, MetteurEnScène,NumReal)
• CINEMA(NumCinéma, Nom, Adresse)
• REALISATEURS(NumReal,Nom, Prénom)
• JOUE(NumACteur, NumFilm, Rôle)
• AFFICHE(NumFilm, NumCinema,Date)

146
Exemple a réaliser

• Dans une entreprise, un département est identifié par un nom et


caractérisé par une localisation.
Un employé est caractérisé par un numéro, son nom, son grade et le
département dans lequel il travaille.
Le numéro d’un employé est unique dans un département mais pas
dans l’entreprise.
• Donner le MCD, en précisant les attributs.

147
Exemple 2

148
149
Exemple3: Etablir Le MCD

150
MCD

151
MLD

152
Exemple 4 : Examens
• Les Examens nationaux sont gérés par l'Inspection Académique et
concernent les élèves de cette académie. Les élèves doivent
obligatoirement remplir un dossier d'inscription numéroté avant le 31
décembre de l'année scolaire en cours. Ce dossier comprend le nom, la date
de naissance, l’établissement de l’élève et le nom de l'examen. Un
établissement est défini par son code, son nom, son adresse et la ville. •
Chaque examen, comprend une série d'épreuves qui lui est propre, chacune
dotée d'un coefficient. Chaque épreuve d'examen se déroule donc à la
même date dans toute l’académie l’académie.
• La gestion de ces examens comprend aussi la convocation d'une dizaine
d'enseignants de l'académie à la commission de rédaction du sujet de
chaque épreuve. Cette commission se réunit à l'inspection académique au
plus tard 2 mois avant la date de l'épreuve. Les corrections ont lieu le
lendemain de l'épreuve. Un enseignant est connu par son matricule, son
nom, son téléphone, adresse, ville et son établissement.
• La centralisation des notes de l'élève est faite sur un bordereau transmis
au jury chargé d'examiner l'admission définitive du candidat.

153
154
155
Extension
• associations réflexives
Catégorie des associations réflexives

156
reflexives (n,n)
• reflexives (n,n) Symétriques

157
reflexives (n,n)
• relation récursives (n,n) non symétrique

158
reflexives (n,n)
• Association réflexive (n, n) avec propriétés

159
reflexives (n,n)
• Associations réflexives [1, n]
elles sont non symétriques
RG1: un salarié peut être encadrant de 0 ou plusieurs salariés
RG2: un salarié peut avoir 0 ou 1 encadrant

160
Exemples association réflexive

161
Exemples association réflexive

162
Entité faible

• On appelle une entité faible, une entité dépendante d’une autre entité
de cardinalité max de 1. On entoure sa cardinalité avec des
parenthèses. L’entité dont elle dépend s’appelle une entité forte
(cardinalité max de n).Son identifiant devient un identifiant relatif car
lors du passage au MLD, la relation récupère l’identifiant de l’entité
forte, ce qui donne pour clef primaire l’identifiant de l’entité forte et
l’identifiant de l’entité faible. Cet identifiant ne suffit pas à lui-même,
il est relatif.

163
Entité faible
• Exemple : immeuble et appartement
Un appartement à un numéro dans l’immeuble.

164
Dépendances fonctionnelles CIF –
Contrainte d’intégrité fonctionnelle

• Les dépendances fonctionnelles expriment la relation qui existent


entre les propriétés. On dit qu’une propriété B d’une entité E2 dépend
fonctionnellement d’une propriété A d’une autre entité E1, si pour
chaque valeur A déterminé une et une seule valeur de B.

165
Dépendances fonctionnelles CIF –
Contrainte d’intégrité fonctionnelle

166
Dépendances fonctionnelles CIF –
Contrainte d’intégrité fonctionnelle

• Une contrainte d’intégrité fonctionnelle (CIF) est définie par le fait que l’une

des entités participant à l’association est complètement déterminée par la

connaissance d’une ou plusieurs autres entités participant dans cette même

association.

167
Relation CIF inter relations

• Un employé occupe une poste à une date donnée


• On modifiant l’association Occuper, Un employé peut occuper plusieurs
postes en même temps

168
Relation CIF inter relations

• CIF dans toutes les occurrences de l’association occuper et pour tous


couple Compte Date, on peut avoir qu’une seule valeur de Poste

169
Le passage au modèle logique des données : MLD

• Modèle conceptuel des données(MCD) (Rappel)


Le modèle conceptuel des données (MCD) a pour but d'écrire de façon
formelle les données qui seront utilisées par le système d'information. Il
s'agit donc d'une représentation des données, facilement compréhensible,
permettant de décrire le système d'information à l'aide d'entités. La
description par la méthode des entités-association (MERISE ) utilise les
concepts présentés dans la première partie :
• Entité
• Association
• Identification
• Attributs
• cardinalité

170
Modèle Logique de Données (MLD)
permet de modéliser la structure selon laquelle les données seront stockées
dans la future base de données

- est adapté à une famille de SGBD : SGBD relationnels (MLD


Relationnels ou MLD-R)

- utilise le formalisme graphique Merise ou UML

- permet d’implémenter la base de données dans un SGBD donné du


type relationnel

171
Passage du MCD au MLR

172
Règle 1 : transformation d’une entité

Une entité du MCD devient une table


• Chaque ligne correspond à un enregistrement
• Chaque colonne correspond à un attribut (champ)
• L’identifiant devient la clé primaire de la table
• Le nom de l’entité devient le nom de la table

173
Règle 2 : Transformation d’une association
sans propriété type (*,n)-(1,1)
Une commande est passé par un seul client
• Un client peut n’avoir passé aucune commande
• On duplique dans la table COMMANDE, l’identifiant du CLIENT
• Commande est une entité faible car elle dépend de client
• Client est une entité forte

174
Règle 3 – transformation d’une association
(1, n) -(*, n) [*=0 ,1]

• Relation du type N-N (cardinalité max des deux côtés de l’association à n)


• La relation devient une entité
• La clé primaire de l’association est composée des clés étrangères des relations
correspondant aux entités de part et autre de la relation
• Les éventuelles propriétés de l’association deviennent des attributs de l’entité

175
Règle 3 – transformation d’une association
(1, n) -(*, n) [*=0 ,1]

• Exemple 1- un client (nouveau) peut n’avoir aucune commande

176
Règle 3 – transformation d’une association
(1, n) -(*, n) [*=0 ,1]
Exemple2: l’association est porteuse d’un attribut
L’attribut de l’association est dans l’entité correspondant

177
Règle 3 – transformation d’une association
(1, n) -(*, n) [*=0 ,1]
Exemple3 : supporte la valeur nulle

178
Cas particulier – associations 1,1
Association : 1,1 – 1,1
Exemple : course à la voile : 3 solutions

179
Association binaire 0,1-0,1

180
Associations ternaires ( n-aires)
C’est la généralisation de l’association (1,n)/(1,n)
• L’association gère une table , qui reçoit en clé étrangère , les
clés primaires des tables associées
• La composition des clés étrangères devient la clé primaire de
la table association
• Les données éventuelles de l’association deviennent les
attributs de la table association

181
Associations ternaires ( n-aires)

• Exemple: ECURIE: Ensemble des pilotes de course ou des


cyclistes qui courent pour une même marque.

182
Associations ternaires ( n-aires)
• Qui se traduit en

183
Traduction des associations réflexives en relation
• traduction des associations réflexives [n , n]
• Une association réflexive [n,n] sur une entité E est traduite en une relation de
même nom avec deux clefs étrangères. L'une d'elles porte le nom de l'identifiant
de l'entité et l'autre, le nom de l'association. La clef primaire de cette relation est
constituée de ces deux attributs
• Exemple :

184
Traduction des associations réflexives [1,n]
• Une association réflexive [1 , n] est traduite en une clé étrangère dans la
relation représentant cette entité. Le nom de cette clé étrangère est celui
de l’association si c’est le nom de l’association qui étiquette le trait de
cardinalité maximale 1, sinon c’est le nom de l’association réciproque

185
Traduction des associations réflexives [1 ,
1]
• Une association réflexive [1,1] sur une entité est traduite en une clé
étrangère dans la relation représentant cette entité. Le nom de cette clé
étrangère est celui de la relation

186
extensions du formalisme Entité-relation
• sous type – sur type

• Les occurrences d’une entité ont des propriétés communes, cependant


certaines se distinguent en constituant des groupes séparés. Ces groupes
constituent des sous-groupes ou sur groupes suivant la manière ou ces
occurrences sont constituées.

• Les propriétés communes constituent l’entité générique, les autres


occurrence sont regroupées dans des entités spécifiques avec des
dépendances fonctionnelles fortes (1,1-*,n) .

• Les entités spécifiques héritent de l’identifiant de l’entité générique (et de ses


propriétés. C’est une association de type hiérarchique de généralisation (sur
type) ou de spécialisation (sous type)

187
extensions du formalisme Entité-relation
• Définition:
• Une Contrainte d’intégrité est une propriété que doivent satisfaire les
données appartenant à la base de données, permet de limiter les
occurrences et assurer la cohérence des données.
• Une Contrainte d’intégrité peut être appliquer aux:
• Attributs: des conditions limitant les valeurs de ce dernier
• Entité se sont les contraintes issues de la théorie
• Associations des ensembles

• Une contrainte ne peut être définie que sur des objets de même
nature, de même identifiant.

188
extensions du formalisme Entité-relation
• Pour les entités on ne peut appliquer des contraintes que dans le cas
d’héritage
• Pour les contraintes entre les entités et les associations on distingue 5:
1.Partition
2.Totalité
3.Exclusion
4.Inclusion
5.Unicité
• Deux principes mathématiques:
• Couverture : A U B = C
• Disjonction : A ∩ B = ∅

189
extensions du formalisme Entité-relation
• Exemple : schéma de spécialisation (sous type)
• Un assuré est un particulier ou une entreprise, mais pas les deux à la fois

190
extensions du formalisme Entité-relation
La contrainte consiste à vérifier que les assurés de type "particulier" et ceux des
"sociétés forment une intersection vide :
PARTICULIER ∩ SOCIÊTÈ = ∅
La spécialisation consiste à
•Modéliser l’entité ASSURÊ dont les caractéristiques sont communes aux
PARTICULIERS et aux SOCIÊTÊS
•Considérer les entités PARTICULIER et SOCIÈTÈ comme des spécialisations de
l’entité ASSURÊ
•Seule l’entité possède un identifiant apparait dans le MLD (ajout de la contrainte
d’intégrité)
•Il y a , dans cet exemple une contrainte d’exclusion entre les entités du sous-type

191
extensions du formalisme Entité-relation
• exemple 2 ; schéma de généralisation (sur type)
• on fait apparaitre le groupe des étudiant-salarié à partir des étudiants et
des salariés . le groupe des étudiant-salariés est un sous-type des entités
salaries et étudiants , qui sont un sur type de l’entité étudiant-salarié

ETUDIANT ∩ SALARIÈ = ETUDIANT-SALARIÈ


192
contraintes d’héritage – contrainte
d’interrelations
L’indication de contraintes sur les sous-types permet de préciser les occurrences les
types d’occurrences présentes pour une occurrence de l’entité généralisée
Partition : + ou XT

193
contraintes d’héritage – contrainte
d’interrelations
Exclusion X : disjonction et non couverture

194
contraintes d’héritage – contrainte
d’interrelations
Totalité : T – pas de disjonction et couverture

195
contraintes d’héritage – contrainte
d’interrelations
aucune contrainte

196
contraintes d’héritage – contrainte
d’interrelations
contrainte interrelations : contrainte sur les associations
Les types de contraintes d’intégrité relatives aux associations sont les suivants :
• Contrainte de partition :XT
• Contrainte de totalité : T
• Contrainte d’exclusion : X
• Contrainte d’égalité (ou simultanéité) :S
• Contrainte d’inclusion. :I
Pour chaque contrainte, il est nécessaire de préciser
• Son type
• L’entité concernée par la contrainte (on l’appelle pivot)
• Les 2 associations liées par la contrainte
Ces règles ne sont pas implantées au niveau relationnel, mais à travers des triggers
ou équivalents

197
contraintes d’héritage – contrainte
d’interrelations
Contrainte de partition (+ ou XT)

198
contraintes d’héritage – contrainte
d’interrelations
Contrainte de Totalité (T)

199
contraintes d’héritage – contrainte
d’interrelations
Contrainte d’exclusion (X)

200
contraintes d’héritage – contrainte
d’interrelations
Il y a deux contraintes supplémentaires : l'inclusion (une occurrence d'une
association doit exister dans une autre association) et l'égalité (inclusion dans les
deux sens, une occurrence doit exister dans les deux relations).

Contrainte d’égalité ou de simultanéité (= ou S)


Une contrainte d'égalité ou de simultanéité : toute occurrence qui participe à
l'association A participe également à l'association B 

201
contraintes d’héritage – contrainte
d’interrelations
Contrainte d’inclusion ( I )
Un client réserve mais ne loue pas forcément un voilier. Toute location a fait l'objet
d'une réservation préalable. La contrainte d'inclusion va de louer qui est incluse
dans réserver le pivot est le voilier. Il y a la notion de pivot
Exemple : Un voilier ne peut être loué que s'il a été réservé. Si un locataire loue,
c'est qu'il a réservé.
Il y a une contrainte d'inclusion de 'Louer' dans ' Réserver' avec Locataire comme
pivot.

202
ANNEXE
• Différents modes de représentation du modèle entité – relation

203
Modèle conceptuel de communication

204
Acteurs

205
Flux d’information

206
Acteurs externes

207
Acteurs internes

208
MCC: Exemple

209
Réalisation d’un MCC

210
Réalisation d’un MCC

211
Réalisation d’un MCC

212
MCC

213
Exemple d’application

214
Résultat

215
Modèle Conceptuel des Traitements

La séparation des données et des traitements

La distinction entre données et traitement constitue une


composante fondamentale de Merise.

216
Exemple d’un MCT

217
Les quatre niveaux de la méthode Merise

218
Une approche par niveaux

219
Définition du MCT

• La modélisation conceptuelle des traitements a pour objectif de


représenter formellement les activités exercées dans le système
d’information.

• Donc l’objectif est d’identifier son fonctionnement.

220
Définition du MCT

Le Modèle Conceptuel des Traitements (MCT ) permet de décrire les activités qui sont 
effectuées dans le domaine d'étude, c'est-à-dire comment l'entreprise doit interagir
avec son environnement en faisant abstraction des aspects organisationnels.

En d'autres termes le MCT permet de dire comment l'entreprise doit réagir aux sollicitations 
externes sans dire qui fait quoi, ou avec quels moyens.

Il permet ainsi de formaliser les règles de gestion de l'entreprise.

221
Définition du MCT

• Qui fait l’action?

• Quand l’action est réalisée?

• Ou l’action est réalisée?

222
Formalisme de modélisation conceptuelle des
traitements

• La modélisation des traitements se réalise en deux étapes:

1.La première étape consiste à décrire textuellement le fonctionnement

du système d’information.

2.La deuxième étape consiste à traduire votre texte sous forme d’une

représentation graphique: MCT

223
Formalisme de modélisation conceptuelle des
traitements

• Acteur: Client

• Evènement résultat: commande

• Etat: Commande traitée, en attente ……..

• Opération: traitement de commande

224
Qu’est ce qu’un acteur?

• Avec qui le système d’information fait des échanges avec son


environnement?

• Exemple:
Comptable

• Client Vendeurs

Stock

225
L’événement/Résultat

• Le SI échange de l’information avec son évènement externe.


• Les flux reçus de son environnement : Evénement
• Les flux émis : Résultats

Evènement Système Résultat


d’information

• Un évènement est émis par un acteur a destination SI


• Un résultat est émis par une activité à destination Acteur

226
L’événement/Résultat

227
L’état

• Commande en attente,

• Commande traitée,

• Demande d’inscription en attente,

• Demande d’inscription acceptée

• L’état modélise une situation du système d’information.

228
L’état

• Commande en attente,

• Commande traitée,

• Demande d’inscription en attente,

• Demande d’inscription acceptée

• L’état modélise une situation du système d’information.

229
L’opération

• L’opération constitue un ensemble d’actions déclenchée par la


survenance d’un ou de plusieurs évènements.

• La segmentation de plusieurs opérations sera justifié que par l’attente

d évènement d’un acteur externe.

• Les opérations déclenchés par des acteurs internes seront regroupés


en une seule opération.

230
L’opération

231
L’opération
de façon graphique une opération est représentée par un rectangle:

232
Synchronisation
La synchronisation associée à une opération est une proposition logique définie sur

les évènements déclencheurs de cette opération. Elle permet d'expliciter les règles

qui doivent régir le déclenchement de l'opération.

233
règles d'émission

Ce sont également des propositions logiques. Elles servent à expliquer


les règles qui doivent régir la production des évènements résultats.

234
concept d'action:

• Il permet d'appréhender toute entité active qui présente un intérêt pour le domaine
d'étude.
• Une action est représentée graphiquement de la façon suivante:

235
Modèle Organisationnel des traitements
• MOT= MCT + lieu + moment + nature
• Lieu
• Qui exécute ? Acteurs (MCC)
• Moment
• Quand exécute t on l’opération?
• Agencement temporel
• Nature
• Manuelle
• Automatique
• Interactive
• Différé

236
Du MCT au MOT

• Importer la liste des acteurs du MCC


• Importer le MCT

237
1 – Import de la liste des acteurs
Période Acteur A Acteur B Acteur C Type

238
2 - Import du MCT

239
Répartition des opérations en les acteurs

240
Division des traitements répartis entre
plusieurs acteurs

241
Division des traitements répartis sur
plusieurs périodes

242
Introduction aux Bases de données

1.Introductions aux SGBD et au modèle relationnel.

2.Langage d’interrogation SQL

243
Introduction

• 1960 Uniquement des systèmes de gestion de fichiers plus ou


moins sophistiqués

• 1970 Début des SGBD réseaux et hiérarchiques proches des


systèmes de gestion de fichiers

• 1980 Les SGBDr font leur apparition sur le marché

• 1990 Les SGBDr dominent le marché et apparaissent les SGBD


orientés objets (SGBDOO)

244
Qu'est-ce qu'une base de données ?

De façon informelle, on peut considérer une Base de Données


comme un ensemble structuré de données, centralisées ou non, servant
pour les besoins d'une ou plusieurs applications, interrogeables et
modifiables par un groupe d'utilisateurs en un temps opportun.

Plus formellement, une BD est un ensemble d'informations


exhaustives, non redondantes, structurées et persistantes, concernant un
sujet.

245
Système de Gestion de Base de Données

Un Système de Gestion de Base de Données peut être défini comme un

ensemble de logiciels prenant en charge la structuration, le stockage, la

mise à jour et la maintenance des données. Autrement dit, il permet de

décrire, modifier, interroger et administrer les données. C'est, en fait,

l'interface entre la base de données et les utilisateurs (qui ne sont pas

forcément informaticiens).

246
Ob j e c t i f s d 'un SGBD

Un SGBD doit résoudre certains problèmes et répondre à des besoins précis :


- Indépendance physique : la façon de définir les données doit être
indépendante des structures utilisées pour leur stockage
- Indépendance logique : un utilisateur doit pouvoir percevoir
seulement la partie des données qui l'intéresse (c'est ce que l'on appelle
une vue) et modifier la structure de celle-ci sans remettre en cause la
majorité des applications
- Manipulation aisée des données par des non informaticiens, ce qui
suppose des langages "naturels"
- Accès efficaces aux données et obtention de résultats aux
interrogations en un temps "acceptable"

247
Ob j e c t i f s d 'un SGBD

• Administration centralisée des données pour faciliter l'évolution de leur structure


- Non-redondance : chaque donnée ne doit être présente qu'une seule fois dans la
base afin d'éviter les problèmes lors des mises à jour
Cohérence (ou intégrité) : les données ne doivent présenter ni ambiguïté, ni
incohérence, pour pouvoir délivrer sans erreur les informations désirées. Cela
suppose un mécanisme de vérification lors de l'insertion, de la modification ou de
la suppression de données
- Partage des données pour un accès multi-utilisateur simultané aux mêmes
données. Il faut entre autre assurer un résultat d'interrogation cohérent pour un
utilisateur consultant une base pendant qu'un autre la modifie
- Sécurité des données : robustesse vis-à-vis des pannes (il faut pouvoir retrouver
une base "saine" en cas de plantage au cours de modifications) et protection par
des droits contre les accès non autorisés

248
Propriétés d'un SGBDr

• les propriétés fondamentales d'un SGBDr sont:


- Base formelle reposant sur des principes parfaitement définis
- Organisation structurée des données dans des tables interconnectées (d'où le
qualificatif relationnelles), pour pouvoir détecter les dépendances et redondances
des informations
- Implémentation d'un langage relationnel ensembliste permettant à l'utilisateur de
décrire aisément les interrogations et manipulation qu'il souhaite effectuer sur les
données
- Indépendance des données vis-à-vis des programmes applicatifs (dissociation
entre la partie "stockage de données" et la partie "gestion" - ou "manipulation")
- Gestion des opérations concurrentes pour permettre un accès multi-utilisateur
sans conflit
- Gestion de l'intégrité des données, de leur protection contre les pannes et les
accès illicites

249
Composants des SGBD

- la description des données au moyen d'un Langage de Définition de Données


(LDD). Le résultat de la compilation est un ensemble de tables, stockées dans un
fichier spécial appelé dictionnaire (ou répertoire) des données
- la manipulation des données au moyen d'un Langage de Manipulation de
Données (LMD) prenant en charge leur consultation et leur modification de façon
optimisée, ainsi que les aspects de sécurité
- la sauvegarde et la récupération après pannes, ainsi que des mécanismes
permettant de pouvoir revenir à l'état antérieur de la base tant qu'une modification
n'est pas finie (notion de transaction)
- les accès concurrents aux données en minimisant l'attente des utilisateurs et en
garantissant l'obtention de données cohérentes en cas de mises à jours simultanées

250
Architecture d’un SGBD
ARCHITECTURE DES SGBD

L'architecture à serveur de fichiers


L'architecture à serveur de fichiers (2)
L'architecture à serveur de bases de données (1)
L'architecture à serveur de bases de données (2)
L'architecture à serveur de bases de données (3)
L’ARCHITECTURE À TROIS
NIVEAUX

une architecture intégrant les trois niveaux de schémas : externe,


conceptuel et interne
cette architecture permet de bien comprendre les niveaux de description
et transformation de données possible dans un SGBD
L’architecture est articulée autour du dictionnaire de données et
comporte deux parties :
1.un ensemble de modules (appelés processeurs) permettant d’assurer
la description de données et donc la constitution du dictionnaire de
données
2.une partie permettant d’assurer la manipulation des données, c’est-à-
dire l’interrogation et la mise à jour des bases.
Trois couches

• Couche externe

description et manipulation des données dédiés a un groupe d’utilisateurs

Couche interne

stockage des données sur des supports physiques, gestion des structures de
mémorisation (fichiers) et d'accès (gestion des index, des clés, ...)

• Couche logique

description et manipulation abstraites des données


Trois couches (suite)
Niveau conceptuel (1)
 
• le schéma conceptuel. Celui-ci peut donc être considéré comme la description du
contenu de la base : c'est le résultat d'un travail d'analyse et de conception d'un
système d'information automatisé.

• Un schéma conceptuel doit offrir les caractéristiques suivantes :


 
1.puissance de représentation : aspects structurels, contraintes existant dans
l'univers réel.
2.stabilité et flexibilité : l'ajout d'une nouvelle donnée ou d'une nouvelle contrainte
ne doit pas entraîner de changement important dans le schéma.
3.simplicité de compréhension : nombre d'éléments réduit, dissociation claire des
différents concepts.
4.simplicité d'utilisation : nombre restreint d'outils ou de primitives de
manipulation.
5.base formelle : la définition du schéma doit s'appuyer sur une méthode
rigoureuse, mathématique, pour éviter toute ambiguïté d'interprétation et pour
garantir la fiabilité des données.
Niveau externe

• Le niveau externe comprend les "vues" spécifiques définies pour la


manipulation des données. Il prend en compte les contraintes d'accès
imposées par la nature des applications à considérer (indépendamment
des caractéristiques techniques) et exprime les besoins en données des
différents utilisateurs, ou applications.

 
Niveau interne ou Physique

• Il correspond à la représentation en machine, aussi efficace que possible, du


schéma conceptuel : le schéma physique intègre les caractéristiques techniques
(choix du SGBD, du matériel, du système d’exploitation…).

• L'efficacité doit tenir compte d'une part des contraintes d'implantation (taille des
disques, optimisation du système de fichiers…), d'autre part des critères
d'utilisation (traitement interactif ou en batch, selon la fréquence d’utilisation et
la durée du traitement…).
Architecture du type client-serveur (client-server architecture)

• programme d'application = client


• interface (« GUI ») + traitement du domaine d ’application
• SGBD = serveur de données « data server »
Architecture client / serveur

B D
R éseau

P ro g ra m m e
SG B D
d 'a p p l i c a t i o n
L o g ic ie l L o g ic ie l
in te r m é d ia ir e in te r m é d ia ir e
P ilo te d e P ilo te d e
té lé c o m m u n ic a tio n té lé c o m m u n ic a tio n

C lie n t S e rv e u r
Architecture 3 tiers

BD

R éseau R éseau

In te rfa c e A p p lic a tio n SGBD

L o g ic ie l L o g ic ie l L o g ic ie l
in te r m é d ia ir e in te r m é d ia ir e in te r m é d ia ir e
P ilo te d e P ilo te d e P ilo te d e
té lé c o m m u n ic a tio n té lé c o m m u n ic a tio n té lé c o m m u n ic a tio n
C lie n t S e rv e u r S e rv e u r d e
m in c e d 'a p p lic a t io n données
Base de données distribuées(1)

BD réparties:

•Les données sont distribuées et/ou dupliquées sur différents sites du réseau (ex:

internet) qui possèdent un certain degré d’autonomie. Chaque site peut comporter

une BD parallèle
Base de données distribuées(2)

BD BD
lo c a le lo c a le

R éseau R éseau

P ro g ra m m e
S G B D ré p a rti S G B D ré p a rti
d 'a p p l i c a t i o n
L o g ic ie l L o g ic ie l L o g ic ie l
in te r m é d ia ir e in te r m é d ia ir e in te rm é d ia ir e
P ilo te d e P ilo te d e P ilo te d e
té lé c o m m u n ic a tio n té lé c o m m u n ic a tio n té lé c o m m u n ic a tio n
S e rv e u r d e S e rv e u r d e
C lie n t
données données
Base de données parallèles

M é m o ir e v iv e
U n it é d e U n it é d e U n it é d e
t r a it e m e n t t r a it e m e n t t r a it e m e n t

D is q u e D is q u e D is q u e D is q u e D is q u e

BD parallèles: Les données peuvent être distribuées sur plusieurs disques d'un
même site, et l'exécution des requêtes peut être parallélisée sur les différentes
unités de traitement (CPU) du site.
Entrepôt de données

• Base de données opérationnelle


• traitement des données quotidiennes et récentes

• Entrepôt de données (data wharehouse)

• grand volume de données historiques extraites de bases opérationnelles pour


le support à la prise de décision
LES TRANSACTIONS

Un utilisateur ou un programme d’application interagit avec la base de

données via des appels au SGBD exprimés sous forme de requêtes SQL.

Le SGBD garantit une qualité de service absolue dans l’exécution de ces

requêtes, garantie qui comporte quatre propriétés : atomicité, cohérence,

isolation et durabilité (ou ACID).

270
LES TRANSACTIONS

Atomicité: L’exécution d’une requête est atomique si cette dernière, quoi qu’il
arrive, est exécutée complètement (en cas de réussite) ou pas du tout (en cas
d’échec ou d’incident).
Cohérence. Une requête de modification exécutée sur des données cohérentes
laisse celles-ci dans un état final également cohérent. Concrètement, le SGBD
garantit le respect de toutes les contraintes d’intégrité imposées aux données.
Isolation. Les opérations sur les données sont exécutées comme si chaque requête
disposait de la base de données pour elle seule.
Durabilité. Lorsque le SGBD a confirmé qu’une mise à jour a été effectuée avec
succès, il garantit qu’elle est permanente.

271
Organisation de la mise en oeuvre d 'un SGBD

Quatre catégories de fonctions sont impliquées dans cette gestion de données :


- les tâches liées à l'architecture de données consistent à analyser, classifier et
structurer les données au moyen de modèles confirmés
- l'administration de données vise à superviser l'adéquation des définitions et des
formats de données avec les directives de standardisation et les normes internationales,
à conseiller les développeurs et les utilisateurs, et à s'assurer de la disponibilité des
données à l'ensemble des applications. L'administrateur assume en outre des
responsabilités importantes dans la maintenance et la gestion des autorisations d'accès
- les professionnels en technologie de données ont en charge l'installation, la
supervision, la réorganisation, la restauration et la protection des bases. Ils en assurent
aussi l'évolution au fur et à mesure des progrès technologiques dans ce domaine.
- l'exploitation de données consiste à mettre à disposition des utilisateurs les fonctions
de requête et de reporting (générateurs d'états), ainsi qu'à assurer une assistance aux
différents services pour qu'ils puissent gérer leur stock propre de données en autonomie
(service infocentre).

272
CONCEPTS DES BASES DE DONNEES

• Tables, lignes et colonnes

273
CONCEPTS DES BASES DE DONNEES
• Tables, lignes et colonnes

274
Valeur null

• L'absence de valeur est indiquée par un marqueur spécial, dit valeur null.
Généralement représenté par <null> ou par rien.

Problème : plusieurs interprétations possibles

1. information pertinente mais inexistante pour l'entité

2. information non pertinente pour cette entité

3. information existante mais actuellement inconnue

• Recommandation : éviter si possible les colonnes facultatives.

275
Identifiants et clés étrangères

• Un identifiant est un groupe de colonnes d'une table T tel qu'il ne puisse,


à tout moment, exister plus d'une ligne dans T qui possède des valeurs
déterminées pour ces colonnes. La valeur de l'identifiant permet de
désigner une ligne de T.

Une clé étrangère identifie une colonne ou un ensemble de colonnes


d'une table comme référençant une colonne ou un ensemble de colonnes
d'une autre table (la table référencée)

276
Identifiants et clés étrangères

277
Identifiants et clés étrangères

• Un identifiant définit une contrainte d'unicité. Il existe d'autres moyens de définir


cette contrainte.

• Une table peut posséder plusieurs identifiants. On choisit l'un d'eux, qu'on déclare
primaire. Les autres sont dès lors secondaires

• L'identifiant primaire est constitué de colonnes obligatoires

• Un identifiant est minimal si chacune de ses colonnes est nécessaire pour garantir
la contrainte d'unicité.

• Il est possible de déclarer une table sans identifiant mais ceci n'est pas
recommandé.

278
Identifiants et clés étrangères

• Une clé étrangère définit une contrainte référentielle. Il existe d'autres moyens de
définir cette contrainte.
• Si une des colonnes d'une clé étrangère est facultative, il est recommandé de les
rendre toutes facultatives.
• Une clé étrangère référence en principe l'identifiant primaire de la table cible.
• Une clé étrangère et l'identifiant qu'elle référence ont la même composition :
même nombre de colonnes et colonnes de mêmes types prises deux à deux.
• Il se peut qu'une clé étrangère soit également un identifiant.
• Il se peut que les colonnes d'une clé étrangère appartiennent, en tout ou en partie,
à un identifiant.

279
Identifiants et clés étrangères

• Un identifiant minimal est aussi appelé clé candidate (candidate key). [*]
• Un identifiant primaire s'appelle aussi clé primaire (primary key).
• Il n'existe pas d'autre terme pour désigner les identifiants secondaires
• Clé étrangère = foreign key.

280
Schéma et contenu

281
Schéma et contenu

Le schéma d'une table définit sa structure. Il spécifie notamment :

1. le nom de la table,

2. pour chaque colonne, son nom, son type, son caractère obligatoire,

3. l'identifiant primaire (liste des colonnes)

4. les identifiants secondaires éventuels (liste des colonnes)

5. les clés étrangères éventuelles (liste des colonnes et table cible).

Le contenu d'une table est formé d'un ensemble de lignes conformes au schéma.

•Le contenu d'une table est sujet à de fréquentes modifications. Le schéma d'une
table peut évoluer mais moins fréquemment

282
Exemple de base de données

283
Exemple de base de données

284
Exemple de base de données

Variantes de schéma

285
Modifications et contraintes d'intégrité

Une contrainte d'intégrité est une règle qui définit la cohérence d'une donnée ou


d'un ensemble de données de la BD. Le modèle relationnel impose les contraintes
structurelles suivantes :

INTÉGRITÉ DE DOMAINE
INTÉGRITÉ DE CLÉ
INTÉGRITÉ RÉFÉRENCIELLE

Il existe trois opérations élémentaires de modification :


1. insérer une ligne
2. supprimer une ligne
3. modifier une valeur de colonne d'une ligne.

286
INTÉGRITÉ DE DOMAINE

Les valeurs d'une colonne de relation doivent appartenir


au domaine correspondant

• contrôle des valeurs des attributs

• contrôle entre valeurs des attributs


INTÉGRITÉ DE CLÉ

Les valeurs de clés primaires doivent être :


- uniques
- non NULL
• Unicité de clé

• Unicité des n-uplets

• Valeur NULL
valeur conventionnelle pour représenter une information inconnue
• dans toute extension possible d'une relation, il ne peut exister 2 n-uplets ayant
même valeur pour les attributs clés sinon 2 clés identiques détermineraient 2
lignes identiques (d'après la définition d’une clé), ce qui est absurde
INTÉGRITÉ RÉFÉRENTIELLE

Les valeurs de clés étrangères sont 'NULL' ou sont des


valeurs de la clé primaire auxquelles elles font référence

• Relations dépendantes

• LES DÉPENDANCES :
Liaisons de un à plusieurs exprimées par des attributs
particuliers: clés étrangères ou clés secondaires
Les contraintes de référence ont un impact important pour les
opérations de mises à jour, elles permettent d’éviter les anomalies de
mises à jour
Exemple :
CLIENT (no_client, nom, adresse)
ACHAT (no_produit, no_client, date, qte)
Clé étrangère no_client dans ACHAT
• insertion tuple no_client = X dans ACHAT
vérification si X existe dans CLIENT
• suppression tuple no_client = X dans CLIENT
soit interdire si X existe dans ACHAT
soit supprimer en cascade tuple X dans ACHAT
soit modifier en cascade X = NULL dans ACHAT
• modification tuple no_client = X en X’ dans CLIENT
soit interdire si X existe dans ACHAT
soit modifier en cascade X en X’ dans ACHAT
Redondances internes

Table répertoriant les livres d'une bibliothèque :

291
Redondances internes

Observation
Les données TITRE et AUTEUR sont répétées autant de fois qu'il existe de
livres identiques.

Cette table viole le principe premier des bases de données : tout fait du
domaine d'application est enregistré une et une seule fois.

292
Redondances internes

Problèmes
 gaspillage d'espace
 si on modifie la valeur d'un titre, il faut répercuter cette modification
dans toutes les lignes similaires
 si on supprime l'unique exemplaire d'un livre, on perd les informations
sur son auteur et son titre

293
Redondances internes

Suggestion
Rassembler les données communes (ISBN, TITRE, AUTEUR) dans une table
spécifique

294
Redondances internes

Deux questions
1. Comment détecter les situations de redondance ?
2. Comment les corriger ?

La réponse à ces questions repose sur une nouvelle forme de


contrainte d'intégrité : la dépendance fonctionnelle.

295
LES DÉPENDANCES FONCTIONNELLES
Dépendance fonctionnelle
•Soit R(A1, A2, ...., An) un schéma de relation
Soit X et Y des sous ensembles de {A1,A2,...An)
On dit que Y dépend fonctionnellement de X (X->Y) si à
chaque valeur de X correspond une valeur unique de Y
•on écrit : X → Y
•on dit que : X détermine Y
•Ex.:
no_client → nom_client
Un nom du client ne peut pas avoir deux numéros.
no_CIN → nom_client
On ne peux pas avoir deux citoyens qui ont le même no-CIN
La réciproque est fausse
LES DÉPENDANCES FONCTIONNELLES
• La D.F. peut porter sur la concaténation de plusieurs propriétés.
• Num_Commande + nom_Client df→ quantité_commande
• D.F. élémentaire
On dit qu’il ya une D.F. élementaire entre A et B, si A → B et si aucune partie de A ne
détermine B (l’ensemble OK)
• Exemple:
Numero Client + Nom Client df→ Adresse (ne vérifie pas la condition)
Numero Client → Adresse (OK)
• D.F.E directe
• Si cette dépendance est une dépendance élémentaire A →B et s’il n’existe pas de propriété
C tel que
A → C et C → B ( on élimine la transitivité).

Num_Cmd → Num_Clt (directe)


Num_Clt → Nom_Clt (directe)
Num_Cmd →Nom_Clt (indirecte)
Redondances internes

• Notion de dépendance fonctionnelle

ISBN  TITRE, AUTEUR

si deux lignes ont la même valeur de ISBN,


alors elles ont aussi les mêmes valeurs de TITRE et d’AUTEUR

On dit que :
 il existe une dépendance fonctionnelle de ISBN vers TITRE et AUTEUR
 ISBN détermine ou est un déterminant de TITRE et AUTEUR
 TITRE et AUTEUR dépendent de ou sont déterminés par ISBN
298
Redondances internes

Notion de dépendance fonctionnelle

Deux observations
1. par définition, un identifiant détermine toutes les colonnes de la table
2. si un groupe de colonnes détermine chaque colonne de la table, il
constitue par définition un identifiant de la table

NUMERO  TITRE, AUTEUR, ISBN, DATE_ACHAT, EMPL

299
Redondances internes

Comment détecter les situations de redondance ?

Réponse
Il y a redondance interne dès qu'il existe un déterminant qui n'est
pas un identifiant de la table

Une dépendance fonctionnelle dont le déterminant n'est pas un


identifiant est dite anormale

ISBN est un déterminant dans LIVRE mais il n'en est pas un


identifiant. Il entraîne donc des redondances internes.

300
Redondances internes
Comment corriger les situations de redondance
Réponse
En décomposant la table T en deux fragments T1 et T2 :
T1(déterminant, déterminé)
T2.déterminant est une clé étrangère vers T1

301
Redondances

Synonyme : termes différents qui désignent le même concept du


domaine d’application.
Exemples : assuré et client dans un compagnie d'assurance

Homonyme : termes identiques, mais qui désignent des concepts


différents dans certaines parties du domaine d’application.
Exemples : adresse de commande, adresse d'expédition, adresse
de facturation; unité de fabrication, unité de soins
Redondances internes
Dernières remarques
1. Une table qui est le siège d'une dépendance fonctionnelle anormale est dite non
normalisée
2. Une table sans dépendance fonctionnelle anormale est dite normalisée
3. Décomposer une table de manière à éliminer ses dépendances anormales consiste
à normaliser cette table
4. Il est essentiel que toutes les tables d'une base de données soient normalisées

303
LES FORMES NORMALES

La théorie de la normalisation

La théorie de la normalisation est une théorie destinée à concevoir un bon


schéma d'une base de données sans redondance d'information et sans risques
d'anomalie de mise à jour. Elle a été introduite dès l'origine dans le modèle
relationnel. Elles traduisent des contraintes sur les données.
La décomposition

Objectif:

- décomposer les relations du schéma relationnel sans perte d’informations


- aboutir au schéma relationnel normalisé
• Le schéma de départ est le schéma universel de la base
• Par raffinement successifs ont obtient des sous relations sans perte
d’informations et qui ne seront pas affectées lors des mises à jour (non
redondance)
Les formes normales
Dans une base de données relationnelle, une forme normale désigne un type
de relation particulier entre les entités.
Le but essentiel de la normalisation est d’éviter les anomalies
transactionnelles pouvant découler d’une mauvaise modélisation des
données et ainsi éviter un certain nombre de problèmes potentiels tels que les
anomalies de lecture, les anomalies d’écriture, la redondance des données et
la contre-performance.

• Notion intuitive de FN
une « bonne relation » peut être considérée comme une fonction de la clé
primaire vers les attributs restants
1ère Forme Normale 1FN

•Une relation est en 1FN si tout attribut est atomique (non décomposable)
•Contiennent des valeurs non répétitives (pas de liste, tableau ……)
Contre-exemple
ELEVE (no_elv, nom, prenom, liste_notes)
Un attribut ne peut pas être un ensemble de valeurs
Décomposition
ELEVE (no_elv, nom, prenom)
NOTE (no_elv, no_matiere, note)
•Constant dans le temps (age, Date de naissance)
2ème Forme Normale 2FN

Une relation est en 2FN si


- elle est en 1FN
- si tout attribut n’appartenant pas à la clé ne dépend pas d’une partie de la clé primaire
mais de la totalité
• C’est la phase d’identification des clés
• Cette étape évite certaines redondances
• Tout attribut doit dépendre fonctionnellement de la totalité de la clé

Contre-exemple

une relation en 1FN qui n'est pas en 2FN


COMMANDE (date, no_cli, no_pro, qte, prixUHT)
elle n'est pas en 2FN car la clé = (date, no_cli, no_pro), et le prixUHT ne dépend que de no_pro

Décomposition

COMMANDE (date, no_cli, no_pro, qte)


PRODUIT (no_pro, prixUHT)
3ème Forme Normale 3FN

Une relation est en 3FN si


- elle est en 2FN
- si tout attribut n’appartenant pas à la clé ne dépend pas d’un attribut non clé

Ceci correspond à la non transitivité des D.F. ce qui évite les redondances.
En 3FN une relation préserve les D.F. et est sans perte.

Contre-exemple
une relation en 2FN qui n'est pas en 3FN
VOITURE (matricule, marque, modèle, puissance)
on vérifie qu'elle est en 2FN ; elle n'est pas en 3FN car la clé =matricule, et la
puissance dépend de (marque, modèle)

Décomposition
VOITURE (matricule, marque, modèle)
MODELE (marque, modèle, puissance)
L’algèbre relationnelle

I. Les opérations

II. Le langage algébrique


L’Algèbre relationnelle est une collection d’opérations

OPÉRATIONS
- opérandes : 1 ou 2 relations
-résultat : une relation

DEUX TYPES D’OPÉRATIONS:


OPÉRATIONS ENSEMBLISTES
UNION
INTERSECTION
DIFFÉRENCE

OPÉRATIONS SPÉCIFIQUES
PROJECTION
RESTRICTION
JOINTURE
DIVISION
􀃎
UNION
L'union de deux relations R1 et R2 de même schéma
est une relation R3 de schéma identique qui a pour n-
uplets les n-uplets de R1 et/ou R2
On notera :
R3 = R1 ∪ R2 ou UNION (R1,R2)
INTERSECTION
L’intersection entre deux relations R1 et R2 de même schéma
est une relation R3 de schéma identique ayant pour n-uplets
les n-uplets communs à R1 et R2
On notera :
R3 = R1 ∩ R2 ou Intersect(R1,R2)
DIFFÉRENCE
La différence entre deux relations R1 et R2 de même
schéma est une relation R3 de schéma identique ayant pour
n-uplets les n-uplets de R1 n'appartenant pas à R2
On notera :
R3 = R1 − R2 ou MINUS(R1,R2)
PROJECTION
La projection d'une relation R1 est la relation R2 obtenue en
supprimant les attributs de R1 non mentionnés puis en éliminant
éventuellement les nuplets identiques
On notera :
R2 = πR1 (Ai, Aj, ... , Am)
la projection d'une relation R1 sur les attributs Ai, Aj, … , Am
 La projection permet d’éliminer des attributs d’une relation
• Elle correspond à un découpage vertical :
Requête 1 :
« Quels sont les références et les prix des produits ? »
PRODUIT (IdPro, Nom, Marque, Prix)
Requête 2 :
« Quelles sont les marques des produits ? »
PRODUIT (IdPro, Nom, Marque, Prix)

Notez l’élimination des doublons..


RESTRICTION
La restriction d'une relation R1 est une relation R2 de même schéma n'ayant que
les n-uplets de R1 répondant à la condition énoncée
On notera :
R2 = σR1 (condition)
la restriction d'une relation R1 suivant le critère "condition"
où "condition" est une relation d'égalité ou d'inégalité entre 2 attributs ou entre un
attribut et une valeur
 La restriction permet d'extraire les n-uplets qui satisfont une condition
• Elle correspond à un découpage horizontal :
Requête 3 :
« Quelles sont les produits de marque ‘IBM’ ? »
PRODUIT (IdPro, Nom, Marque, Prix)
JOINTURE

La jointure de deux relations R1 et R2 est une relation R3 dont les n-uplets


sont obtenus en concaténant les nuplets de R1 avec ceux de R2 et en ne
gardant que ceux qui vérifient la condition de liaison
On notera : R3 = R1 × R2 (condition) ou JOIN(R1,R2)(condition)
la jointure de R1 avec R2 suivant le critère condition
• Le schéma de la relation résultat de la jointure est la concaténation des
schémas des opérandes (s'il y a des attributs de même nom, il faut les
renommer)
• Les n-uplets de R1 × R2 (condition) sont tous les couples (u1,u2) d'un n-
uplet de R1 avec un n-uplet de R2 qui satisfont "condition"
• La jointure de deux relations R1 et R2 est le produit cartésien des deux
relations suivi d'une restriction
• La condition de liaison doit être du type :

<attribut1> :: <attribut2>
où : attribut1 ∈ 1ère relation et attribut2 ∈ 2ème relation
:: est un opérateur de comparaison (égalité ou inégalité)
 La jointure permet de composer 2 relations à l'aide
d'un critère de liaison
Jointure naturelle
Jointure où l'opérateur de comparaison est l'égalité dans le résultat on
fusionne les 2 colonnes dont les valeurs sont égales
 La jointure permet d'enrichir une relation
Requête 5 :
« Donnez pour chaque vente la référence du produit, sa désignation, son
prix, le numéro de client, la date et la quantité vendue »

• La normalisation conduit à décomposer ; la jointure permet de recomposer


Auto-jointure
jointure d'une relation par elle-même
Requête 6 :
« Quels sont les noms des clients qui habitent la même ville que John ?»
DIVISION
Soit deux relations
R1 (A1, A2, … , An, B1, B2, … , Bm)
R2 (B1, B2, … , Bm)

Si le schéma de R2 est un sous-schéma de R1.


La division de R1 par R2 est une relation R3 dont :
- le schéma est le sous-schéma complémentaire de R2 par rapport à R1

-un n-uplet (a1, a2, … , an) appartient à R3 si (a1, a2, … , an, b1, b2, … , bm) appartient
à R1 pour tous (b1, b2, … , bm) ∈ R2.

On notera : R3 = R1 ÷ R2
la division de R1 par R2
la division permet de rechercher dans une relation les sous n-uplets qui sont complétés
par tous ceux d'une autre relation Elle permet de répondre à des questions qui sont
formulées avec le quantificateur universel : « pour tout ... »

Requête 6 :
« Quels sont les élèves qui sont inscrits à tous les sports ? »
Requêtes sur le schéma CLIENT, PRODUIT, VENTE

CLIENT (IdCli, nom, ville)


PRODUIT (IdPro, désignation, marque, prix)
VENTE (IdCli, IdPro, date, qte)

Requête 1 :
Donner les no des produits de marque Apple et de prix < 5000 Dhs

Requête 2 :
Donner les no des clients ayant acheté un produit de marque Apple

Requête 3 :
Donner les no des clients n'ayant acheté que des produits de marque Apple

Requête 4
Donner les no des clients ayant acheté tous les produits de marque Apple
Le langage algébrique
Le langage algébrique permet de formuler une question
par une suite d'opérations de l'algèbre relationnelle

Requêtes sur le schéma CLIENT, PRODUIT, VENTE


CLIENT (IdCli, nom, ville)
PRODUIT (IdPro, désignation, marque, prix)
VENTE (IdCli, IdPro, date, qte)

Requête 8 :
« Donner les no des produits de marque Apple et de prix
< 5000 Dhs »
R1 = σPRODUIT (marque = Apple')
R2 = σPRODUIT (prix < 5000)
R3 = R1∩R2
RESUL = πR3 (IdPro)
Requête 9 :
« Donner les no des clients ayant acheté un produit de
marque Apple »

R1 = σPRODUIT (marque = 'Apple')


R2 = R1×VENTE (R1.IdPro = VENTE.IdPro)
RESUL = πR2 (IdCli)
Requête 10 :
« Donner les no des clients n'ayant acheté que des
produits de marque Apple »

R1 = VENTE×PRODUIT (VENTE.IdPro =
PRODUIT.IdPro)
R2 = σR1 (marque = 'Apple')
R3 = πR2 (IdCli)
R4 = σR1 (marque ≠ 'Apple')
R5 = πR4 (IdCli)
RESUL = R3 − R5
Requête 11 :
« Donner les no des clients ayant acheté tous les
produits de marque Apple »

R1 = σPRODUIT (marque = 'Apple')


R2 = πR1 (IdPro)
R3 = πVENTE (IdCli, IdPro)
R4 = R3 ÷ R2
Les structures physiques
Les tables sont stockées sur le disque de l'ordinateur.
Si elles sont très volumineuses, l'accès aux données et leur modification risquent de
prendre un temps considérable.
Exemple :
la lecture d'une table de 2.500.000 de lignes de 400 octets prend près d'une
minute dans le meilleur des cas et une heure dans le cas contraire.
Les structures physiques garantissent de bonnes performances aux opérations de
lecture et de modification.
Deux mécanismes principaux :
 les index
 les espaces de stockage

332
Les structures physiques - Les index

333
Les structures physiques - Les index

334
Les structures physiques - Les index

Index

L'accès à une ligne d'une table via un index prend généralement


de 10 à 20 millisecondes.

En l'absence d'index, l'accès à cette ligne peut exiger la lecture de toute


la table, soit de 1 minute à 1 heure !

335
Les structures physiques - Les index

1. Quel est l’intérêt d’un index dans une base de données?

2. Qu’est ce qu’index de base de données?

3. Comment créer un index?

4. Quels sont les types d’index?

336
Quel est l’intérêt d’un index dans une base
de données?

1. Le moteur de SGBD utilise les index pour rechercher rapidement

les données

2. Si les index n’existent pas, le moteur SGBD parcourt tous les

enregistrements de la table

3. L’impact des index sur les requêtes d’écriture est moins important

337
Qu’est ce qu’index de base de données?

1. Une base de données sans index oblige le moteur du SGBD de parcourir de A

à Z pour fournir le résultat

2. Les SGBDR créent automatiquement un index sur la clé primaire

3. Les SGBDR créent automatiquement un index la contrainte d’unicité

(UNIQUE) dans une table

4. Il n’y a pas d’index crée automatiquement par le SGBD derrière une clé

étrangère(FOREIGN KEY)

338
Comment créer un index?

La syntaxe générale de l’ordre SQL de création d’un index:


CREATE INDEX<nom index>
ON <nom_table>(<liste_colones>)
Exemple 1: création d’un index sur une seule colonne:
CREATE INDEX idx_nomProduit
ON produit (NomProduit)
Exemple 2: création d’un index sur deux colonnes:
CREATE INDEX idx_nomCategorie
ON produit (NomProduit, categorie)
Exemple 3: création d’un index unique:
CREATE UNIQUE INDEX idx_refProduit
ON produit (RefProduit)

339
Quels sont les types d’index?

1. B-Tree(arbre équilibré)
2. Hash (index de hachage)

• Chaque type d’index utilise un algorithme qui convient à un type


particulier de requêtes.

340
Les structures physiques
Espace de stockage

La table est une collection de lignes dont les éléments doivent être stockés sur un
disque. Les lignes seront rangées dans un espace spécial qui leur est réservé : un
espace de stockage. L'espace correspond à un fichier occupant tout ou partie d'un
disque (voire de plusieurs disques).

Un espace de stockage est caractérisé notamment par son adresse, son volume
initial, la manière dont il grandit ou se réduit selon les besoins, les tables dont il
accueille les lignes, la technique de rangement des lignes.

341
Les structures physiques

342
Le langage SQL
Définition

SQL (Structured Query Language) est le langage de programmation utilisé pour

définir et manipuler des bases de données relationnelles organisées sous forme de

tables contenant des lignes et des colonnes.


Définition
SQL est à la fois un langage de définition de données et un langage de manipulation de

données :

— D’une part, en tant que langage de définition de données, SQL permet d’implémenter

physiquement un modèle relationnel au sein d’un système de gestion de bases de données en offrant

des instructions qui permettent de créer des tables et des colonnes.

— D’autre part, en tant que langage de manipulation de données, SQL offre une multitude

d’opérations permettant de faire la recherche, l’insertion, la suppression et la mise à jour de données.


Langage de définition de données
• Création d’une table
L’instruction SQL qui permet de créer une table s’appelle CREATE TABLE. Sa syntaxe est la suivante :

L’instruction CREATE TABLE permet de créer une table et de définir le nom, le type de données et les
éventuelles contraintes d’intégrité de chaque colonne.
Types de données

L’ensemble des types de données utilisés dans les différents SGBDs du marché varie légèrement
d’un SGBD à un autre.
type numériques
Types de données

Date et heure Types


Types de données

type String
Contraintes d’intégrité

• Une contrainte d’intégrité est un mécanisme qui s’assure que les valeurs d’une colonne donnée
soient toujours cohérentes.
• quatre contraintes d’intégrités seront prises en considération :
1. PRIMARY KEY : Déclare la colonne comme étant la clé primaire de la table. Cette contrainte
peut être utilisée dans sa version multi-colonne pour définir une clé primaire composée de
plusieurs attributs.
2. NOT NULL : S’assure que la colonne ne contienne pas de valeurs NULL.
3. CHECK(C) : S’assure que toutes les valeurs de la colonne satisfont la condition C.
4. REFERENCES Tab(Col) : Déclare la colonne comme clé étrangère qui référence la colonne Col
de la table Tab.
Exemple de création de tables

• Les instruction respectives de création des tables country, city et countryLanguage de la base de données World
sont données dans ce qui suit :

La table country contient sept colonnes :


— Code : est l’identifiant unique d’un pays e.g ’FIN’ pour Finlande, etc.
Son type est TEXT et c’est la clé primaire de la table country.
— Name : est le nom du pays e.g. ’Finland’, ’Sweden’. Son type est
TEXT et sa valeur ne peut pas être NULL.
— Continent : est le nom du continent où se trouve le pays e.g. ’Africa’,
’Europe’, etc. Son type est TEXT et sa valeur ne peut pas être NULL.
— SurfaceArea : est la superficie du pays. Son type est REAL et sa
valeur est strictement positive et ne peut pas être NULL.
— Population : est la population du pays. Son type est INTEGER et sa
valeur est strictement positive et ne peut pas être NULL.
— HeadOfState : est le nom du chef d’état du pays e.g. ’Vladimir Putin’
pour la Russie. Son type est TEXT et sa valeur ne peut pas être NULL.
— Capital : est la capitale du pays. Son type est INTEGER et c’est une
clé étrangère qui référence la colonne ID de la table city. Sa valeur ne peut
pas être NULL.
Exemple de création de tables

La table city contient quatre colonnes


:
— ID : est l’identifiant unique d’une
ville. Son type est INTEGER et c’est
la clé primaire
de la table city.
— Name : est le nom de la ville
e.g.’New York City’, etc. Son type
est TEXT et sa valeur ne peut pas
être NULL.
— countryCode : est le code du
pays où se situe la ville. Son type est
TEXT, c’est une clé étrangère qui
référence la colonne Code de la table
country. Sa valeur ne peut pas être
NULL.
Population : est la population de la
ville. Son type est INTEGER, sa
valeur est strictement positive et ne
peut pas être NULL.
Exemple de création de tables

La table countryLanguage contient deux


colonnes :
— CountryCode : est le code du pays où
la langue est parlée. Son type est TEXT,
c’est une clé étrangère qui référence la
colonne Code de la table country et elle
ne peut pas être NULL.
— Language : est le nom de la langue
parlée dans le pays dont le code est
countryCode e.g. ’Arabic’, ’Berberi’ pour
le Maroc. Son type est TEXT et sa valeur
ne peut pas être NULL.
• La clé primaire de la table
countryLanguage est composée des deux
colonnes CountryCode et Language.
Suppression d’une table

• L’instruction SQL qui permet de supprimer une table s’appelle DROP TABLE. Sa syntaxe est la
suivante :
• DROP TABLE [ Nom_de_la_table ];
Exemple de suppression d’une table
Les instructions suivantes permettent de supprimer les tables country, city et countryLanguage:

DROP TABLE country ;


DROP TABLE city ;
DROP TABLE countrylanguage ;
Langage de manipulation de données

• Insertion de données

L’instruction SQL qui permet d’insérer des données dans une table s’appelle INSERT INTO. Sa syntaxe est la

suivante :

INSERT INTO [ Nom_de_la_table ]

VALUES (v1 ,v2 , ... );

Où v1,v2, ... sont les valeurs du tuple à ajouter dans la table. Ces valeurs doivent être données dans l’ordre dans

lequel les colonnes ont été déclarées lors de l’utilisation de l’instruction CREATE TABLE
Exemples d’insertion de données

Afin d’illustrer l’utilisation de l’instruction INSERT INTO, ce qui suit est un exemple d’ajout de la ville de Tanger
dans la table city :

INSERT INTO city

VALUES (35 , ’Tanger ’, ’MA ’, 2168000);

Ce qui suit est un autre exemple d’ajout dans la table countryLanguage des langues parlées au Maroc:

INSERT INTO countrylanguage

VALUES (’MA ’,’Arabic ’);

INSERT INTO countrylanguage

VALUES (’MA ’,’Berberi ’);


Suppression de données

L’instruction SQL qui permet de supprimer des données dans une table s’appelle DELETE FROM.

Sa syntaxe est la suivante :

DELETE FROM [ Nom_de_la_table ]

WHERE [ Condition ];

Cette instruction supprime tous les tuples d’une table qui vérifient la condition qui suit le mot-clé WHERE.
Exemple de suppression de données

Afin d’illustrer l’utilisation de l’instruction DELETE FROM, ce qui suit est un exemple de

suppression de tous les pays d’Afrique :

DELETE FROM country

WHERE Continent = ’Africa ’;


Mise à jour de données

L’instruction SQL qui permet de mettre à jour les données d’une table s’appelle UPDATE. Sa
syntaxe est la suivante :

UPDATE [ Nom_de_la_table ]

SET [ Colonne ] = [ Valeur ]

WHERE [ Condition ];

L’instruction UPDATE effectue la modification qui suit le mot clé SET sur tous les tuples de la
table qui vérifient la condition qui suit le mot clé WHERE.
Exemple de mise à jour de données

Afin d’illustrer l’utilisation de l’instruction UPDATE, ce qui suit est un exemple qui fait la mise à

jour suivante « Donald Trump est le nouveau président des USA » :


UPDATE country
SET HeadOfState = ’Donald ␣ Trump ’
WHERE Code = ’USA ’;
Recherche de données

La recherche de données en SQL se fait de manière similaire à celle de l’algèbre relationnel dans la
mesure où elle s’appuie entre autres sur les opérations de projection, de restriction et de jointure.
L’instruction SQL qui permet d’effectuer une recherche de données s’appelle SELECT. Sa syntaxe
est la suivante :
SELECT [ Colonne ] , [ Colonne ], ...
FROM [ Table ], [ Table ], ...
WHERE [ Condition ];
— la projection sur les colonnes qui suivent le mot-clé SELECT (Le symbole * peut être utilisée pour
projeter sur toutes les colonnes).
— du produit cartésien des tables qui suivent le mot-clé FROM
— et restreint le résultat aux tuples qui satisfont la condition qui suit le mot-clé WHERE. Les opérateurs
logique AND et OR peuvent être utilisés pour construire la condition
Exemples de requêtes d’interrogations d’une seule table

Afin d’illustrer l’utilisation de l’instruction SELECT, nous allons traduire des requêtes exprimées en
langage naturel vers des requêtes exprimées en SQL :
Donner le nom de chaque pays et le nom de son chef d’état.
SELECT Name , HeadOfState
FROM country ;
Donner le nom de chaque pays et le code de sa capitale.
SELECT Name , Capital
FROM country ;
Donner le nom des pays dont la superficie dépasse 1000000m 2.
SELECT Name
FROM country
WHERE SurfaceArea > 1000000;
Exemples de requêtes d’interrogations d’une seule table
Exemples de requêtes d’interrogations sur plusieurs tables

Donner le nom de toutes les villes d’Algérie. Cette requête nécessite de faire une jointure entre les
tables city et country. Elle peut être exprimée de la manière suivante :

SELECT city . Name

FROM country , city

WHERE CountryCode = Code

AND country . Name = ’Algeria ’;


Les remarques concernant la recherche de données à
travers plusieurs tables

Remarque1

La jointure est exprimée comme une condition du WHERE. C’est-à-dire qu’il n’est pas nécessaire

de faire appel à une autre instruction SQL pour faire la jointure. En outre, les éventuelles restrictions

peuvent être exprimées avant (ou après) la jointure en utilisant l’opérateur AND. Cette manière

d’exprimer la jointure comme une restriction découle du fait qu’en algèbre relationnelle, une

jointure peut être vue comme un produit cartésien suivi d’une restriction
Les remarques concernant la recherche de données à
travers plusieurs tables

Remarque2

Il est éventuellement nécessaire de désambiguïser le nom des colonnes. En effet, dans l’exemple

précédent, la colonne Name existe dans deux tables différentes : city et country. Pour faire la

différence entre ces deux colonnes, il est nécessaire de précéder le nom de la colonne par le nom de

la table suivi d’un point. Par exemple city.Name pour la colonne Name de la table city et

country.Name pour la colonne Name de la table country.


Exemples de requêtes d’interrogations sur plusieurs tables
Opérations ensemblistes

À l’instar de l’algèbre relationnelle, le langage SQL offre les trois principales opérations ensemblistes vues dans le
chapitre qui porte sur l’algèbre relationnelle, à savoir :

— L’union en utilisant le mot-clé UNION ;

— L’intersection en utilisant le mot-clé INTERSECT ;

— La différence en utilisant le mot-clé EXCEPT.

Ces trois opérations peuvent être utilisées entre deux instructions SELECT. Et comme en algèbre relationnelle, les
deux instructions SELECT doivent avoir les mêmes colonnes, c’est-à-dire, la même projection.
Opérations ensemblistes

La syntaxe de l’utilisation des opérations ensemblistes est la suivante :

SELECT [ Colonne ] , [ Colonne ], ...


FROM [ Table ], [ Table ], ...
WHERE [ Condition ];

opérations ensemblistes

SELECT [ Colonne ] , [ Colonne ], ...


FROM [ Table ], [ Table ], ...
WHERE [ Condition ];
Exemples :

Donner le nom des pays d’Afrique et d’Asie. Nous pouvons diviser cette requête en deux requêtes
: la première retourne les pays d’Afrique et la seconde retourne les pays d’Asie. Puis, nous devons
faire l’union des résultats des deux requêtes :
SELECT Name
FROM country
WHERE Continent = ’Africa ’
UNION
SELECT Name
FROM country
WHERE Continent = ’Asia ’;
Exemples :

• Quelles sont les villes du royaume uni (United Kingdom) qui ont des homonymes aux
Canada?
Exemples :

• Quelles sont les langues parlées à la fois en Suisse (Switzerland) et en Belgique (Belgium)?
Exemple

• Quelles sont les langues parlées uniquement en Afrique du sud (South Africa)?
Exemple

• Donner le nom des pays qui parlent uniquement l’espagnol (Spanish).


Limitation des résultats
Parfois, nous pouvons avoir besoin d’afficher seulement d’un échantillon de tuples (ou un certain
nombre de tuples) et non pas la totalité des tuples d’une requête SELECT. Le langage SQL offre
pour cela l’instruction LIMIT dont la syntaxe est la suivante :

SELECT [ Colonne ] , [ Colonne ], ...

FROM [ Table ], [ Table ], ...

WHERE [ Condition ]

LIMIT [ Nombre_maximum_de_tuples ];

L’instruction LIMIT limite le résultat de l’instruction SELECT à un nombre de tuples égal au


maximum au nombre qui suit le mot-clé LIMIT.
Exemple

• Donner le nom de 5 pays d’Afrique.


SELECT Name
FROM country
WHERE Continent = ’Africa ’
LIMIT 5;
Tri des résultats

Contrairement à l’algèbre relationnelle, SQL offre la possibilité de trier les résultats retournés par
instruction SELECT. Le tri se fait selon l’ordre croissant ou décroissant des valeurs d’une colonne.
L’instruction qui permet de trier les résultats s’appelle ORDER BY. Sa syntaxe est la suivante :

SELECT [ Colonne ] , [ Colonne ], ...

FROM [ Table ], [ Table ], ...

WHERE [ Condition ]

ORDER BY [ Colonne ] ASC / DESC ;

L’instruction ORDER BY trie le résultat de l’instruction SELECT selon l’ordre croissant (ASC) ou décroissant
(DESC) des valeurs de la colonne qui suit le mot-clé ORDER BY.
Exemples
Exemple
Fonctions

• Le langage SQL offre plusieurs fonctions pour effectuer des traitements sur les données. Le
tableau suivant donne la signification de chacune de ces fonctions.
Fonctions

L’appel d’une de ces fonction doit se faire directement après le mot-clé SELECT et ne peut être
utilisé que sur une et une seule colonne de projection. La syntaxe de l’utilisation des fonctions est la
suivante :

SELECT FONCTION ([ Colonne ])

FROM [ Table ], [ Table ], ...

WHERE [ Condition ]
Exemples
Fin du Module

383

Vous aimerez peut-être aussi