Concevoir un système d`information Bases données mal perçues…

Transcription

Concevoir un système d`information Bases données mal perçues…
Concevoir un système
d’information
Des données
à la base de données
[email protected]
http://andruccioli.u-bordeaux4.fr
2009 - 2010
1
Bases données mal perçues…
•
•
•
•
•
•
•
•
« Access est difficile »
« J’ai toujours fait avec Excel, cela suffit! »
« Access ne sert à rien »
« Les bases de données rendent difficile ce
qui est simple »
« Les commerciaux utilisent TOUS Excel »
« Dans les achats on n’utilise qu’Excel ».
« On n’arrive à rien faire avec Access »
« L’informatique doit faciliter la vie, pas la
compliquer »
2
1
Mauvaise image BD
• Pas de connaissance des concepts de base des
systèmes d’information liés aux BD
• Improvisation dans l’emploi des BD
• Méthodologie de création de BD absente
• Difficultés propres à Access (Vocabulaire, outils):
Données, tables, champs, nature et taille des champs, clés
primaires, état, requêtes, formulaires, modules, macro,
Programmation!
•
•
•
•
•
ACCESS: confusion données, outils, interface
ACCESS: client-serveur & Moteur-Interface
ACCESS: création / Utilisation d’une application
Confusion Table-BD-Fichier
=> Différence d’utilisation / Word, Excel, PP
3
…Sauf quand cela nous arrange.
•
•
•
•
•
•
•
•
•
•
•
Environnement composé de BD
Sites Web avec BD (Transports, commerce…)
Nos comptes bancaires
Identifiants au travail, au pôle, sur des sites.
Gestion perso (collections, …)
Application déjà prête…
Recherche dans l’historique de certaines opérations
Datamining, informatique décisionnelle, ERP
Interrogation de données distantes
Sauvegarde automatique des enregistrements
Ce qu’on attend de l’encadrement:=> Participation au
développement de SI automatisés et d’applications
informatiques qui en découlent (en local, sur Internet): Voilà la
contribution de l’encadrement.
4
2
Limites des solutions bricolées
Doublons
Redondances
Saisies multiples
MAJ délicates
Risques d’erreurs
Aucune rigueur
5
Limites des solutions bricolées
Développements ultérieurs complexes:
Nombre de locations de monospaces de marque Renault
entre deux dates?
CA moyen de location des modèles sportifs pour les clients
qui n’en louent pas régulièrement?
Certains clients ont été parrainés par d’autres. Comment
gérer ceci?
Certains clients souhaitent acheter des véhicules tout en les
laissant dans le parc.
Certains clients se rendent mutuellement des services que
nous devons gérer.
Que se passe-t-il si nous souhaitons vendre d’autres produits
et services et proposer des factures?
6
3
Objectifs d’un système
d’informations
•
•
•
•
•
Eviter les doublons et redondances
Faciliter la saisie et les MAJ
Ouverture aux traitements ultérieurs
Réponse appropriée au problème posé dans sa globalité
Réflexion indépendante du matériel et des logiciels
possédés
• Rigueur dans la conception, la mise en œuvre, le
portage et l’utilisation
• Eléments de remise en question => Résistances aux
changements…
• Nécessite une démarche rigoureuse comportant
plusieurs étapes
7
Etapes de la conception d’une BD
Dictionnaire des données (DD)
Lister l’ensemble des données, en précisant leur nature, leur taille.
Graphe des dépendances fonctionnelles (GDF)
Représenter les relations entre les données.
Modèle Conceptuel des Données (MCD)
Représentation conceptuelle SI (Entités, Associations, attributs)
Schéma relationnel (SR) ou Modèle Logique
des Données (MLD)
Description des tables à créer (tables, champs, clés permettant les relations)
Modèle Physique (MPD)
Portage sur le logiciel utilisé
8
4
Règles de gestion
• Location de voitures.
• Un client réside dans une seule ville et
appartient à une seule catégorie.
• Un client peut louer une ou plusieurs voiture, y
compris au même moment
• Une voiture appartient à une seule marque qui
est commercialisée par un seul constructeur
• Une voiture appartient à un seul type (Berline,
Monospace,…)
• Chaque client est parfaitement identifié, de
même que les voitures et les locations
9
Dictionnaire des données
• Récolte exhaustive d’informations
• Etape ingrate, longue, faisant intervenir
différents acteurs, analyse et étude de
documents
• Matière première du futur SI
• Tri dans toutes ces données
• Préciser leurs caractéristiques
• Eléments calculés ou paramètres (Ex: taux
TVA) à préciser.
10
5
Dictionnaire des données
Nom des données
Caractéristiques
Nom des données
Caractéristiques
num_client
nom_raison_sociale
prenom
adresse
telephone
fax
mail
solde
entier long auto incrémenté
texte 50 caractères
texte 30 caractères
texte 50 caractères
texte 10 caractères
texte 10 caractères
texte 80 caractères
numérique réel
code_postal
ville
entier long auto incrémenté
texte 40 caractères
id_categorie
categorie
commentaire
entier long auto incrémenté
texte 15 caractères
texte
immatriculation
modele
date_mise_circulation
moteur
couleur
prix_neuf
prix_location
comment_auto
texte 12 caractères
texte 15 caractères
date
texte 12 caractères
texte 12 caractères
numérique réel
numérique réel
texte
id_marque
marque
entier long auto incrémenté
texte 15 caractères
id_contructeur
constructeur
entier long auto incrémenté
texte 15 caractères
id_type
type_auto
date_emprunt
date_reservation
date_retour
arrhes
Taux TVA
montants HT
entier long auto incrémenté montants TTC
texte 15 caractères
montants TVA
Net à payer
date
date
date
numérique réel
paramètre
Calculés
Calculés
Calculés
Calculés
Liste des propriétés
11
Choix des identifiants
• Identifiant (ou attribut): propriété qui
permet d’identifier formellement et sans
aucune ambiguïté chaque occurrence, donc
chaque voiture, chaque client
• Chaque identifiant permet donc de
connaître le client concerné ou la voiture
identifiée.
• => Dépendance fonctionnelle entre ces
identifiants et certains propriétés.
12
6
Choix des identifiants
Convention d’écriture: identifiant
13
Graphe des dépendances
fonctionnelles
Non concernés
par la suite.
Ne découlent pas
d’une dépendance
fonctionnelle
14
7
Modèle Conceptuel des Données
MCD: représentation du système
d’information en utilisant deux
objets/concepts: Entités et Associations.
Entité: ensemble cohérent d’informations
Un client, une voiture, un truc, un machin,…
Association: liens, relations entre ces
entités
Appartenir, posséder, louer,…
15
Modèle Conceptuel des Données
Nom de l’entité
Identifiant
Autres propriétés
Cardinalités: voir plus loin.
Convention de représentation
16
8
Les entités découlent du GDF
CLIENT
VOITURE
TYPE
Nom des données
Nom des données
num_client
nom_raison_sociale
prenom
adresse
telephone
fax
mail
solde
code_postal
ville
immatriculation
modele
date_mise_circulation
moteur
couleur
prix_neuf
prix_location
comment_auto
id_categorie
categorie
commentaire
id_marque
marque
id_contructeur
constructeur
VILLE
CATEGORIE
MARQUE
CONSTRUCTEUR
id_type
type_auto
date_emprunt
date_reservation
date_retour
arrhes
17
MCD: placement des entités
18
9
Cardinalités: précisions dans la
nature des relations entre entités
•
Les cardinalités expriment le nombre de valeurs minimum et
maximum que l’entité peut prendre dans l’association. Les
cardinalités font partie des associations.
Cardinalités
Traduction
Exemple
0,1
Aucun ou un
1,1
Un et un seul
0,n
Aucun ou plusieurs
1,n
Un ou plusieurs
n,n
Plusieurs à plusieurs
Un enfant n'a pas de père, ou il n'a qu'un père
Type époux-épouse: un époux n'a qu'une épouse
(légale) et une épouse n'a qu'un époux (légal)
Une personne peut n'avoir aucune voiture, mais
peut en avoir plusieurs.
Un couple peut avoir plusieurs enfants.
Un enfant n'a qu'une mère, ou qu'un père.
Un enfant a plusieurs loisirs
Un loisir est pratiqué par plusieurs enfants
19
Cardinalités
Les cardinalités découlent directement des règles et procédures de
fonctionnement en vigueur dans l’organisation, et ont donc avoir par la
suite des incidences dans la conception des modèles logiques et
physiques des données.
ETUDIANT
FORMATION
1,1
INSCRIT
1,n
1,n
INSCRIT
1,n
ETUDIANT
FORMATION
Un étudiant est inscrit dans une
seule formation (1,1) (IUT)
Un étudiant est inscrit dans
une ou plusieurs formations
(1,n). (Université)
20
10
MCD
21
Quel logiciel pour créer des MCD?
DB-Main disponible gratuitement à cette adresse: http://www.db-main.be/
Avantages:Petit, gratuit , portable (pas d’installation), mode texte, performant.
Inconvénients: Mode texte, ergonomie, notations.
22
11
Quel logiciel pour créer des MCD?
WinDesign: Logiciel Commercial
Avantages: Performant, complet, formats d’export, qualité des schémas..
Inconvénients: Cher, assez lourd..
23
Quel logiciel pour créer des MCD?
Analyse SI: Logiciel libre et gratuit disponible http://analysesi.free.fr
Avantages: Simple, relativement complet, qualité des schémas, respect de la
démarche..
Inconvénients: Plus développé
24
12
Quel logiciel pour créer des MCD?
Open Modelsphere: Logiciel libre et gratuit
Avantages: Performant, complet, qualité graphisme, exports
Inconvénients: Complexe, prise en main délicate
25
Exercice
Vous êtes responsable d’une bibliothèque universitaire, et décidez de structurer les
services de consultation et d’emprunt des ouvrages. Ceux-ci sont placés dans
des rayons par centres d’intérêt (Economie, Histoire, Géographie, Finances,…). Ils
sont écrits par un ou plusieurs auteurs, et édités dans une collection par un
éditeur. Une collection appartient à un seul éditeur. Il arrive qu’un titre soit
(ré)-édité par plusieurs éditeurs différents dans des collections différentes
(C’est souvent le cas pour les classiques de la littérature par exemple). Un même
titre peut être possédé en plusieurs exemplaires par la bibliothèque si celui-ci
est très utilisé par les adhérents.
Un étudiant est inscrit dans une seule filière universitaire pour une année
universitaire (DUT, DEUG, MSG,…).
Il faut être inscrit avec son nom et son numéro de téléphone pour pouvoir
fréquenter la bibliothèque. On est alors autorisé à consulter l’ensemble des
ouvrages par auteur, titre de document et centre d’intérêt. L’emprunt, de un à cinq
ouvrages, peut se faire pour une durée de 15 jours maximum.
Sachant cela :
1°) Quels sont les domaines de gestion concernés par cette application ?
2°) Concevoir le Modèle Conceptuel des Données (DD => GDF =>MCD )
26
13
Du MCD au MLD (ou SR)
• MCD: étape conceptuelle
• MLD (SR): Plus concret: tables, clés, relations
MCD
MCD
Entité
Entité
Propriété
Propriétéde
del’entité
l’entité
Identifiant
Identifiantde
del’entité
l’entité
Relations
Relations (0,n
(0,nou
ou
1,n)plusieurs
1,n)plusieursààplusieurs
plusieurs
(0,n
(0,nou
ou1,n)
1,n)
Relation
Relationbinaire
binaire(0,1
(0,1ou
ou
1,1)
1,1)ààplusieurs
plusieurs(0,n
(0,nou
ou
1,n)
1,n)
MLD
MLDou
ouSR
SR
Table
Table
Colonne
Colonneou
ouattribut
attributde
dela
la
table
table
Clé
Cléprimaire
primairede
dela
latable
table
Table
Table
Exportation
Exportationclé
cléétrangère
étrangère
et
etattributs.
attributs.
27
Du MCD au MLD (ou SR)
Traitement des entités:
Chaque entité devient une table
Chaque propriété devient une colonne (un champ) de cette table
L’identifiant devient la clé primaire de cette table.
VILLE (code_postal, ville)
MCD
Schéma Relationnel
Modèle physique (Access)
28
14
Du MCD au MLD (ou SR)
Traitement des associations 1,1 – 1,n ou 0,n:
Ajout d’une clé primaire dans la table du côté 1,1 de l’association
Rien à faire dans l’autre table.
MCD
MCD
CLIENT (num_client, nom_raison_sociale, …,solde,
#code_postal)
Schéma Relationnel
Modèle pysique (Access)
29
Du MCD au MLD (ou SR)
Traitement des associations 1,n ou 0,n – 1,n ou 0,n:
L’association se traduit par la création d’une table
Les clés primaires des tables en relation sont (le plus souvent) ensemble
clés primaires de cette nouvelle table.
Certaines propriétés (porteuses de sens) de l’association peuvent aussi
intégrer la clé primaire
MCD
MLD
30
15
Du MCD au MLD (ou SR)
Traitement des associations 1,n ou 0,n – 1,n ou 0,n:
LOUER ( #immatriculation, #num_client, date_emprunt, date_retour,
date_reservation, arrhes)
Schéma Relationnel
Convention: TABLE (clé primaire, champ_1, …, champ_n, #clé étrangère)
31
Modèle pysique (Access)
MLD du cas
MLD
32
16
Schéma relationnel du cas
•
VILLE( code_postal, ville)
•
CATEGORIE(id_categorie, categorie, commentaire)
•
TYPE(id_type, type_auto)
•
CONSTRUCTEUR(id_constructeur, constructeur, pays)
•
MARQUE(id_marque, marque, #id_constructeur)
•
VOITURE(immatriculation, modele,annee_mise_circulation, moteur,
couleur, prix_location, prix_neuf, comment_auto, #id_marque, #id_type)
•
CLIENT(num_client, nom_raison_sociale, prenom, adresse, telephone,
fax, email, solde, #code_postal, #id_categorie)
•
LOUER(#immatriculation, #num_client, date_emprunt, date_retour,
date_reservation, arrhes)
33
Vocabulaire et concepts
MCD
•
•
•
•
•
•
•
Entité
Attributs
Propriétés
Identifiants
Associations
Cardinalités
Occurences
•
•
•
•
•
•
•
MLD (SR)
Tables
Champs
Colonnes
Clés primaires
Clés étrangères
Enregistrements
(tuples)
Relations
34
17
Associations particulières
Une association peut relier plus de deux entités.
L’association peut donc avoir plus de deux pattes.
LOUER permet une
association entre VOITURE,
CLIENT et TARIF
35
Associations particulières
Une association peut relier plus de deux entités.
L’association peut donc avoir plus de deux pattes.
D’où ce MLD
Et ce Schéma
Relationnel:
LOUER
(#immatriculation,
#num_client,
#code_tarif,
date_emprunt,
date_reservation,
date_retour, arrhes)
36
18
Associations particulières
Entité en relation avec elle-même.
Association d’une entité avec elle-même: Associations réflexives
Cas 1,1 – 1,n. Exemple: un client est parrainé par un seul autre
client plus ancien, qui peut en parrainer plusieurs.
Traitement particulier sous Access
et en SQL de manière générale.
MCD
CLIENT (num_client, nom_raison_sociale, prenom, adresse, telephone,
fax, email, solde, #num_parrain)
Schéma Relationnel
37
Associations particulières
Entité en relation avec elle-même.
Association d’une entité avec elle-même: Associations réflexives
Cas 1,n – 1,n. Exemple: un client est en affaires avec aucun, un
ou plusieurs autres clients.
Traitement particulier sous Access
et en SQL de manière générale.
MCD
Une date ou d’autres propriétés peuvent être ajoutée dans
l’association, ce qui se traduira dans la table par une ou plusieurs
autres clés primaires.
PARRAINER(#num_client_1, #num_client_2)
Schéma Relationnel
38
19
Associations particulières
Plusieurs associations peuvent réunir deux entités.
MCD
Aucun problème pour le Schéma Relationnel:
39
Associations particulières
Plusieurs associations peuvent réunir deux entités.
MLD
Aucun problème pour le MLD et le Schéma Relationnel: La table acheter
s’obtient de la même manière que la table LOUER
40
20
Les Formes Normales (FN)
La normalisation permet :
• D’éliminer les données redondantes
• Vérifier que les données sont associées à
l’entité ou l’association qui convient
• Eviter les valeurs nulles
• Rendre la base de données cohérente et
robuste.
=> Vérifier plusieurs Formes Normales
41
Les Formes Normales (FN)
Relation(attribut_1, attribut_2, attribut_3,…)
Relation: table, entité
Dépendance fonctionnelle entre deux attributs A et B d ’une relation R si à
toute valeur de A on ne peut associer à tout instant qu ’une et une seule
valeur de B.
Principe utilisé dans le Graphe des Dépendances Fonctionnelles.
Dépendance fonctionnelle:
L’immatriculation d’une voiture
permet de connaître le modèle,
la motorisation, …, sans
ambiguité.
42
21
Première Forme Normale (1FN)
Une relation est 1FN si:
- elle possède une clé
- tous ses attributs sont non atomiques (attribut atomique, n ’ayant à un
instant donné qu’une seule valeur, ou ne regroupe pas un ensemble de
valeurs)
immatriculation
1114SW33
1235SX33
1325SR33
2341SR33
4231SZ33
4232SZ33
Voiture
C4, Citoën
807, Peugeot
Coupé, Hyundaï
Clio, Renault
Avensis, Toyota
Avensis, Renault
moteur
Diesel
Diesel
Essence
Essence
Diesel
Essence
couleur
Jaune
Bleu
Noir
Rouge
Gris
Blanc
prix
125
190
200
105
150
155
43
Deuxième Forme Normale (2FN)
Une relation est en 2FN si:
- elle est 1FN
- toutes les DF sont élémentaires
=> Une table CLIENT et une table AUTOMOBILE…
44
22
Troisième Forme Normale (3FN)
Une relation est 3FN si
- elle est 2FN
- toutes les DF sont directes
=> Une table CLIENT et une table AUTOMOBILE…en
plus de la table LOUER!
45
23