Introduction au bases de données Partie - Modélisation de données 2 / 44



Documents pareils
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

Chapitre 5 LE MODELE ENTITE - ASSOCIATION

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

Rappel sur les bases de données

LE MODELE CONCEPTUEL DE DONNEES

Patrice BOURSIER. Professeur, Univ. de La Rochelle. Bases de Données. Notes de cours

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

Modélisation des données

Bases de Données. Plan

Bases de données relationnelles

1 Introduction et installation

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

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

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

COURS de BASES de DONNEES

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

Base de Données et Langage SQL

1 Modélisation d une base de données pour une société de bourse

Bases de Données Avancées

Introduction aux Bases de Données

Introduction aux bases de données. Généralités sur les bases de données. Fonctions d'un SGBD. Définitions. Indépendance par rapport aux traitements

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

Modèle Entité/Association

Conception d une base de données

Dossier I Découverte de Base d Open Office

Méthode d analyse Merise

Le langage SQL Rappels

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

Information utiles. webpage : Google+ : digiusto/

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

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

Modèle conceptuel : diagramme entité-association

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

16H Cours / 18H TD / 20H TP

A. Définition et formalisme

Langage SQL : créer et interroger une base

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

Les bases de données

Entrepôt de données 1. Introduction

DESS CCI Formation Continue. Février Université Louis-Pasteur de Strasbourg Département d'informatique

INF 1250 INTRODUCTION AUX BASES DE DONNÉES. Guide d étude

CONCEPTION Support de cours n 3 DE BASES DE DONNEES

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

Bases de données. Chapitre 1. Introduction

Chapitre 07 Le modèle relationnel des données

... /5. Bases de Données I (J. Wijsen) 23 janvier 2009 NOM + PRENOM : Orientation + Année : Cet examen contient 11 questions.

Concevoir une base de données

INITIATION AUX BASES DE DONNEES MODELISATION et LANGAGE SQL

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

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

Bases de données relationnelles & SQL

Comprendre Merise et la modélisation des données

I4 : Bases de Données

FONDEMENTS MATHÉMATIQUES 12 E ANNÉE. Mathématiques financières

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

Vincent Augusto

Bases de données cours 4 Construction de requêtes en SQL. Catalin Dima

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

3. SPÉCIFICATIONS DU LOGICIEL. de l'expression des besoins à la conception. Spécifications fonctionnelles Analyse fonctionnelle et méthodes

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

Bases de données avancées Introduction

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

INTRODUCTION AU DATA MINING

GUIDE PRATIQUE MODÈLE CONCEPTUEL DES DONNÉES MODÈLE LOGIQUE DES DONNÉES STANDARD MODÈLE LOGIQUE DES DONNÉES OPTIMISÉ

UNE EXPERIENCE, EN COURS PREPARATOIRE, POUR FAIRE ORGANISER DE L INFORMATION EN TABLEAU

A QUOI SERVENT LES BASES DE DONNÉES?

Bases de données. Yamine AIT AMEUR. INPT-ENSEEIHT DIMA 2 Rue Charles Camichel Toulouse Cedex 7

INSTITUT NATIONAL DES TELECOMMUNICATIONS CONTROLE DES CONNAISSANCES. 2. Les questions sont indépendantes les unes des autres.

Le modèle de données

1. LA GESTION DES BASES DE DONNEES RELATIONNELLES

1ère partie Nadine Cullot. Bases de données déductives. Bases de données déductives Introduction et Motivation

CHAPITRE 1. Introduction aux bases de données

Cours SGBD 1. Concepts et langages des Bases de Données Relationnelles

Mejdi BLAGHGI & Anis ASSÈS

IT203 : Systèmes de gestion de bases de données. A. Zemmari zemmari@labri.fr

Cours de Probabilités et de Statistique

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

Modélisation conceptuelle des données Responsable: Dominique Schneuwly, Regis Caloz

UML et les Bases de Données

Nom de l application

Université de Bangui. Modélisons en UML

COURS 470 Série 04. Comptabilité Générale

Bases de données Cours 5 : Base de données déductives

Modéliser des données, l exemple du modèle entité-association

Sciences de Gestion Spécialité : SYSTÈMES D INFORMATION DE GESTION

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

