Normalisation d’une relation COURS PECA Frédéric Gava (MCF)

Slides:



Advertisements
Présentations similaires
Rappels. Les Systèmes de Gestion de Bases de Données (SGBD) L'algèbre relationnelle.
Advertisements

Le modèle relationnel Frédéric Gava (MCF)
Access Frédéric Gava (MCF)
Material/Sources: Daniel Bardou, Julie Dugdale &
Material/Sources: Daniel Bardou, Julie Dugdale &
Un modèle conceptuel Le modèle Entité-Association Frédéric Gava (MCF)
Excel avancé Exercices corrigés Frédéric Gava (MCF)
Classification et prédiction
Classification et prédiction
Modèle Entités-Associations
Le Modèle Relationnel (Chapitre 4)
Le Modèle Logique de Données
Algèbre relationnelle
La base de données : le modèle relationnel.
Le modèle logique (Relationnel) de données
Optimisation de Requêtes
Programme Introduction aux BD et aux SGBD Le modèle relationnel
Le modèle entité / associations MCD (Modèle Conceptuel des Données)
Initiation aux bases de données et à la programmation événementielle
Apprendre à se servir d’un tableur
Bases de Données Plan du cours : Année : 2009/10 A - Généralités :
Initiation au système d’information et aux bases de données
Les requêtes La Requête est une méthode pour afficher les enregistrements qui répondent à des conditions spécifiques. La requête est donc un filtre.
Initiation au système d’information et aux bases de données
Initiation à la conception des systèmes d'informations
Développement d’applications web
Contrôles d'accès aux données
Eléments d ’algèbre relationnelle
B.Shishedjiev - Modèle relationnel
Initiation à la conception de systèmes d'information
Initiation aux bases de données et à la programmation événementielle
Chap 4 Les bases de données et le modèle relationnel
1.2 COMPOSANTES DES VECTEURS
Les formes normales.
Conception d’une Base de Données Passage au Schéma Relationnel
Modélisation de données (modèle relationnel)
L’utilisation des bases de données
Modèle Logique de Données
Conception de BD relationnelle
SYSTEMES D’INFORMATION
Bases de Données Avancées: Base de données relationnelles
MODELE RELATIONNEL concept mathématique de relation
1.Un rang de données multicolores 2. Deux permutations des n premiers entiers 3. b permutations des k premiers entiers 4. Choix de n points dans [0,1]
3.2 PRODUIT VECTORIEL Cours 7.
Cours de Base de Données & Langage SQL
Cours N°2 Base de Données & Langage SQL
Normalisation. RELATION NORMALE Une relation est dite normale si aucun des domaines qui la composent n'est lui-même une relation. En d'autres termes,
Initiation aux bases de données et à la programmation événementielle
Initiation à la conception des systèmes d'informations
Michel Tollenaere SQL et relationnel ENSGI Cours MSI 2A Relationnel et SQL version 1.4 du 25 septembre 2007 (ajout jointures) 1 Modèle relationnel Historique.
2.2 PRODUIT SCALAIRE ET CALCUL D’ANGLES
Chapitre 3 La normalisation du modèle relationnel
Bases de données   J-L Hainaut Partie 1 - Comprendre les bases de données Partie 2 - Utiliser les bases de données Partie 3 - Développer une base.
Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Algorithmes Parallèles et Systèmes Réparties
Conception d’un diagramme EA Frédéric Gava (MCF) LACL, bâtiment P2 du CMC, bureau 223 Université de Paris XII Val-de-Marne 61 avenue.
DOSSIER G10 – La base de données Relationnelle
Initiation aux SGBD Frédéric Gava (MCF)
Notion de Dépendance Fonctionnelle (DF)
INTRODUCTION AUX BASES DE DONNEES Modèle entités-relations
Initiation aux bases de données et à la programmation événementielle
LES FORMES NORMALES Les trois premières formes normales ont pour objectif de permettre la décomposition de relations sans perdre d’informations. Elles.
INTRODUCTION AUX BASES DE DONNEES Dépendances et normalisation
INTRODUCTION AUX BASES DE DONNEES Base et métabase
INTRODUCTION AUX BASES DE DONNEES Dépendances et normalisation Exercices Université Panthéon-Assas Paris 2 L2 Economie-Gestion.
Introduction Module 1.
Cours 11 Entrepôts de données
Les bases de données Séance 3 Construction du Modèle Conceptuel de Données.
Cours de Systèmes de Gestion de Données - Licence MIAGE – 2003/20041 Cours n°2 La conception d ’un schéma relationnel (suite) Chantal Reynaud Université.
Schéma de base de données Présentation. Conception du schéma logique  Transformation du schéma conceptuel en structures de données supportées par les.
Transcription de la présentation:

