Conception des bases de données avec merise Partie I Abdelfettah IDRI plan Le modèle conceptuel de données MCD Le modèle logique de données relationnelles MLDR Le modèle physique de données MPD Langage SQL Cycle d’abstraction Système d’information manuel Expression des besoins (CPS) Abstraction Spécifications Fonctionnelles Détaillées MCD Conception MLDR MPD Implémentation Tests Déploiement Instanciation Système d’information automatisé Base de données / Fichier plat PARSER EXECUTER TABLE CACHE TABLES DISKS Fonctionnement d’un SGBD (DBMS) SQL Base de données / Fichier plat Utilisateur : sécurité niveau utilisateur Transactions : exécution d’une séquence de requêtes sous forme d’un seul lot logique élémentaire Tables : tout est basé sur la table Cache : Performance (exécution) et scalabilité Disque : persistance Base de données / Fichier plat Mémoire versus Disque Vitesse Mémoire 1000 fois rapide que le disque Stockage Disque 100 fois plus spacieux au même coût Persistance Mémoire volatile, disque persistant Temps d’accès Ns vs ms Taille du Block 4 KB / word Base de données / Fichier plat Gestion et structuration du stockage sur le disque ◦ Indexation ◦ Tables de hachage (Hash Tables) ◦ Arbres binaires (Binary trees) Base de données / Fichier plat ◦ Tables de hachage (Hash Tables) Fonction de Hachage Buckets L’objectif est d’identifier le « bucket » contenant l’information ciblée. Base de données / Fichier plat Identificateur (clé) Etudiant (nom, prénom, date de naissance) 1 N1, P1, DN1 2 N2, P2, DN2 3 N3, P3, DN3 4 N4, P4, DN4 Base de données / Fichier plat Fonction de hachage: f(id) = id 1 2 4 3 Store 1 1 hash 2 2 3 3 4 4 Base de données / Fichier plat Identificateur (clé) Etudiant (nom, prénom, date de naissance) 1 N1, P1, DN1 2 N2, P2, DN2 3 N3, P3, DN3 4 N4, P4, DN4 5 N5, P5, DN5 6 N6, P6, DN6 10 N10, P10, DN10 12 N12, P12, DN12 Base de données / Fichier plat Fonction de hachage: f(id) = id mod 4 5 10 12 6 Store 1 Nouvellement ajoutés hash 2 1 2 5 10 6 3 3 0 4 12 Base de données / Avantages Flexibilité : séparation des données du programme de traitement indépendance du stockage disque et de modifications des données au niveau DB Accès rapide : ◦ une seule base de données logique et intégrée (tables liées logiquement) ◦ avec SQL on peut formuler des requêtes complexes Accès concurrent Stockage optimisé (non redondant) Accès Sécurisé Analyse des besoins Transformation de l’information relative au système à analyser en un texte simple et claire Modélisation sur la base de cette spécification fonctionnelle Spécification fonctionnelle = contrat ou lien entre l’informaticien et l’utilisateur Modéliser en termes d’entités Conception : Entité Propriété / attribut Identifiant Association Occurrence Cardinalité MCD Entité / définition Une entité est une classe d’éléments (abstraits ou concrets) du monde réel défini par : ◦ une existence propre ◦ une utilité pour l’organisation étudiée ◦ possède des occurrences multiples (au moins deux) ◦ des propriétés (au moins une) ◦ Généralement : l’entité est statique , (nom) entité Exemples: ◦ ◦ ◦ ◦ ◦ ◦ Personne Voiture Agence Ecole Adresse cours entité Formalisme ◦ Une entité est représentée par un rectangle Entité ENCG Inscri pti on Etudi ant Voyage Agence Propriété / attribut /Définition C’est l’information élémentaire, donnée élémentaire ou rubrique, la propriété désigne l’élément d’information indécomposable et manipulable pour décrire l’entité Possède un nom bien défini « nom de propriété » Possède un type (texte, nombre, date, boolean,..) Prend ses valeurs dans un domaine de valeurs A un sens dans le système d’information étudié. Propriété / attribut Exemples: ◦ ◦ ◦ ◦ ◦ ◦ ◦ Nom prénom Age Couleur Ville Pays date Propriété / attribut Formalisme ◦ Les propriétés sont représentées dans le même rectangle de l’entité Identifiant / définition Parmi toutes les propriétés d’une entité, une ou plusieurs d’entre elles doivent jouer un rôle particulier, celui de permettre de distinguer chaque occurrence de l’entité par rapport à toutes les autres. L’identifiant garantit l’unicité de la correspondance des entités entre le monde réel et le système d’information à modéliser Identifiant / définition Type d’identifiants ◦ Simple : une seule propriété ◦ Composé: deux propriétés ou plus Identifiant Exemples: ◦ ◦ ◦ ◦ ◦ Identificateur d’un abonné CIN Numéro de téléphone Adresse : appartement, rue, ville , pays Professeur, classe, date, cours Identifiant Formalisme ◦ L’identifiant d’une entité est l’ensemble des propriétés soulignées Associations / définition Une association est une liaison logique entre les entités C’est un type d’élément du monde réel défini par : ◦ ◦ ◦ ◦ une absence d’existence intrinsèque Possède au moins une occurrence Peut avoir des propriétés Possède une dimension mesurée par le nombre d’entités rattachées ◦ représente une utilité pour l’organisation étudiée ◦ Généralement : c’est une action (verbe) Associations Formalisme ◦ L’association est représentée par un ovale association Dimensions d’association Association binaire : association entre deux entités (dimension 2) association Dimensions d’association Association ternaire : association entre trois entités (dimension 3) association Dimensions d’association Association réflexive: association circulaire (dimension 1) association Exemple Cardinalité / définition La cardinalité d’une entité par rapport à une association s’exprime par deux nombres appelés cardinalité minimale et cardinalité maximale La cardinalité minimale peut être égale à 0 ou à 1 Cardinalité / définition Si la cardinalité minimale est égale à 0, c’est qu’il existe au moins une occurrence de l’entité qui ne participe pas aux occurrences de l’association. Si la cardinalité minimale est égale à 1, chaque occurrence de l’entité participe aux occurrences de l’association La cardinalité maximale exprime le nombre de fois maximal où une occurrence de l’entité participe aux occurrences de l’association. On la note « n » Cardinalité Formalisme 1 cardinalité Exemple cardinalité Un stagiaire peut ne pas avoir de note, c’est à dire qu’il peut exister un stagiaire qui n’a pas passé l'évaluation (cardinalité minimale =0). Un stagiaire peut être inscrit à plusieurs module et avoir une note pour chacun des modules auxquels il est inscrit (cardinalité maximale = n) Il est possible que personne ne se présente à l'évaluation pour un module (cardinalité minimale = 0) Plusieurs notes peuvent être attachées à un même module (cardinalité maximale = n) cardinalité exemple cardinalité Exemple occurrence Une occurrence de propriété est une valeur que peut prendre une propriété : c’est une instance possible d’une propriété Occurrence / entité Une occurrence d’entité est un ensemble ayant une existence propre d’occurrences de ses propriétés Exemple: L’ensemble {OMAR, AZIZI, 10/11/1983} est une occurrence de l’entité « STAGIAIRE » puisque « OMAR » est une occurrence de la propriété NOM, « AZIZI » une occurrence de PRENOM et « 10/11/1983 » une occurrence de DATE_DE_NAISSANCE Occurrence / association Une occurrence de relation est constituée d’une et d’une seule occurrence de chacune des entités associées. L’occurrence de chacune des propriétés de l’association est en relation avec les occurrences des entités associées Occurrence / association Exemple: {OMAR, AZIZI, 10/11/1983} : une occurrence de l’entité « STAGIAIRE ». {BDD} et {JAVASCRIPT} : deux occurrences de l’entité « MODULE ». 12 peut être une occurrence de « NOTE » associée aux occurrences {OMAR, AZIZI, 10/11/1983} et {BDD} ; 13 une autre occurrence de « NOTE » associée aux occurrences {OMAR, AZIZI, 10/11/1983} et {JAVASCRIPT} Conception des bases de données avec Merise Partie II Abdelfettah IDRI plan Le modèle conceptuel de données MCD Le modèle logique de données relationnelles MLDR Le modèle physique de données MPD MLDR / MLD Concepts du modèle relationnel Transformation du modèle MCD en modèle MLDR Concepts du modèle relationnel MLDR Relation Une relation est un ensemble d’occurrences et sa description peut prendre la forme d’un tableau dans lequel chaque ligne représente une occurrence d’entité et chaque colonne un attribut Concepts du modèle relationnel MLDR Exemple: La relation ETUDIANT(nom, prénom, dateNaissance) peut être représentée par Nom Prénom DateNaissance Nom1 Prénom1 15/3/1980 Nom2 Prénom2 10/11/1985 Concepts du modèle relationnel MLDR Cardinalité d’une Relation C’est le nombre d’occurrence de la relation Degré d’une relation C’est son nombre d’attribut Clé primaire Un ou plusieurs attributs de la relation (unicité) Clé étrangère Clé primaire d’une autre relation Concepts du modèle relationnel MLDR Exemple: La cardinalité de cette relation est 2 Le degré de cette relation est 3 Nom Prénom DateNaissance Nom1 Prénom1 15/3/1980 Nom2 Prénom2 10/11/1985 MCD vers MLDR Règle 1 À chaque entité on fait correspondre une relation et par conséquent une table MCD vers MLDR Règle 2 Une relation « 1 n » est implémentée par l’ajout d’une clé étrangère à l’entité ayant la cardinalité « 1 » MCD vers MLDR Règle 2 La clé primaire de la relation table_1 est son « Identifiant1 » La clé secondaire ou étrangère de la relation table_1 est « Identifiant2 » MCD vers MLDR/MLD/MPD Règle 2 : Formalisme et Exemple MCD Salle Appartement Numero_Appartement <pi> Entier type Caractère (10) classe Caractère (10) Identifiant_1 <pi> ... 1,n possede 1,1 Numero_Salle <pi> Entier <O> superficie Entier qualite Texte (10) description Texte (100) Identifiant_1 <pi> ... MCD vers MLDR Règle 2 : Formalisme et Exemple MLDR Appartement ( Numero_Appartement, type, classe) Salle ( Numero_Salle, superficie, qualité, description, # Numero_Appartement) MCD vers MLD Règle 2 : Formalisme et Exemple MLD Salle Salle Appartement Appartement Numero_Appartement <pi> type Caractère (10) classe Caractère (10) Identifiant_1 <pi> ... Numero_Salle <pi> Entier <O> possede Numero_Appartement <fi> Entier superficie Entier qualite Texte (10) description Texte (100) MCD vers MPD Règle 2 : Formalisme et Exemple PK: Primary key (clé primaire) FK: Foreign Key (clé étrangère) MPD Salle Appartement Numero_Appartement integer <pk> type char(10) classe char(10) ... FK_APPARTEM_POSSEDE_SALLE Numero_Salle Numero_Appartement superficie qualite description ... integer <pk> integer <fk> integer long varchar long varchar MCD vers MLDR Règle 3 Une relation « n m » est implémentée par la création d’une nouvelle relation (table) ayant pour clé la réunion des clé des 2 entités de la relation MCD vers MLDR/MLD/MPD Règle 3 : Formalisme et Exemple MCD Produit Client Numero_Client <pi> Entier Nom Caractère prenom Caractère CIN Caractère Code_Produit description Numero_serie 0,n 0,n Commande ... quantite Entier <pi> Numérique Caractère Caractère MCD vers MLDR Règle 2 : Formalisme et Exemple MLDR Client( Numero_Client, nom, prénom, CIN) Produit( Code_Produit, description , numéro_série) Commande(# Numero_Client , #CodeProduit, quantité) MCD vers MLD Règle 3 : Formalisme et Exemple MLD Produit Client Code_Produit <pi> Numérique Numero_Client <pi> Entier <O> Nom prenom CIN description Caractère Numero_serie Caractère Caractère Caractère Caractère ... Commande Commande Commande Numero_Client <pi,fi1> Entier <O> Code_Produit <pi,fi2> Numérique <O> quantite ... Entier MCD vers MPD Règle 3 : Formalisme et Exemple MPD Client Produit Numero_Client <Non défini> <pk> Nom <Non défini> prenom <Non défini> CIN <Non défini> ... Code_Produit numeric <pk> description <Non défini> Numero_seriedate ... FK_COMMANDE_COMMANDE2_CLIENT FK_COMMANDE_COMMANDE_PRODUIT Commande Numero_Client <Non défini> <pk,fk1> Code_Produit numeric <pk,fk2> quantite ... integer