Cours de bases de données. Philippe Rigaux

Merise. Introduction

BASES DE DONNÉES CONCEPTS ET PROGRAMMATION. Antoine Cornuéjols. AgroParisTech, Spécialité Informatique ( ) Version du 19 octobre 2009

Plan. Introduction Eléments de la théorie des systèmes d'informations Les entrepôts de données (Datawarehouse) Les datamart Architecture Modélisation

Chapitre 3 LE MODELE RELATIONNEL ET SQL (DDL)

Bases de données élémentaires Maude Manouvrier

INTRODUCTION À L ANALYSE FACTORIELLE DES CORRESPONDANCES

Introduction aux Bases de Données

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

.../5. Gestion de Bases de Données (J. Wijsen) 27 janvier 2011 NOM + PRENOM : Orientation + Année : Cet examen contient 8 questions. Durée : 2 heures.

COMMUNICATEUR BLISS COMMANDE PAR UN SENSEUR DE POSITION DE L'OEIL

Schéma relationnel et contraintes d intégrité : le cas ConduiteAuto

Bases de données. PTSI Lycée Eiffel. 28 février 2014

Algorithme. Table des matières

Transcription:

M1104 - Introduction au bases de données Partie - Modélisation de données Analyse et Conception des Systèmes d Information Le modèle relationnel de Codd J. Christian Attiogbé Septembre 2008, maj 11/2009, 11/2010 Introduction au bases de données Partie - Modélisation de données 1 / 44 Plan du chapitre Plan de ce cours 1 Introduction Méthodologie Notions de base du modèle relationnel Exemples de modèles Opérations sur les relations Transformation des modèles EAP en modèles de CODD Introduction au bases de données Partie - Modélisation de données 2 / 44

Introduction Modèle relationnel de Edgar Codd (Prix Turing, 1981) Modèle de données relationnel Basé sur l algèbre relationnelle Fondements mathématiques: théorie des ensembles Modèle très utilisé pour la mise en œuvre des systèmes d information : la construction des bases de données (relationnelles) (dans ce cours nous nous limiterons à la partie modélisation et n allons pas aborder les bases de données qui font l objet d un autre cours) Introduction au bases de données Partie - Modélisation de données 3 / 44 Introduction Du modèle EA au modèle relationnel Modèle relationnel (n-aire) : introduit par Codd pour modéliser et construire les bases de données. Les entités de base sont des ensembles, Des relations lient les ensembles Codd représente une relation par une table dont les colonnes sont nommées. Passage du modèle EAP au modèle de Codd : Modèle Entité-Association Entité Association Propriété Identifiant Modèle relationnel Entité Relation ou Table Attribut Clé il y a une méthode pour la transformation (à voir plus tard) Introduction au bases de données Partie - Modélisation de données 4 / 44

Processus de modélisation Méthodologie Introduction au bases de données Partie - Modélisation de données 5 / 44 Notions de base Notions de base du modèle relationnel Domaines : ensemble de valeurs Attribut : donne une valeur (ou propriété), c est une fonction dans un domaine de valeurs. Relation entre domaines : sous-ensemble du produit cartérien entre les domaines des attributs Exemple : Une relation Etudiant(Nom, Prenom, ddn, seriebac, datebac) NOM PRENOM DDN SERIEBAC DATEBAC Notez qu on a fait le produit sur les domaines (avec leurs noms introduits en majuscule, mais il faut les définir!) Introduction au bases de données Partie - Modélisation de données 6 / 44

Notions de base du modèle relationnel Notions de base : table Pratiquement, une relation est représentée par une table Nom Prénom ddn seriebac datebac Abraca Dabra 03071988 S 2006 les colonnes de la table représentent les attributs. Les lignes correspondent aux éléments (n-uplets) de la relation ; Elles sont appelées aussi occurrences de la relation. (Abraca, Dabra, 03071988, S, 2006) On parle de schéma relationnel ou table relationnelle Introduction au bases de données Partie - Modélisation de données 7 / 44 Notions de base du modèle relationnel Notions de base : table les colonnes de la table peuvent occuper n importe quelle position Nom Prénom ddn seriebac datebac Abraca Dabra 03071988 S 2006 est équivalent à Nom seriebac Prénom ddn datebac Abraca S Dabra 03071988 2006 Chaque ligne (l i ) de la table dénote un énoncé vrai. La relation R a un sens : c est le prédicat P(l) qui lie ses attributs. Ce sens est donné par le concepteur de la relation et on a l.l R P(l) Introduction au bases de données Partie - Modélisation de données 8 / 44