Normalisation d’une relation COURS PECA Frédéric Gava (MCF) gava@univ-paris12.fr LACL, bâtiment P2 du CMC, bureau 223 Université de Paris XII Val-de-Marne 61 avenue du Général de Gaulle 94010 Créteil cedex

Introduction Lors de la définition d’un schéma conceptuel dans le modèle relationnel, le choix des relations est primordiale. Ce choix doit être guidé par les dépendances qui existent entre les données, dans la réalité et qui sont des contraintes que doivent vérifier les données effectivement dans la base. Exemple : Produit(NºP, NomP, Couleur, Poids) Fournisseur(NºF, NomF, Adresse, Tél) Livraison(NºF, NºP,Quantité, Date, Tél) DF = NºP{NomP, Couleur, Poids} NºF{NomF, Adresse, Tél} NºF, NºP,DateQuantité, Tél Problèmes : Si un fournisseur n’a pas fait de livraison, on ne connaît pas son nº de tél S’il fait plusieurs livraisons, le nº de tél sera stocké plusieurs fois S’il faut changer de nº de tél, il faut le faire autant de fois qu’il apparaît dans la table des livraisons. Ce schéma est mal défini

Définitions (1) Définition : Normaliser une relation consiste à la représenter sous une forme qui respecte certains critères afin de s’assurer de l’intégrité des données La normalisation est un moyen fondamentale mis à la disposition du concepteur de la base pour éviter un bon nombre d’erreur Définition : Une dépendance est une contrainte exprimé par une règle qui doivent vérifier les données pour que la BD soit dans un état cohérent. Exemple : un salarié travail dans un et un seul service. Nous avons 3 sortes de dépendance Fonctionnelle (forme normale 1, 2 et 3) Multi-valué (forme norme 4) Jointure (forme normal 5) Définition : Une DF traduis le fait qu’à une valeur d’une donnée, on associe dans une relation, une valeur au plus d’une autre donnée à un instant considéré

Décomposer une relation (1) Étant donnée une relation non satisfaisante (répétitions, pbs d’intégrités etc.) on peut trouver un sous-ensemble de sous-relation satisfaisant et qui décrivent les mêmes informations Exemple : NOM STATUT AGE GAVA MCF 26 HAINS Pr 40 NOM STATUT AGE COURS GAVA MCF 26 Parallélisme HAINS Pr 40 Sécurité Sémantique NOM COURS GAVA Parallélisme HAINS Sécurité Sémantique

Décomposer une relation (2) On dira qu’une décomposition est « bonne » si on peut retrouver les informations de la relation initiale à partir des sous-relations Pour retrouver les informations d’une relation à partir des relations « filles », on utilisera l’opérateur de jointure naturelle

Jointure naturelle L’opération de jointure naturelle permet de composer des sous-relations pour en obtenir une plus grosse relation : R1(X,Y)R2(Y,Z)=R(X,Y,Z) C’est donc un lien entre plusieurs tables disposant de colonnes commune sémantiquement Chaque ligne de R est fabriquée avec une ligne de R1 et une ligne de R2 de telle sorte que les valeurs sur les attributs de Y soient identiques dans les ligne de R1 et de celle de R2 Elle permet donc de recomposer une relation qui avait été préalablement décomposée (voir forme normale) Une décomposition est dite « sans perte d’informations » si les jointures naturelles des sous-relations redonne la relation initiale

Jointure et produit cartésien concaténation de toutes les lignes de la première table avec toutes les lignes de la seconde table. Exemple Jointure : lien entre 2 tables disposant d’au moins une colonne commune (sémantiquement). On associe a chaque ligne de la première table toutes les lignes de la seconde table Table 1 Table 2 Produit a x a,x b y a,y c b,x b,y c,x c,y Table 1 Table 2 Jointure a1,b1 b1,c1 a1,b1,c1 a2,b1 b2,c2 a2,b1,c1 a3,b2 b3,c3 a3,b2,c2

