Données redondantes (1)



Documents pareils
Conception d une base de données

Exemple accessible via une interface Web. Bases de données et systèmes de gestion de bases de données. Généralités. Définitions

Concevoir un modèle de données Gestion des clients et des visites

CONCEPTION Support de cours n 3 DE BASES DE DONNEES

MERISE. Modélisation de Systèmes d Information. Pierre Gérard. DUT Informatique 2ème année 2004/2005. IUT de Villetaneuse - Université de Paris 13

Conception des bases de données : Modèle Entité-Association

LE MODELE CONCEPTUEL DE DONNEES

Modélisation des données

Bases de données relationnelles

Cours Base de données relationnelles. M. Boughanem, IUP STRI

Dossier I Découverte de Base d Open Office

Formation à l utilisation des Systèmes de Gestion de Bases de Données Relationnelles. organisée avec la collaboration du

Réalisation d une première base de données (Tutoriel - version 4.2 ; 19 septembre 2014)

Chapitre 5 LE MODELE ENTITE - ASSOCIATION

Modèle conceptuel : diagramme entité-association

Créer une base de données

Méthode d analyse Merise

Rappel sur les bases de données

MERISE. Modélisation et Conception de Systèmes d Information

Gestion des bases de données (2 e partie)

Utiliser une base de données

Access et Org.Base : mêmes objectifs? Description du thème : Création de grilles d écran pour une école de conduite.

Chapitre 1 Généralités sur les bases de données

Créer le schéma relationnel d une base de données ACCESS

Les bases de données Page 1 / 8

Modèle Entité/Association

UML et les Bases de Données

DEVAKI NEXTOBJET PRESENTATION. Devaki Nextobjects est un projet sous license GNU/Public.

Le modèle de données

Tickets 3:3. ChevauxPartants

Les bases de données

Information utiles. webpage : Google+ : digiusto/

clef primaire ; clef étrangère ; projection ; restriction ; jointure ; SQL ; SELECT ; FROM ; WHERE

Introduction aux Bases de Données

A. Définition et formalisme

Bases de Données. Plan

Bases de données. Chapitre 1. Introduction

Base de Données et Langage SQL

Bases de données élémentaires Maude Manouvrier

Introduction au Système de Gestion de Base de Données et aux Base de Données

Modèle Entité-Association. C est un modèle important pour la conception des bases de données relationnelles. Il

16H Cours / 18H TD / 20H TP

Bases de Données. Le cas des BD relationnelles ouverture sur les BD relationnelles spatiales Séance 2 : Mise en oeuvre

A QUOI SERVENT LES BASES DE DONNÉES?

INITIATION AUX BASES DE DONNEES MODELISATION et LANGAGE SQL

1 Introduction et installation

Bases de Données Avancées

Comprendre Merise et la modélisation des données

Le langage SQL Rappels

Bases de Données Relationnelles. Le Modèle Relationnel

TD n 10 : Ma première Base de Données

SUPPORT DE COURS ACCESS 2010

Les différents types de relation entre les tables

Cours 6. Sécurisation d un SGBD. DBA - M1ASR - Université Evry 1

et les Systèmes Multidimensionnels

II. Modèle conceptuel le modèle entité-association

Faculté des sciences de gestion et sciences économiques BASE DE DONNEES

Modélisation de bases de données : Le modèle relationnel

Chap. 3: Le modèle de données entité-association (E.A.)

Bases de données relationnelles & SQL

UNIVERSITE DE CONSTANTINE 1 FACULTE DES SIENCES DE LA TECHNOLOGIE DEPARTEMENT D ELECTRONIQUE 3 ème année LMD ELECTRONIQUE MEDICALE

Construction d un EDD avec SQL 2008 R2. D. Ploix - M2 Miage - EDD - Création

Langage SQL (1) 4 septembre IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes

Module BDR Master d Informatique (SAR)

1. Qu'est-ce que SQL? La maintenance des bases de données Les manipulations des bases de données... 5

Systèmes d information et bases de données (niveau 1)

Débuter avec OOo Base

1. LA GESTION DES BASES DE DONNEES RELATIONNELLES

Présentation du module Base de données spatio-temporelles

SOFI Gestion+ Version 5.4. Echanges de données informatiques Spicers Sofi gestion+ Groupements. SOFI Informatique. Actualisé le