Notions de base du modèle relationnel Notions de base : table, type des attributs Un attribut peut être élémentaire ou non (ie décomposable). On préferera des attributs élémentaires (en normalisant). Un attribut peut être non calculable ou calculable. Lorsqu un attribut peut être calculé à partir d autres attributs, on n en fait pas un attribut de la relation. Par exemple à partir d un prix U, d un taux, et d une quantité on peut calculer un (sous-)total, HT, TTC, etc A chaque attribut est associé son domaine (de valeurs) ; Nom : NOM, seriebac : SERIEBAC, etc plusieurs attributs peuvent avoir le même domaine. (par convention, on notera en majuscule les domaines ou types) Introduction au bases de données Partie - Modélisation de données 9 / 44 Notions de base : table Notions de base du modèle relationnel Attention à l usage des tables relationnelles. Une relation est un sous-ensemble d un produit cartésien Etudiant(Nom, Prenom, ddn, seriebac, datebac) En effet Etudiant NOM PRENOM DDN SERIEBAC DATEBAC Dans un produit cartésien, il y a un ordre pour les ensembles. Or dans le modèle de Codd, les colonnes peuvent occuper différentes positions! donc le nom de la colonne est absolument nécessaire. A B C C A B Introduction au bases de données Partie - Modélisation de données 10 / 44

Notions de base du modèle relationnel Notions de base : cardinalité, degré cardinalité La cardinalité (d une relation) est le nombre de lignes dans la table (de la relation)....comme le nombre d éléments dans un ensemble. La table donne la relation en extension, donc on a tous ses éléments. degré Le degré d une relation est le nombre de colonnes dans la table (de la relation). Introduction au bases de données Partie - Modélisation de données 11 / 44 Notions de base du modèle relationnel Notions de base : clé Motivation : implantation Considérons maintenant que chaque étudiant a un numéro qui n identifie que lui. La relation devient Etudiant(NumEtudiant, Nom, Prenom, ddn, seriebac, datebac) NumEtudiant Nom Prénom ddn seriebac datebac 2007SIeO487 Abraca Dabra 03071988 S 2006 Le numéro 2007SIeO487 n identifie qu un et un seul étudiant ; On ne peut donc avoir dans la table deux lignes ayant le même numéro Introduction au bases de données Partie - Modélisation de données 12 / 44

Notions de base du modèle relationnel Notions de base : clé Dans le formalisme de Codd, pour exprimer qu un numéro d étudiant ne correspond qu à un seul étudiant, avec nom, prénom, ddn, seriebac, datebac on utilise la notion de clé ; La clé primaire c est un attribut (ou un groupe d attributs, ou de constituants) auquel n est associé qu un seul n-uplet (des autres attributs). Vous auriez noté, il s agit d une fonction entre la clé et les autres attributs. De plus, la fonction est totale : on ne peut avoir de numéro auquel ne corresponde un n-uplet des autres attributs. On parle de dépendance fonctionnelle entre la clé et les autres attributs. Etudiant(NumEtudiant, Nom, Prenom, ddn, seriebac, datebac) Dépendance fonctionnelle = contraintes d intégrité fonctionnelle (CIF) Introduction au bases de données Partie - Modélisation de données 13 / 44 Notions de base du modèle relationnel Notions de base : clé Etudiant(NumEtudiant, Nom, Prenom, ddn, seriebac, datebac) La clé est soulignée. Fonction NumEtudiant NOM PRENOM DDN SERIEBAC DATEBAC Il faut la nommer pour identifier la dépendance fonctionnelle. Une clé étrangère est un attribut qui est une clé primaire d une autre relation. Les clés étrangères permettent de relier les tables entre elles. Introduction au bases de données Partie - Modélisation de données 14 / 44

