PeiP 1 ère année UE Informatique Conception et Exploitation de Bases de Données Session 2 : Généralités BD & MCD (Conception)
1. Retour sur MCD
3/28 Exemple d ambiguïté 1/4 Modéliser les informations suivantes : Le système informatique d une bibliothèque municipale, doit enregistrer les informations suivantes: Rechercher un Livre Càd recherches exprimées par les lecteurs pour identifier par exemple des livres pas encore disponibles mais populaires chez les usagers Emprunter un Livre Représentons ces informations avec un MCD
4/28 Exemple d ambiguïté 2/4 Modéliser les informations suivantes : Le système informatique d une bibliothèque municipale, doit enregistrer les informations suivantes: Rechercher un Livre Emprunter un Livre Approche «naïve» idusager Nom Prénom Age Usager rechercher ISBN Titre Auteur Livre emprunter
5/28 Exemple d ambiguïté 3/4 En fait, la notion de Livre est ambigüe, elle recouvre aussi bien les notions: D œuvres littéraires Le système informatique d une bibliothèque municipale, doit enregistrer les informations suivantes: Rechercher un Livre Emprunter un Livre D éditions de cette œuvre pouvant différer de format (poche, broché), d adaptation (Reader Digest 1, bande dessinée, ), d année de publication D exemplaire (un livre populaire pouvant exister en plusieurs exemplaires ex. Bibliothèque Universitaire) La phrase Rechercher un Livre est également ambigüe, ce qui est cherché peut n être que le titre 1 Reader Digest propose/ait des éditions «résumées» de livre.
6/28 Exemple d ambiguïté 4/4 Une solution pourrait alors être la suivante: idusager Nom Prénom Age Usager rechercher idoeuvre Titre Oeuvre Ecrit par 1,n 1,n idauteur Auteur Auteur emprunter Exister en 1,1 Exemplaire IdExemplaire DateAchat Etat posseder 1,1 Edition ISBN DatePublication Quelle est la «bonne solution»? Editer 1,1 1,n Editeur idauteur NomEditeur => Cela dépend! (des informations utiles pour le cas d étude ex. si 1 seul exemplaire par livre dans la bibliothèque )
2. Rôle d un Modèle Logique de Donnée
8/28 Pourquoi un SGBD? Contre Exemple d une application gérant des données SANS SGBD Pourquoi gérer des données : Pour ne pas perdre les données à la fermeture du programme Parce que c est l objectif du logiciel (ex. Gestion Catalogue, Comptabilité ) Exemple d architecture logicielle d une application gérant ses propres données sans passer par un SGBD. IHM Module 1 Module 2 Module n Fonct Acces Données Application Logicielle Fichier texte ou binaire Ex en C : fwrite/fprintf dans un flux (chaine ou structure)
9/28 Pourquoi un SGBD? Sans SGBD? Avantages : Rapide à développer Inconvénients: On doit tout développer (accès fichiers, fonctions de recherche ) Format de fichier «propriétaire» (surtout si le fichier est en binaire) Mono Utilisateur Vérification des données insérées limitée Réutilisation limitée
10/28 Intérêt d un SGBD Séparation des rôles : le SGBD est un «spécialiste» des données, il ne fait que ça et donc peut optimiser au mieux la gestion des données. L application logicielle «utilisatrice» des données, ne se préoccupe que de les utiliser (pas de les gérer) Accès multi-utilisateurs : chacun doit pouvoir avoir ses propres besoin de données (lesquelles, de quelle manière les afficher, ) => Implique accés réseau. Rque: beaucoup d applications téléphones fonctionne sur ce principe (BD locale synchronisées avec BD Centrale)
11/28 Architecture d un SGBD Gere l interface utilisateur (SQL) Vues Gere les tables réelles Optimise les requêtes Google Earth Gestion physique des fichiers : création, suppression, Indexes et hachages Disques Données (Fichiers) Adapté de http://georges.gardarin.free.fr/livre%20dm_fichiers/1-rappelsbd.ppt
3. Modélisation des données : traduction MCD -> MLD
13/28 MCD et MLD Le MCD a permis d identifier les informations importantes et utiles. Il les a organisées. Le MLD traduit ces considérations en vue de les intégrer dans le SGBD. Nous considérons dans ce cours un langage relationnel (la plupart des SGBD sont relationnels) Il s agit : D affiner pour chaque élément d information son type de données (numérique, chaine, ) => équivalent du type de données d une variable en programmation D ajouter des informations d identification des informations et des liens entre elles (clefs primaires, clefs étrangères) Pour optimiser leur stockage et traitement qui sera poursuivi au niveau physique par le SGBD.
14/28 Modèle relationnel Langage de modélisation «textuel» des informations en vue de leur traduction en tables. Principe: Paradigme relationnel: Tout est Relation. Les relations sont caractérisées par des attributs Notations Nom_relation ( attribut 1, attribut 2... attribut n ) Attribut 1 est une clef primaire (contient un identifiant) Attribut 2 est un attribut simple attribut,n est un attribut qui doit contenir un valeur correspondant à celle d une clef primaire d une autre table.
15/28 Traduction d un MCD en MLD Rappel l objectif est d arriver à produire quelque chose comme ça : Entité Livre Forme relationnelle: Livre ( ISBN, NomAuteur, PrenomAuteur, Titre) Qui permettra de mémoriser des informations comme suivant ISBN NomAuteur PrénomAuteur Titre Table Livre 209178527X NEY Henry Automatique et informatique industrielle 2851102869 FAURE Jacques Almanach Vermot 2010 2070628035 ABOUET Marguerite Aya de Yopougon, Tome 5 Processus traduction relativement simple : Entités => Tables Relations => Importation clefs étrangères & propriétés OU Table Propriétés => Propriétés avec type de données => règles de traduction différentes selon les multiplicités
Relation binaire 1.. N 16/28 Illustration Personne Télephone Nom Adresse posseder 0,1 Chien idtatouage Nom Téléphone MCD Comment savoir : Si un chien à un propriétaire? Qui est son propriétaire? Le numéro de téléphone rend possible l identification de son propriétaire Personne Télephone Nom Adresse Chien idtatouage Nom TelephonePropriétaire MLD
Relation binaire 1.. N 17/28 Principe de traduction C est-à-dire une relation (x.. 1) -> (x.. n) Ce type de relation traduit une dépendance fonctionnelle. Se traduit au passage du MLD par la création d une clé étrangère sur la Table dépendante. par la création d une clé étrangère sur la Table dépendante. Si x vaut 0 (donc participation pas obligatoire) cela signifie que l attribut portant cette clé étrangère peut ne pas être renseigné (null autorisé au niveau implémentation).
Entité Livre MCD Relation binaire 1.. N Etudiant IdEtudiant Nom Prenom Date de naissance Adresse Salaire Duree 0,1 Entité Entreprise faire un stage 18/28 Exemple Entreprise IdEntreprise Nom CA annuel Adresse NomContact Telephone Table Livre MLD ETUDIANT PK_ETUDIANT IDETUDIANT IDENTREPRISE NOM PRENOM DATE_DE_NAISSANCE ADRESSE SALAIRE DUREE Table Entreprise faire un stage ENTREPRISE PK_ENTREPRISE IDENTREPRISE NOM CA_ANNUEL ADRESSE NOMCONTACT TELEPHONE
Relation binaire N.. N 19/28 Principe de traduction C est-à-dire une relation (x.. n) -> (x.. n) Cas précédent inapplicable car sinon plusieurs valeurs dans la clef etrangères => Collier un peu gros Solution : Utilise une 3ème table qui associera les occurrences participant à la relation (MCD)
20/28 Relation binaire N.. N Exemple Etudiant Entreprise IdEtudiant Nom Prenom Date de naissance Adresse travailler durée salaire statut IdEntreprise Nom CA annuel Adresse NomContact Telephone ETUDIANT PK_ETUDIANT IDETUDIANT NOM PRENOM DATE_DE_NAISSANCE ADRESSE TRAVAILLER PK_TRAVAILLER IDETUDIANT IDENTREPRISE DURÉE SALAIRE STATUT ENTREPRISE PK_ENTREPRISE IDENTREPRISE NOM CA_ANNUEL ADRESSE NOMCONTACT TELEPHONE Traduction réalisée avec WinDesign
Relation ternaire 21/28 Même principe que binaire n..n. Consultant IdConsultant Nom Prenom Date de naissance Adresse NiveauFormation Travailler Salaire Mission idmission NiveauRequis Description Entreprise IdEntreprise Nom CA annuel Adresse NomContact Telephone Principe de traduction CONSULTANT PK_CONSULTANT IDCONSULTANT NOM PRENOM DATE_DE_NAISSANCE ADRESSE NIVEAUFORMATION ENTREPRISE PK_ENTREPRISE IDENTREPRISE NOM CA_ANNUEL ADRESSE NOMCONTACT TELEPHONE TRAVAILLER PK_TRAVAILLER IDCONSULTANT IDMISSION IDENTREPRISE SALAIRE MISSION PK_MISSION IDMISSION NIVEAUREQUIS DESCRIPTION
22/28 Relation réflexive Etudiant IdEtudiant Nom Prenom Date de naissance Adresse parrain parainer filleul ETUDIANT PK_ETUDIANT IDETUDIANT NOM PRENOM DATE_DE_NAISSANCE IDETUDIANT = ETUDIANT_PARAINNEADRESSE ETUDIANT_PARAINNE 2 Solutions IDETUDIANT = IDETUDIANT_PARRAIN ETUDIANT PK_ETUDIANT IDETUDIANT NOM PRENOM DATE_DE_NAISSANCE ADRESSE PARAINER PK_PARAINER IDETUDIANT_PARRAIN IDETUDIANT_FILLEUL Traduction réalisée avec WinDesign IDETUDIANT = IDETUDIANT_FILLEUL
Autre exemple de traduction MCD -> MLD 23/28
Autre exemple de traduction MCD -> MLD 24/28
4. Bonus
Catalogue site de commerce en ligne : ex: téléphone portable 26/28
27/28 Catalogue site de commerce en ligne : identification informations Informations brutes : Marque Modèle Constructeur Hauteur, Largeur Epaisseur Poids Taille affichage Capacité mémoire Coloris disponibles Informations qualifiant des «objets» ie Des groupes d objets Caractéristiques => propriétés Caractéristiques partagées Propriétés? Entités? Réponse : «ça dépends»
Catalogue site de commerce en ligne : MCD 28/28 Modele idmodele Nom Modèle Hauteur Largeur Epaisseur Poids Taille Ecran posseder Marque idmarque NomMarque 1,1 1,n 1,1 1,n Produire Constructeur idconstructeur NomConstructeur DateCréationEtp 1,n 1,n disposer CapaciteMemoire idcapacite Valeur Unité Couleur décliner idauteur NomEditeur