I4 : Bases de Données

Importation des données dans Open Office Base

TP base de données SQLite. 1 Différents choix possibles et choix de SQLite : 2 Définir une base de donnée avec SQLite Manager

Base est le module pour les bases

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

RÈGLES DE TRANSFORMATION DU MCD AU MLD (MRD)

Entrepôt de données 1. Introduction

Cours 1 : introduction

SOMMAIRE. Travailler avec les requêtes... 3

«L espace SpidWeb» Gestion administrative

Introduction aux Systèmes de Gestion de Bases de Données Relationnelles. Olivier Losson

MODE OPERATOIRE OPENOFFICE BASE

Mercredi 15 Janvier 2014

A QUOI SERVENT LES BASES DE DONNÉES?

Access 2010 Entraînement 1 Garage Renault Dossier 24 MCD

1. Introduction Création d'une requête...2

Nom de l application

SGBDR. Systèmes de Gestion de Bases de Données (Relationnelles)

Chapitre 3 LE MODELE RELATIONNEL ET SQL (DDL)

Chapitre 07 Le modèle relationnel des données

DOSSIER D'ACTIVITES SUR LE PHP N 03 Créer une base de données MySQL avec PHPMyAdmin

BADPLUS V5 MANUEL D'UTILISATION. Imports de données joueurs à partir de la base fédérale en ligne Poona. Stéphan KIEFFER - Dominique BOSSERT

Introduction aux SGBDR et en particulier à

PHP 5. La base de données MySql. A. Belaïd 1

Manuel d utilisateur 1

Cours d'informatique

GUIDE DE DEMARRAGE V1.02

Conception, architecture et urbanisation des systèmes d information

Utiliser Access ou Excel pour gérer vos données

Vtiger CRM - Prestashop Connector

Transcription:

Données redondantes (1) Exemple : les tournois de tennis BD relationnelles avec Access Licence IDEA 1 ère année NomJoueur PaysJoueur ScoreJoueur Tournoi PaysTournoi DateTournoi Coef Roddick Etats-Unis 5 RolandGarros France 10/06/2000 10 Ginepri Etats-Unis 7 RolandGarros France 10/06/2000 10 Ginepri Etats-Unis 5 Wimbledon GB 05/07/2000 9 Ginepri Etats-Unis 2 Open de Lyon France 01/09/2000 4 Gasquet France 8 RolandGarros France 10/06/2000 10 Julien Velcin http://eric.univ-lyon2.fr/~jvelcin/ Gasquet France 6 Wimbledon GB 05/07/2000 9 Gasquet France 7 Open de Lyon France 01/09/2000 4 Monfils France 5 Wimbledon GB 05/07/2000 9 Monfils France 5 RolandGarros France 10/06/2000 10 Woodford Australie 7 OpenAustralie Australie 15/10/2000 9 Note : les données de ce tableau (partiel) sont en grande partie fictives! Données redondantes (2) Décomposition en 2 tables (1) Table initiale 1 code : RG ou RoGa ou 1 ou Table 1a : JeuSimple NomJoueur PaysJoueur ScoreJoueur Tournoi PaysTournoi DateTournoi Coef Roddick Etats-Unis 5 RolandGarros France 10/06/2000 10 Ginepri Etats-Unis 7 RolandGarros France 10/06/2000 10 Ginepri Etats-Unis 5 Wimbledon GB 05/07/2000 9 Ginepri Etats-Unis 2 Open de Lyon France 01/09/2000 4 Gasquet France 8 RolandGarros France 10/06/2000 10 Gasquet France 6 Wimbledon GB 05/07/2000 9 Gasquet France 7 Open de Lyon France 01/09/2000 4 Monfils France 5 Wimbledon GB 05/07/2000 9 Monfils France 5 RolandGarros France 10/06/2000 10 Woodford Australie 7 OpenAustralie Australie 15/10/2000 9 NomJoueur PaysJoueur ScoreJoueur NumTournoi Roddick Etats-Unis 5 1 Ginepri Etats-Unis 7 1 Ginepri Etats-Unis 5 2 Ginepri Etats-Unis 2 22 Gasquet France 8 1 Gasquet France 6 2 Gasquet France 7 22 Monfils France 5 2 Monfils France 5 1 Woodford Australie 7 11 Correspondances : 1 : Roland Garros 2 : Wimbledon 22 : Open de Lyon 11 : Open d Australie 1

