2. COURS SI + BDD
Partie « Développement d’un SI »
Objectif : savoir appliquer une méthode de développement d’un SI
Partie « Base de Données »
Objectif : savoir concevoir un modèle de BDD et l’implanter avec
un langage de manipulation de données
Outils : modèle E-A, relationnel, UML, SQL,
4. Introduction sur les Systèmes d’Information
Notions de base
Mise en œuvre technique
Le Modèle Entité-Association
Concepts
Exemple
Le modèle relationnel
Concepts
Algèbre relationnelle
Théorie des dépendances et de la normalisation
6. Un système d'information (noté SI) représente
l'ensemble des éléments participant à la gestion, au
stockage, au traitement, au transport et à la diffusion
de l'information au sein d'une organisation.
7. Système = ensemble auto-réglable et interagissant avec
l’environnement qui fonctionne en vue d’un objectif
précis
Information = donnée enrichie d’un modèle
d’interprétation
8. Un SI a deux fonctions principales [Dumoulin]
La production d’information
Collecter des informations
Traiter et transmettre des informations
Mémoriser des informations
La mise en œuvre d’outils de gestion
Fonction technologiques (matériels, logiciels,
méthodes, savoir-faire, …)
Fonction économique
Fonction sociale
9. Importance qui s'est largement accrue dans les 20
dernières années
De plus en plus le DSI est au moins aussi important que la
DRH ou le marketing
Dépendante de l'activité mais pas seulement importante
pour le secteur des sciences et informations
Société de l'information
Économie du savoir
11. Stockage des données
But du stockage
conserver l'information (archivage des
données)
rendre l'information disponible
(publication des données)
réutiliser l'information (traitement des
données)
12. L’informatisation du SI nécessite la mise en place de
supports matériels et logiciels de stockage des données.
L’information est numérisée et conservée sous la forme de
fichiers.
Le moyen d’organiser, d’accéder à et de manipuler ces
fichiers est à définir
14. Système utilisé pour gérer les données d’un disque
(disquette, disque dur, CD-Rom, …)
Un fichier = une suite ordonnée de données
2 types d’accès aux données d’un fichier
Séquentiel (depuis l’adresse de début du fichier)
Accès direct (selon un décalage par rapport à l’adresse de début)
Système de Gestion de Fichiers (SGF) : gère les accès aux
fichiers, application par application
Inconvénient :
Structure trop simple (applications indépendantes)
Redondance d’information
15. •Une Base de Données (BDD) est un ensemble
structuré de données accessibles par l’ordinateur pour
satisfaire simultanément plusieurs utilisateurs
•La structure de la BDD dépend du modèle choisi
•Hiérarchique ou réseaux (≈ 1960)
•Relationnel (≈ 1970/1980)
•Objet (≈ 1990)
17. Partie A. Vue d'ensemble
• Qu'est ce qu'une Base de données?
Une BD [Base de Données] est un ensemble
volumineux, structuré et minimalement redondant de
données, reliées entre elles, stockées sur supports
numériques centralisés ou distribués, servant pour les
besoins d'une ou plusieurs applications,
interrogeables et modifiables par un ou plusieurs
utilisateurs travaillant potentiellement en parallèle.
18. Exemple : Compagnie aérienne
Une BD de gestion de l'activité d'une compagnie
aérienne concernant les voyageurs, les vols, les avions,
le personnel, les réservations, etc. Une telle BD
pourrait permettre la gestion des réservations, des
disponibilités des avions en fonction des vols à
effectuer, des affectation des personnels volants, etc.
19. Système de Gestion de Base de
Données
• Qu'est ce qu'un SGBD ?
Un SGBD [Système de Gestion de Bases de
Données] est un logiciel qui prend en charge la
structuration, le stockage, la mise à jour et la
maintenance d'une base de données. Il est l'unique
interface entre les informaticiens et les données
(définition des schémas, programmation des
applications), ainsi qu'entre les utilisateurs et les
données (consultation et mise à jour).
20. Un Système de Gestion de Bases de Données (SGBD)
est un ensemble d’outils logiciels permettant la
manipulation de BDD
Facilite la manipulation des données pour des non-
informaticiens
Fournit des fonctionnalités d’administration de la
base
21. Exemples de SGBD
¨Oracle est un SGBD relationnel (et Relationnel-Objet dans ses dernières
versions) très reconnu pour les applications professionnelles.
¨MySQL est un SGBD relationnel libre (licence GPL et commerciale),
simple
d'accès et très utilisé pour la réalisation de sites Web dynamiques.
Depuis la version 4 MySQL implémente la plupart des fonctions attendues
d'un SGBD relationnel.
¨PosgreSQL est un SGBD relationnel et relationnel-objet très puissant qui
offre une alternative open-source aux solutions commerciales comme
Oracle ou IBM.
¨Access est un SGBD relationnel Microsoft, qui offre une interface
conviviale permettant de concevoir rapidement des applications de petite
envergure ou de réaliser des prototypes à moindre frais.
22. Pourquoi des SGBD ?
Jadis...
Avant l'avènement des SGBD, chaque application
informatique dans l'entreprise
impliquait sa propre équipe de développement, ses
propres supports physiques, ses propres fichiers, ses
propres normes, ses propres langages, etc.
23. Pourquoi des SGBD ?
• Conséquences...
L'existence conjointe et croissante de ces applications
indépendantes a des effets négatifs, tels que :
¨La multiplication des tâches de saisie, de développement et
de support informatique
¨La redondance anarchique des informations dans les
fichiers
¨L'incohérence des versions simultanées de fichiers
¨La non-portabilité des traitements en raison des différences
dans les formats et langages.
¨La multiplication des coûts de développement et de
maintenance des applications.
24. Pourquoi des SGBD ?
• Problèmes...
Les conséquences précédemment citées se répercutent sur
l'entreprise en générant des problèmes humains et matériels.
Coûts en personnels qualifiés et en formations
¨Remise des pouvoirs de décision entre les mains de
spécialistes informatiques
¨Tout changement matériel ou logiciel a un impact sur les
applications
¨Tout changement de la structure des données nécessite de
modifier les programmes
Or...
En réalité les applications ne sont jamais totalement disjointes,
des données similaires (le cœur de l'information d'entreprise)
sont toujours à la base des traitements.
25. Pourquoi des SGBD ?
On peut citer typiquement :
• ¨Les données comptables
• ¨Les données clients et fournisseurs
• ¨Les données relatives à la gestion des stocks
• ¨Les données relatives aux livraisons
• ¨Les données marketing et commerciales
• ¨Les données relatives au personnel
• ¨etc.
26. Fidélité
image fidèle de la réalité qu'elle modélise
Unicité
pas de redondance d'information dans la BD
Indépendance
indépendant du modèle de stockage
Concurrence
Gestion d’accès simultanés à une même donnée.
Performance
temps d’exécution raisonnable
27. Principes fondamentaux desPrincipes fondamentaux des
SGBD (2)SGBD (2)
Confidentialité
Accessibilité des données dépendant de l’utilisateur
Intégrité
garanties de fiabilité et de cohérence.
Robustesse
tolérant aux problèmes matériels, logiciels ou humains
28. Cycle de vie d’une BDD
Monde réel
Concevoir Créer la structure
Implanter
OptimiserManipuler
Maintenir
Concepteur
Modèle
Conceptuel
de Données
Modèle
Logique
de Données
Administrateur
Langage de
Description
de Données
Outils
d’indexation,
SGBD, …
UtilisateurLangage de
Manipulation
de Données
Requêtes
spécifiques
29. Origine du modèle Entité-Association
Proposé par Chen en 1976
Modèle sémantique pour comprendre et visualiser
l’organisation des données
Également appelé modèle EAR (Entité-Attribut-
Relation)
Objectif : concevoir un Modèle Conceptuel de
Données (MCD)
30. Observation de la réalité
Modélisation des informations
Définition d’une base de
données relationnelle
Modèle Entité-Association
Modèle relationnel
31. Entité : type d'objet abstrait ou concret provenant de
l'observation du monde réel et pour lequel nous
souhaitons enregistrer et connaître des informations
Une occurrence est une instance d’une entité
Ex: la Peugeot 206 immatriculée « 1234 06 31 » est une occurrence
de l'entité Véhicule, et la personne prénommée « Mohamed Ali »
née le 4 février 1980 une occurrence de Propriétaire
32. Attribut : caractéristique d'une entité (ou d'une
association) que le concepteur juge nécessaire de
répertorier
Remarques :
Les attributs sont typés
Une entité définit les attributs par leur type
Une occurrence affecte une valeur à chaque attribut
33. Clé : attribut ou un ensemble d'attribut qui permet d'identifier
de manière unique une occurrence d'une entité parmi toutes ses
occurrences
Plus d’une occurrence de Véhicule avec une même immatriculation ne peut
pas exister
Plus d’une occurrence de Propriétaire avec un même nom, prénom et date
de naissance ne peut pas exister
34. Association : lien entre des entités présentant un intérêt pour
la conception que l'on souhaite réaliser
37. La cardinalité d'une association indique le nombre
d'occurrences de chaque entité qui peuvent être
impliquées dans une même association
39. On souhaite concevoir le SI correspondant à la gestion de
la scolarité de l’INTTIC. La scolarité fonctionne de la
manière suivante :
Un étudiant appartient à une promotion (1A, 2A ou 3A).
Les élèves d’une promotion suivent plusieurs groupes
pédagogiques (GP). Chaque groupe pédagogique est
constitué d’unités pédagogiques (UP).
A chaque GP et UP est affecté un enseignant
responsable.
Un élève obtient une note par UP et par GP qu’il suit.
40. On représente les entités suivantes :
Étudiant
Enseignant
Promotion
Groupe Pédagogique
Unité Pédagogique
41. On représente les associations suivantes :
Un étudiant appartient à une promotion
Une promotion donne accès à certains groupes
pédagogiques
Un étudiant suit plusieurs groupes pédagogiques et y
obtient une note
Un étudiant suit plusieurs unités pédagogiques et y
obtient une note
Les GP et UP sont enseignés par un enseignant
42. Étudiant
no_etudiant: int
nom: string
prenom: string
Groupe Pédagogique
nom: string
Unité Pédagogique
nom: string
Promotion
nom: string
suit
note : réel
suit
note : réel
donne accès
appartient
1:1 1:N
1:N1:1
0:N
1:N
1:
1
1:N
Enseignant
nom: string
prenom: string
enseigne
dirige
1:
1
1:
1
0:N
0:N
43. Origine du modèle relationnel
Proposé par Codd en 1970
Application de la théorie des relations à la gestion de
fichiers informatiques
Le modèle relationnel fournit un support
mathématique cohérent à la manipulation de
données : l’algèbre relationnelle
Modèle dominant dans les offres commerciales de SGBD
Oracle, DB2, Sybase, Ingres, Postgres, MySQL, …
44. Organisation des données en tables 2D
Une table 2D = une relation
Une colonne d’une table = un attribut
Une ligne d’une table = un tuple
Manipulation des données par des opérateurs
L’algèbre relationnelle
Cohérence des données gérée par des règles et
normes
Dépendances fonctionnelles
Théorie de la normalisation
45. numéro nom prénom naissance
5 Ahmed kaddour 04-févr-80
13 Ali Abdallah 15-mai-76
76 Mohamed mustapha 29-nov-86
immatriculation marque propriétaire
3452 AZ 13 BMW 13
9835 EI 07 Renault 76
1234 WW 42 Peugeot 5
9878 DG 94 BMW 76
46. Un modèle Entité-Association peut se traduire
simplement en un modèle relationnel
Schéma de données plus formalisé
Possibilité d’utiliser l’algèbre relationnel pour exprimer
des requêtes
3 règles simples de transformation
47. Toute entité est traduite par une relation
contenant les mêmes attributs et clés que l'entité
Se traduit par :
Vehicule(immatriculation: string, marque: string)
Proprietaire(nom: string, prenom; string, naissance: date)
48. Toute association depuis une entité R vers une
entité R' ayant une cardinalité 0:1 ou 1:1 se traduit
par l'ajout, dans la relation résultat de la
traduction de R, de la clé de R' avec le statut
d'attributs
Se traduit par :
Vehicule(immatriculation: string, marque: string, nom_prop:
string, prenom_prop; string, naissance_prop: date)
49. Toute association depuis entre entités ayant une cardinalité
autre que 0:1 ou 1:1 se traduit par la création d'une relation
contenant comme attributs les clés des entités associées ainsi
que d‘éventuels attributs de l'association. La clé de la relation
créée est l'ensemble des attributs représentant les clés des
entités associées
Se traduit par :
Achete(immatriculation: string, nom_prop: string, prenom_prop;
string, naiss_prop: date, nom_conc: string, dateAchat: string)
51. Partie C. Les méthodes de
conception de bases de données