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 Conception MCD MLDR MPD Implémentation Tests Déploiement Système d information automatisé Instanciation
Base de données / Fichier plat SQL PARSER EXECUTER TABLE CACHE TABLES Fonctionnement d un SGBD (DBMS) DISKS
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 Vitesse Stockage Persistance Temps d accès Taille du Block Mémoire versus Disque Mémoire 1000 fois rapide que le disque Disque 100 fois plus spacieux au même coût Mémoire volatile, disque persistant Ns vs ms 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é) 1 N1, P1, DN1 2 N2, P2, DN2 3 N3, P3, DN3 4 N4, P4, DN4 Etudiant (nom, prénom, date de naissance)
Base de données / Fichier plat Fonction de hachage: f(id) = id 1 2 4 3 Store hash 1 2 3 4 1 2 3 4
Base de données / Fichier plat Identificateur (clé) 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 Etudiant (nom, prénom, date de naissance)
Base de données / Fichier plat Fonction de hachage: f(id) = id mod 4 5 10 12 6 Store hash 1 2 3 0 Nouvellement ajoutés 1 2 3 4 5 10 12 6
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 : MCD Entité Propriété / attribut Identifiant Association Occurrence Cardinalité
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 Inscription Etudiant 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 Numero_Appartement type classe Appartement <pi> Entier Caractère (10) Caractère (10) 1,n possede 1,1 Numero_Salle superficie qualite description Salle <pi> Entier Entier Texte (10) Texte (100) <O> Identifiant_1 <pi> 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 Appartement Numero_Appartement type classe Identifiant_1 Caractère (10) Caractère (10) <pi> <pi> possede Sa Salle Numero_Salle <pi> Entier <O> Numero_Appartement superficie qualite description <fi> Entier Entier Texte (10) 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 type classe integer char(10) char(10) <pk> FK_APPARTEM_POSSEDE_SALLE Numero_Salle Numero_Appartement superficie qualite description integer integer integer long varchar long varchar <pk> <fk>
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 Client Numero_Client <pi> Entier Nom Caractère prenom Caractère CIN Caractère 0,n 0,n Produit Code_Produit description Numero_serie <pi> Numérique Caractère Caractère... Commande quantite Entier
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 Client Numero_Client <pi> Entier <O> Nom prenom CIN Caractère Caractère Caractère Produit Code_Produit <pi> Numérique description Caractère Numero_serie Caractère... Commande Commande Commande Numero_Client Code_Produit <pi,fi1> <pi,fi2> Entier Numérique <O> <O> quantite Entier...
MCD vers MPD Règle 3 : Formalisme et Exemple Client Numero_Client<Non défini> <pk> Nom <Non défini> prenom <Non défini> CIN <Non défini>... MPD Produit Code_Produit numeric description <Non défini> Numero_seriedate... <pk> FK_COMMANDE_COMMANDE2_CLIENT FK_COMMANDE_COMMANDE_PRODUIT Numero_Client Code_Produit quantite... Commande <Non défini> numeric integer <pk,fk1> <pk,fk2>