Décomposition en 2 tables (2) Décomposition en 2 tables (3) NumTournoi Tournoi PaysTournoi DateTournoi Coef 1 RolandGarros France 10/06/2000 10 1 RolandGarros France 10/06/2000 10 Table 2 : Tournoi Table 1a 2 Wimbledon GB 05/07/2000 9 22 Open de Lyon France 01/09/2000 4 Table 1a NumTournoi Tournoi PaysTournoi DateTournoi Coef 1 RolandGarros France 10/06/2000 10 1 RolandGarros France 10/06/2000 10 2 Wimbledon GB 05/07/2000 9 2 Wimbledon GB 05/07/2000 9 22 Open de Lyon France 01/09/2000 4 22 Open de Lyon France 01/09/2000 4 11 OpenAustralie Australie 15/10/2000 9 2 Wimbledon GB 05/07/2000 9 1 RolandGarros France 10/06/2000 10 11 OpenAustralie Australie 15/10/2000 9 Décomposition en 2 tables (4) NomJoueur PaysJoueur ScoreJoueur NumTournoi Roddick Etats-Unis 5 1 Ginepri Etats-Unis 7 1 Ginepri Etats-Unis 5 2 Ginepri Etats-Unis 2 22 Gasquet France 8 1 Gasquet France 6 2 Gasquet France 7 22 Monfils France 5 2 Monfils France 5 1 Woodford Australie 7 11 Table 1a : JeuSimple Table 2 : Tournoi NumTournoi Tournoi PaysTournoi DateTournoi Coef 1 RolandGarros France 10/06/2000 10 Bases de données relationnelles Naissance des SGBDR à la fin des années 60 [E. F. Codd, 1970]. Les données sont stockées dans des tables qui sont mises en relation. Une table elle-même est une relation entre les différents champs qui la composent. Ce système facilite la combinaison du contenu de plusieurs tables (opération de jointure). 2 Wimbledon GB 05/07/2000 9 22 Open de Lyon France 01/09/2000 4 11 OpenAustralie Australie 15/10/2000 9 2

Clefs et intégrité référentielle NomJoueur PaysJoueur ScoreJoueur NumTournoi Roddick Etats-Unis 5 1 Ginepri Etats-Unis 7 1 Ginepri Etats-Unis 5 2 Ginepri Etats-Unis 2 22 Gasquet France 8 1 Gasquet France 6 2 Gasquet France 7 22 Monfils France 5 2 Monfils France 5 1 Woodford Australie 7 11 Clef primaire Table 1a : JeuSimple Clef étrangère Table 2 : Tournoi NumTournoi Tournoi PaysTournoi DateTournoi Coef 1 RolandGarros France 10/06/2000 10 2 Wimbledon GB 05/07/2000 9 22 Open de Lyon France 01/09/2000 4 11 OpenAustralie Australie 15/10/2000 9 Suite de l exemple (1) Table 1a : JeuSimple NomJoueur PaysJoueur ScoreJoueur NumTournoi Roddick Etats-Unis 5 1 Ginepri Etats-Unis 7 1 Ginepri Etats-Unis 5 2 Ginepri Etats-Unis 2 22 Gasquet France 8 1 Gasquet France 6 2 Gasquet France 7 22 Monfils France 5 2 Monfils France 5 1 Woodford Australie 7 11 encore de la redondance! Suite de l exemple (2) Suite de l exemple (3) Table 1 : JeuSimple NumJoueur ScoreJoueur NumTournoi 10 5 1 20 7 1 20 5 2 20 2 22 30 8 1 30 6 2 30 7 22 40 5 2 40 5 1 50 7 11 Correspondances : 10 : Roddick 20 : Ginepri 30 : Gasquet 40 : Monfils 50 : Woodford Table 1 Table 2 NumJoueur NomJoueur PaysJoueur 10 Roddick Etats-Unis 20 Ginepri Etats-Unis 20 Ginepri Etats-Unis 20 Ginepri Etats-Unis 30 Gasquet France 30 Gasquet France 30 Gasquet France 40 Monfils France 40 Monfils France 50 Woodford Australie 3