Exemple Jointure R1 = R2 = R1R2 = Nom Prénom Numéro avocat Collard Bebert 1 Vergès Jacquy 2 R1 = Numéro avocat Procès Résultat 1 HLM Perdu 2 Serial Killer Gagné Outreau Du siècle R2 = Nom Prénom Numéro avocat Procès Résultat Collard Bebert 1 HLM Perdu Vergès Jacquy 2 Serial Killer Gagné Outreau Du siècle R1R2 =

Différentes jointures Définition : une équi-jointure est une jointure dont la condition est une comparaison d’égalité de 2 colonnes appartenant aux 2 tables Définition : une theta-jointure est est une jointure dont la condition est une comparaison autres que l’égalité de 2 colonnes appartenant aux 2 tables Définition : une jointure multiple met en relation plus de 2 tables. Définition : une auto-jointure est une jointure d’une table avec elle-même

Définitions (2) Définition : Une DF est élémentaire si un sous-ensemble de la clé n’est pas source de la DF. Exemple : A, B, CD est élémentaire s’il existe pas les DF A, BD ; A, CD ; B, CD et aussi AD ; BD ; CD Définition : Une DF AB est directe (non transitive) s’il n’existe pas un autre attribut C tel que AC et CB Définition : Une relation est normalisée si aucun attribut n’est présent plus d’une fois dans la relation et si aucun attribut n’est lui-même décomposable en d’autres attributs et qu’il n’est pas lui-même une relation Théorème de Heath : Une relation R(X,Y,Z) est décomposable SPI en 2 sous-relations R1(X,Y) et R2(X,Z) s’il existe pour R1 une DF XY ou pour R2 une DF X Z (c’est le cas si X est une clé de R1 ou de R2)

Formes normales 1 Toute relation normalisée est en FN1 R(N°_Client, N°_Article, Nom_Client, Nom_Article) N°_ClientNom_Client ; N°_ArticleNom_Article ; N°_Client, N°_ArticleNom_Article Table suivante : Il faudrait plutôt les relations suivantes : Client(N°,Nom) Article(N°, Nom) Commande(N°_Article, N°_Client) 23 A5 Fred Chaise A6 Table 26 Bob

Forme normal 2 Une relation est en FN2 si Elle est en FN1 si tout attribut n’appartenant pas à une clé dépend élémentairement d’une clé Suffisant ? R(N°_Client, Nom_Client, N°_Repr, Nom_Repr) DF= N°_ClientNom_Client, N°_Repr, Nom_Repr ; N°_ReprNom_Repr Repr(N°_Repr, Nom) Client(N°_Client, Nom, N°_Repr) 25 Fred R1 Nicole 26 Patrick

Exemple Fournisseur(Nom, Adresse, Tél, NomProduit, Prix) FN2 ? Nom, NomProduitPrix, Adresse, Tél NomAdresse FN2 ? ok pour Nom, NomProduitPrix par contre Nom, NomProduitAdresse n’est pas élémentaire car NomAdresse donc que FN1 Décomposition possible et SPI d’après théorème de Heath Fournisseur(Nom, Adresse, Tél) Catalogue(Nom_Fournisseur, NomProduit, Prix)

Forme normal 3 Une relation est en FN3 si Elle est en FN2 (donc en FN1) Tout attribut n’appartenant pas à une clé dépend de façon direct d’une clé Définition : un ensemble d’attribut X est une clé candidate d’une relation R si et seulement si {X}+=R Remarque : lorsqu’une relation est en FN3 aucune DF n’est issue d’un sous-ensemble de la clé et aucune DF n’est issue d’un attribut non clé vers un autre

Exemple Fournisseur(Nom, Pays, Ville) NomVille, Pays VillePays (pas de ville homonyme dans des pays différents) FN2 ? Oui car l’attribut Nom est la seule clé FN3 ? Non car NomPays n’est pas direct (on peut passer par Ville). Il y a donc des répétitions de noms de pays. Décomposition SPI Fournisseur(Nom, Ville) Géographie(Ville, Pays)

Forme normal 4 Aussi appelé Forme normal de Boyse-Codd Une relation R est en en FNBC si tout attribut dépend de façon élémentaire et direct d’une clé Remarque : quand une relation n’a qu’une clé candidate (donc qu’une unique clé appelé atomique), alors si elle est en FN3 cela implique qu’elle est aussi en FNBC Remarque : FNBCFN3FN2FN1 Remarque : Il existe une FN5 mais nous la verrons pas dans ce cours (trop rare)

