Cours: Ingénierie de bases de données PDF
Document Details
Uploaded by Deleted User
Université Mohammed Ier Oujda
Houda Benhar
Tags
Summary
This document is a university lecture on database design and the MERISE methodology used in database system development. It introduces, through various slides, the objectives and plan for the course; covering database concepts, methods and software.
Full Transcript
Cours: Ingénierie de bases de données Chapitre 1: La méthode Merise Pr. Houda Benhar Année universitaire 2024-2025 Objectifs pédagogiques UTILISER LA BASES DE DONNÉES CON...
Cours: Ingénierie de bases de données Chapitre 1: La méthode Merise Pr. Houda Benhar Année universitaire 2024-2025 Objectifs pédagogiques UTILISER LA BASES DE DONNÉES CONSTRUIRE DES APPLIQUER D'AUTRES MODÉLISATION RELATIONNELLES ET REQUÊTES SQL FONCTIONNALITÉS À RELATIONNELLE. SGBDR SIMPLES. VOS REQUÊTES SQL. Plan Plan 01 02 03 04 Méthodologie Merise Modèle conceptual Modèle logique de Passage MCD-MLD de données (MCD) données (MLD) Introduction SI manuel Merise Analyse des besoins Modèle conceptuel Conception Modèle logique Réalisation Modèle physique Tests/Maintenance Système d’information automatisé Méthodologie Merise Merise Methode d’Etudes et de Réalisation Informatique pour les Systèmes d’Entreprise ➤ C’est une méthodologie de modélisation à usage général dans le domaine du développement de systèmes informatiques, du génie logiciel et de la gestion de projet ➤ Créée dans les années 70 sur commande de l’État français et destinée aux gros projets informatiques de l’époque, la méthode a perduré jusqu’à aujourd’hui ➤ Le principal auteur de la méthode est Hubert Tardieu Méthodologie Merise ➤ La méthode MERISE est basée sur la séparation des données et des traitements à effectuer en plusieurs modèles conceptuels et physiques. Modélisation d'une base de données au niveau conceptuel L'élaboration du MCD ➤ Le modèle conceptuel de données (MCD) est une représentation graphique et structurée des informations mémorisées par un SI ➤ Son objectif est d’identifier, de décrire (au moyen d’informations) et de modéliser les entités et leurs associations à l’aide d’une représentation graphique ➤ L'élaboration du MCD passe par les étapes suivantes : L'élaboration du La mise en place L'élaboration MCD (création de règles de du dictionnaire des entités puis gestion (si celles-ci des données des associations ne vous sont pas puis ajout données) des cardinalités) Modélisation d'une base de données au niveau conceptuel L'élaboration du MCD: les règles de gestion métier Avant la création de vos entités et associations, il faut: ➤ Recueillir les besoins des futurs utilisateurs de votre application ➤ Etablir les règles de gestion des données à conserver Exemple: les règles de gestion pour informatiser le SI d'une bibliothèque ❖ Pour chaque livre, on doit connaître le titre, l'année de parution, un résumé et le type (roman, poésie, science-fiction…) ❖ Un livre peut être rédigé par aucun, un ou plusieurs auteurs dont on connaît le nom, le prénom, la date de naissance et le pays d'origine ❖ Un inscrit est identifié par un numéro et on doit mémoriser son nom, prénom, adresse, téléphone et adresse e-mail ❖ Un inscrit peut faire zéro, un ou plusieurs emprunts qui concernent chacun un et un seul exemplaire. ❖ Pour chaque emprunt, on connaît la date et le délai accordé (en nombre de jours)...etc Modélisation d'une base de données au niveau conceptuel L'élaboration du MCD: dictionnaire des données ➤ Le dictionnaire des données est un document qui regroupe toutes les données que vous aurez à conserver dans votre BDD (et qui figureront donc dans le MCD). ➤ Pour chaque donnée, il indique: le code mnémonique, la designation, le type de donnée (Alphabétique, Numérique, Alphanumérique, Date, Booléen), la taille.. Code mnémonique Désignation Type Taille Remarque id_a Identifiant numérique d’un abonné N nom_a Nom d’un abonné A 30 prenom_a Prénom d’un abonné A 30 tel_a Numéro de téléphone fixe d’un abboné AN 50 ville_a Ville où habite un abonné A 50 id_l Identifiant numérique d'un livre N titre_l Titre d'un livre AN 50 annee_l Année de parution d'un livre N 4 id_a Identifiant numérique d'un auteur N nom_a Nom d'un auteur A 30 prenom_a Prénom d'un auteur A 30 date_naissance_a Date de naissance d'un auteur Date Au format AAAA-JJ-MM …… …… …… …. …… Modélisation d'une base de données au niveau conceptuel L'élaboration du MCD: modèle E-A ➤ Il s'agit d'une représentation des données, facilement compréhensible qui a pour but d'écrire de façon formelle les données qui seront utilisées par le système d'information. ➤ Le formalisme adopté par la méthode Merise pour réaliser cette description est basé sur les concepts « entité-association » Les éléments clés du MCD : Entités Ce sont les objets ou concepts du système que l'on souhaite représenter. Dans notre application de gestion de bibliothèque, les entités pourraient inclure "Livre", "Auteur", "Emprunteur", etc. Relations Ce sont les liens entre les entités. Elles décrivent comment les entités interagissent les unes avec les autres. Par exemple, une relation entre les entités "Livre" et "Auteur" pourrait indiquer que chaque livre est écrit par un auteur. Attributs Ce sont les propriétés ou caractéristiques des entités. Par exemple, l'entité "Livre" pourrait avoir des attributs tels que "Titre", "ISBN", "Année de publication", etc. Modélisation d'une base de données au niveau conceptuel L'élaboration du MCD: Entité ➤ Une entité est un ensemble de propriétés décrivant des objets de même nature. Elle est représentée par un rectangle regroupant toutes les propriétés qui la décrivent. Auteur id_a prenom_a nom_a date_naiss_a Représentation graphique d’une entité Exemple d’une entité: Auteur Un identifiant (ou clé) est une propriété particulière de l’entité constitué par un ou plusieurs de ses attributs qui doivent avoir une valeur unique pour chaque occurrence de cette entité. On utilise: ❖ une donnée de type entier qui s'incrémente pour chaque occurrence, ❖ un code unique spécifique du contexte: le numéro de sécurité sociale pour une personne, le numéro d'immatriculation pour une voiture, le code ISBN pour un livre) Les attributs qui constituent l'identifiant sont soulignés et placés en tête Modélisation d'une base de données au niveau conceptuel L'élaboration du MCD: Entité ➤ Occurrences: ❖ Les occurrences (objets ou individus) d'une entité sont obtenues en donnant des valeurs à ses propriétés. Auteur Auteur 85943 85944 Khalid Marc Hosseini Levy US France 2 occurrences (objets) de l’entité Auteur Modélisation d'une base de données au niveau conceptuel L'élaboration du MCD: Entité Contraintes ➤ Toute entité doit respecter les contraintes suivantes: ❖ C1. Toute entité doit avoir au moins une propriété Sans propriétés, une entité serait vide et non descriptive, ce qui la rendrait inutile dans le modèle. ❖ C2. Toutes les propriétés sont distinctes les unes des autres Chaque propriété d’une entité doit être unique et ne doit pas se répéter. Cela signifie qu’il ne peut pas y avoir deux propriétés portant le même nom ou ayant la même fonction. Exemple : Employé (ID_employé, Prenom_employe, Nom_complet, Date_naissance, Âge, Salaire_brut, Salaire_net) Dans cet exemple, Prenom_employe et Nom_complet sont redondants. L'Âge et le Salaire net peuvent être dérivés si nécessaire, donc ils ne doivent pas être stockés comme des propriétés indépendantes. Modélisation d'une base de données au niveau conceptuel L'élaboration du MCD: Entité Contraintes ❖ C3. Au moins, une propriété est considérée comme identifiant Il doit exister une propriété identifiante, appelée identifiant, qui permet de différencier chaque occurrence (chaque instance) de l'entité de manière unique. Exemple : Le numéro de sécurité sociale pour une personne, le numéro d'immatriculation pour une voiture, le code ISBN pour un livre…. ❖ C4. L'identifiant d'une entité doit être souligné ❖ C5. Les propriétés sont monovaluées (prennent une seule valeur pour chaque occurrence) et aucun attribut n’est decomposable en plusieurs attributs significatifs Exemple : Etudiant (ID_etudiant, Nom_complet, Telephone, Adresse) Pour l'entité Étudiant, l’attribut Téléphone pourrait être multivalué si un étudiant peut avoir plusieurs numéros de téléphone. Lorsqu'on rencontre un attribut multivalué, il est préférable de le normaliser en créant une nouvelle entité Si l’attribut Adresse contient des données comme la rue, la ville et le code postal, ces composantes sont significatives en elles-mêmes et doivent être modélisées comme des attributs séparés (ou même des entités). Modélisation d'une base de données au niveau conceptuel L'élaboration du MCD: Entité Contraintes ❖ C6: Toutes les propriétés d'une entité doivent dépendre (dépendance fonctionnelle) uniquement de l'identifiant de cette entité. Cela signifie que chaque attribut ou propriété au sein d'une entité doit être déterminé uniquement par l'identifiant de cette entité et ne doit pas dépendre d'autres propriétés. Dépendance fonctionnelle : Une dépendance fonctionnelle (DF) entre les propriétés X et Y de l'entité E, notée X → Y, exprime le fait que la connaissance d'une valeur de X, quelle qu'elle soit, implique la connaissance d'une seule valeur de Y (la réciproque n'est pas forcément vraie !!!). ➤ X→ Y se lit X détermine Y, ou Y est déterminé par X, ou Y dépend de X. Exemple : Etudiant (ID_etudiant, Nom_etudiant, Ville, Code_postal) Dans cet exemple Code postal dépend de Ville. Cela indique que cette propriété n'est pas en dépendance fonctionnelle directe avec l'identifiant Dans ce cas, il est souvent conseillé de créer une nouvelle entité pour représenter cette dépendance. Modélisation d'une base de données au niveau conceptuel L'élaboration du MCD: Entité Activité ➤ Déterminer toutes les DFs possibles à partir de l’entité suivante: On a gardé que les propriétés qui Voiture dependent directement du matricule matricule modele Voiture Modele Proprietaire couleur 1,1 matricule 1,1 1,n 1,n puissance Posséder être modele cin_proprietaire couleur puissance carburant nom_proprietaire carburant constructeur constructeur cin_proprietaire nom_proprietaire Les autres propriétés qui dependent par transitivité ❖ Réponse de l’identifiant sont transformées en entités matricule → modele, couleur, puissance, carburant, constructeur, cin_proprietaire, nom_proprietaire modele → puissance, constructeur cin_proprietaire → nom_proprietaire Modélisation d'une base de données au niveau conceptuel L'élaboration du MCD: Entité Activité ➤ Expliquer pourquoi les entités suivantes sont incorrectes: Client ID_Client Nom Prenom ❖ Réponse Livre: Auteur est décomposable en plusieurs attributs significatifs (C5 violée). Il n'existe aucun identifiant unique dans cette entité (C3 violée) Employé: NbrEmployé ne dépend pas fonctionnellement de l’identifiant (C6 violée) Commande: total et montantTotal ne sont pas distinctes (C2 violée) Client: l'identifiant de l'entité n'est pas souligné (C4 violée) Modélisation d'une base de données au niveau conceptuel L'élaboration du MCD: Association ➤ Une association est un lien sémantique entre plusieurs entités ➤ Une association est souvent nommée par un verbe à l'infinitif qui exprime le sens du lien entre les entités. ➤ Une association est représentée par une ellipse regroupant les éventuelles propriétés qui la décrivent. ➤ Si l’association contient des propriétés, elle est dite porteuse de données. Modélisation d'une base de données au niveau conceptuel L'élaboration du MCD: Association Exemple 1: Auteur id_a prenom_a 1,n 0,n nom_a date_naiss_a ➤ Ce lien n'est pas orienté (peut être lu dans les 2 sens): « un auteur écrit un livre » veut dire aussi « un livre est écrit par un auteur» Modélisation d'une base de données au niveau conceptuel L'élaboration du MCD: Association Exemple 2: ➤ Les propriétés d’une association doivent dépendre de toutes les entités reliées par cette association ➤ Grâce aux annotations 1,N et 1,N, l’association « Contenir » traduit les deux règles de gestion suivantes : Une commande peut contenir 1 ou plusieurs produits. Un produit peut être contenu dans un ou plusieurs commandes. Modélisation d'une base de données au niveau conceptuel L'élaboration du MCD: Cardinalité ➤ La cardinalité d'une patte reliant une association et une entité précise le nombre de fois minimal et maximal d'interventions d'une entité dans une association ➤ Une cardinalité minimale est toujours 0 ou 1 et une cardinalité maximale est toujours 1 ou n. ➤ Les cardinalités les plus répandues sont les suivantes : 0,N ; 1,N ; 0,1 ; 1,1. Auteur id_a prenom_a 1,n 0,n nom_a date_naiss_a ! Association binaire L'expression de la cardinalité est obligatoire pour chaque patte d’une association. Modélisation d'une base de données au niveau conceptuel L'élaboration du MCD: Association réflexive ➤ Une association réflexive (ou unaire) est une association qui relie une entité à elle-même. Chaque patte devrait avoir un rôle pour bien lire le sens des cardinalités. Modélisation d'une base de données au niveau conceptuel L'élaboration du MCD: Association n-aire ➤ Pour simplifier la terminologie: N-aire = dimension ≥ 3 Exemple: association ternaire (n=3) Remarque: on a toujours des cardinalités [?,n] Modélisation d'une base de données au niveau conceptuel L'élaboration du MCD: type d’association ➤ On définie le type d'une association selon ses 2 cardinalités maximales de la manière suivante: ❖ 1:1 (un à un) si aucune des cardinalités maximales n'est n. ❖ 1:n (un à plusieurs) si une des deux cardinalités maximales est n. ❖ n:n (plusieurs à plusieurs) si les deux cardinalités maximales sont n. Activité ➤ Quelles sont les types de cardinalité des MCD suivant? Modélisation d'une base de données au niveau logique Modèle logique de données relationnelles (MLDR) ➤ Le modèle conceptuel de données (MCD) ou modèle E-A validé peut être transformé en plusieurs modèles logiques selon le type du SGBD à utiliser : ❖ SGBD hiérarchique : modèle logique hiérarchique. ❖ SGBD réseau : modèle logique réseau. ❖ SGBD objet : modèle logique objet. ❖ SGBD relationnel : modèle logique relationnel. ▪ Oracle ▪ MySQL ▪ Access ▪ PostgreSQL ➤ La transformation ou génération MCD-MLD est systémique à travers un ensemble de règles de transformation. Modélisation d'une base de données au niveau logique Modèle logique de données relationnelles (MLDR) ➤ Un schéma relationnel = tables appelés aussi des relations liées par des connecteurs entre les clés primaires et les clés étrangères correspondantes Client Commande CLIENT (numClt, nomClt) numClt numCom COMMANDE (numCom, dateCom, #numClt) nomClt dateCom #numClt Représentation graphique Représentation textuelle ➤ Pour repérer les clés primaires et clés étrangère dans un schéma relationnel on utilise les notations suivantes: ❖ On souligne les clés primaires ❖ On fait précéder les clés étrangères du symbole # Modélisation d'une base de données au niveau logique Transformation MCD-MLD: Régle 1 Règle 1: ➤ Une entité se transforme en une relation/table : ❖L'identifiant de l'entité devient la clé primaire de la relation. ❖Les propriétés ou les attributs de l'entité deviennent des colonnes ou des champs de la relation/table. ➤ Exemple: Le nom de la relation/table correspond en général à celui de l'entité. Modélisation d'une base de données au niveau logique Transformation MCD-MLD: Régle 2 Règle 2: ➤ Une association binaire (entre 2 entités) de type un à plusieurs disparait avec l'ajout d'une clef étrangère dans la table côté 0.1 ou 1.1 (entité fils) qui fait référence à la clef primaire de l'autre table (entité père). CLIENT (NumClt, NomClt) Règle 2 COMMANDE (NumCom, DateCom, #numClt) La clé étrangère ne peut pas recevoir la valeur null si la cardinalité coté fils est 1,1 Modélisation d'une base de données au niveau logique Transformation MCD-MLD: Régle 3 Règle 3: ➤ Une association binaire de type n:n plusieurs à plusieurs devient une table supplémentaire appelée table de jointure (de jonction ou d'association) dont la clé primaire est composée de deux clés étrangères (qui font référence aux deux clés primaires des deux tables en association) ➤ Les propriétés de l'association deviennent des colonnes de cette nouvelle table. ➤ Le nom de la table de jointure correspond en général à celui de l’association produit (CodP, LibP, PrixP) Règle 3 commande (NumCom, DateCom) details_commande (#NumCom, #CodP, QteCom) DateCom ➤ Règle valable pour les associations n-aires: chaque association n-aire devient une relation de même nom, dont les attributs sont les n clefs étrangères des n entités reliées à l'association et dont la clef primaire est formée de ces n attributs. Modélisation d'une base de données au niveau logique Transformation MCD-MLD Activité : ➤ Elaborer le modèle relationnel du diagramme E-A suivant: ➤ Réponse: SALARIE (matricule, nom, prenom, fonction, #matricule_encadrant) Modélisation d'une base de données Logiciels de modélisation ➤ Des outils de modélisation payants et d'autres gratuits pour MERISE: PowerDesigner