Université Abdelmalek Essaâdi Faculté des Sciences et Techniques d’Al-Hoceima Département de Physique Année universitaire : 2018 - 2019 MST : Systèmes Embarqués et Robotique (MST-SER) – S2 Cours du Module M44 : « Bases de données avancées » Chapitre 2 : Modèle Entité-Association (ou MCD) Pr. A. El Mahouti FSTH Plan du chapitre 2 : Le modèle EA (ou MCD) Modèle Entité-Association (EA) Présentation Concepts manipulés Règles de gestion Dictionnaire de données Normalisation Règles générales relative au MCD Dépendances Fonctionnelles (DF) Formes Normales (FN) Pr. A. El Mhouti 2 FSTH Rappel : méthodologie de conception d'une BD 3 niveaux de conception Niveau Conceptuel : Modèle conceptuel graphique : MCD Exemples de formalismes : EA, UML Niveau Logique : Schéma logique indépendant d'un SGBD : MLD Exemples : Relationnel, Objet, Relationnel-Objet, … Niveau informatique : Implémentation pour un SGBD particulier Exemples : Oracle, MySQL, PostgreSQL, Access, …. Conception en quatre étapes Pr. A. El Mhouti 3 FSTH Modèle Entité-Association (EA) Pr. A. El Mhouti 4 FSTH Modèle EA Présentation Le modèle EA est un modèle conceptuel conçu par Chen en 1976. Le but de ce modèle est de permettre la description conceptuelle des structures de données d’une application. L’objectif du modèle EA est la création d’un Modèle Conceptuel de Données (MCD). Le modèle EA décrit les objets, les événements, les concepts d’une manière abstraite, sans réfléchir, à ce stade, aux traitement à effectuer par l’ordinateur. Les concepts de base qui correspondent aux concepts d’abstraction de la réalité sont : Objet entité Lien association Propriété attribut Pr. A. El Mhouti 5 FSTH Modèle EA Entité Définition : Une entité ou individu est la représentation dans la BD d’un objet concret ou abstrait (matériel ou immatériel) du monde réel. Exemples : Dans la BD d’une société, on peut identifier les entités suivantes : client commande facture Produit …. Remarque : Une entité a une existence propre, sans référence à une autre entité. On parle Type d‘Entités (TE) une représentation d'un ensemble d'entités perçues comme similaires et ayant les mêmes caractéristiques. Pr. A. El Mhouti 6 FSTH Modèle EA Association Définition : Une association est une représentation d'un lien sémantique non orienté entre plusieurs entités (qui jouent un rôle déterminé). Il est souhaitable de limiter la dimension des relations à deux (relations binaire). Plus la dimension d’une relation est grande, plus la relation devient complexe et difficile à gérer. Exemple : Association “commander” entre les entités : “Clients” et “Produits” : commander est une association entre un Client et un Produits. Pr. A. El Mhouti 7 FSTH Modèle EA Association Remarques : On parle d’un Type d’associations (TA) une représentation d'un ensemble d'associations ayant la même sémantique et décrites par les mêmes caractéristiques. Un TA est une association entre plusieurs Type d’Entités. Rôles d’une association : Dans une association, chaque entité joue un rôle déterminé. Association binaire deux rôles : Pr. A. El Mhouti 8 FSTH Modèle EA Association Dimension d’une association : La dimension d’une association est le nombre d’entités qu’elle relie : Association binaire : reliant deux entités. Association n-aires : reliant plusieurs entités (avec n > 2) Association cyclique (réflexive) : qui associe les occurrences d’une même entité. Association plurielle : deux mêmes entités peuvent être plusieurs fois en association. Pr. A. El Mhouti 9 FSTH Modèle EA Association Association cyclique (réflexive) : C’est une association branchée plusieurs fois (plusieurs rôles) à la même entité. Exemple : Tout employé est dirigé par un autre employé (sauf le directeur général) Diriger est une association entre un Employé et un autre Employé Remarque : pour faciliter la lecture, on doit spécifier le rôle de chaque entité. Exemple : association cyclique avec rôles nommés : marié à est une association entre une personne (femme) et une autre personne (mari). Pr. A. El Mhouti 10 FSTH Modèle EA Association Association n-aire : Exemple 1: une association ternaire (lie 3 entités): Assurer est une association (ternaire) entre un Enseignant, une Matière et un Groupe Exemple 2: Association ternaire cyclique : Pr. A. El Mhouti 11 FSTH Modèle EA Association Association plurielle : Elle permet de relier deux mêmes entités plusieurs fois en association. Exemple : Pr. A. El Mhouti 12 FSTH Modèle EA Association Il est utile parfois d’ajouter des rôles pour faciliter la lecture de l’association dans un sens et dans l’autre comme le montre l’exemple suivant : Pr. A. El Mhouti 13 FSTH Modèle EA Propriétés Définition : La propriété (ou attribut) représente la plus petite quantité d’informations caractérisant une entité ou une association. La propriété peut être utilisée d’une manière autonome et présente un intérêt pour le domaine à étudier. Exemples : l’entité Clients est caractérisée par les propriétés : N° client, nom, prénom, adresse. L’association Commander est caractérisé par les propriétés : Quantité, Date. Une propriété se décrit par son nom, une description, son type, sa longueur. Pr. A. El Mhouti 14 FSTH Modèle EA Propriétés Une propriété peut être : simple (atomique) : non décomposable Exemples : jour, prénom complexe : décomposé en d'autres attributs Exemple : date peut être décomposée en jour, mois, année Obligatoire : une valeur au moins par occurrence. Exemples : nom, prénoms Facultative : peut ne pas prendre de valeur. Exemples : salaire, téléphones monovaluée : une seule valeur par occurrence. Exemples: date de naissance, numéro sécurité multivaluée : plusieurs valeurs par occurrence. Exemples: prénoms, téléphones Pr. A. El Mhouti 15 FSTH Modèle EA Identifiant Un identifiant est une Propriété spéciale (d’une entité ou d’une association) permettant d’identifier de manière unique chaque occurrence d’une classe d’entités (d’associations). Un identifiant est constitué d’un ensemble minimal de propriétés permettant de distinguer sans ambiguïté une occurrence de l’entité. Toute entité doit avoir un identifiant. MERISE propose de souligner l’identifiant ou de le précéder par le caractère #. Exemple : L’identifiant de l’entité Clients est N° Client car 2 clients ne peuvent pas avoir le même N°. L’identifiant de l’entité Articles est N° Article car 2 articles ne peuvent pas avoir le même N°. Pr. A. El Mhouti 16 FSTH Modèle EA Identifiant Un identifiant peut être : simple : quand il est constitué d’une seule propriété. composé : quand il est constitué de plusieurs propriétés. Exemple : soit l’entité Clients suivante : Dans cet entité, deux identifiants possible : N°client : identifiant simple nom+prénoms : identifiant composé Remarque : Si une entité est identifiable par plusieurs identifiants, l’un d’eux est choisi comme clé primaire. Pr. A. El Mhouti 17 FSTH Modèle EA Identifiant d’une Association L’identifiant d’une association peut être construit selon les possibilités suivantes : 1ère possibilité : attribut(s) propre(s) : L’identifiant de l’association commande est : N°commande 2ème possibilité : identifiant construit des identifiants des entités liées : L’identifiant de l’association Inscrit est : Etudiant.N°carte + Cours.N°cours Pr. A. El Mhouti 18 FSTH Modèle EA Identifiant d’une Association 3ème possibilité : identifiant construit des identifiants des entités liés + attribut(s) propre(s) : (Un client peut commander le même produit plusieurs fois à des dates différentes) L’identifiant de l’association Commande est : Client.N°client + Produit.N°produit +date 4ème possibilité : Tout rôle mono-valué induit un identifiant de l’association (l’identifiant de l’entité liée est aussi identifiant de l’association) l’identifiant de l’association Assure est : Voiture.N°imm Pr. A. El Mhouti 19 FSTH Modèle EA Cardinalités La cardinalité d'une association indique le nombre d'occurrences (minimales et maximales) de chaque entité qui peuvent être impliquées dans une même association. Elle est notée sous la forme (min,max), où : min est le nombre minimum d’occurrences de l’entité1 relié à l’entité2. max est le nombre maximum d’occurrences de l’entité1 relié à l’entité2. (min,max) (min,max) Les valeurs possibles d'une cardinalité minimale sont 0 ou 1. Les valeurs possibles d'une cardinalité maximale sont 1 ou n. Pr. A. El Mhouti 20 FSTH Modèle EA Cardinalités Exemple : Dans la relation « Commander » suivante : Combien d’articles minimum un Client peut-il commander ? Combien d’articles maxmum un Client peut-il commander ? un client peut commander 1 ou plusieurs Articles un article peut être commandé par 0 ou plusieurs clients Pr. A. El Mhouti 21 FSTH Modèle EA Cardinalités Dans la pratique on gère les cardinalités suivantes : 0,1 : Chaque occurrence de l’entité est relié à au plus une occurrence de l’association. Exemple : Un employé est responsable d’au plus un service. 1,1 : Chaque occurrence de l’entité est relié exactement à une occurrence de l’association. Exemple : Un compte bancaire appartient à un client et un seul. 0,N : Chaque occurrence de l’entité est relié à un nombre quelconque d’occurrence de l’association. Exemple : Une personne possède 0 ou N voitures. 1,N : Chaque occurrence de l’entité est relié à au moins une occurrence de l’association. Exemple : Un enseignant assure au moins un cours. Exemple : cours. Pr. A. El Mhouti Un enseignant assure un ou plusieurs 22 FSTH Modèle EA Cardinalités Dans le cas des relations binaires, ce qui est fréquent est résumé dans le tableau suivant : Entité1/Entité2 0-1 1-1 0-N 1-N 0-1 ? ? 1-1 ? * 0-N 1-N ? : il faut se demander si l’une des entités n’est pas propriété d’une autre. • : à éviter car il traduit souvent une erreur de conception. Pr. A. El Mhouti 23 FSTH Modèle EA Cardinalités et associations Lorsque autour d’une entité, toutes les associations ont pour cardinalités maximales 1 au centre et n à l’extérieur, cette entité est candidate pour être remplacée par une association branchée à toutes les entités voisines avec des cardinalités identiques 0,n. Exemple : soit la BD de gestion d’un cinéma suivante : Pr. A. El Mhouti 24 FSTH Modèle EA Cardinalités et associations Remarques : La difficulté de concevoir une association n-aire directement est d’établir les bonnes cardinalités. Il est donc conseillé d’en passer par un schéma EA dans lequel on ne trouve que des associations binaires, puis de repérer les entités remplaçables par des associations. Cette règle permet d’éviter d’introduire une association ternaire abusive. Contre exemple : Pr. A. El Mhouti 25 FSTH Modèle EA Occurrence : Occurrence d’une propriété Toute valeur prise par la propriété définit une occurrence de la propriété. Exemple : Considérons l’entité Etudiant caractérisée par les propriétés suivantes : Numéro Nom Prénom Date_naiss Note_Arabe Note_Anglais 001 SLAOUI Amine 28/10/93 12,05 10,46 002 BENMOUSSA Latifa 08/10/92 8,81 10,44 003 HAJAMA Mohamed 23/01/94 10,31 11,09 004 FARAH Adil 02/09/92 9,30 13,09 005 KABAJ Ilham 26/07/91 0,00 0,00 Dans ce tableau, on trouve les valeurs prises par les différentes propriétés. La propriété Prénom prend les valeurs (donc les occurrences !) : Amine, Latifa, Mohamed, Adil, Ilham. Pr. A. El Mhouti 26 FSTH Modèle EA Occurrence : Occurrence d’une entité L’ensemble de valeurs prises par les propriétés d’une entité définit l’occurrence de l’entité. Etudiant Exemple : soit l’entité Etudiant suivante : Numéro Nom Prénom Date_naiss Note_Arabe Note_Anglais Dans le tableau suivant, l’entité étudiant a 5 occurrences. (Chaque ligne du tableau est une occurrence de l’entité). Numéro Nom Prénom Date_naiss Note_Arabe Note_Anglais 001 SLAOUI Amine 28/10/93 12,05 10,46 002 BENMOUSSA Latifa 08/10/92 8,81 10,44 003 HAJAMA Mohamed 23/01/94 10,31 11,09 004 FARAH Adil 02/09/92 9,30 13,09 005 KABAJ Ilham 26/07/91 0,00 0,00 Pr. A. El Mhouti 27 FSTH Modèle EA Occurrence : Occurrence d’une association Une occurrence d’une association est l’ensemble de valeurs prises par les propriétés de l’association générée par des occurrences des entités impliquées dans l’association. Exemple : soit l’association « commander » suivante : Occurrence Pr. A. El Mhouti 28 FSTH Modèle EA Formalisme de représentation graphique La méthode Merise propose des représentations graphiques pour la plupart de notions qu’elle utilise. Une entité est représentée par un rectangle dans lequel apparaissent son nom et ses propriétés. L’identifiant est soulignée. Une association par une ellipse dans lequel apparaissent son nom et ses propriétés éventuelles. Exemple : Pr. A. El Mhouti 29 FSTH Contraintes d’Intégrité (CI) (ou règles de gestion) Pr. A. El Mhouti 30 FSTH Contraintes d’intégrité Présentation Les règles de gestion du MCD précisent les contraintes qui doivent être respectées par la base de données. Ce règles expriment les Contraintes d’Intégrité. Exemple : Dans le MCD d‘une école, les règles de gestion peuvent être les suivantes : RG1 : tout professeur enseigne en principe au moins une matière. RG2 : certains professeurs peuvent être dispensés d‘enseignement en raison de leurs travaux de recherche. RG3 : toute matière est enseignée dans au moins une classe. RG4 : toute classe a au moins trois enseignants. … Pr. A. El Mhouti 31 FSTH Contraintes d’intégrité Présentation Le MCD décrit les données ainsi que les CI. Les CI sont des règles définissant les états (CI statiques) et les transitions d'état (CI dynamiques) possibles de la BD. Une BD est cohérente si toutes les CI définies sont respectées par les valeurs de la BD. A chaque insertion, modification ou suppression, les CI sont vérifiées automatiquement. Les CI doivent être décrites explicitement (avec un langage approprié) si elles ne peuvent pas être décrites avec les concepts du modèle de données (MCD, MLD, …). Pr. A. El Mhouti 32 FSTH Contraintes d’intégrité CI statiques Il existe différents types de CI statiques : CI sur une propriété : type, liste des valeurs possibles, valeur par défaut … CI sur les propriétés d’une même entité : heure d’arrivée doit être supérieure à heure de départ CI sur les propriétés d’occurrences distinctes d’une entité : La somme des montants des opérations de Débit doit être égale à celle des opérations de Crédit. CI sur des propriétés d’entités différentes : date-achat doit être inférieure à la date-emprunt. … Pr. A. El Mhouti 33 Opération N° opération Libellé Montant Débit Crédit FSTH Contraintes d’intégrité CI dynamiques CI dynamiques : Permettent d’exprimer le fait que les valeurs des données d’un état dépendent d’un des états précédents. Exemples : Le salaire d’un employé ne peut pas diminuer. Le nouvel âge d’un employé doit être supérieur à l’ancien. Employé N° employé Salaire Age Pr. A. El Mhouti 34 FSTH Dictionnaire de données (DD) Pr. A. El Mhouti 35 FSTH Dictionnaire de données Présentation Le Dictionnaire de Données (DD) a pour but de recenser toutes les informations utiles à la base de données. Le DD distingue : Les données paramétrées: cette information prendra toujours la même valeur. Les données calculées: cette information pourra être retrouvée par le biais d’un calcul, à l’aide d’une requête, grâce aux données élémentaires et paramétrées. Les données élémentaires: cette information pourra prendre plusieurs valeurs. Dans la conception de la Base de Données, on ne retiendra que les données élémentaires. Pr. A. El Mhouti 36 FSTH Dictionnaire de données Objectif Le DD à pour but de définir la liste de toutes les propriétés. Le DD contient pour chaque propriété tout ou partie des éléments suivants : son nom, son type et sa longueur, sa nature, sa description et contrainte ou remarques, …. Exemple : DD d’une base de données décrivant l’entité « Client » : Nom Type Nature NumCli Num(15) Elémentaire Numéro client NomCli Char(15) Elémentaire Nom client PrenomCli Char(15) Elémentaire Prénom client … … … … Pr. A. El Mhouti Description Remarque Identifiant, ne peut être modifié … 37 Contrainte … FSTH Dictionnaire de données Principe Une propriété définie dans le DD doit être : Pertinente : présente un intérêt pour le domaine étudié. Unique : deux ou plusieurs entités ne peuvent jamais avoir une même propriété. Brut : non calculée. Atomique: nom décomposable. A une seule signification : Pr. A. El Mhouti Exemple : Date est une propriété qui peut représenter la date de la commande client et la date de livraison. Dans cet exemple, il faut utiliser deux propriétés pour représenter chacune des deux dates : DateCom pour la date de la commande et DateLiv pour la date de livraison. 38 FSTH