Introduction à la conception d un schéma relationnel avec la Méthode de Codd et Date



Documents pareils
16H Cours / 18H TD / 20H TP

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

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

Les bases de données

1 Introduction et installation

Information utiles. webpage : Google+ : digiusto/

Bases de Données. Plan

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

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

Manifeste de Chris Date sur modèle «Objet Relationnel» (pour données structurées/sql)

UML et les Bases de Données

UML (Diagramme de classes) Unified Modeling Language

Merise. Introduction

Bases de données. Chapitre 1. Introduction

Chapitre 5 LE MODELE ENTITE - ASSOCIATION

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

Dossier I Découverte de Base d Open Office

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

Introduction à SQL2. Professeur Serge Miranda Directeur Master «MBDS»

Langage SQL : créer et interroger une base

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

Introduction aux Bases de Données

Chap. 2: L approche base de données

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

Le langage SQL pour Oracle - partie 1 : SQL comme LDD

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

Modèle Entité/Association

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

COURS de BASES de DONNEES

Bases de données relationnelles : Introduction

Bases de Données Avancées

BASES DE DONNÉES. CNAM Centre associé de Clermont-Ferrand Cycle A Année J. Darmont I. INTRODUCTION II. LES SYSTÈMES HIÉRARCHIQUES

Modélisation Conceptuelle. Partie 2: Le modèle Entité-Association

Le langage SQL Rappels

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

CONCEPTION Support de cours n 3 DE BASES DE DONNEES

INTRODUCTION AUX BASES de DONNEES

A QUOI SERVENT LES BASES DE DONNÉES?

Introduction aux Bases de Données

Bases de données avancées Introduction

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

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

Rappel sur les bases de données

Bases de données - Modèle relationnel

Modèle conceptuel : diagramme entité-association

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

et les Systèmes Multidimensionnels

Chapitre 3 LE MODELE RELATIONNEL ET SQL (DDL)

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

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

Conception d une base de données

Le Langage SQL version Oracle

Bases de Données relationnelles et leurs systèmes de Gestion

Bases de données réparties: Fragmentation et allocation

TP Bases de données réparties

basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB Olivier Augereau Formation UML

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

INITIATION AUX BASES DE DONNEES MODELISATION et LANGAGE SQL

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

Bases de données Cours 1 : Généralités sur les bases de données

NFA 008. Introduction à NoSQL et MongoDB 25/05/2013

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

Introduction aux bases de données Cours 1 : Généralités sur les bases de données

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

SQL Server 2012 Implémentation d'une solution de Business Intelligence (Sql Server, Analysis Services...)

Ecole des Hautes Etudes Commerciales HEC Alger. par Amina GACEM. Module Informatique 1ière Année Master Sciences Commerciales

Gestion du parc informatique matériel et logiciel de l Ensicaen. Rapport de projet. Spécialité Informatique 2 e année. SAKHI Taoufik SIFAOUI Mohammed

Administration de Bases de Données : Optimisation

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

Bases de données relationnelles & SQL

Introduction aux bases de données

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

Bases de données relationnelles

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

Modélisation des données

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

Bases de Données. Stella MARC-ZWECKER. Maître de conférences Dpt. Informatique - UdS

A QUOI SERVENT LES BASES DE DONNÉES?

Les bases de données Page 1 / 8

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

Entrepôt de données 1. Introduction

.../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.

Bases de données élémentaires Maude Manouvrier

Chapitre 1 : Introduction aux bases de données

Université de Bangui. Modélisons en UML

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

Le Guide Pratique des Processus Métiers

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

CESI Bases de données

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

Introduction aux Bases de Données Relationnelles Conclusion - 1

LE MODELE CONCEPTUEL DE DONNEES

1. LA GESTION DES BASES DE DONNEES RELATIONNELLES

Année Universitaire 2009/2010 Session 2 de Printemps

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

Présentation du Modèle de Référence pour les Bibliothèques FRBR

Thierry Spriet Version rééditée au format PDF et remise en page

Comprendre Merise et la modélisation des données

Base de Données et Langage SQL

2 Serveurs OLAP et introduction au Data Mining

Transcription:

Bases de données Introduction à la conception d un schéma relationnel avec la Méthode de Codd et Date Professeur Serge Miranda Serge.miranda@unice.fr Directeur Master «MBDS» www.mbds-fr.org et www.youtube.com/mbdsimagine Livre et Exemple 1

