Modèle Logique de données Du Modèle Conceptuel des données MCD pour réfléchir Au modèle Logique de données MLD modèle « mathématique » Au modèle Physique de données MPD pour programmer Modèle Logique de données
Le Modèle Logique de Données La modélisation conceptuelle a décrit de manière exhaustive les données du système d’information et leurs structures avec deux outils: ENTITES - ASSOCIATIONS Comment intégrer les contraintes techniques pour une implantation informatique, un SI automatisé ? Modèle Logique de données
Les techniques d’implantation d’un SI IMPLANTATION SUR MACHINE = MODELE PHYSIQUE XML Le modèle fichier (S.G.F) Le modèle SGBD : On implante le SI à partir d’un logiciel appelé Système de Gestion de Bases de Données Modèle Logique de données
Le Modèle Logique de Données Le MLD prend en compte la nature de l’outil logiciel avec lequel sera implanté la future base de données. Différents SGBD basés sur le modèle hiérarchique ou réseau IMS/DL1 chez IBM le modèle relationnel ORACLE, MySQL le modèle objet db4O Modèle Logique de données
Modèle Logique de Données Relationnel : MLR Edgar Frank Codd : A Relational Model of Data for Large Shared Data Bank ; CCAM 13; N°6, june 1970 Simple à appréhender Basé sur la théorie des ensembles en mathématique Représentation de l’ORGANISATION : Manipulation de listes de données Indépendance totale avec le système d’exploitation et le stockage physique Règles de normalisation Modèle Logique de données
Modèle Logique de données Plan de l’étude : 1- Exemples de bases de données relationnelles. 2- Définitions du modèle relationnel. 3- Passage du MCD au MLD relationnel. 4- Passage du MLD relationnel au MCD. 5- Exemples complexes. Modèle Logique de données
La base de données du Père Noël Modèle Logique de données
La traduction du MCD:PèreNoël Modèle Logique de données
Traduction en tables : Enfant et Résider Pour 1 enfant, 1 seule adresse : une propriété (clé étrangère) suffit pour mémoriser cette information Modèle Logique de données
La traduction en tables : Résider ENFANT ( noEnfant , nomEnfant, prénomEnfant, gentil, codeAdr ) ADRESSE ( codeAdresse, rueAdresse, cp , ville, cheminée, fenêtre, souterrain ) Modèle Logique de données
La traduction du MCD:PèreNoël « commander » et « obtenir » Pour 1 enfant, n commandes : Modèle Logique de données
La traduction du MCD:PèreNoël COMMANDER ( noEnfant, noCadeau ) OBTENIR(noEnfant, noCadeau ) Modèle Logique de données
La traduction du MCD:PèreNoël Les fournisseurs de cadeaux: FOURNISSEUR ( noFsseur, nomFsseur, adrFsseur ) CADEAU ( noCadeau, nomCadeau, noFsseur ) Modèle Logique de données
Modèle Logique de données Le passage au MLD Les entités sont-elles transformées en tables ? Toute association est-elle transformée en tables ? Si non , quelles sont les associations transformées en tables ? Quelle est la structure de ces tables ? Modèle Logique de données
Les tables de la base PèreNoël ENFANT ( noEnfant , nomEnfant, prénomEnfant, gentil, codeAdresse ) ADRESSE ( codeAdresse, rueAdresse, cp , ville, cheminée, fénêtre, souterrain ) COMMANDER ( noEnfant, noCadeau ) OBTENIR(noEnfant, noCadeau ) FOURNISSEUR ( noFsseur, nomFsseur, adrFsseur ) CADEAU ( noCadeau, nomCadeau, noFsseur ) Modèle Logique de données
2- Le modèle relationnel Une base de données relationnelle est constituée d’ un ensemble de tables aussi appelées relations liées entre elles. La table ou relation ENFANT: ENFANT ( noEnfant , nomEnfant, prénomEnfant, gentil, codeAdresse ) Clé primaire : noEnfant ; la connaissance de la valeur de la clé primaire permet de connaître la valeur des autres propriétés. Modèle Logique de données
Modèle Logique de données La clé étrangère ENFANT ( noEnfant , nomEnfant, prénomEnfant, gentil, codeAdresse ) Clé étrangère: codeAdresse Clé présente dans une table dont elle n’est pas la clé primaire, référence la clé primaire d’une autre table. Modèle Logique de données
Modèle Logique de données Deux types de tables Les tables statiques: aucune colonne n’est clé primaire d’une autre table pas de clé étrangère (exemples : tables ADRESSE, FOURNISSEUR) Les tables dynamiques: Il existe au moins une colonne qui est clé primaire d’une autre table Il existe au moins une clé étrangère (exemples : tables COMMANDER , OBTENIR , etc) Modèle Logique de données
Passage au MLD relationnel Règle 0 : traitement des entités Une entité est traduite par une table ( une relation ) de même nom dont les colonnes correspondent aux propriétés de l’entité . La clé primaire de cette table est l’identifiant de l’entité Modèle Logique de données
Passage au MLD relationnel Traitement des associations : Tenir compte des cardinalités maximales de chaque association : 1 et n Modèle Logique de données
Modèle Logique de données Passage au MLD Règle 1 : association binaire avec cardinalités maximales : 1 et n L’association n’est pas transformée en table . L’association est mémorisée par un nouveau champ dans la relation coté 1 L’identifiant de l’entité coté N devient clé étrangère dans la relation coté 1 Modèle Logique de données
Modèle Logique de données Exemple de la règle 1 but source PRODUIT ( REFPRODUIT , NOMPRODUIT, NOFOURNISSEUR) Modèle Logique de données
Modèle Logique de données Exemple de la règle 1 but source PRODUIT ( REFPRODUIT , NOMPRODUIT, NOFOURNISSEUR) CREATE TABLE PRODUIT ( REFPRODUIT VARCHAR(5) NOT NULL, NOMPRODUIT VARCHAR(60), NOFOURNISSEUR VARCHAR(5) NOT NULL) ALTER TABLE PRODUIT ADD CONSTRAINT FK_PRODUIT_FOURNISSEUR FOREIGN KEY NOFOURNISSEUR REFERENCES FOURNISSEUR (NOFOURNISSEUR); Modèle Logique de données
Modèle Logique de données Exemple de la règle 1 MCD MLD COMMANDES ( NoCommande , DateCommande, ALivrerAvant, NOMESSAGER) Modèle Logique de données
Modèle Logique de données Exemple de la règle 1 MCD COMMANDES ( NOCOMMANDE , DATECOMMANDE, ALIVRERAVANT, NOMESSAGER) NB : Le no de messager n’est pas obligatoirement renseigné dans COMMANDES CREATE TABLE COMMANDES ( … NOMESSAGER VARCHAR(5) NULL) Modèle Logique de données
Passage au MLD relationnel Traitement des associations : Tenir compte des cardinalités maximales de chaque association : 1 et 1 Modèle Logique de données
Modèle Logique de données Passage au MLD Règle 1 bis : association binaire avec cardinalités maximales : 1 et 1 On peut mémoriser l’association par un nouveau champ dans l’une ou l’autre des relations. La cardinalité 1,1 indique une obligation, il y a donc un test à faire on va mémoriser l’association coté 1,1 La cardinalité 1,1 est une contrainte plus forte que la cardinalité 0,1. Donc on applique Règle 1. Modèle Logique de données
Modèle Logique de données Exemple de la règle 1 bis MCD MLD Modèle Logique de données
Modèle Logique de données Règle 1 Pour chaque occurrence, 1 valeur à mémoriser une propriété (clé étrangère) suffit Modèle Logique de données
Passage au MLD relationnel Traitement des associations : Tenir compte des cardinalités maximales de chaque association : n et n Modèle Logique de données
Passage au MLD relationnel Règle 2 : association binaire avec cardinalités maximales : n et n, non porteuses de données: L’association est traduite en table avec pour clé primaire, la concaténation des identifiants des entités reliées par l’association. Cette table contient deux clés étrangères. Modèle Logique de données
Passage au MLD relationnel Exemple de la règle 2 : MCD MLD Modèle Logique de données
Modèle Logique de données Passage au MLD Règle 2 bis : association binaire avec cardinalités maximales : n et n porteuse de données: L’association est traduite en table avec pour clé primaire, la concaténation des identifiants des entités reliées. (Règle 2) Cette table contient deux clés étrangères et les propriétés portées par l’association. Modèle Logique de données
Exemple de la règle 2 : MLD MCD MLD Modèle Logique de données
Exemple de la règle 2 : MPD CREATE TABLE DETAILCOMMANDES (REFPRODUIT VARCHAR(5) NOT NULL, NOCOMMANDE INTEGER NOT NULL, QUANTITE INTEGER, REMISE INTEGER ); ALTER TABLE DETAILCOMMANDE ADD CONSTRAINT PK_DETAILCOMMANDE PRIMARY KEY (REFPRODUIT, NOCOMMANDE); ADD CONSTRAINT FK_DC_PRODUIT FOREIGN KEY (REFPRODUIT) REFERENCES PRODUITS(REFPRODUIT); ADD CONSTRAINT FK_DC_COMMANDE FOREIGN KEY (NOCOMMANDE) REFERENCES COMMANDES(NOCOMMANDE); MPD Modèle Logique de données
Modèle Logique de données Règle 2 Pour chaque occurrence, n valeurs à mémoriser 1 table supplémentaire avec pour clé primaire le couple d’identifiants des entités reliées Modèle Logique de données
Exemple Association ternaire MCD Modèle Logique de données
Modèle Logique de données Passage au MLD Règle 3 : une association ternaire et plus de cardinalités 0,n- 0,n – 0,n – L’association est traduite par une table ayant pour clé primaire : la concaténation des clés étrangères provenant des entités participant à l’association. Modèle Logique de données
Modèle Logique de données Exemple de la règle 3 MLD MCD Modèle Logique de données
Passage au schéma physique On convient de ne pas créer les tables comportant comme unique propriété son identifiant. Exemple : la table DATE ……….. Et qui voudrait la remplir à chaque réveillon ? Modèle Logique de données
Modèle Logique de données SYNTHESE Prendre connaissance schéma de synthèse Filmer synthèse Modèle Logique de données
Modèle Logique de données Rétro conception Quelles sont les règles inverses pour passer d’un schéma relationnel à un schéma conceptuel ? Modèle Logique de données
Du MLD au Modèle Physique Si le modèle physique de données est conforme au modèle logique relationnel, on est sûr de ne pas avoir de soucis de redondance d’informations. Les traitements en seront simplifiés. On garde cette garantie en STS1 Le modèle physique de données peut être dénormalisé (dans les règles !!) s’il est nécessaire d’optimiser certains traitements. Modèle Logique de données