Notions de base du modèle relationnel Notions de base : propriétés des dépend. fonct. Couverture minimale La couverture minimale des dépendances fonctionnelles pour une relation, c est l ensemble des dépendances fonctionnelles obtenues en éliminant toutes les redondances dans la relation et toutes les dépendances qu on peut déduire (du fait des propriétés des fonctions). Dépendance fonctionnelle élémentaire On a une dépendance fonctionnelle élémentaire entre les constituants X, et les constituants Y d une relation R(X,Y) s il n existe pas un sous-ensemble de X dont Y dépend fonctionnellement. Autrement dit, une partie de la clé n identifie pas les autres attributs. Si A1, A2, A3 > A4, A5 aucun sous ensemble de {A1, A2, A3} > A4, A5 Introduction au bases de données Partie - Modélisation de données 15 / 44 Exemples de modèles Exemples de modèles relationnels Ville(codePostal, nomville, nomhabitant) une instance de la relation codepostal nomville nomhabitant 64000 Pau pallois 34500 Béziers bitterois 12000 Rodez ruthénois 85800 St-gilles croix de vie gillocruciens 64200 Biarritz biarrots 05000 Gap gapençais 56000 Vannes vannetais 56400 Auray alréens Chaque ligne représente une proposition vraie! 64000 est le code postal de Pau et les habitants sont les pallois. Introduction au bases de données Partie - Modélisation de données 16 / 44

Exemples de modèles Exemples de modèles relationnels (suite) Ville(codePostal, nomville, nomhabitant) une instance de la relation codepostal nomville nomhabitant 56400 Lebono bonoviste 01260 Lochieu Chicaneur 01260 Songieu Songiolan 05700 Sigottier... Est-ce une bonne modélisation? (choix de la clé)? Non! le code postal n est pas unique ; c est le code communal!! ne pas se fier à ses connaissances, mais à celles des experts du domaine Introduction au bases de données Partie - Modélisation de données 17 / 44 Exemples de modèles Exemples de modèles relationnels Mais que veulent dire les noms des colonnes codepostal, nomville, nomhabitant? Ce sont des constituants de la relation, mais notez que : nomville(34500) = Beziers nomhabitant(05000) = gapencais attributs? constituants? ensembles? codomaines?... le nom de colonnes désigne bien un ensemble d éléments! donc codomaine de fonction, ou le nom de la fonction qui donne la valeur qui est dans le codomaine. Introduction au bases de données Partie - Modélisation de données 18 / 44

Exemples de modèles Exemples de modèles relationnels commande(numcommande, numclient, raisonsociale, adresse, numpprod, prixu, designation, qtte) Que veulent dire les noms des colonnes numcommande, numclient, raisonsociale, adresse, numpprod, prixu, designation, qtte? Peut-on structurer la relation autrement? (en plusieurs parties?) Introduction au bases de données Partie - Modélisation de données 19 / 44 Exemples de modèles Exemples de modèles relationnels Etudiant(numEtudiant) Controle(numControle, nummatiere, coeffcontrole) Matiere(numMatiere, nommatiere, coeffmatiere) Notes(numControle, numetudiant, Note) Dans un modèle, élaborer une relation ou plusieurs? Comment concevoir les modèles? (1 relation, plusieurs?) Comment faire pour décomposer une relation en plusieurs? Faire dès le début plusieurs relations? Quelles sont les propriétés d un bon modèle? Méthodes de normalisation Introduction au bases de données Partie - Modélisation de données 20 / 44

Exemples de modèles Exemples de modèles relationnels Controle numcontrole nummatiere coeffcontrole 1 1.1 1 2 1.2 1 3 1.3 2 Etudiant numetudiant 2007SIeO487 2007SIeO512 2007SSeO177 Matiere Notes nummatiere nommatiere coeffmatiere 1.1 Archi 2 1.2 MoDyn 2 1.3 SD1 2 numcontrole numetudiant Note 1 2007SIeO487 13 1 2007SSeO177 10 1 2007SIeO512 15 2 2007SSeO177 12 Introduction au bases de données Partie - Modélisation de données 21 / 44 Opérations sur les relations Opérateurs sur les relations Codd a proposé un langage comprenant : des opérateurs ensemblistes : union, intersection, différence entre relations de même degré des opérateurs algébriques des opérateurs unaires (qui agissent sur une seule relation) : sélection/suppression d une ligne selon des conditions, projection de certaines colonnes des opérateurs binaires (qui agissent sur 2 relations) : la jointure de relations, la division On l aura compris, une relation étant un ensemble, on bénéficie des opérations ensemblistes Introduction au bases de données Partie - Modélisation de données 22 / 44