Plan Rappels sur le modèle relationnel de CODD (les 10 Concepts fondamentaux) Approche intuitive d une méthode de conception relationnelle et critique du «modèle entité association» La Méthode de conception de Codd and Date - Phase 1 : Approche Synthétique - Phase 2 : Approche analytique : La Théorie de «normalisation» l Espace des «5 Formes Normales» La «Dénormalisation» Ryoan Ji Garden (KYOTO) 2

Intérêt du modèle relationnel de Codd Vue simple des données - tables (pouvant être non naturelle) Langage de requête non procédural : «SAT» (SET at a TIME) (dont l opération fondamentale est la JOINTURE) «Schéma» et «modèle de données»? UNIVERS REEL CONCRET INACCESSIBLE MODELE DE DONNEES SCHEMA DE DONNEES ABSTRAIT MANIPULABLE 3

Modèle de données? STRUCTURES Familles de Modèles de données MODELE DE DONNEES (+ théorie formelle) OPERATEURS REGLES D INTEGRITE -«Informatiques» - 1968-1988 (Ex : IMS, DBTG,..) - «Mathématiques» 1980 2000 (Ex : Modèle Relationnel, SQL2) - «Sémantiques» 1990-2010 (Ex : Modèles Objet, OR, SQL3) Modèle Relationnel de CODD (les 10 concepts de base) et PARADIGME VALEUR Définitions «Domaines» «Relations» («ensemble» ou «prédicat») Clé Primaire / Clé Etrangère Contrôle : Règles d intégrité De domaines De relation De référence Manipulation ensembliste : algèbre de Codd (langage «fermé, complet et orthogonal») Opérateurs ensemblistes Opérateurs relationnels : SELECTION, PROJECTION, JOIN et DIVISION 4

Critiques du modèle Entité Association pour la construction d un schéma relationnel 2 Concepts flous «Entité» et «association» ( Méthode MERISE!) et un seul concept (formel) cible : la «RELATION» Promesses approche «OBJET» : 1 seul concept flou! Méthode pragmatique intuitive proposée par Codd et Date Approche «intuitive» de conception relationnelle «L œuvre d art nous apprend que nous n avons pas vu ce que nous voyons» Paul Valéry «Pourquoi faire simple quand c est si facile de tout compliquer» J.L. Godard 5

