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