Exemple Catalogue(N°F, NomF, NomP, Prix) 2 clés (N°F, NomP) et (NomF, NomP) DF : N°F, NomPNomF,Prix NomF, NomPN°F, Prix N°FNomF NomFN°F FN3 ? Oui car seul Prix n’appartient pas à une clé et dépend élémentairement et directement de 2 clés FNBC ? Non car NomF ne dépend pas élémentairement d’une clé : N°F,NomPNomF n’est pas élémentaire car il existe et N°FNomF et NomF ne dépend pas de l’autre clé Décomposition possible Fournisseur(N°F, NomF) avec N°FNomF et si l’on veut NomFN°F Catalogue(N°F, NomP, Prix) avec N°F, NomPPrix

Exemple complet La relation Place(N°Etu, Matière, Rang) représente le rang de chaque étudiant par matière. On suppose qu’il n’y a pas d’ex-aequo. Nous avons les DF suivantes : Rang, Matière  N°Etu (pas d’ex-aequo) N°Etu, Matière  Rang 2 clés candidates : (Rang, Matière) et (N°Etu, Matière) Quelles sont les formes normales vérifiées ? Tout attribut appartient à une clé donc c’est en FN3 Les 2 DF sont directes et élémentaires avec des membres gauches (de la DF) qui sont des clés donc la relation Place est en FNBC

Version simplifiée (pratique) On ne touche pas à la définition de FN1 Quand on n’a qu’une clé (clé primaire ou atomique) Définition d’une relation R en FN2 : La relation R est en FN1 Toutes les DF issues de la clé sont élémentaires Définition d’une relation R en FN3 : La relation R est en FN2 Toutes les DF issues de la clé sont directes Pas de FNBC

Atelier Pour la BD suivante : R1(N°_Client, N°_Produit, QtComm, Nom_Produit) R2(N°_Commande, N°_Produit, QtComm) R3(N°_Client, Nom_Client, Nom_Repr) R4(N°_Produit, Nom_Produit, N°_Atelier, Nom_Chef_Atelier) R5(N°_Client, Nom_Client, N°_Repr) R6(N°_Produit, N°_Fournisseur, Prix, Nom_Fournisseur) Trouvez les clés externe et déduisez les DF Trouvez les formes normales des relations suivantes

Correction Atelier N°_ProduitNom_Produit donc pas élémentaire donc FN1 N°_Commande, N°_ProduitQt_Commandé donc FN3 N°_ClientNom_Client, Nom_Repr donc FN3 N°_ProduitNom_Produit et N°_AtelierNom_Chef_Atelier donc indirect donc FN2 N°_ClientNom_Client, Nom_Repr et N°_ReprNom_Repr donc indirect donc FN2 N°_ProduitPrix et N°_FournisseurNom_Four donc pas élémentaire donc FN1

Société de Tourisme (1) Une société de tourisme possède une vingtaine de centres sur le territoire français et une douzaine dans d’autres pays. Cette société a implanté une BD dont vous trouverez la structure ci-dessous : Cette BD a, entre autre, pour but de mieux cibler les activités pratiquées par les clients dans les centres Un centre est ouvert pendant un certain nombre de semaines de l’année suivant son implantation Un animateur est en général un saisonnier, il n’anime qu’une seule activité et est rattaché à un seul centre Un responsable d’activité est un permanent de la société. Il peut-être responsable de plusieurs activités et travaille suivant les saisons dans différents centres. Cependant, un responsable d’une activité est responsable de cette activité dans tous les centres où il travaille (lorsque cette activité existe) Donner et justifier les formes normales des relations

Société de Tourisme (2) Client(N°, Nom, Adresse, Age) Inscription(N°_client, N°_Centre, N°_Semaine, N°_activité, N°_animateur) Animateur(N°_Animateur, N°_Activité, N°_Responsable, Nom_Responsable, Adresse_Responsable, N°_Centre, N°_SS, Nom) Centre(N°, Nom, Adresse) Responsable(N°, N°_SS, Ancienneté, Nom, Adresse) Employé(N°_SS, Nom, Adresse, Date_Naissance) Activité(N°, Nom) Fonctionnement(N°_Centre, Type_Appart, N°_Semaine) Séjour(N°_Client, N°_Centre, N°_Semaine, Type_Appart) Responsabilité(N°_Responsable, N°_Centre, N°_Activité) Statistique(N°_Responsable, N°_Centre, N°_Activité, Nombre_Heures_Effectués)

Correction Tourisme FN3 FN2 FN1