Un peu de modestie dans l appréhension de la réalité 1) LOI D INCERTITUDE D HEIZENBERG (1927) : «Les concepts humains ne pourront pas décrire la réalité (l observateur déforme)». 2) THEORIE D INDECIDABILITE DE GODEL (1931) : «Aucun système ne permet de s auto-décrire (d où niveau META)» Principaux types d abstraction? AGREGATION : [«PART OF»] PILOTE = {PL#, PLNOM, ADR} GENERALISATION : [«IS - A»] employé pilote hôtesse mécanicien 6

Principaux Types d abstraction ASSOCIATION/COUVERTURE : [«SET OF»] équipage pilote hôtesse Modèle Relationnel de données Agrégation Simple Typage statique (et réduit) Type abstraction et modèle relationnel de Codd La seul abstraction représentée c est l agrégation «simple» (types simples d attributs) Les autres types d abstractions : généralisation (IS-A) association/couverture (Set-of) récursivité version de (Version of) doivent être représentées en fonction de l agrégation simple. Seul le produit cartésien intervient dans la définition d une relation (pas l ensemble des parties) 7

Définition d un schéma relationnel? 2 phases conceptuelles Définition d un schéma conceptuel avec tous les types d abstraction Utilisation d un Modèle de données plus riche que le modèle relationnel : NIAM, OBJET, Modèle RM-T de Codd,.. SCHEMA CONCEPTUEL Traduction dans un schéma relationnel avec seulement l agrégation simple Objectifs d une méthode de conception relationnelle Faire cohabiter plusieurs perceptions de l univers réel Indiquer simplement quand on doit créer les relations de «base» avec leurs clés primaires Indiquer simplement où placer les clés étrangères dans les relations de base 8

III Méthode de Conception de CODD and Date Méthode pratique (utilisée dans le cours «Administrateur BD» chez IBM) Version Anglaise de cette méthode présentée dans : «RELATION DB : Selected writing», C. DATE, Addison Wesley, 1986 Version française dans : «COMPRENDRE et CONCEVOIR des BD RELATIONNELLES» S. MIRANDA, Editest, 1988 e livre DUNOD 2002 Les 2 phases de la Méthode de Codd et Date 1ère phase : Définition des relations de base/cp et des clés étrangères définition et classification des «entités»/»relations» définition des «relations de base» associées avec les : clés primaires clés étrangères identification du schéma relationnel 2ème phase : Définition des «bonnes relations» pour les opérations de mise à jour normalisation d interrogation dénormalisation 9

Plan Phase 1 de la Méthode de Codd and Date I - CONCEPTS DE BASE - Notion d Entité et de Clé - Classification des Liens entre entités - Classification des Propriétés - Classification des Entités II - METHODOLOGIE DE CONCEPTION - Présentation générale du processus de conception - Analyse des 4 étapes de la démarche - Conseils méthodologiques III - CAS PARTICULIERS - Représentation du Lien Sous-Type (Généralisation) - Interblocage d Initialisation Les concepts de base : «DONNEE» (data)? «ROND»? Forme? Etat? Ballon? Individu? ROND est la forme d un ballon de foot? 10

Structures de données intuitives 1 m 70 Rouge Bleu Rond DONNEE TAILLE COULEUR FORME PROPRIETE PERSONNE BALLON ENTITE VOITURE PROPRIETAIRE LIEN Notion d «Entité/relation» de la méthode de Codd and date ENTITE 1 «Tout ce qui est DIFFERENTIABLE» «Any distinguishable object» «OBJET» (début définition dans composante structurelle) (BD-O2) Identifiant de l Entité (la Clé Primaire) CLE (primaire) Note : La référence à une entité se fera par sa clé Une seule structure conceptuelle : RELATION 11

Constructeur SET dans la définition ENTITE? SET OF propriétés PROPRIETE SET OF données («valeurs» ; «data») PARADIGME «VALEURS» et «ENSEMBLISTE» (SET OF) du modèle relationnel Les «LIENS» sont les «LIENS ENSEMBLISTES» Les «LIENS»? «All things are connected» Seattle (chef indien) LES LIENS entre structures de données sont des «LIENS ENSEMBLISTES» 12

Liens ensemblistes? Les Liens «fonctionnels» N:1? LIENS «FONCTIONNELS» N : 1 de «DETERMINATION» Soient A et B, deux propriété ou Groupes de Propriétés (Entités) : DETERMINANT A N : 1 B DETERMINE 1 Au plus 1 0.1 ou N 1 = «FONCTIONS» en Mathématiques Les plus importants dans un schéma relationnel!! (agrégation «simple») Liens «fonctionnels» «N:1» EXEMPLES NUMERO_VOL NUMERO_PILOTE N : 1 N : 1 VILLE_DEPART VILLE_ARRIVEE NOM_PILOTE ADRESSE_PILOTE HOMME N : 1 FEMME MARIAGE (polyandrie) 13

Règles de généricité pour les liens N:1 REGLES DE GENERICITE (AMSTRONG) Réflexivité A Transitivité N : 1 N : 1 A B C N : 1 Augmentation du Déterminant Numero_Vol Ville_Depart D A B Numero_Vol Heure_Depart Ville_Depart Liens «hiérarchiques» 1:N Inverse des liens «N:1» : A 1:N B 1:N N : 1 A B 1 0,1 ou N Au plus 1 1 Exemples : PILOTE 1:N VOL HOMME 1:N MARIAGE (polygamie) FEMME 14

Liens «maillés» N:M N : M A B 1 0,1 ou M Règle de Symétrie des liens N:M : A N : M B 0,1 ou N 1 1 : M C 1:N Exemples : PILOTE N : M AVION HOMME N : M FEMME MARIAGE (mariage de groupe) Classification des entités/liens dans la méthode de Codd and Date «STATIQUES» Entités indépendantes ex : PILOTE, AVION, VOL, DEPARTEMENT «DYNAMIQUES» Entités dépendantes d autres entités (liens MULTIVALUES) «ASSOCIATIVES» N : M Entités représentant un lien N : M ex : VOL représente le lien N:M PILOTE N : M AVION «DESCRIPTIVES» 1 : N Entités dont la seule fonction est de décrire une autre entité (lien 1 : N avec contrainte d existence) Ex : AVION VOL, PILOTE- VOL 15

Classification (fin) «DETERMINANTES» N : 1 (liens MONOVALUES) Quel que soit son type, une entité peut DERMINER (lien N : 1) une autre entité Ex : N:1 PILOTE DEPARTEMENT N:1 N:1 VOL PILOTE, VOL AVION NOTE : Une même entité VOL peut être perçue de 3 manière indépendantes : - «statique (et indépendante)», - «associative», - «descriptive»!!! Terminologie GB (Modèle RM-T) FR (MIRA88 et MIRA2002 ) GB (DATE86) Statique Kernel RM-T de CODD (80) Associative (N : M) Association Descriptive (1 : N) Characteristics Déterminante (N : 1) Referencing 16

REPRESENTATION GRAPHIQUE DE WINSBERG (1986) ENTITE STATIQUE ENTITE DESCRIPTIVE (Lien 1:N) (N) (1) PILOTE ENFANT DETERMINATION (LIEN N : 1) (N) (1) Clé étrangère au niveau de la plume de la flèche ENTITE ASSOCIATIVE (Lien N:M) AVION VOL PILOTE DEPARTEMENT Version simplifiée de Winsberg Entité traduite par une relation / table de base Lien N : 1 notation fonctionnelle (rien de plus simple et cohérent) indiquant la présence d une clé étrangère au niveau de la plume. (Possibilité d étiqueter une flèche par un prédicat bidirectionnel comme avec NIAM dans le cas de l existence de plusieurs liens entre les mêmes entités). 17

Exemple AIRBASE EMPLOYE (E#) DEPARTEMENT (D#) HOTESSE (E#) Généralisation STEWARD (E#) PILOTE (PL#) (D#, E#) (PL#) PILENFANT AVION (AV#) Agrégation VOL (PL#, AV#) Entité (correspondant à une relation de base du schéma) La CP est indiquée dans le rectangle.la CE est indiquée en dehors PILFORM (PL#) Lien fonctionnel N:1 (présence d une clé étrangère au niveau de la plume) Entités et «propriétés» Le processus consiste à remplir progressivement un tableau décrivant les entités et leurs propriétés au fur et à mesure de leur définition. Le schéma de Winsberg peut être élaboré parallèlement ENTITES IDENTIFICATION clé primaire PROPRIETES REFRENCE CARACTERISTIQUES clé étrangères 18

Méthode de conception Phase 1 Démarche Descendante («TOP-DOWN») et Itérative 4 Etapes : ETAPE 1 : Définition Des Entités Statiques ETAPE 2 : Représentation des Liens multivalués entre Entités - Liens N : M (Associations) - Liens 1 : N (Descriptions) ETAPE 3 : Lien N : 1 (pas de création d Entité ; seul cas mais rajout de clé étrangère) ETAPE 4 : Rattachement des propriétés aux entités. Itération du processus si toutes les information ne sont pas représentées dans le schéma Etape 1 : entités «statiques» a - IDENTIFICATION des Entités statiques et de leurs clés primaires b - REPRESENTATION «relationnelle» de ces entités : Relation de Base sans Clé étrangère Ex : PILOTE (P PL#) AVION (A AV#) DEPARTEMENT (D DEP#) VOL (VOL#) 19

Etape 2 : Liens «multivalués» inter-entités entités (N:M, 1:N) Identification et Représentation des Liens multivalués (N:M et 1:N) entre Entités 1 - ASSOCIATIONS Liens N : M Ex : PILOTE FOURNISSEUR N:M N:M 2- DESCRIPTION Lien 1 : N AVION DEPARTEMENT Création d une relation de base avec des clés étrangères identifiant les entités liées Ex : VOL ( VOL#, V-PL#, V-AV# ) FOURN_PROD ( PROD#, FOUR# ) 1:N Ex : PILOTE VOL Création d une relation de base ; rajout de la clé primaire de l entité de départ Comme clé étrangère dans l entité d arrivée ex : rajout de PL# dans VOL (VOL#, V-PL#) Etape 3 : Liens «N:1» inter entités DETERMINATION Lien N : 1 Ex : VOL N:1 PILOTE PILOTE N:1 DEPARTEMENT Pas de création de nouvelle relation (seul cas). Rajout de la clé primaire de l entité déterminée comme clé étrangère dans l entité déterminante Ex : Rajout de DEP# dans PILOTE (P PL#, P-DEP#) RAJOUT DE PL# DANS VOL (VOL#, V-PL#) LIENS PRESENCE DE CLES ETRANGERES 20

«Propriétés» d une entité 3 types de PROPRIETES : IDENTIFICATION Clé Primaire Ex : Numéro-Vol dans l entité VOL REFERENCE Clé étrangère Ex : Numéro-Pilote dans l entité VOL CARACTERISTIQUE Ex : Ville-Départ, Ville-Arrivée dans VOL Rattachement des propriétés aux entités Une propriété peut-être - Monovaluée ou Multivaluée et - Immédiate (entité de rattachement. Connue) ou Non Immédiate (entité de rattachement inconnue) 4 CAS : Attribut de la relation concernée Monovaluée/Immédiate Ex : PLNOM, P-VILLE dans PILOTE Création d une nouvelle relation statique (cf.normalisation 3NF) Monovaluée/Non Immédiate Ex : CAP dans AVION N:1 N:1 A_AV# A_TYPAV CAP Création d une entité statique CAPACITE ( C-TYPAV, CAP) A-TYPAV dans AVION devient Clé étrangère 21

Rattachement des propriétés (fin) Multivaluée/Immédiate Création d une entité descriptive «toute clé» ou définition de plusieurs attributs (cf. Normalisation INF) Ex : Auteurs d un LIVRE LIVRE (LIV#,, AUT#1, AUT#2) ou LIV-AUTEUR (LIV#, AUT#) Multivaluée/Non Immédiate Création d une entité DESCRIPTIVE représentée par une relation de base avec la clé étrangère de l entité décrite. Ex : AGE des enfants d un PILOTE On crée l entité PILENFANT (E-PL#, PRENOM, AGE) FORMATION et DUREE de formation d un PILOTE On crée l entité : PILFORM (F-PL#, F-TYPAV, FORMAT, DUREE) Note : pour chaque propriété il faut définir son domaine (typage sémantique) ENTITES IDENTIFICATION clé primaire PROPRIETES REFRENCE clé étrangères CARACTERISTIQUES PILOTE P-PL# DEP# PLNOM, PL-VILLE AVION AV-AV# A-TYPAV, CAP AV-VILLE DEPARTEMENT D-DEP# DEPNOM VOL VOL# V-PL#, V-AV# VD-VILLE, VA-VILLE HD-HEURE, HA-HEURE PILENFANT ENF#, E-PL# E-EPL# PRENOM, AGE PILEFORM P-TYPAV, F-PL# DUREE, FORMAT F-PL# 22

Identification «QU y a-t-il en un nom? Ce que nous nommons ROSE sous un tout autre nom sentirait aussi bon.?» W. Shakespeare (Roméo et Juliette) Règles R1 : Eviter si possible les clés primaire multi-attributs pour les raisons suivantes : - problèmes d utilisation : jointure multi-attribut - problème de définition (pour les relations statiques) si le concept de «domaine primaire» existe ; - problème de visualisation pour éviter les redondances logiques (ex : ETUDIANT (E #, C#, C-OFFERT, NOTE,.) Intérêt pour l administrateur d introduire des clés primaires mono-attributs surtout pour les relations statiques. 23

Règles R2 : Lorsque la comparaison des valeurs de deux attributs a un sens, définir un domaine commun pour ces attributs (union des valeurs possibles) définition des domaines par l administrateur au fur et à mesure de la conception du schéma relationnel. * (choix crucial pour un contrôle sémantique des opérateurs) Note : toute clé étrangère doit avoir le même domaine que la clé primaire associée. Règles R3 : Règle d identification des attributs et des domaines 2 cas : 1) s il n y a pas dans la même relation deux attributs définis sur le même domaine : Nom d attribut = nom de domaine 2) si plusieurs attributs de la même relation sont définis sur le même domaine : Nom d attribut = nom de domaine préfixé ou suffixé Note : Cette méthode d identification a un double intérêt : 1) avertir l utilisateur 2) permettre d introduire des domaines fictifs à SQL1 et SQL2 R4 : Noms d attribut unique avec un langage relationnel fermé (ce n est pas le cas de SQL) 24

Exemple Schéma relationnel avec nomenclature Codd and Date AVION (AV#, AVNOM, CAP, LOC-VILLE) PILOTE (PL#, PLNOM, SAL, ADR-VILLE) VOL (VOL#, V-PL#, V-AV#, VD-VILLE, VA- VILLE, HD-HEURE, HA-HEURE) Phase 2 : L APPROCHE ANALYTIQUE de la méthode de Codd & Date PLAN PRINCIPE DU PROCESSUS DE NORMALISATION et formes Normales ( Normal Forms de Codd) LA PREMIERE FORME NORMALE (1NF) Liens mono-valués et LES FORMES NORMALES 2NF, 3NF, BCNF, Liens multi-valués et formes normales 4NF, 5NF 25

Objectifs Phase 2 TRIPLE OBJECTIF : Chaque relation possède une clé primaire qui représente l identifiant d un certain type d entité ; Chaque relation comprend plusieurs attributs MONOVALUES qui représentent des propriétés de l entité identifiée par la clé primaire (une relation contient donc de l information sur un seul type d entité). Chaque relation est «normalisée» «1NF» («normalisée», 1 ier Forme Normale, 1st Normal Form) MISE EN 1ière FORME NORMALE EN SUPPRIMANT LES ATTRIBUTS MULTIVALUES ATTRIBUTS «MULTIVALUES» : cardinalité inconnue : traitement comme entité descriptive (lien 1 : N) en créant nouvelle relation : exemple attribut multivalué AUTEUR de l entité L entité LIVRE ((L#, TITRE, EDITEUR, {AUTEUR}) se transforme en 2 relations 1NF : LIVRE (L#, TITRE, EDITEUR) LIV-AUTEUR (L#, AUTEUR) cardinalité connue : création nouvel attribut exemple : capacité minimum et maximum d un avion L entité AVION (AV#, TYPE, {CAP}, LOC) se transforme en relation 1NF : AVION (AV#, TYPE, CAP-MIN, CAP-MAX, LOC) 26

EX : ATTRIBUT MULTIVALUE AVEC CARDINALITE VARIABLE Considérons la relation LIVRE ayant les attributs AUTEUR et MOTCLE multivalués LIVRE L# TITRE EDITEUR ANNEE AUTEUR MOT-CLE 1 BD EN BD JESEPA 1988 GO HUMOUR MILO BD VULGARISATION LIVRE L# TITRE EDITEUR ANNEE LIV-AUTEUR L# AUTEUR 1 GO 1 MILO 1 BD EN BD JESEPA 1988 LIV-MOTCLE L# MOT-CLE 1 HUMOUR 1 BD 1 VULGARISATION Attributs multi-valués LE VECTEUR Deux représentations sont possibles : - orientée tuple (cardinalité fixe) - orientée attribut 27

Exemple VECTEUR Prenons l exemple des salaires mensuels d un pilote 1) Représentation orientée tuple PILOTE PL# PLNOM SAL-JAN SAL-FEV SAL-MARS SAL-DEC 1 Pierre 20 KF 20 KF 21 KF 22 KF 2 Serge 17 KF 17 KF 18 KF 19 KF VECTEUR (Exemple) 2) Représentation orientée attribut 2.1 (sans création de nouvelle relation) PILOTE PL# PLNOM MOIS SALAIRE 1 Pierre Jan 20 KF 1 Pierre Fev 20 KF 1 Pierre Mars 21 KF 1 Pierre Dec 22 KF 2 Serge Jan 17 KF 2 Serge Fev 17 KF 2 Serge Mars 18 KF 2 Serge Dec 19 KF 28

VECTEUR (Exemple) PILOTE PL# PLNOM ADR... 1 Pierre Paris 2 Serge Nice PIL-SAL PL# MOIS SALAIRE 1 Jan 20 KF 1 Fev 20 KF 1 Mars 21 KF 1 Dec 22 KF 2 Jan 17 KF 2 Fev 17 KF 2 Mars 18 KF... 2 Dec 19 KF 2.2 : Avec Création nouvelle relation (pour réduire la redondance) Liens MONO-valués («agrégation simple») et normalisation «FORMES NORMALES» : 2, 3, FORME 2 NF, 3NF, BCNF LIENS N : 1 (monovalués) 29

Normalisation par l exemple Considérons la relation suivante AVION dont la clé primaire est AV# : AVION AV# AVNOM CAP LOC 100 AIRB 250 TOUL 101 AIRB 250 TOUL 102 AIRB 250 PARIS 103 CAR 100 TOUL 104 B707 150 PARIS 105 B707 150 PARIS PROBLEMES : -une redondance logique - des anomalies de stockage (storage anomalies) - le problème de reconnexion (connection trap) Supposons que l on ait la contrainte C1 suivante dans la compagnie aérienne : «tous les avions de même nom ont la même capacité». Cette contrainte est traduite par le lien N : 1 appelé aussi «dépendance fonctionnelle» suivant : AVNOM CAP N:1 Connection trap AVION1 AV# AVNOM 100 AIRB 101 AIRB 102 AIRB 103 CAR 104 B707 105 B707 AVION2 AVNOM CAP LOC AIRB 250 TOUL AIRB 250 PARIS CAR 100 TOUL B707 150 PARIS AVION3 AV# AVNOM CAP LOC 100 AIRB 250 TOUL 100 AIRB 250 PARIS 101 AIRB 250 TOUL 101 AIRB 250 PARIS............ Projection d AVION en AVION1 et AVION2 et «reconnexion» impossible AVION 3 par Jointure 30

Buts normalisation La normalisation a pour but : - de supprimer la redondance logique, - d éviter les anomalies de stockage, - de résoudre le problème de reconnexions. Lien N:1 ( (Functional dependency) Soit X, Y des groupes d attributs de la relation R, nous avons une dépendance fonctionnelle de X dans Y notée : f : X ------> Y ou X ------ > Y si t1 (X) = t2(x) alors t1(y) = t2(y), avec ti(a) sous-tuple de R correspondant aux attributs A. Pour chaque valeur de X il existe au plus (0 ou 1) une valeur de Y associée (plusieurs valeurs de X peuvent correspondre à la même valeur de X) ; X est appelé «déterminant» et Y «déterminé». EXEMPLE : Les dépendances fonctionnelles traduisent les contraintes existant dans l univers réel : «un pilote habite dans une seule ville» : PL# ADR «un pilote n a qu un seul nom» : PL# ------- PLNOM En conséquence PL# est clé candidate (et primaire) dans la relation PILOTE1 (PL#, PLNOM, ADR) Nous rappelons que la clé primaire est soulignée dans l énoncé des attributs de la relation. 31

NORMALISATION : Théorème de décomposition réversible Ce théorème de décomposition (sans perte d information) est souvent appelé théorème de décomposition de CASEY et DELOBEL R (U) est décomposée (projection) en 2 relations R(U1) et R(U2) Soient R(U) et (X, Y, Z) une partition de U Avec X Y Alors R(U) = R(U1)(X = X)R(U2) avec U1 = X Y (union des attributs intervenant dans la DF) U2 = X Z (union du déterminant, attribut de la jointure, avec les autres attributs de U) Exemple décomposition réversible EXEMPLE : AVION(AV#, AVNOM, CAP, LOC) avec AV# clé primaire et AVNOM CAP Le théorème de décomposition permet d avoir deux relations AVION1 AVNOM CAP AIRB 250 CAR 100 B707 150 AVION2 AV# AVNOM LOC 100 AIRB TOUL 101 AIRB TOUL 102 AIRB PARIS 103 CAR TOUL 104 B707 PARIS 105 B707 PARIS 32

Les Formes normales 2NF, 3NF, BCNF Liens (mono-valués) N:1 ou 1:1 4NF 5NF Liens 1:N ou N:M (multi-valués) INDEPENDANTS Liens 1:N ou N:M (multi-valués) DEPENDANTS avec contrainte de symétrie PRINCIPE DE LOCALITE : un seul concept sémantique dans une relation sinon on décompose 3 NF? Définition de Sharman d une «bonne»relation en 3NF pour les liens N:1 «Une Relation est en 3NF si tout déterminant d un lien N:1 est clé primaire» 33

Liens multi-valués indépendants un pilote conduit plusieurs avions (N:M) un pilote assure plusieurs trajets (VD, VA)(N:M) N M N M TRAJET PILOTE AVION Représentation Winsberg TRAJET PILOTE VOL1 AVION VOL1 (PL#, AV#, VD, VA) en 3NF contient 2 liens N:M indépendants Représentations possibles DISJOINTES PRODUIT VOL1 PL## AV## VD VA CARTESIEN 10 100 @ @ [«indépendance»] 10 101 @ @ 10 102 @ @ VOL1 PL## AV## VD VA 10 @ Nice Toulouse 10 100 Paris Nice 10 @ Paris Nice 10 100 Nice Toulouse 10 101 Paris Nice 10 101 Nice Toulouse 10 102 Paris Nice 10 102 Nice Toulouse 34

Autre représentations ALEATOIRE VOL1 PL## AV## VD VA 10 100 Paris Nice 10 101 @ @ 10 102 Nice Toulouse 10 @ Paris Nice 10 102 @ @ COMPRESSE VOL1 PL## AV## VD VA 10 100 Paris Nice 10 101 Nice Toulouse 10 102 @ @ 4 NF Exemple : VOL11 PL## AV## 10 100 10 101 10 102 VOL12 PL## VD VA 10 Paris Nice 10 Nice Toulouse 4NF 3NF + pas de lien multivalué indépendant 35

Liens multi-valués dépendants EXEMPLE : un pilote conduit des avions sur différents trajets. PILOTE N VOL 1+ AVION M P TRAJET SI Le pilote P conduit l avions A (et) si l avion A est utilisé sur le trajet T VOL2 (et) le trajet T est assuré par le pilote P Alors le pilote P conduit l avion A sur le trajet T VOL2 PL## AV## VD VA 11 102 Madrid Paris 10 100 Paris Madrid 10 100 Madrid Paris 10 101 Madrid Paris 10 101 Paris Madrid Isolement de chaque lien inter-dépendant PROJECT VOL21 PL## AV## 11 102 10 100 10 101 VOL23 AV## VD VA 100 Madrid Paris 100 Paris Madrid 101 Madrid Paris 101 Paris Madrid 102 Madrid Paris VOL23 PL## VD VA 11 Madrid Paris 10 Paris Madrid 10 Madrid Paris 36

5NF et autres NF 5NF : 4NF + isolement des liens multivalués symétriques interdépendants) Opérateur algébrique pour : -décomposition -recomposition - JOIN - PROJET -UNION - SELECT - DIVISION - PROJECT fonctionnelle 2NF 3NF BCNF (3,3)NF - multivaluées 4NF (3,3)NF - De jointure 5NF - - Iso-dépendance - - B-NF Exemples 1 PILOTE N PILENFANT PILOTE (PL#, PILNOM, ADR, SAL) PILENFANT (PL#, E#, PILNOM, ADR, SAL) Un pilote comprend les propriété suivantes - monovaluées : PL#, PLNOM, ADR, SAL - multivaluées : E#, AGE, PRENOM de ses enfants 37

1 COURS Exemple2 N 1 N COURS - OFFERT ETUDIANT Chaque cours comprend un numéro, un intitulé et un ensemble de valeurs indiquant la date et le lieu où le cours est donné. Chaque cours donné comprend une date, un lieu et un ensemble d étudiant suivant le cours. Chaque étudiant comprend un numéro et le nom du diplôme préparé. COURS (C#, INTITULE) COURS-OFFERT (C#, OFF#, DATE, LOCA) ETUDIANT (C#, OFF#, E#, DIPLÔME) Schéma suivant? Exemple 3 VOL1 (VOL#, VD-VILLE, VA-VILLE, HD, HA) PAV (VOL#, PL#, AV#) :1) VOL est une entité «déterminante» (de PILOTE et d AVION) (H1) VOL# (PL#, AV#) Schéma relationnel : VOL (VOL#, AV#, PL#, VD, VA, HD, HA) 38

Exemple 3 VOL est une entité «associative» (lien N:M entre AVION et PILOTE) (H2) VOL# (PL#, AV#) Schéma relationnel : VOL1 (VOL#, VD-VILLE, VA-VILLE, HD, HA) PAV (VOL#, PL#, AV#) Exemple 4 EMPLOYE (E-E##, ENOM, EADR, SAL) PILOTE (E-P##, NBHV, SPEC) avec NBHV : nombre d heures de vol SPEC : spécialité particulière (principale) HOTESSE (E-H##, RANG, ANCIEN.) AVION (AV##, AVNOM, CAP, LOC-VILLE) EQUIPAGE (EQ##; P1#, P2#, H1#, H2#, H3#) VOL (VOL##, EQ##, AV##, VD-VILLE, VA-VILLE, HD, HA) 39

Exemple GENERALISATION EMPLOYE E# ENOM SAL NBHVOL RANG STATUT 1 Pierre 20 KF 2000 - Pilote 2 Serge 30 KF 3000 - Pilote 3 Elodie 15 KF - 1 Hôtesse 4 Martine 20 KF - 3 Hôtesse EMPLOYE E# ENOM SAL STATUT 1 Pierre 20 KF Pilote 2 Serge 30 KF Pilote 3 Elodie 15 KF Hôtesse 4 Martine 20 KF Hôtesse PILOTE E# NBHVOL 1 2000 2 3000 Hotesse E# RANG 3 1 4 3 Double Déclaration : Elimination de valeurs «clé primaire et nulles inapplicables étrangère Généralisation Autre représentation possible EMPLOYE E# STATUT Pour intégrité référentielle PILOTE PL# PLNOM SAL NBHVOL HOTESSE H# HNOM SAL RANG 40

Bon Schéma relationnel Règle finale sur le schéma relationnel R1 : «Deux relations indépendantes ne peuvent avoir la même clé primaire sauf si l une est aussi clé étrangère». Cette double déclaration est nécessaire pour prendre en compte la généralisation et résoudre simplement le problème d interblocage d initialisation. Exercice de transformation de 2NF en BCNF (en appliquant succesivement le théorème de décomposition) VOL (VOL#, Jour, PL#, AV#, TYPE-VOL) -Initialisez par des tuples -Montrez les anomalies de stockage -Normalisez 1) VOL# TYPE-VOL Normalisation 2NF («dépendance partielle sur la clé») 2) PL# AV# Normalisation 3NF («dépendance transitive») 3) PL# Jour Normalisation BCNF 41