Cycle de vie d’une base de données Concepteur Expert Base de données Modélisation Conceptuelle Personne Monde réel [email protected] [email protected] Maison Achète Modèle conceptuel Création du schéma Utilisateur Personn Nom Toto Tata Tete Prénom Titi Tutu Tyty Concepteur Table Personne Table Maison Table Acheter age 25 30 42 Schéma logique Base de données Expert Base de données 2 étapes n q n Modélisation conceptuelle Concepteur Modèle conceptuel : ensemble de q Modélisation Conceptuelle Concepts permettant la description et la manipulation des données du monde réel Règles d’utilisation de ces concepts Personne Modèle conceptuel Monde réel 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 Création du schéma Concepteur Table Personne Table Maison Table Acheter Utilisateur Schéma logique Base de données Expert Base de données 3 Abstraction Maison Achète Schéma logique : q n 2 4 Objets et liens / Entités et associations Faire abstraction des particularités pour passer des objets aux types ou classes d’objets Monde réel Instances : occurrences dans le monde réel Expert Base de données Objet Type d’objet: Personne Propriétés : - Nom - Prénom - Age Personne Entité Expert Base de données Lien Objet Modèle conceptuel 5 Achète Association Maison Entité 6 1 Propriétés d’une entité n Cardinalité d’une association Sur les entités ou sur les associations Min Max n Personne Achète Nom Prénom Age Date association Adresse Surface Obligatoire / Facultative P1 P2 P3 P4 n n P1 P2 P3 P4 M3 M1 M2 V1 V2 0,N 1,1 Voiture Achète Personne 0,N 1,N Achète Maison Expert Base de données 9 association 11 n 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 V3 Expert Base de données n 8 association NN 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 Personne Expert Base de données 7 association 1..N n 3 types d'associations : 1,N, N,N ou 1,1 n Expert Base de données n Min Max Maison 10 association sur la même entité 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 n Une personne est le père d’aucune, d’une ou plusieurs personnes 0,N S3 S1 S2 Personne Est le père 1,1 Personne 0,1 1,1 Enterre Expert Base de données Sépulture 11 Expert Base de données 12 2 association N-aire Choix de l’identifiant n Pour désigner une entité ou une association de manière univoque q q Salle Nom + Prénom ? Ajout d’un identifiant Non car homonymes 1,N Etudiant Enseignant Cours 1,N 1,N Expert Base de données 13 Exemple de modélisation n n n n n n 15 1. Identifier les objets ayant une existence propre n n n n n n Date Maison Adresse Surface Expert Base de données 14 1. Identifier les objets ayant un existence propre 2. Parmi eux, trouver ceux ayant un intérêt pour au moins un traitement de l’application. Ce sont alors les entités. 3. Découvrir les types d’associations permettant de lier les entités 4. Trouver les attributs des entités 5. Trouver les attributs des associations 6. Définir les cardinalités de l'association 7. Choisir les clés Expert Base de données 16 Comment faire ? 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 Achète Num Nom Prénom Age Comment faire ? 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 Personne 17 1. Identifier les objets ayant un existence propre 2. Parmi eux, trouver ceux ayant un intérêt pour au moins un traitement de l’application. Ce sont alors les entités. 3. Découvrir les types d’associations permettant de lier les entités 4. Trouver les attributs des entités 5. Choisir les identifiants 6. Trouver les attributs des associations 7. Définir les cardinalités de l'association Expert Base de données 18 3 2. Entités ayant un intérêt pour l’application Comment faire ? Auteur Bibliothèque 1. Identifier les objets ayant un existence propre 2. Parmi eux, trouver ceux ayant un intérêt pour au moins un traitement de l’application. Ce sont alors les entités. 3. Découvrir les types d’associations permettant de lier les entités 4. Trouver les attributs des entités 5. Choisir les identifiants 6. Trouver les attributs des associations 7. Définir les cardinalités de l'association Client Livre Editeur Expert Base de données 3. Trouver les associations entre entités Client Emprunte Expert Base de données n n n n n 1. Identifier les objets ayant un existence propre 2. 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. 3. Découvrir les types d’associations permettant de lier les entités 4. Trouver les attributs des entités 5. Choisir les identifiants 6. Trouver les attributs des associations 7. Définir les cardinalités de l'association Livre Expert Base de données 21 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 20 Comment faire ? 4. Trouver les attributs n Expert Base de données 19 23 n n n n n n 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 4. Trouver les attributs n n n n n n 4. Trouver les attributs des entités 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 Livre NumL Titre Editeur Auteur (s) Date d’achat Etat 26 5. Choisir les identifiants 1. Identifier les objets ayant un existence propre 2. 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. 3. Découvrir les types d’associations permettant de lier les entités 4. Trouver les attributs des types d’entités 5. Choisir les identifiants 6. Trouver les attributs des associations 7. Définir les cardinalités de l'association Client Emprunte NumC Nom Adresse Caution Livre NumL NumL Titre Editeur Auteur (s) Date d’achat Etat Expert Base de données 27 Comment faire ? 28 6. Trouver les attributs des associations 1. Identifier les objets ayant un existence propre 2. 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. 3. Découvrir les types d’associations permettant de lier les entités 4. Trouver les attributs des types d’entités 5. Choisir les identifiants 6. Trouver les attributs des associations 7. Définir les cardinalités de l'association Expert Base de données Emprunte Expert Base de données 25 Comment faire ? Expert Base de données Client Nom Adresse Caution 29 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 5 7. Définir les cardinalités de l’association Comment faire ? 1. Identifier les objets ayant un existence propre 2. 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. 3. Découvrir les types d’associations permettant de lier les entités 4. Trouver les attributs des types d’entités 5. Choisir les identifiants 6. Trouver les attributs des associations 7. Définir les cardinalités de l'association Expert Base de données 0,N 0,N Client Emprunte NumC Nom Adresse Caution Date emprunt Date retour Livre NumL Titre Editeur Auteur (s) Date d’achat Etat Expert Base de données 31 32 Règle 1 : chaque entité devient une table 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 n n 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. Concepteur Table Client Table Livre Table Emprunter Schéma logique Expert Base de données Expert Base de données 33 34 Règle 2 : association NN n Livre Client NumC Nom Adresse Caution Les associations "équilibrées" (.N .N) deviennent des tables contenant comme clés étrangères les clés primaires des tables reliées. 0,N 0,N Emprunter NumL Titre Éditeur Auteur Date Achat État Client (NumC, Nom, Adresse, Caution) Client (NumC, Nom, Adresse, Caution) Client (NumC, Nom, Adresse, Caution) Expert Base de données 35 Expert Base de données 36 6 Règle 2 : association 1N n Retour sur la bibliothèque 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. 0,N 0,N Client NumC Nom Adresse Caution Responsable n n n Expert Base de données 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 On souhaite gérer un ensemble de fournisseurs pour quincaquillers qui proposent des outils, des fournitures et 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èce qu’il vend. Expert Base de données NumL Titre Editeur Auteur (s) Date d’achat Etat Date emprunt Date retour 37 Retour sur l’exemple de la semaine dernière Livre Emprunte PIECE NumF NomF VilleF NumP TypeP 152 174 81 Mercier Charles Dumont Amiens Rouen Paris 14 Boulon 16 15 Boulon 15 OFFRE 39 NuFO NuPO Prix 152 152 81 174 81 14 16 16 17 17 46 60 62 52 50 Expert Base de données 16 Ecrou 17 Tournevis 18 Vis 40 Retour sur l’exemple de la semaine dernière 1,N 0,N Fournisseur Offre NumF NomF VilleF Prix n n n Pièce NumP TypeP Fournisseur (NumF, NomF, VilleF) Pièce (NumP, TypeP) Emprunte (NumF, NumP, Prix) Expert Base de données 41 7