Suite de l exemple (4) NumTournoi Tournoi PaysTournoi DateTournoi Coef 1 RolandGarros France 10/06/2000 10 2 Wimbledon GB 05/07/2000 9 22 Open de Lyon France 01/09/2000 4 11 OpenAustralie Australie 15/10/2000 9 Table 1 Table 2 Table 3 : Joueur NumJoueur NomJoueur PaysJoueur 10 Roddick Etats-Unis 20 Ginepri Etats-Unis Table 2 : Tournoi BD des tournois Table 1 : JeuSimple NumJoueur ScoreJoueur NumTournoi 10 5 1 30 Gasquet France 20 7 1 40 Monfils France 50 Woodford Australie Table 3 : Joueur 20 5 2 20 2 22 NumJoueur NomJoueur PaysJoueur 30 8 1 10 Roddick Etats-Unis 30 6 2 20 Ginepri Etats-Unis 30 7 22 30 Gasquet France 40 5 2 40 Monfils France 40 5 1 50 Woodford Australie 50 7 11 Attention Structure de notre BD Il ne faut pas confondre : Table Tournoi Nom du champs Type de données NumTournoi Numérique Numéro du tournoi La structure des données Le contenu = les données Nom Pays Texte Texte Date Date/Heure Date de début du tournoi Coef Numérique Coefficient du tournoi Nom du Type de données champ Num Numérique Numéro du patient Num Civilité Nom Prénom CP Date NbE Rem 1 M El chakik Marouan 69007 0 2 Gouate Marion 69005 1 Table Joueur Nom du champs Type de données NumJoueur Numérique Numéro du joueur Nom Texte Civilité Texte Pays Texte Nom Texte Prénom Texte CP Texte Code postal Table JeuSimpe Nom du champs Type de données NumJoueur Numérique Clef étrangère Date Date/Heure NumTournoi Numérique Clef étrangère NbE Numérique Nombre d enfants Score Numérique Score obtenu Rem Mémo Remarques 4

Schéma relationnel de la BD Pourquoi des modèles? TOURNOI NumTournoi 1 n JEU_SIMPLE NumTournoi Lorsqu'on manipule de nombreuses données, il est nécessaire d'en faire un schéma. Nom NumJoueur Pays Date Coef n Score Ce schéma doit être parfois indépendant des logiciels utilisés ou permettre de prendre en compte les spécificités d'un SGBD. 1 JOUEUR NumJoueur Nom Pays D'où le besoin d'avoir différents modèles pour représenter les données! Etapes de modélisation Modèle Conceptuel des Données MCD MLD Pour construire le MCD, il est possible d avoir recours au modèle entités-associations [P. Chen, 1976] ou ER : une entité est une population d individus homogènes, une association (relation) est une liaison qui a une signification précise entre deux entités. MPD Clients Articles Boutiques 5

Notion d entité (1) Entité Notion d entité (2) Une entité est un regroupement d informations et possède des attributs (caractéristiques ou champs). Par exemple, l entité «être humain» regroupe les informations suivantes : Nom Sexe Date de naissance Lieu de naissance L adresse d un individu doit-elle être considérée comme un attribut de cette entité? L adresse possède des caractéristiques qui lui sont propres et qui ne dépendent pas des individus qui y vivent : numéro, nom de rue, CP, ville, superficie, nombre d étages, Ainsi, il semble plus intéressant de considérer l adresse comme une entité propre. Chaque entité va donner naissance à une table dans le modèle entités-associations. Notion d association Association Association Les associations sont les liaisons logiques entre les entités («possède», «achète», «réside», «appartient à», ). Les associations se représentent dans une ellipse reliée aux entités qu elles lient logiquement : ou Nom Un exemple Prénom Age Amis 0-n prêt 0-n 0-n Date possède DVD Titre CLIENTS - âge acheter ARTICLES - type - prix - couleur fournir BOUTIQUES - type - capital Nom 1-1 Animaux Espèce Race 6