Transformation EAP -> Relationnel Transformation des modèles EAP en modèles de CODD Règle de base 1 : Toute ENTITE est transformée en une relation dont la clé primaire et les attributs viennent de l ENTITE. Règle de base 2 : Toute ASSOCIATION est transformée en une relation dont la clé primaire est formée par la juxtaposition de tous les identifiants (appelés alors clés étrangères) des ENTITE qui constituent l association. Lorsque l ASSOCIATION possède des attributs, il sont transformés en attributs de la relation. Regles auxilliaires : Règle d optimisation : Une association binaire Aab (entre les entités Ea, Eb) avec une cardinalité 0,1 ou 1,1 pour l entité Ea et une cardinalité quelconque pour Eb, ne donne pas lieu a une traduction en relation ; L identifiant de Eb (devient clé étrangère) ainsi que les attributs de l association Aab sont ajoutés comme attributs de la relation qui traduit l entité Ea. Introduction au bases de données Partie - Modélisation de données 23 / 44 Qualité d un bon modèle (relationnel) facilement lisible et compréhensible, simple, permet de répondre aisément aux questions que l on se pose, dépourvu d ambiguté, dépourvu de redondance,... Introduction au bases de données Partie - Modélisation de données 24 / 44

Normalisation Normalisation Normaliser c est décomposer une relation en des relations plus simples dépourvues de redondances. C est le principe Diviser pour mieux règner présent dans toute démarche pour contrer la complexité. Relation normalisée - 1ere forme normale On appelle relation normalisée (ou en première forme normale) une relation dont les constituants sont tous des valeurs simples (d un domaine) et non des noms d autres relations. Dans la pratique, c est comme si on esquissait un brouillon du modèle, puis on l améliorait jusqu à le rendre propre. Introduction au bases de données Partie - Modélisation de données 25 / 44 Normalisation Etudiant(numEtudiant, Note) Note(nomMatiere, numcontrole, notesur20) Cette relation Etudiant n est pas normalisée ; en effet Note qui est un des constituants de Etudiant est une relation et non un constituant simple. Etudiant(numEtudiant, nommatiere, numcontrole,notesur20) est normalisée et est en première forme normale Introduction au bases de données Partie - Modélisation de données 26 / 44

Normalisation : les formes normales des relations Vous étudierez aussi dans le cours de Base de Données... Ici on en fait une introduction. Plusieurs formes normales 1ere, 2eme, 3eme, 4eme, Boyce-Codd, 5eme,... formes normales On va de la moins précise (1ere) à la plus précise (5ème) 1ere forme normale On appelle relation normalisée (ou en première forme normale) une relation dont les constituants sont tous des domaines simples (ou ensemble) et non des noms d autres relations. Introduction au bases de données Partie - Modélisation de données 27 / 44 1ere, 2eme, 3eme, 4eme, 5eme... formes normales Deuxième forme normale La relation est en première forme normale et les constituants qui ne sont pas clé, dépendent fonctionnellement entièrement de la clé (et nom d une partie). Troisième forme normale La relation est en deuxième forme normale et les constituants non clé ne dépendent pas fonctionnellement de façon transitive de la clé. Ce serait redondant (car la composée des fonctions permet de retrouver la transitivité entre les constituants) Introduction au bases de données Partie - Modélisation de données 28 / 44

