Expert Base de données [email protected] [email protected] Cycle de vie d’une base de données Concepteur Modélisation Conceptuelle Personne Maison Achète Modèle conceptuel Monde réel Création du schéma Utilisateur Personn Nom Toto Tata Tete Prénom Titi Tutu Tyty age 25 30 42 Base de données Expert Base de données Concepteur Table Personne Table Maison Table Acheter Schéma logique 2 2 étapes Modèle conceptuel : ensemble de Concepts permettant la description et la manipulation des données du monde réel Règles d’utilisation de ces concepts Schéma logique : Description de la structure de la base de données (en terme de tables, de lignes et de colonnes) obtenue en utilisant un modèle conceptuel Expert Base de données 3 Modélisation conceptuelle Concepteur Modélisation Conceptuelle Personne Maison Achète Modèle conceptuel Monde réel Création du schéma Concepteur Table Personne Table Maison Table Acheter Utilisateur Base de données Expert Base de données Schéma logique 4 Abstraction Faire abstraction des particularités pour passer des objets aux types ou classes d’objets Type d’objet: Personne Propriétés : -Nom -Prénom -Age Expert Base de données 5 Objets et liens / Entités et associations Monde réel Instances : occurrences dans le monde réel Expert Base de données Objet Lien Objet Modèle conceptuel Personne Entité Achète Association Maison Entité 6 Propriétés d’une entité Sur les entités ou sur les associations Personne Achète Nom Prénom Age Date Maison Adresse Surface Obligatoire / Facultative Expert Base de données 7 Cardinalité d’une association Min Max Min Max association 3 types d'associations : 1,N, N,N ou 1,1 Expert Base de données 8 association 1..N Une personne peut ne pas avoir de voiture, en avoir 1, 2, …. N noté 0,N Une voiture a un seul propriétaire (au moins 1 et au plus un) noté 1,1 P1 P2 P3 P4 Personne V3 V1 V2 1,1 0,N Achète Expert Base de données Voiture 9 association NN Une personne peut ne pas avoir de maison, en avoir 1, 2, …. N noté 0,N Une maison peut appartenir à un propriétaire, 2, … N noté 1,N P1 P2 P3 P4 Personne M3 M1 M2 1,N 0,N Achète Expert Base de données Maison 10 association 11 Une personne est enterrée dans une seule sépulture noté 1 1 Une sépulture correspond à une seule personne noté 1 1 P1 P2 P3 P4 Personne S3 S1 S2 1,1 0,1 Enterre Expert Base de données Sépulture 11 association sur la même entité Une personne est le père d’aucune, d’une ou plusieurs personnes 0,N Personne Est le père 1,1 Expert Base de données 12 association N-aire Salle 1,N Etudiant Enseignant Cours 1,N 1,N Expert Base de données 13 Choix de l’identifiant Pour désigner une entité ou une association de manière univoque Nom + Prénom ? Ajout d’un identifiant Non car homonymes Personne Achète Num Nom Prénom Age Date Expert Base de données Maison Adresse Surface 14 Exemple de modélisation Gestion d’une bibliothèque Un livre est caractérisé par son numéro dans la bibliothèque (identifiant), son titre, son éditeur et son (ses) auteurs Un client qui s’inscrit à la bibliothèque verse une caution. Suivant le montant de cette caution, il aura droit d’effectuer en même temps 10 emprunts au maximum. Les emprunts durent au maximum 15 jours. On veut pouvoir, pour chaque client, retrouver les emprunts effectués (nombre numéro, titre du livre, date de l’emprunt). Toutes les semaines, on édite la liste des emprunteurs en retard : nom et dresse, date de l’emprunt, numéro(s) et titre du ou des livres concernés On veut enfin pouvoir connaître pour chaque livre sa date d’achat et son état (emprunté ou non). Expert Base de données 15 Comment faire ? 1. 2. 3. 4. 5. 6. 7. Identifier les objets ayant un existence propre Parmi eux, trouver ceux ayant un intérêt pour au moins un traitement de l’application. Ce sont alors les entités. Découvrir les types d’associations permettant de lier les entités Trouver les attributs des entités Trouver les attributs des associations Définir les cardinalités de l'association Choisir les clés Expert Base de données 16 1. Identifier les objets ayant une existence propre Gestion d’une bibliothèque Un livre est caractérisé par son numéro dans la bibliothèque (identifiant), son titre, son éditeur et son (ses) auteurs. Un client qui s’inscrit à la bibliothèque verse une caution. Suivant le montant de cette caution, il aura droit d’effectuer en même temps 10 emprunts au maximum. Les emprunts durent au maximum 15 jours. On veut pouvoir, pour chaque client, retrouver les emprunts effectués (nombre numéro, titre du livre, date de l’emprunt). Toutes les semaines, on édite la liste des emprunteurs en retard : nom et dresse, date de l’emprunt, numéro(s) et titre du ou des livres concernés On veut enfin pouvoir connaître pour chaque livre sa date d’achat et son état (emprunté ou non). Expert Base de données 17 Comment faire ? 1. 2. 3. 4. 5. 6. 7. Identifier les objets ayant un existence propre Parmi eux, trouver ceux ayant un intérêt pour au moins un traitement de l’application. Ce sont alors les entités. Découvrir les types d’associations permettant de lier les entités Trouver les attributs des entités Choisir les identifiants Trouver les attributs des associations Définir les cardinalités de l'association Expert Base de données 18 2. Entités ayant un intérêt pour l’application Auteur Bibliothèque Client Livre Editeur Expert Base de données 19 Comment faire ? 1. 2. 3. 4. 5. 6. 7. Identifier les objets ayant un existence propre Parmi eux, trouver ceux ayant un intérêt pour au moins un traitement de l’application. Ce sont alors les entités. Découvrir les types d’associations permettant de lier les entités Trouver les attributs des entités Choisir les identifiants Trouver les attributs des associations Définir les cardinalités de l'association Expert Base de données 20 3. Trouver les associations entre entités Client Emprunte Expert Base de données Livre 21 Comment faire ? 1. 2. 3. 4. 5. 6. 7. Identifier les objets ayant un existence propre Parmi eux, trouver ceux ayant un intérêt pour au moins un traitement de l’application. Ce sont alors les types d’entités. Découvrir les types d’associations permettant de lier les entités Trouver les attributs des entités Choisir les identifiants Trouver les attributs des associations Définir les cardinalités de l'association Expert Base de données 22 4. Trouver les attributs Gestion d’une bibliothèque Un livre est caractérisé par son numéro dans la bibliothèque (identifiant), son titre, son éditeur et son (ses) auteurs. Un client qui s’inscrit à la bibliothèque verse une caution. Suivant le montant de cette caution, il aura droit d’effectuer en même temps 10 emprunts au maximum. Les emprunts durent au maximum 15 jours. On veut pouvoir, pour chaque client, retrouver les emprunts effectués (nombre numéro, titre du livre, date de l’emprunt). Toutes les semaines, on édite la liste des emprunteurs en retard : nom et dresse, date de l’emprunt, numéro(s) et titre du ou des livres concernés On veut enfin pouvoir connaître pour chaque livre sa date d’achat et son état (emprunté ou non). Expert Base de données 23 4. Trouver les attributs Gestion d’une bibliothèque Un livre est caractérisé par son numéro dans la bibliothèque (identifiant), son titre, son éditeur et son (ses) auteurs. Un client qui s’inscrit à la bibliothèque verse une caution. Suivant le montant de cette caution, il aura droit d’effectuer en même temps 10 emprunts au maximum. Les emprunts durent au maximum 15 jours. On veut pouvoir, pour chaque client, retrouver les emprunts effectués (nombre numéro, titre du livre, date de l’emprunt). Toutes les semaines, on édite la liste des emprunteurs en retard : nom et adresse, date de l’emprunt, numéro(s) et titre du ou des livres concernés On veut enfin pouvoir connaître pour chaque livre sa date d’achat et son état (emprunté ou non). Expert Base de données 24 4. Trouver les attributs Gestion d’une bibliothèque Un livre est caractérisé par son numéro dans la bibliothèque (identifiant), son titre, son éditeur et son (ses) auteurs. Un client qui s’inscrit à la bibliothèque verse une caution. Suivant le montant de cette caution, il aura droit d’effectuer en même temps 10 emprunts au maximum. Les emprunts durent au maximum 15 jours. On veut pouvoir, pour chaque client, retrouver les emprunts effectués (nombre numéro, titre du livre, date de l’emprunt). Toutes les semaines, on édite la liste des emprunteurs en retard : nom et adresse, date de l’emprunt, numéro(s) et titre du ou des livres concernés On veut enfin pouvoir connaître pour chaque livre sa date d’achat et son état (emprunté ou non). Expert Base de données 25 4. Trouver les attributs des entités Client Emprunte Nom Adresse Caution Livre NumL Titre Editeur Auteur (s) Date d’achat Etat Expert Base de données 26 Comment faire ? 1. 2. 3. 4. 5. 6. 7. Identifier les objets ayant un existence propre Parmi eux, trouver ceux ayant un intérêt pour au moins un traitement de l’application. Ce sont alors les types d’entités. Découvrir les types d’associations permettant de lier les entités Trouver les attributs des types d’entités Choisir les identifiants Trouver les attributs des associations Définir les cardinalités de l'association Expert Base de données 27 5. Choisir les identifiants Client Emprunte NumC Nom Adresse Caution Livre NumL NumL Titre Editeur Auteur (s) Date d’achat Etat Expert Base de données 28 Comment faire ? 1. 2. 3. 4. 5. 6. 7. Identifier les objets ayant un existence propre Parmi eux, trouver ceux ayant un intérêt pour au moins un traitement de l’application. Ce sont alors les types d’entités. Découvrir les types d’associations permettant de lier les entités Trouver les attributs des types d’entités Choisir les identifiants Trouver les attributs des associations Définir les cardinalités de l'association Expert Base de données 29 6. Trouver les attributs des associations Client Emprunte NumC Nom Adresse Caution Date emprunt Date retour Expert Base de données Livre NumL Titre Editeur Auteur (s) Date d’achat Etat 30 Comment faire ? 1. 2. 3. 4. 5. 6. 7. Identifier les objets ayant un existence propre Parmi eux, trouver ceux ayant un intérêt pour au moins un traitement de l’application. Ce sont alors les types d’entités. Découvrir les types d’associations permettant de lier les entités Trouver les attributs des types d’entités Choisir les identifiants Trouver les attributs des associations Définir les cardinalités de l'association Expert Base de données 31 7. Définir les cardinalités de l’association 0,N 0,N Client Emprunte NumC Nom Adresse Caution Date emprunt Date retour Expert Base de données Livre NumL Titre Editeur Auteur (s) Date d’achat Etat 32 Cycle de vie d’une base de données Concepteur Modélisation Conceptuelle Client Livre Emprunter Modèle conceptuel Monde réel Création du schéma Utilisateur Nom Toto Tata Tete Client Prénom Titi Tutu Tyty age 25 30 42 Base de données Expert Base de données Concepteur Table Client Table Livre Table Emprunter Schéma logique 33 Règle 1 : chaque entité devient une table Pour chaque entité E, on crée une table T telle que chaque attribut de E devient une colonne de la table T. L’identifiant de E devient la clé primaire de T. Expert Base de données 34 Règle 2 : association NN Les associations "équilibrées" (.N .N) deviennent des tables contenant comme clés étrangères les clés primaires des tables reliées. Expert Base de données 36 Règle 2 : association 1N Pour les associations "déséquilibrées" (1,N), la clé primaire de la table du côté du N devient une clé étrangère dans la table du côté du 1. Responsable Expert Base de données 37 Retour sur la bibliothèque 0,N 0,N Client Emprunte NumC Nom Adresse Caution Date emprunt Date retour Livre NumL Titre Editeur Auteur (s) Date d’achat Etat Client (NumC, Nom, adresse, caution) Livre (NumL, Titre, éditeur, auteur(s), date d’achat, Etat) Emprunte (NumC, NumL, date emprunt, date retour) Expert Base de données 38 Retour sur l’exemple de la semaine dernière FOURNISSEUR PIECE NumF NomF VilleF NumP TypeP 152 174 81 Mercier Charles Dumont Amiens Rouen Paris 14 Boulon 16 15 Boulon 15 16 Ecrou 17 Tournevis 18 Vis OFFRE NuFO NuPO Prix 152 152 81 174 81 14 16 16 17 17 46 60 62 52 50 Expert Base de données 39 Retour sur l’exemple de la semaine dernière On souhaite gérer un ensemble de fournisseurs pour quincailleries qui proposent des pièces (outils, fournitures, matériel de bricolage, visserie, serrurerie…). Un fournisseur est caractérisé par son nom et la ville dans laquelle son entreprise est basée. Les pièces qu’il propose sont d’un certain type. Chaque fournisseur fixe le prix des pièces qu’il vend. Expert Base de données 40 Retour sur l’exemple de la semaine dernière 1,N 0,N Fournisseur Offre NumF NomF VilleF Prix Pièce NumP TypeP Fournisseur (NumF, NomF, VilleF) Pièce (NumP, TypeP) Emprunte (NumF, NumP, Prix) Expert Base de données 41