Dictionnaire des données Contient toutes les données nécessaires à la construction du MCD A réaliser en amont pour définir clairement les entités et les associations N donnée Code données Description Type et longueur Observations 1 numclient Numéro du client Numérique Identifiant 2 nomclient Nom du client Alphanumérique 3 datenaissclient Date de naissance du client Date 4 numfournisseur Numéro du fournisseur Numérique Identifiant Attention à bien vérifier Les intitulés de mes données sont-ils suffisamment précis? Eviter absolument les données qui portent le même nom! N y a-t-il pas deux données synonymes? Une donnée ne peut-elle être calculée à partir d une autre donnée? Dépendances entre les données Définit la matrice des dépendances cible fonctionnelles N Code données 1 2 3 1 numclient 1 1 2 nomclient 0 0 source 3 datenaissclient 0 0 Graphe de Dépendances Fonctionnelles (GDF) Représentation graphique des dépendances fonctionnelles Exemple : Relations entre une source et une cible Exemple : le nom d un client peut être retrouvé à l aide de son identifiant NomClient = f(numclient) 7

Attributs et identifiants Un attribut est une propriété d une entité ou d une association : CLIENTS - numclient acheter - quantité - livraison TYPE_ARTICLES - numtypearticle - prix unitaire fournir - quantité BOUTIQUES - numboutique - type Cardinalité Les cardinalités permettent de dénombrer les éléments d arrivée en relation avec un élément de l entité de départ, et vice versa. En utilisant une illustration de type ensembliste : acheter L identifiant est un attribut choisi pour chaque entité qui le désigne de manière unique. Par convention, cet identifiant est souligné. Clients Types d articles Relation n:m (1) La cardinalité d un lien entre une entité et une association précise le minimum et le maximum de fois qu un individu de l entité peut être concerné par l association. Dans notre exemple, un client a acheté au moins 1 type d article et peut même en avoir acheté plusieurs : CLIENTS - numclient acheter - quantité - livraison n:m TYPE_ARTICLES - numtypearticle - prix unitaire Relation n:m (2) Une cardinalité minimale de 1 doit se justifier par le fait que les individus de l entité en question ont besoin de l association pour exister. Dans tous les autres cas, la cardinalité minimale vaut 0. Une cardinalité maximale de n signifie qu un individu de l entité peut être associé à plusieurs autres individus de l entité liée. 8

Relation 1:n Diverses associations Dans notre exemple, un type d articles peut être acheté par plusieurs clients. Si on remplace l entité TYPE_ARTICLE par une entité ARTICLE, il faut recourir à une relation de type 0-1 : CLIENTS - numclient acheter - quantité 0,1 - livraison 1:n ARTICLES - numarticle Associations plurielles : PERSONNES - numpersonne Associations réflexives : EMPLOYES - numemployé - fonction posséder - prix achat 1,1 0,1 résider - loyer diriger 0,1 LOGEMENTS - numlogement Associations non binaires (1) L association «projeter» est ternaire : CRENEAUX SALLES - numcréneau projeter - numsalle - tarif - capacité - heure de début FILMS - numfilm - titre - durée Associations non binaires (2) CRENEAUX SALLES - numcréneau projeter - numsalle - tarif - capacité - heure de début FILMS - numfilm - titre - durée Créneaux numcréneau date Heure 1 15/01/08 18h 2 15/01/08 20h30 3 15/01/08 23h 4 16/01/08 18h numfilm titre durée Projeter tarif numcréneau numsalle numfilm 6,2 1 10 3 6,5 1 12 3 6,2 2 10 4 6,2 8 10 8 6,2 9 12 4 8,5 9 12 4 Films Salles numsalle capacité 10 100 1 Le seigneurs des badauds 280min 2 Coup de foudre à Grange Blanche 120min 3 Le retour des tomates tueuses 95min 11 250 12 250 13 80 9

Règles de normalisation But : Modèle Physique des Données (MPD) Normalisation nécessaire pour faciliter le passage du MCD au MPD (en passant par le MLD). Ex. : toute entité doit être représentée par une table. Normalisation des entités Toutes les entités qui sont remplaçables par une association doivent être remplacées : CRENEAUX - numcréneau - heure de début - numfilm - titre - durée FILMS PROJECTIONS avoir lieu 1,1 - numprojection pendant - tarif 1,1 1,1 concerner avoir lieu dans SALLES - numsalle - capacité CRENEAUX - numcréneau - heure de début projeter - tarif - numfilm - titre - durée FILMS SALLES - numsalle - capacité Normalisation des noms Le nom d une entité, d une association ou d un attribut doit être unique. Conseils : pour les entités, utiliser un nom commun au pluriel (ex. : clients), pour les associations, utiliser un verbe à l infinitif, éventuellement à la forme passive et accompagné d un adverbe (ex. : avoir lieu dans, pendant, à ), pour les attributs, utiliser un nom commun singulier, éventuellement accompagné de l entité ou de l association dans laquelle il se trouve. Normalisation des identifiants Chaque entité doit posséder un identifiant. Conseils : éviter un identifiant composé de plusieurs attributs, préférer un identifiant court pour rendre la recherche plus rapide, éviter les chaînes de caractères comme les plaques d immatriculation ou les numéros de sécu, éviter les identifiants susceptibles de changer au cours du temps L identifiant ER doit être un entier, de préférence incrémenté automatiquement. 10