2eme et 3eme formes normales : exemples Soit la relation : RFact(NumComm, NumCli, RaiSociale, Adresse, NumProd, PrixUnit, Design, QtteComm) décomposée en plusieurs relations en troisième forme normale : RProd(NumProd, Design, PrixUni) RClient(NumCli, RaiSociale, Adresse) RComm(NumComm, NumCli) LProd(NumProd, NumComm, QtteComm) Introduction au bases de données Partie - Modélisation de données 29 / 44 4eme, 5eme formes normales Quatrième forme normale La relation est en troisième forme normale et il n y a pas de dépendances multivaluées. Les dépendances multivaluées : Soit R(A, B, C) une relation, on a une dépendance multivaluée dans R si et seulement si, chaque fois que (a,b,c) et (a,b,c ) apparaissent dans R, alors (a,b,c) et (a,b,c ) apparaissent dans R. Exemple NumEmpl Competence Langue 4 Marketing français 4 Marketing allemand 4 Marketing mandarin 4 Economie français 4 Economie allemand 4 Economie mandarin Introduction au bases de données Partie - Modélisation de données 30 / 44

Dépendance multivaluée et 4eme forme normale Dans l exemple, les compétences sont indépendantes des langues parlées, Il y a une dépendance multivaluée, notée NumEmpl» Competence/Langue Pour une occurrence de NumEmpl, on a dans la relation un ensemble de valeurs de compétence qui est indépendant des valeurs que peut prendre Langue. il y a 2 relations indépendantes : un employé est compétent en... ; un employé parle les langues... NumEmpl Competence 4 Marketing 4 Economie NumEmpl Langue 4 français 4 allemand 4 mandarin Introduction au bases de données Partie - Modélisation de données 31 / 44 Compléments : forme normale de Boyce-Codd Forme normale de Boyce-Codd Une relation est en forme normale de Boyce-Codd si et seulement si : elle est en troisième forme normale, et les dépendances fonctionnelles qu elle comporte, et elles seules, sont celles dans lesquelles une clé détermine un attribut. Lorsque la clé est composée de plusieurs attributs, les attributs composant la clé, ne doivent pas dépendre d autres attributs. On définit aussi la quatrième forme normale à partir de la forme normale de Boyce-Codd. Introduction au bases de données Partie - Modélisation de données 32 / 44

Cinquième forme normale Cinquième forme normale Une relation de degré n (n > 2) est en cinquième forme normale si et seulement si : elle est en quatrième forme normale, et il n est pas possible de retrouver l ensemble de ses occurrences par jointure sur les occurrences des relations partielles prises deux à deux. (On ne peut pas la décomposer en deux sans perte d information) La normalisation en cinquième forme normale conduit à décomposer une relation complexe en plusieurs (> 2) relations plus simples. Introduction au bases de données Partie - Modélisation de données 33 / 44 Dépendance mutuelle et 5eme forme normale Cinquième forme normale Une relation de degré n (n > 2) est en cinquième forme normale si elle est en quatrième forme normale et il y a des dépendances mutuelles. Dépendance mutuelle : des attributs dépendent les uns des autres et réciproquement. Soit une relation R(X,Y,Z) On note R[X,Z] la projection de R sur les constituants X et Z Dépendance mutuelle (notée < >) Soit une relation R(X,Y,Z), X < > Y dans la relation R, si (x,y,z) Ret (x,y,z ) Ralors (y,z ) R[Y,Z] (x,y,z ) Ret (y,z) R[Y,Z] (x,y,z) R De plus on a X < > Y et Y < > X Introduction au bases de données Partie - Modélisation de données 34 / 44

Exemple : relation en 5ème forme normale Soit la relation Represente(REPRESENTANT, PRODUIT, SOCIETE) (r, p, s) Represente exprime que le représentant r représente le produit p pour la société s. Soit la table relationnelle suivante REPRESENTANT PRODUIT SOCIETE r1 p1 s1 r1 p2 s1 r1 p3 s2 r2 p1 s1 r2 p4 s3 r3 p4 s4 On constate qu on ne peut savoir si une société commercialise un produit, sans connaitre au moins un représentant de la société qui représente ce produit. Un représentant ne travaille pas pour deux sociétés qui commercialisent certains produits identiques. Introduction au bases de données Partie - Modélisation de données 35 / 44 Exemple : relation en 5ème forme normale REPRESENTANT PRODUIT SOCIETE r1 p1 s1 r1 p2 s1 r1 p3 s2 r2 p1 s1 r2 p4 s3 r3 p4 s4 Un représentant ne travaille pas pour deux sociétés qui commercialisent certains produits identiques. La dépendance mutuelle entre PRODUIT et SOCIETE peut s exprimer ainsi : Lorsqu un représentant représente un produit pour une société alors il représente ce produit pour toute société pour laquelle il travaille et qui commercialise le produit. Introduction au bases de données Partie - Modélisation de données 36 / 44