Normalisation des attributs (1) Remplacer les attributs en plusieurs exemplaires en une association supplémentaire de cardinalité maximale n : Normalisation des attributs (2) Les attributs d une association doivent dépendre directement des identifiants de toutes les entités en association : EMPLOYES - numemployé principale secondaire EMPLOYES - numemployé ADRESSES occuper - numadresse FOURNISSEURS - numfournisseur - téléphone LIVRAISONS livrer 1,1 - numlivraison Livreur Livraison Ne pas ajouter d attribut calculable à partir d autres attributs (ex. : âge). FOURNISSEURS - numfournisseur - téléphone LIVRAISONS livrer 1,1 - numlivraison Livraison Livreur Normalisation des associations (1) Normalisation des associations (2) Il faut éliminer les associations «fantômes» : FOURNISSEURS - numfournisseur travailler chez CONTACTS - numcontact - téléphone 1,1 1,1 FOURNISSEURS - numfournisseur - téléphone JOUEURS_TENNIS - numjoueur - classement joueur1 joueur2 1,1 1,1 MATCHS_TENNIS - nummatch JOUEURS_TENNIS - numjoueur - classement jouer MATCHS_TENNIS - numcontact 11

Normalisation des cardinalités Une cardinalité minimale est toujours 0 ou 1 (et pas 2, 3 ou n) et une cardinalité maximale est toujours 1 ou n. Formes normales (1) Première forme normale (1NF) : à un instant donné dans une entité, pour un individu, un attribut ne peut prendre qu une valeur et non pas un ensemble ou une liste de valeurs. LIVRES - numlivre - titre - auteur - éditeur LIVRES - numlivre - titre - éditeur écrire AUTEURS - numauteur Formes normales (2) Deuxième forme normale (2NF) : l identifiant peut être composé de plusieurs attributs mais les autres attributs de l entité doivent dépendre de l identifiant en entier. Formes normales (3) Troisième forme normale de Boyce-Codd (3BCNF) : tous les attributs d une entité doivent dépendre directement de son identifiant et d aucun autre attribut. AVIONS - numavion - constructeur - modèle - capacité - propriétaire AVIONS - numavion - propriétaire être du MODELES - nummodèle - modèle - constructeur - capacité 12

Etapes de modélisation MLD MCD Exemple MPD Modèle Logique des Données Tables, lignes et colonnes : Numéro client Nom Prénom Adresse 1 Dupont Michel 127 rue de 2 Al Fayed Karim 2bis avenue de 3 Coraz Mélanie 22 rue du Clef primaire, clefs étrangères : la clef primaire est associée à (au moins) une colonne ; elle est unique pour chaque ligne, une clef étrangère fait référence à une colonne sans doublon d une autre table de la base de données. Clef étrangère Une colonne est considérée comme une clef étrangère lorsqu elle ne peut contenir que des valeurs d une colonne (sans doublons) d une autre table. Par convention, on souligne les clefs primaires et on fait précéder les clefs étrangères d un dièse # dans la description des colonnes d une table : Ex. : clients(numclient, nom, prénom, adresse) commandes(numcommande, date, #numclient (non vide)) 13