Exemple : relation en 5ème forme normale REPRESENTANT PRODUIT SOCIETE r1 p1 s1 r1 p2 s1 r1 p3 s2 r2 p1 s1 r2 p4 s3 r3 p4 s4 Il y a une dépendance mutuelle entre PRODUIT et SOCIETE. (r1, p1, s1) Represente (r1, p3, s2) Represente (p1, s2) Represente[PRODUIT, SOCIETE] (r1, p1, s2) Represente (Vrai) et (p3, s1) Represente[PRODUIT, SOCIETE] (r1, p3, s1) Reprsente (Vrai) Un représentant ne travaille pas pour deux sociétés qui commercialisent certains produits identiques. Introduction au bases de données Partie - Modélisation de données 37 / 44 Exemple : relation en 5ème forme normale L existence de la dépendance mutuelle permet de décomposer la relation en 3 de ses projections : RepresenteProduit[REPRESENTANT, PRODUIT], RepresenteSociete[REPRESENTANT, SOCIETE], CommercialiseProduit[PRODUIT, SOCIETE] REPR. r1 r1 r1 r2 r2 r3 PROD. p1 p2 p3 p1 p4 p4 REPR. r1 r1 r2 r2 r3 SOC. s1 s2 s1 s3 s4 PROD. p1 p2 p3 p4 p4 SOC. s1 s1 s2 s3 s4 Introduction au bases de données Partie - Modélisation de données 38 / 44

Exemple : relation en 5ème forme normale Si on n avait pas la troisième relation on n aurait pas pu reconstituer la relation initiale Exercice : Faire la jointure des relations RepresenteProduit[REPRESENTANT, PRODUIT], RepresenteSociete[REPRESENTANT, SOCIETE], Utilisez ensuite CommercialiseProduit[PRODUIT, SOCIETE] pour retrouver la relation initiale Introduction au bases de données Partie - Modélisation de données 39 / 44 Sur la qualité des modèles relationnels de données Leçons Une relation qui n est pas en première forme normale, entraîne éventuellement des lourdeurs dans l exploration des données, car il faut analyser les attributs pour distinguer simple/relation. Une relation qui n est pas en deuxième forme normale entraîne éventuellement la redondance des données (c est inutile et pénalisant quand on construit les bases de données). Une relation qui n est pas en troisième forme normale (et aussi en forme normale de Boyce-Codd, ou en quatrième forme normale FNBC,) entraîne la redondance dans les données. Une relation qui n est pas en cinquième forme normale entraîne éventuellement la perte de données et les informations manquent de précision. Introduction au bases de données Partie - Modélisation de données 40 / 44

Etudes de cas A volonté... Introduction au bases de données Partie - Modélisation de données 41 / 44 Synthèse Le modèle relationnel est un des outils rigoureux pour la modélisation des données en vue de l élaboration d un système d information, et la construction de bases de données. Les fondamentaux à la base de la méthode sont la théorie des ensembles ; cela lui confère les propriétés de simplicité et de rigueur. La normalisation des modèles de données permet d obtenir des modèles très précis. Il y a des algorithmes pour effectuer la normalisation. Introduction au bases de données Partie - Modélisation de données 42 / 44

Transformation du modèle EA au modèle relationnel Modèle relationnel (n-aire) : introduit par Codd pour construire les bases de données. Codd représente une relation par une table (ou tableaux) dont les colonnes sont nommées. Modèle Entité-Association Entité Association Propriété Identifiant Modèle relationnel Entité Table ou relation Attribut Clé Introduction au bases de données Partie - Modélisation de données 43 / 44 Bibliographie H. HABRIAS, Le modèle relationnel binaire, Eyrolles, 1988 P. ANDRE, A. VAILLY, Conception des systèmes d information ; Panorama des méthodes et des techniques, Editions Ellipses, janvier 2001, ISBN 2-7298-0479-X Introduction au bases de données Partie - Modélisation de données 44 / 44