Remarques Une même table peut avoir plusieurs clefs étrangères et une seul clef primaire. Une colonne clef étrangère peut aussi être primaire. Une clef étrangère peut être composée. Chaque colonne qui compose une clef primaire ne peut pas recevoir la valeur nulle. Si une colonne clef étrangère ne doit pas recevoir la valeur vide, alors il faut le préciser dans la description des colonnes. Traduction du MCD en MLD (1) Règle 1 : Toute entité devient une table dans laquelle les attributs deviennent des colonnes. L identifiant de l entité constitue alors la clef primaire de la table. CLIENTS - numclient Client(numClient, nom, prénom, adresse ) Traduction du MCD en MLD (2) Règle 2 : une association binaire de type 1:n disparaît, au profit d une clef étrangère dans la table côté 0,1 ou 1,1 qui référence la clef primaire de l autre table. Cette clef étrangère ne peut pas recevoir la valeur vide si la cardinalité est 1,1. Note : Il ne devrait pas y avoir d attribut dans une telle association, mais s il en reste alors ils glissent vers la table avec la clef étrangère (côté 1). Traduction d une association 1:n FOURNISSEURS - numfournisseur Contact - numtéléphone FOURNISSEURS - numfournisseur Contact - numtéléphone livrer 1,1 LIVRAISONS - numlivraison Livreur LIVRAISONS - numlivraison Livreur - #numfournisseur (non vide) fournisseur(numfournisseur, nomcontact, numtelephone) livraisons(numlivraison, date, nomlivreur, #numfournisseur (non vide)) 14

Traduction du MCD en MLD (3) Traduction d une association 1:1 Règle 3 : une association binaire de type 1:1 est traduite comme une association binaire de type 1:n, sauf que la clef étrangère se voit imposer une contrainte d unicité en plus d une éventuelle contrainte de non vacuité. CLIENTS - numclient Naissance CLIENTS - numclient Naissance 1,1 livrer APPARTEMENT - numappartement 0,1 - codepostal - ville APPARTEMENT - numappartement - #numclient (unique, non vide) - codepostal - ville clients(numclient, nom, prénom, datenaissance ) appartements(numappartement, #numclient (unique, non vide), adresse, codepostal, ville ) Traduction du MCD en MLD (4) Traduction d une association n:m Règle 4 : une association binaire de type n:m devient une table supplémentaire dont la clef primaire est composée de deux clefs étrangères. Les attributs de l association deviennent des colonnes de cette nouvelle table. CLIENTS - numclient CLIENTS - numclient acheter - quantité - livraison TYPE_ARTICLES - numtypearticle - prix unitaire COMMANDES TYPE_ARTICLES - #numclient - #numtypearticle - numtypearticle - quantité - livraison - prix unitaire commandes(#numclient, #numtypearticle, quantité, livraison ) 15

Traduction du MCD en MLD (5) Règle 5 : une association non binaire est traduite par une table supplémentaire dont la clef primaire est composée d autant de clefs étrangères que d entités en association. Les attributs de l association deviennent des colonnes de cette nouvelle table. Traduction d une association non binaire CRENEAUX - numcréneau - heure de début projeter - tarif - numfilm - titre - durée FILMS SALLES - numsalle - capacité CRENEAUX - numcréneau - heure de début PROJECTIONS - #numsalle - #numcréneau - #numfilm - tarif - numfilm - titre - durée FILMS SALLES - numsalle - capacité projections(#numsalle, #numcréneau, #numfilm, tarif) Etapes de modélisation Modèle Physique des Données MCD MLD MPD Il s agit de l implémentation particulière du MLD par un logiciel (ex. : Access). Le MPD précise notamment le stockage de chaque donnée à travers son type et sa taille. Cette traduction est également l occasion d un certain nombre de libertés prises par rapport aux règles de normalisation afin d optimiser les performances du SI. 16

Implémentation du modèle relationnel sous Access (1) Les boutons permettent de basculer entre deux vues : vue des tables seules (fenêtre base de données) : vue de l ensemble des tables et relations (Relation) : Implémentation du modèle relationnel sous Access (2) Chaque relation devient une nouvelle table Chaque attribut de la relation devient un champ Implémentation du modèle relationnel sous Access (3) Les clefs primaires : sélectionner le champ puis cliquer sur la clé (dans les boutons) Ou clic droit > clef primaire Le champ est alors marqué comme clef Implémentation du modèle relationnel sous Access (4) Les clefs étrangères : se mettre en mode relation faire glisser le champ qui est clé primaire vers la table où il est clé étrangère puis choisir l intégrité référentielle 17

Implémentation du modèle relationnel sous Access (5) L intégrité référentielle : permet de conserver la cohérence de la base par exemple, si je supprime un ami, il n est pas utile que je garde ses animaux, donc il faudra les supprimer aussi. Exemple L intégrité référentielle permet donc : de supprimer les enregistrements liés de mettre à jour «en cascade» les enregistrements liés 18