IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Merise Discussion :

[Normalisation]Couverture minimale et dépendances fonctionnelles


Sujet :

Merise

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 18
    Points : 14
    Points
    14
    Par défaut [Normalisation]Couverture minimale et dépendances fonctionnelles
    Bonsoir, j'ai du mal à comprendre certaines étapes dans le processus de normalisation d'une relation. Voici les points à éclaircir:
    A quoi sert exactement une couverture minimale des DF ?
    A quelle étape de la normalisation intervient elle ?
    Quelle différence y a t il avec la fermeture F+ ?
    Comment savoir si une décomposition est sans perte de dépendances fonctionnelles ?
    Pour illustrer les explications voici une relation avec dépendances fonctionnelles:
    R(ABCD)
    AB -> C
    B -> D
    C -> A

    Merci de m'aider à comprendre ces concepts.

  2. #2
    Membre éprouvé Avatar de Oishiiii
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2009
    Messages
    508
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Août 2009
    Messages : 508
    Points : 1 107
    Points
    1 107
    Par défaut
    Bonjour,

    Je ne suis pas du tout à l'aise avec la normalisation mais comme personne n'est intervenu je vais essayer de répondre.

    Citation Envoyé par wotan2009 Voir le message
    A quoi sert exactement une couverture minimale des DF ?
    La couverture irréductible (ou minimale) est l’ensemble minimum des dépendances fonctionnelles d'une relation.

    Définition de Chris Date dans son livre Introduction aux bases de données:
    Un ensemble de FD est irréductible si (a) chaque FD de l'ensemble a un membre droit se réduisant à un singleton, (b) aucune FD de cet ensemble ne peut être enlevée sans changer la fermeture de l'ensemble, et (c) aucun attribut ne peut être enlevé du membre droit d'une FD de l'ensemble sans changer la fermeture de l'ensemble.

    Je crois qu'il est nécessaire de connaitre cet ensemble irréductible de DF, pour décomposer une relation non normalisée en plusieurs relations normalisées sans perte d'information.

    Citation Envoyé par wotan2009 Voir le message
    Quelle différence y a t il avec la fermeture F+ ?
    Une définition toujours par Chris Date:
    L'ensemble de toutes les FD impliquées par un ensemble donné S de plusieurs FD est appelé fermeture de S, et noté S+.

    Donc la fermeture S+ est composée de l'ensemble des FD de S (connues) ainsi que l'ensemble des FD que l'on déduis de S en utilisant les axiomes d’Armstrong (Transitivité, Augmentation, etc).

    Il semblerait que déterminer la fermeture S+ de l'ensemble des FD de S permet ensuite d'en déduire l'ensemble irréductible de dépendances, ce qui est utile pour la normalisation.

    Citation Envoyé par wotan2009 Voir le message
    A quelle étape de la normalisation intervient elle ?
    La normalisation en 2NF, 3NF, BCNF et plus n'est pas obligatoire mais fortement recommandée.
    Pour les tables d'une base de données, cela doit dépendre du niveau de compétence de celui qui la pratique, mais je pense que la normalisation doit souvent intervenir après avoir déduis le MLD à partir du MCD (Merise).

    Citation Envoyé par wotan2009 Voir le message
    Comment savoir si une décomposition est sans perte de dépendances fonctionnelles ?
    Pour vérifier qu'une décomposition est sans perte d'information, il faut reconstruire la relation d'origine, non normalisée, en effectuant la jointure des relations découlants de la normalisation.



    Je n'arrive pas à trouver la fermeture, ni l'ensemble irréductible des DF de votre relation, mais j'ai essayé.
    Donc avec la relation suivante: R (A, B, C, D)
    Et l'ensemble S des DF:
    { A, B } -> C
    B -> D
    C -> A

    La fermeture S+ :
    1) { A, B } -> C (donné)
    2) A -> C (1 Décomposition)
    3) A -> B (1 Décomposition)
    4) B -> D (donné)
    5) A -> D (3, 4 Transitivité)
    6) C -> A (donné)

    Les FD 2 et 6 me posent problème, je ne sait pas quoi en penser, il y a comme une boucle. Est-ce que c'est normal, et le couple d'attributs {A, C} serait une superclé ?
    J'aurai continué avec:
    7) { C, B } -> { A, B} (2 Augmentation)
    8) { C, B } -> C (7, 1 Transitivité)
    9) B -> C (Décomposition)

    Et donc la couverture minimale:
    A -> C
    A -> B
    B -> D
    A -> D
    C -> A
    B -> C

    Si c'est bon, je dirai que l'attribut A est une clé candidate puisqu'il détermine tous les attributs de la relation:
    A -> B
    A -> C
    A -> D
    Et que {A, C} serait une superclé.

    Voilà ce que je peux en dire pour le moment, en attendant la réponse de quelqu'un de plus expérimenté que moi (pour corriger les bêtises ).

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 18
    Points : 14
    Points
    14
    Par défaut
    Bonjour et je te remercie de ta réponse et d'avoir donné quelques définitions.
    Voici ou j'en suis:
    Fermeture:
    AB -> C (donné) (1)
    B -> D (donné) (2)
    C -> A (donné) (3)

    AB -> A par transitivité (1) et (3)
    BC -> AB par augmentation (3)
    BC -> C par transitivité avec (1)
    AB -> AD par augmentation (2)
    ABD -> CD par augmenation (1)
    CD -> AD par augmenation (3)
    ABD -> AD par transitivité
    BC -> CD par augmentation (2)
    BC -> AD par augmentation (3)

    Couverture minimale à partir de la fermeture par décomposition puisque le membre de droite doit etre un singleton:
    AB -> A
    BC -> A
    BC -> B
    BC -> C
    AB -> D
    ABD -> C
    ABD -> D
    CD -> A
    CD -> D
    ABD -> A
    BC -> D

    Donc j'ai du rater quelque chose puisque je me retrouve avec une couverture plus grande que la fermeture.
    Comment simplifier la couverture ?
    Comment procéder efficacement pour ne pas oublier de dépendances en faisant la fermeture ?

    Merci.

  4. #4
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en bases de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8 100
    Points : 31 536
    Points
    31 536
    Billets dans le blog
    16
    Par défaut
    Bonjour,

    @wotan2009

    Je n’ai pas le temps de répondre pour le moment, je verrai cela dans la soirée. En attendant, voici quelques liens en rapport avec le sujet qui vous occupe :

    Anonymouse
    http://www.developpez.net/forums/d65...ture-minimale/

    johnny3
    http://www.developpez.net/forums/d59...ndre-corriges/

    Boubou382002
    http://www.developpez.net/forums/d64...rmes-normales/

    SimPlop
    http://www.developpez.net/forums/d83...me-darmstrong/


    feuilledotone
    http://www.developpez.net/forums/d81...ong-attributs/

    switch1
    http://www.developpez.net/forums/d75...onctionnelles/

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 18
    Points : 14
    Points
    14
    Par défaut
    Bonsoir, j'ai lu vos réponses dignes d'un vrai cours, mais il y a quand même plusieurs choses qui m'échappent. Oui je suis long .
    Nous avons un ensemble de DF donné.
    A partir de cet ensemble de départ on en déduit la fermeture avec l'aide des axiomes d'armstrong.
    Ensuite on cherche à trouver la couverture minimale toujours avec l'aide des axiomes d'armstrong.
    On doit donc retomber sur l'ensemble de départ, d'ou mon incompréhension. A quoi sert toute cette démarche, ne pourrait on pas partir de l'ensemble de DF de départ, qui me parait être une couverture minimale ?
    Une autre chose m'échappe au niveau de la fermeture. Avec les axiomes d'armstrong on peut reconstruire la relation en entier et avoir ABCD -> A, ABCD -> B, ABCD -> C, ABCD -> D. Je ne vois pas quelle limite se donner dans la résolution de la fermeture.



    Merci.

  6. #6
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en bases de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8 100
    Points : 31 536
    Points
    31 536
    Billets dans le blog
    16
    Par défaut
    Bonsoir,


    Citation Envoyé par wotan2009 Voir le message
    A quelle étape de la normalisation intervient elle ?
    En pratique, disons que le processus de normalisation intervient dès que l’on définit la structure des entités-types du Modèle Conceptuel de Données (MCD). Mais c’est surtout lorsqu’a lieu la transformation des entités-types et associations-types en tables (production du modèle logique de données, en abrégé MLD), que notre vigilance doit être extrême, car certaines anomalies ont pu ne pas être débusquées au sein du MCD. La vérification du respect des formes normales est faite sur la base des règles de gestion des données établies par les informaticiens (chargés de la partie fonctionnelle), en collaboration avec les utilisateurs. On repère parmi les règles de gestion des données celles qui notamment peuvent être traduites sous forme de dépendances fonctionnelles.

    Par exemple, supposons que l’on ait défini une table Employé et qu’il existe les règles de gestion :
    (RG1) Un employé est identifié par un matricule,
    (RG2) Un employé a un nom et un seul,
    (RG3) Au fil du temps, un employé a pu être affecté successivement à plusieurs départements dans l’entreprise,
    (RG4) A une date donnée, un employé ne peut (n’a pu) être affecté qu’à un département.
    Lorsqu’on définit l’en-tête de la table EMPLOYE :
    EMPLOYE {Matricule, Nom, Departement, DateAffectationActuelle, ...}
    on lui associe les dépendances fonctionnelles :
    Matricule Nom
    Matricule Departement
    Matricule DateAffectationActuelle
    La normalisation a surtout pour objet d’éliminer les « mauvaises » redondances et les difficultés de mise à jour des tables. Si l’en-tête d’une table T ne respecte pas les énoncés constituant ce que l’on appelle les formes normales, cela veut dire qu’elle peut être décomposée en deux tables T1 et T2 (qui doivent bien sûr à leur tour être décomposées si les formes normales ne sont toujours pas respectées).

    Il est évident que la vérification du respect des formes normales doit intervenir avant que les développements ne commencent, car les programmes manipulant une table T non normalisée devront être modifiés si T est remplacée par ses projections T1 et T2 (à moins de définir une vue qui soit la jointure naturelle de T1 et T2). Je rappelle à cette occasion que la normalisation donne lieu à une décomposition sans perte de T en T1 et T2, c'est-à-dire que la jointure naturelle de T1 et T2 est égale à T. Ceci en vertu du théorème de Heath (1971) :
    Soit la table T {A, B, C} dans laquelle A, B et C sont des ensembles d’attributs de T. Si T satisfait à la dépendance fonctionnelle A B, alors T est égale à la jointure de ses projections sur {A, B} et {A, C}.

    Rôles de la fermeture et de la couverture minimale

    Calculer fa fermeture T+ d’une table T a pour objet de fournir la liste complète des dépendances fonctionnelles associées à T. Pourquoi ? Considérez l’énoncé de la forme normale de Boyce-Codd (BCNF), par exemple celui qui est fourni par Chris Date dans son célèbre An introduction to Databases Systems (près de huit cent mille exemplaires vendus) :
    A relvar is in BCNF if and only if every nontrivial, left-irreducible FD has a candidate key as its determinant.
    Que l’on peut traduire par :
    Une relvar est en BCNF si et seulement si le déterminant de chaque dépendance fonctionnelle non triviale et irréductible à gauche, constitue une clé candidate de la relvar.
    Le terme relvar (abréviation de variable relationnelle, c'est-à-dire variable dont les valeurs sont des relations) peut être remplacé en SQL par celui de table (pour faire court).
    Le déterminant est la partie gauche d'une DF.
    Une dépendance fonctionnelle est triviale quand le dépendant (sa partie droite) est un sous-ensemble (non strict) du déterminant. Exemples de DF triviales :
    DF1 : {Matricule, Departement} {Departement}
    DF2 : {Departement} {Departement}
    Par ailleurs, s’il existe la dépendance fonctionnelle :
    DF3 : {Matricule} {Departement}
    Alors DF1 est réductible à gauche, c'est-à-dire qu’elle peut être remplacée par DF3.

    Ce qui est important de noter ici c’est que dans l’énoncé de la BCNF figure l’adjectif « chaque », ce qui veut dire qu’avant de jurer qu’une table est en BCNF, il est nécessaire de disposer de l’ensemble des dépendances fonctionnelles (non triviales et irréductibles à gauche) et vérifier que le déterminant de chacune d’elles répond à la définition du concept de clé candidate.

    Rappel : Un sous ensemble K d’attributs d’une table T est une clé candidate si, pour chaque attribut A de T, on vérifie :
    K {A}
    et s’il n’existe pas de sous-ensemble strict K’ de K vérifiant à son tour la dépendance fonctionnelle :
    K’ {A}.

    On doit donc fournir la liste complète des dépendances fonctionnelles associées à T, liste que l’on appelle fermeture T+ de la table T à expertiser. De cette liste, on évacuera les dépendances fonctionnelles triviales et on réduira les dépendances fonctionnelles qui sont réductibles à gauche. Pour faire bonne mesure, on éliminera les dépendances fonctionnelles qui peuvent l’être : les dépendances fonctionnelles encore présentes constitueront ce qui peut être appelé couverture minimale de T (ou de préférence, couverture irréductible).

    Pour chaque dépendance fonctionnelle subsistant, alors on vérifie si son déterminant constitue une clé candidate.

    Je note en passant la remarque que vous faites dans votre dernier message :
    ...ne pourrait on pas partir de l'ensemble de DF de départ, qui me parait être une couverture minimale ?
    Votre question est tout à fait légitime, mais il faut progresser en tenant compte du fait que les théoriciens ont fourni des algorithmes de calcul de couverture minimale qui mettent tous en jeu la fermeture, et comportent une partie qui se ramène à ceci :
    Soit une relvar R. Appelons F l’ensemble donné des dépendances fonctionnelles de R et F+ la fermeture correspondante. Appelons I l’ensemble des DF d’une couverture minimale de R (en théorie R peut comporter plus d’une couverture), et I+ la fermeture correspondante. Les ensembles F et I sont équivalents si et seulement si chaque DF appartenant à F appartient aussi à I+ et chaque DF appartenant à I appartient aussi à F+.
    Dans ces conditions, Si I est strictement inclus dans F, autant I est candidat à être couverture minimale, autant ça n’est pas le cas de F.

    Heureusement pour nous, il n’est pas nécessaire de calculer I+ et F+, nous en reparlerons un peu plus loin.


    Citation Envoyé par wotan2009 Voir le message
    Pour illustrer les explications voici une relation avec dépendances fonctionnelles:
    R(ABCD)
    AB -> C
    B -> D
    C -> A
    Tout d’abord, si A, B, C et D sont des sous-ensembles d’attributs de R, on écrira :
    R {A, B, C, D}
    Les accolades sont là pour montrer que R est un ensemble (au sens de la théorie des ensembles).

    Si A, B, C et D représentent des attributs, alors on écrira :
    R {A, B, C, D}
    {A, B} {C}
    {B} {D}
    {C} {A}
    Toujours en utilisant des accolades, car les dépendances fonctionnelles sont des propositions sur des sous-ensembles.

    Je reprends maintenant votre remarque : « ne pourrait-on pas partir de l'ensemble de DF de départ, qui me parait être une couverture minimale ? »

    Supposons désormais que A, B, C et D représentent des attributs et appelons F l’ensemble des dépendances fonctionnelles :
    DF1 : {A, B} {C}
    DF2 : {B} {D}
    DF3 : {C} {A}

    On part effectivement de cet ensemble F et on ne calcule pas F+, mais il reste à démontrer que F est irréductible et constitue donc une couverture minimale.

    Pour y parvenir, on utilise le procédé suivant comportant trois étapes :

    Étape 1

    Transformer F de telle sorte que chaque partie droite de DF soit singleton (mono-attribut), par application de la règle de décomposition (inférée des règles d’Armstrong de réflexivité et transitivité). Dans l’exemple, F est déjà conforme, donc il n’y a pas de décomposition à effectuer.

    Étape 2

    Réduire la partie gauche des DF quand c’est possible. DF2 et DF3 ne sont pas concernées car leur partie gauche est singleton. Concernant DF1 :
    Peut-on remplacer {A, B} {C} par {A} {C} et/ou {B} {C} ?

    Il faut d’abord que nous définissions une fermeture particulière, celle d’un ensemble d’attributs Z. On appelle fermeture Z+ de Z par rapport à F, l’ensemble des attributs de R dépendant fonctionnellement de Z.

    Ainsi, la fermeture {A, B}+ de {A, B} par rapport à F est {A, B, C, D} car :
    DFa : {A, B} {A}
    DFb : {A, B} {B}
    DFc : {A, B} {C}
    DFd : {A, B} {D}
    En effet, DFa est vérifiée, par application de la 1re règle d’Armstrong (réflexivité).
    DFb est vérifiée pour la même raison.
    DFc est vérifiée (c’est la dépendance fonctionnelle DF1 donnée initialement).
    DFd est vérifiée par application à DF2 de la règle d’augmentation puis celle de décomposition.

    Je ne décris pas à nouveau la méthode telle qu’elle est décrite dans la discussion avec Boubou382002 ou celle avec Anonymouse, mais dont l’efficacité est radicale et surtout qui nous permet d'éviter de manipuler les règles d’Armstrong (merci à Philip Bernstein et à ses collègues !)

    Notons au passage que {A, B} constitue une clé candidate de R puisque cette paire détermine fonctionnellement chaque {attribut} de R.

    Si {A} {C}, alors la fermeture {A}+ de {A} par rapport à F est nécessairement égale à la fermeture {A}+ de {A} par rapport à F’, nouvel ensemble ainsi composé :

    DF1’ : {A} {C}
    DF2 : {B} {D}
    DF3 : {C} {A}

    Or la fermeture {A}+ de {A} par rapport à F est égale à {A}, tandis que la fermeture {A}+ de {A} par rapport à F’ est égale à {A, C}.

    En conséquence de cette inégalité, {A, B} {C} ne peut pas être remplacé par {A} {C}.

    De la même façon, {A, B} {C} ne peut pas être remplacé par {B} {C}, car la fermeture {B}+ de {B} par rapport à F est égale à {B, D}, tandis que la fermeture {B}+ de {B} par rapport à F’ (où DF1’ est remplacée par {B} {C}) est égale à {A, B, C, D}.

    N.B. Comme je le précise dans mon message du 08/02/2010, 02h36 J'avais d'abord écrit ceci, ce qui n'est pas tout à fait exact :
    Si {A} {C}, alors la fermeture {A, B}+ de {A, B} par rapport à F est nécessairement égale à la fermeture {A}+ de {A} par rapport à F’, nouvel ensemble ainsi composé :
    DF1’ : {A} {C}
    DF2 : {B} {D}
    DF3 : {C} {A}
    Or {A}+ = {A}, tandis que, comme on l’a vu, {A, B}+ = {A, B, C, D}. {A}+ n’égale pas {A, B}+ :
    {A, B} {C} ne peut pas être remplacé par {A} {C}.
    De la même façon, {A, B} {C} ne peut pas être remplacé par {B} {C}, car {B}+ = {B, D} et ainsi n’égale pas {A, B}+.
    Étape 3

    Éliminer de F toute DF qui peut l’être, à condition là encore que la fermeture I+ du nouvel ensemble de DF I obtenu soit tel que I+ = F+.

    Supposons que l’on veuille réduire F à I dont DF1 ne ferait pas partie (I = F - [DF1}) :
    DF2 : {B} {D}
    DF3 : {C} {A}
    A quoi est alors égal {A, B}+ par rapport à I ?
    On montre que {A, B}+ par rapport à I est égal à {A, B, D} qui est différent de {A, B}+ par rapport à F, c'est-à-dire {A, B, C, D}. DF1 n’est pas inférable et doit être conservée.

    Essayons de nous passer de DF2. I est alors composé de DF1 et DF3. B+ par rapport à F = {B, D} et B+ par rapport à I = {B} : il y a différence et l’on doit conserver DF2.
    Essayons de nous passer de DF3. I est alors composé de DF1 et DF2. C+ par rapport à F = {A, C} et C+ par rapport à I = {C} : il y a différence et l’on doit conserver DF3.

    Le travail en en trois étapes est terminé. Il s’avère que F est irréductible et constitue donc l’unique couverture minimale pour la relvar R. Ainsi, votre intuition était bonne, mais encore fallait-il prouver.


    Citation Envoyé par wotan2009 Voir le message
    Une autre chose m'échappe au niveau de la fermeture. Avec les axiomes d'armstrong on peut reconstruire la relation en entier et avoir ABCD -> A, ABCD -> B, ABCD -> C, ABCD -> D. Je ne vois pas quelle limite se donner dans la résolution de la fermeture.
    Que voulez-vous dire ? Du point de vue théorique, {A, B, C, D} est une surclé mais pas une clé candidate (seules les paires {A, B} et {B, C} sont des clés candidates). En outre, la fermeture F+ de R est constituée — par définition — de l’ensemble des DF inférables de l’ensemble initial F donné de DF. La limite supérieure du nombre de DF éléments de F+ est égale à 2 puissance 2n soit 256 pour les 4 attributs, d’où les techniques inventées par les théoriciens (Bernstein et ses copains) pour éviter d’avoir à en fournir la liste, techniques reposant essentiellement d’une part sur le calcul de la fermeture Z+ d’un ensemble Z d’attributs de R par rapport à l’ensemble F donné de DF et d’autre part sur le travail en trois étapes de recherche de la couverture minimale.


    Citation Envoyé par Oishiiii Voir le message
    avec la relation suivante: R (A, B, C, D)
    Et l'ensemble S des DF:
    { A, B } -> C
    B -> D
    C -> A
    La fermeture S+ :
    1) { A, B } -> C (donné)
    2) A -> C (1 Décomposition)
    3) A -> B (1 Décomposition)
    4) B -> D (donné)
    5) A -> D (3, 4 Transitivité)
    6) C -> A (donné)
    Fichtre !

    Vous invoquez la règle de décomposition pour inférer {A} -> {C} à partir de {A, B} -> {C}, mais cette règle ne vaut que pour les parties droites des DF...
    Concrètement, remplacez A par Numéro de commande, B par Numéro de produit et C par quantité. Si l’on vous suit, on peut remplacer :
    {Numéro de commande, Numéro de produit} -> {Quantité}.
    par :
    {Numéro de commande} -> {Quantité}
    {Numéro de produit} -> {Quantité}
    Ce qui laisse pour le moins à réfléchir...


    Citation Envoyé par Oishiiii Voir le message
    en attendant la réponse de quelqu'un de plus expérimenté que moi (pour corriger les bêtises ).
    Si fait...

    Mais j’espère maintenant que vous aurez progressé sur le sujet...

    (Et couvrez-vous avec une couverture maximale car dehors il ne fait pas chaud, quoi qu’on en dise à Copenhague, où par parenthèses il n'y a que deux saisons : l'hiver et le 15 août. Ils auraient pu choisir une autre date pour discuter du réchauffement...)

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 18
    Points : 14
    Points
    14
    Par défaut
    Bonjour, et d'abord un grand MERCI pour votre explication. Quelle maitrise du sujet
    Je ne l'ai que survolé pour le moment, je la lirai en entier ce soir.
    Encore merci.

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 18
    Points : 14
    Points
    14
    Par défaut
    Bonsoir, voici l'énoncé de l'exercice

    Soit le schéma
    R(ABCD)
    F={AB -> C, B -> D, C -> A}
    Donner une décomposition qui préserve les dépendances de F.
    Est-ce que cette décomposition est sans perte d'information?
    Une décomposition préserve les dépendances si l'union de chaque projetée de F dans un ensemble d'attributs de R permet de reconstruire F.
    Je suis pas sur d'avoir bien compris la notion de projeté ou comment faire une projection. Voici ce que j'ai fait:
    1 - projeté de F dans {ABC} => {AB -> C}
    2 - projeté de F dans {BD} => {B -> D}
    3 - projeté de F dans {AC} => {C -> A}

    {AB -> C} U {B -> D} U {C -> A} => F donc la décomposition {ABC}, {BD}, {AC} préserve les dépendances fonctionnelles.
    Par contre {AC} me parait inutile puisque inclus dans {ABC} mais si je supprime cette relation je n'aurai plus la projeté de F dans {AC} donc perte de DF.

    Une décomposition est sans perte d'information si R1 ∩ R2 -> R1 - R2
    donc,

    {ABC} ∩ {BD} = {B} et {ABC} - {BD} = AC
    nous n'avons pas {B} -> {AC} dans F

    {ABC} ∩ {AC} = {AC} et {ABC} - {AC} = {B}
    nous n'avons pas {AC} -> {B} dans F

    {BD} ∩ {AC} = ∅ et {BD} - {AC} = {BD}
    nous n'avons pas ∅ -> {BD}

    D'après les calculs il y a perte d'informations

    Mais quelque chose me dit qu'il y a une ou plusieurs erreurs dans mes calculs.
    Merci de m'aider.

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 18
    Points : 14
    Points
    14
    Par défaut Autre énoncé
    Bonsoir voici un autre exercice que je voulais poster et savoir si la méthode que j'ai suivie est bien celle à suivre.

    Soit le schéma
    R(ABCD)
    F={A → B, B → C, D → B}
    et la décomposition
    Delta = (ACD, BD)
    Est-ce que Delta préserve les dépendances de F?
    Est-ce que les relations (ACD) et (BD) obtenues sont en 3FN?

    Est-ce que Delta préserve les dépendances de F?
    projetée de F dans {ACD} => 0
    projetée de F dans {BD} => {D → B}
    La décomposition ne préserve pas F

    Est-ce que les relations (ACD) et (BD) obtenues sont en 3FN?
    F+ de F
    A → B
    B → C
    D → B
    A → C
    D → C

    Couverture minimale
    A → B
    B → C
    D → B
    A → C
    D → C

    F+ de {A}
    A → A
    A → B
    A → C
    A n'est pas une clé

    F+ de {B}
    B → B
    B → C
    B n'est pas une clé

    F+ de {C}
    C → C

    F+ de {D}
    D → D
    D → B
    D → C
    D n'est pas une clé

    F+ de {AD}
    AD → A
    AD → D
    AD → B
    AD → C
    {AD} → {ABCD} donc {AD} est une clé, de plus le graphe de la couverture minimale est acyclique donc {AD} est l'unique clé.

    Une relation est en 3FN ssi:
    elle est en 2NF
    Tout attribut n'appartenant pas à une clé, ne dépend pas d'un autre attribut non clé

    Donc R1{ACD} et {BD}est en 3NF car aucune dépendance fonctionnelle transitive dans R1 et R2 et R1 U R2 = {ABCD}
    Merci

  10. #10
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en bases de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8 100
    Points : 31 536
    Points
    31 536
    Billets dans le blog
    16
    Par défaut
    Bonsoir,


    Citation Envoyé par wotan2009 Voir le message
    Une décomposition est sans perte d'information si R1 R2 -> R1 - R2
    Il faut compléter :

    La décomposition est sans perte si et seulement si (R1 R2) (R1 — R2) ou (R1 R2) (R2 — R1).

    Vous avez échoué avec R1 — R2, alors essayez avec R2 — R1 ...

  11. #11
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en bases de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8 100
    Points : 31 536
    Points
    31 536
    Billets dans le blog
    16
    Par défaut
    Citation Envoyé par wotan2009 Voir le message
    Est-ce que Delta préserve les dépendances de F?
    Oui. Reprenons le théorème :
    Si ρ = (R1, R2) est une décomposition de R, et F est un ensembles de DF, alors ρ a une jointure sans perte selon F si et seulement si (R1 R2) (R1 — R2) ou (R1 R2) (R2 — R1).

    Dans votre cas :
    {B, D} {A, C, D} = {D}
    {B, D} — {A, C, D} = {B}
    Or {D} {B}, donc :
    {B, D} {A, C, D} {B, D} — {A, C, D}.
    On pourrait aussi utiliser le théorème de Heath (à mon sens plus commode), que je rappelle :
    Soit la relation R {A, B, C} dans laquelle A, B et C sont des ensembles d’attributs de R. Si R satisfait à la dépendance fonctionnelle A B, alors R est égale à la jointure de ses projections sur {A, B} et {A, C}.
    Puisque {D} {B}, votre relation R {A, B, C, D} est décomposable en {B, D} et {A, C, D}.

    C.Q.F.D.

    Je ferai simplement remarquer que l’on a perdu les deux DF : {A} {B} et {B} {C}, ce qui est très vilain car les DF traduisent des règles fortes de gestion des données. il aurait été préférable de décomposer en {A, B, D} et {B, C}.


    Citation Envoyé par wotan2009 Voir le message
    Est-ce que les relations (ACD) et (BD) obtenues sont en 3FN?
    Avant de chercher à prouver qu’une relation est en 3NF, il faut d’abord prouver qu’elle est en 2NF.

    Concernant R1 = {B, D} :

    R1 ne comporte qu’une seule DF non triviale, à savoir {D} {B}. Cette DF est irréductible à gauche et son déterminant {D} est clé : il s’ensuit que R1 est en 2NF.

    Par ailleurs, R1 ne comporte pas de DF transitive, Donc R1 est en 3NF (elle est même en 6NF, mais ceci est une autre histoire...)

    Concernant R2 = {A, C, D} :

    Les seules DF que comporte R2 sont triviales (souvenez-vous que les autres se sont évaporées) : R2 est donc en 2NF, 3NF, BCNF, etc. (elle est même en 6NF).

  12. #12
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en bases de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8 100
    Points : 31 536
    Points
    31 536
    Billets dans le blog
    16
    Par défaut
    Bonjour,

    Je n’ai pas commenté ce que vous avez écrit à propos de votre deuxième exercice, je me rattrape.


    Citation Envoyé par wotan2009 Voir le message
    Soit le schéma
    R(ABCD)
    F={A B, B C, D B}
    Est-ce que les relations (ACD) et (BD) obtenues sont en 3FN?
    F+ de F
    A B
    B C
    D B
    A C
    D C
    Tout d’abord, F+ concerne R. Les relations R1 {A, C, D} et R2 {B, D} ont chacune leur propre fermeture, disons F1+ et F2+.

    Concernant la fermeture d’une relation, le nombre de DF qu’elle contient est compris entre 2^n et 2^2n, n étant le nombre d’attributs de l’en-tête de la relation. Ainsi — en admettant que A, B, C et D soient bien des attributs et non pas des sous-ensembles d’attributs — la relation R {A, B, C, D} comportant 4 attributs, la fermeture F+ de R contient entre 16 et 256 éléments alors que vous n’en comptez que 5.

    En ce qui concerne la couverture minimale de R :

    Les DF A C et D C n’en font pas partie, puisqu’inférées des autres.


    Citation Envoyé par wotan2009 Voir le message
    {AD} → {ABCD} donc {AD} est une clé.
    Exact, mais de quelle relation ?! Réponse : de R {A, B, C, D}, mais la question qui vous a été posée est la suivante :

    « Est-ce que les relations {A, C, D} et {B, D} obtenues sont en 3FN ? »

  13. #13
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 18
    Points : 14
    Points
    14
    Par défaut
    Bonsoir, désolé de la réponse tardive, mais j'ai mis un peu de temps à assimiler les diverses explications et à m'entrainer.
    Je reviens donc sur le 1er exercice:
    R{ABCD}
    F={AB → C, B → D, C → A}
    Donner une décomposition qui préserve les dépendances de F.
    Est ce que cette décomposition est sans perte d'information.
    Voici ma démarche:
    Cloture de {AB} par rapport à F: {AB}+ = {ABCD}
    Cloture de {B} par rapport à F: {B}+ = {BD}
    Cloture de {C} par rapport à F: {C}+ = {AC}

    Y a t il des dépendances fonctionnelles non élémentaires ?
    Peut on remplacer {AB → C} par {A → C} et/ou {B → C}
    Cloture de {A} par rapport à F'={A → C, B → D, C → A}: {A}+ = {AC}
    Cloture de {B} par rapport à F''={B → C, B → D, C → A}: {B}+ = {ABCD}
    {AB → C} n'est pas élémentaire et peut etre remplacé par {B → C}
    Les autres DF sont des singletons et sont donc élémentaires.

    Y a t il des dépendances fonctionnelles redondantes ?
    Peut on retirer {B → C} tels que F'=(F – {B → C}) et F'+ = F+
    Cloture de {B} par rapport à F': {B}+ = {BD}. Différent de {B}+ par rapport à F.
    Peut on retirer {B → D} tels que F'=(F – {B → D}) et F'+ = F+
    Cloture de {B} par rapport à F': {B}+ = {ABC}. Différent de {B}+ par rapport à F
    Peut on retirer {C → A} tels que F'=(F – {C → A}) et F'+ = F+
    Cloture de {C} par rapport à F': {C}+ = {BCD}. Différent de {C}+ par rapport à F.
    Aucune DF redondante.

    Couverture minimale:
    I={B → C, B → D, C → A} avec B comme clef.

    Selon le théorème de Heat la relation peut être décomposée en :
    R1{BD} et R2{ABC} sans perte d'information et de DF.
    Elle peut aussi être décomposée en :
    R1{BC} et R2{ABC}. Cette décomposition engendre une perte de DF, en effet {B → D} a disparu, ainsi qu'une perte d'information avec l'attribut {D}.
    Il y a aussi un autre point que je n'ai pas bien saisie:

    Je sais calculer la fermeture d'un attribut (voir exercice), mais j'ai lu que l'on pouvait aussi calculer la fermeture de l'ensemble des DF. Je n'ai pas compris comment la calculer.
    Merci

  14. #14
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en bases de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8 100
    Points : 31 536
    Points
    31 536
    Billets dans le blog
    16
    Par défaut
    Citation Envoyé par wotan2009 Voir le message
    Je reviens donc sur le 1er exercice :
    R{ABCD}
    F={AB → C, B → D, C → A}
    Donner une décomposition qui préserve les dépendances de F.
    Est ce que cette décomposition est sans perte d'information.

    Voici ma démarche:

    Cloture de {AB} par rapport à F: {AB}+ = {ABCD}
    Cloture de {B} par rapport à F: {B}+ = {BD}
    Cloture de {C} par rapport à F: {C}+ = {AC}

    Y a t il des dépendances fonctionnelles non élémentaires ?
    Peut on remplacer {AB → C} par {A → C} et/ou {B → C}
    Cloture de {A} par rapport à F'={A → C, B → D, C → A}: {A}+ = {AC}
    Cloture de {B} par rapport à F''={B → C, B → D, C → A}: {B}+ = {ABCD}
    {AB → C} n'est pas élémentaire et peut etre remplacé par {B → C}
    Les autres DF sont des singletons et sont donc élémentaires.

    Y a t il des dépendances fonctionnelles redondantes ?
    Peut on retirer {B → C} tels que F'=(F – {B → C}) et F'+ = F+
    Cloture de {B} par rapport à F': {B}+ = {BD}. Différent de {B}+ par rapport à F.
    Peut on retirer {B → D} tels que F'=(F – {B → D}) et F'+ = F+
    Cloture de {B} par rapport à F': {B}+ = {ABC}. Différent de {B}+ par rapport à F
    Peut on retirer {C → A} tels que F'=(F – {C → A}) et F'+ = F+
    Cloture de {C} par rapport à F': {C}+ = {BCD}. Différent de {C}+ par rapport à F.
    Aucune DF redondante.

    Couverture minimale:
    I={B → C, B → D, C → A} avec B comme clef.

    Selon le théorème de Heat la relation peut être décomposée en :
    R1{BD} et R2{ABC} sans perte d'information et de DF.
    Elle peut aussi être décomposée en :
    R1{BC} et R2{ABC}. Cette décomposition engendre une perte de DF, en effet {B → D} a disparu, ainsi qu'une perte d'information avec l'attribut {D}.
    Considérons votre énoncé :
    R{ABCD}
    F={AB → C, B → D, C → A}
    Donner une décomposition qui préserve les dépendances de F.
    Est ce que cette décomposition est sans perte d'information.
    1) Comme je ne sais pas si ABCD est le nom d’un attribut ou d’un sous-ensemble d’attributs, je réécris R sous la forme (en considérant que A, B, C et D sont des noms d’attributs) :
    R {A, B, C, D}
    Ça ne mange pas de pain.

    2) Vous avez cherché la couverture minimale de R et c’est très bien. Seul problème, vous vous êtes planté en découvrant une prétendue DF :
    {B} {C}
    En effet, la clôture de {B} par rapport à F est égale à {B, D},
    Et la clôture de {B} par rapport à F’’ = {B C, B D, C A} est égale à {A, B, C, D}.

    Les clôtures de {B} par rapport à F et F’’ n’étant pas égales, la DF : B C n’existe pas.

    En menant l'opération à son terme, on constate que F est une couverture minimale.

    3) Décomposition de R.

    Comme vous l’avez fait, il suffit d’appliquer le théorème de décomposition de Heath (et pas Heat) pour décomposer R en :
    R1 {B, D} et R2 {A, B, C}
    Du fait de la dépendance fonctionnelle {C} {A} et toujours en vertu du théorème de Heath, R2 est décomposable à son tour en :
    R21 {A, C} et R22 {B, C}
    La décomposition est sans perte d’information, c'est-à-dire qu’en vertu du théorème, R = R1 JOIN R21 JOIN R22.
    Mais, comme vous l’avez noté, en décomposant R2 on perd la DF : {A, B} {C}, et on peut alors préférer ne pas décomposer.

    Au sujet de la perte de DF : il est bon d’avoir en tête une règle que l’on doit à Jorma Rissanen et qui permet d’éviter la perte de certaines dépendances fonctionnelles :
    Soit la relation R {A, B, C} dans laquelle A, B et C sont des ensembles d’attributs. Si R satisfait aux dépendances fonctionnelles A B et B C, alors plutôt que de décomposer R en {A, B} et {A, C}, on décomposera R en {A, B} et {B, C}.

    Citation Envoyé par wotan2009 Voir le message
    Je sais calculer la fermeture d'un attribut (voir exercice), mais j'ai lu que l'on pouvait aussi calculer la fermeture de l'ensemble des DF. Je n'ai pas compris comment la calculer.
    Comme je l’ai écrit dans un message précédent :
    Citation Envoyé par fsmrel Voir le message
    la fermeture F+ de R est constituée — par définition — de l’ensemble des DF inférables de l’ensemble initial F donné de DF. La limite supérieure du nombre de DF éléments de F+ est égale à 2 puissance 2n soit 256 pour les 4 attributs.
    Pour obtenir la liste, vous appliquez les règles d’Armstrong, jusqu’à ce que vous... craquiez.

    Ainsi, vous commencez par fournir l’ensemble des DF triviales :
    {A, B, C, D} {A, B, C, D}
    {A, B, C, D} {A, B, C}
    {A, B, C, D} {A, B, D}
    {A, B, C, D} {A, C, D}
    {A, B, C, D} {B, C, D}
    {A, B, C, D} {A, B}
    {A, B, C, D} {A, C}
    ...
    {A, B, C, D} {A}
    {A, B, C, D} {B}
    {A, B, C, D} {C}
    {A, B, C, D} {D}
    {A, B, C, D} {}

    {A, B, C} {A, B, C}
    {A, B, C} {A, B}
    {A, B, C} {A, C}
    ...
    {A, B, C} {A}
    {A, B, C} {B}
    {A, B, C} {C}
    {A, B, C} {}
    ...
    {A} {A}
    {A} {}
    {B} {B}
    {B} {}
    {C} {C}
    {C} {}
    {D} {D}
    {D} {}
    {} {}
    Ceci fait, appliquez les règles d’Armstrong aux DF données :
    {A, B} {C}
    {A, B, C} D (augmentation)
    {A, B, D} C (augmentation)
    {B, C} D (augmentation)
    etc.
    Bref, il vous reste à programmer un système expert pour arriver au bout de vos peines. Vous noterez que la finalité de tout cela est quand même de d’assurer que les relations respectent au moins la 3NF. Il est donc urgent de décomposer les relations, car plus le nombre d’attributs d’une relation est réduit, plus on est à même à de s’en assurer.

  15. #15
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 18
    Points : 14
    Points
    14
    Par défaut
    Damn! Effectivement je me suis planté. Je me suis aperçu de mon erreur après relecture de votre réponse à l'étape 2.
    Pour résumer le processus de normalisation et en faire une recette de cuisine:
    A partir d'une relation comportant un ensemble d'attributs R{ABCD} et d'un ensemble de DF associées aux attributs de la relation F={AB → C, B → D, C → A}
    1. Chercher la cloture de chaque déterminant de l'ensemble des DF
      • En déduire les clef candidates
    2. Trouver la couverture minimale
      • Eliminer les DF non élémentaires
      • Eliminer les DF redondantes
    3. Décomposer selon le théorème de Heath
    4. Vérifier que les relations décomposées soient sans perte de DF
      • On vérifie que chaque relation permet de recomposer les DF de la couverture minimale
    5. Vérifier que les relations décomposées soient sans perte d'informations
      • On vérifie que la jointure naturelle des relations décomposées permettent de reconstruire la relation initiale
    6. Rédécomposer si nécessaire.
    7. Déduire des relations décomposées la forme normale
    8. Redécomposer si nécessaire afin d'atteindre la forme normale souhaitée


    Si j'ouvre un restaurant vous me mettez combien d'étoiles ?
    Merci à vous de prendre le temps de me répondre à chaque fois.

  16. #16
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en bases de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8 100
    Points : 31 536
    Points
    31 536
    Billets dans le blog
    16
    Par défaut
    Citation Envoyé par wotan2009 Voir le message
    Pour résumer le processus de normalisation et en faire une recette de cuisine:
    A partir d'une relation comportant un ensemble d'attributs R{ABCD} et d'un ensemble de DF associées aux attributs de la relation F={AB → C, B → D, C → A}
    1. Chercher la clôture de chaque déterminant de l'ensemble des DF
    En déduire les clefs candidates
    2. Trouver la couverture minimale
    Éliminer les DF non élémentaires
    Éliminer les DF redondantes
    3. Décomposer selon le théorème de Heath
    4. Vérifier que les relations décomposées soient sans perte de DF
    On vérifie que chaque relation permet de recomposer les DF de la couverture minimale
    5. Vérifier que les relations décomposées soient sans perte d'informations
    On vérifie que la jointure naturelle des relations décomposées permet de reconstruire la relation initiale
    6. Redécomposer si nécessaire.
    7. Déduire des relations décomposées la forme normale
    8. Redécomposer si nécessaire afin d'atteindre la forme normale souhaitée
    Avant de détailler la recette, il faudrait que vous donniez un nom au plat que vous voulez servir, ce qui peut avoir une influence sur la manière de touiller les éléments utilisés pour la préparation et pas forcément toujours nécessaires.

    Supposons que votre plat s’appelle « Assortiment de relations en troisième forme normale, avec leurs clés ». Reprenons alors le point 1 : Chercher la clôture du déterminant de chaque DF et en déduire les clefs candidates, avec, pour changer un peu, comme produits de base les ingrédients suivants :
    — Une relation R {A, B, C, D, E, F} dans laquelle A, B, C, D, E, F sont les attributs constituant l’en-tête de R,
    — L'ensemble F de DF associées à R :
    DF1 : A C
    DF2 : A F
    DF3 : B E
    DF4 : C D
    La fermeture de chaque déterminant donne lieu à l’énumération suivante :
    {A}+ = {A, C, D, F}
    {B}+ = {B, E}
    {C}+ = {C, D}
    Or, un sous-ensemble d’attributs X de l’en-tête de R ne peut prétendre être clé candidate que si X+ = {A, B, C, D, E, F}. Dans notre cas, il va donc falloir rallonger la sauce, en se disant par exemple qu’il ne manque pas grand-chose avec {A}+ et le cuisinier astucieux va se dire qu’avec {A, B}+ on ne doit pas être loin du but, et de fait, {A, B}+ = {A, B, C, D, E, F}, donc {A, B} est clé candidate.
    Mais, une grande question est de savoir dans la minute s’il existe d’autres clés candidates...
    Les cuisiniers ont leurs astuces à ce sujet...

    Mais si l’objectif est de fournir une décomposition de R en relations en troisième forme normale (et c'est le plus important), au lieu de sortir l’artillerie lourde, avec fermeture des DF, couverture minimale et tout le toutim, autant commencer par montrer que R elle-même n’est pas en troisième forme normale, puis appliquer le théorème de Heath (sans oublier le recommandation de Rissanen, ingrédient que vous avez oublié de préciser).

    Dans l’exemple que j’ai pris, il est facile de démontrer que R n’est pas en troisième forme normale, puisque qu’aucune fermeture de quelque déterminant que ce soit n’est égale à {A, B, C, D, E, F}. Donc on décompose et on rebelote...

    Dans votre exemple, le déterminant [A, B} de la DF : {A, B} {C} est clé candidate, mais pas les déterminants des autres DF. Donc là aussi, il est préférable d’appeler Heath et Rissanen à la rescousse au plus vite pour décomposer, « éparpiller par petits bouts, façon puzzle » comme dirait Raoul Volfoni qui a une approche très particulière de la normalisation.

    A cause du point 1, pour les étoiles, on attendra donc un peu, même si dans son ensemble la recette présentée a de la tenue... Patience...

  17. #17
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en bases de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8 100
    Points : 31 536
    Points
    31 536
    Billets dans le blog
    16
    Par défaut Une inexactitude de ma part
    Bonsoir Wotan,

    En relisant cette discussion, je relève une inexactitude dans mon message du 19/01/2010 à 02h53. En effet, à propos de la 2e étape du calcul de la couverture minimale, j’ai écrit :
    Citation Envoyé par fsmrel Voir le message
    Si {A} → {C}, alors la fermeture {A, B}+ de {A, B} par rapport à F est nécessairement égale à la fermeture {A}+ de {A} par rapport à F’, nouvel ensemble ainsi composé :
    DF1’ : {A} → {C}
    DF2 : {B} → {D}
    DF3 : {C} → {A}
    Or {A}+ = {A}, tandis que, comme on l’a vu, {A, B}+ = {A, B, C, D}. {A}+ n’égale pas {A, B}+ :

    {A, B} → {C} ne peut pas être remplacé par {A} → {C}.

    De la même façon, {A, B} → {C} ne peut pas être remplacé par {B} → {C}, car {B}+ = {B, D} et ainsi n’égale pas {A, B}+.
    Il faut lire :
    Si {A} {C}, alors la fermeture {A}+ de {A} par rapport à F est nécessairement égale à la fermeture {A}+ de {A} par rapport à F’, nouvel ensemble ainsi composé :

    DF1’ : {A} {C}
    DF2 : {B} {D}
    DF3 : {C} {A}

    Or la fermeture {A}+ de {A} par rapport à F est égale à {A}, tandis que la fermeture {A}+ de {A} par rapport à F’ est égale à {A, C}.

    En conséquence de cette inégalité, {A, B} {C} ne peut pas être remplacée par {A} {C}.

    De la même façon, {A, B} {C} ne peut pas être remplacée par {B} {C}, car la fermeture {B}+ de {B} par rapport à F est égale à {B, D}, tandis que la fermeture {B}+ de {B} par rapport à F’ (où DF1’ est remplacée par {B} {C}) est égale à {A, B, C, D}.

    ____

    Les conclusions étaient exactes, mais la démonstration laissait à désirer (je ne devrais pas traiter de ces questions à des heures pareilles...)

    En ce sens, ce que j’avais écrit dans mon message du 28/01/2010 à 03h04 est quand même plus conforme :

    Citation Envoyé par fsmrel Voir le message
    Vous avez cherché la couverture minimale de R et c’est très bien. Seul problème, vous vous êtes planté en découvrant une prétendue DF :
    {B} → {C}
    En effet, la clôture de {B} par rapport à F est égale à {B, D},
    Et la clôture de {B} par rapport à F’’ = {B → C, B → D, C → A} est égale à {A, B, C, D}.

    Les clôtures de {B} par rapport à F et F’’ n’étant pas égales, la DF : B → C n’existe pas.
    Cette fois-ci, pas de problème, j'étais plus éveillé, même s'il était bien tard...

  18. #18
    Membre à l'essai
    Homme Profil pro
    Administrateur réseau
    Inscrit en
    Septembre 2011
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Administrateur réseau
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2011
    Messages : 11
    Points : 15
    Points
    15
    Par défaut montrer que si XY->YZ alors X-> Z
    Bon jour ..

    J'arrive pas a montrer la DF suivante :

    si XY->YZ alors X-> Z on utilsant les axiomes d'armstrong ;

    Merci de m'aidez !!

    salutations

  19. #19
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en bases de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8 100
    Points : 31 536
    Points
    31 536
    Billets dans le blog
    16
    Par défaut
    Bonsoir,


    Voyez le paragraphe Fermeture d'un ensemble d'attributs et calculez la fermeture X+ de X : vous vous rendrez compte que cette fermeture est égale à {X}, elle n'est donc pas égale à {XZ} (pas plus qu’à {XY} d’ailleurs), c'est-à-dire que la DF X -> Z n’existe pas. Par référence aux axiomes d’Armstrong, tout au plus vous montrerez :
    (df1) : XY -> Z (par décomposition de XY-> YZ),

    (df2) : XY -> Y (par décomposition de XY-> YZ), DF triviale au demeurant.

  20. #20
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en bases de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8 100
    Points : 31 536
    Points
    31 536
    Billets dans le blog
    16
    Par défaut Ensemble irréductible de DF (couverture minimale)
    Bonjour liamine,


    Pour éviter la dispersion, je réponds ici à la demande que vous formulez :

    Puisqu'on a la DF XY -> YZ, les valeurs suivantes sont légales :
    <x1, y1> -> <y1, z1>

    <x1, y2> -> <y2, z2>
    ...
    <x1, ym> -> <ym, zn>


    C'est-à-dire qu’à la valeur< x1> de X peuvent correspondre n valeurs <z1>, <z2> , ... <zn> de Z, donc la DF X -> Z n’existe pas.

    Dans l'autre demande, vous posez F = {XY -> YZ}. Je vous incite à déterminer plus formellement l’ensemble irréductible (couverture minimale) I de DF que l’on peut inférer de F et équivalent à la fermeture F de F. Vous constaterez au résultat que la DF non réductible X -> Z n’en fait pas partie, donc qu’elle n’existe pas.

Discussions similaires

  1. Définition d'une dépendance fonctionnelle élémentaire ?
    Par Didine1801 dans le forum Décisions SGBD
    Réponses: 5
    Dernier message: 30/11/2010, 16h59
  2. Réponses: 6
    Dernier message: 02/06/2009, 21h36
  3. [DF][NF]Dépendances fonctionnelles et normalisation
    Par wang_xue dans le forum Schéma
    Réponses: 14
    Dernier message: 24/10/2007, 18h56
  4. dépendances fonctionnelles
    Par aaronw dans le forum Langage SQL
    Réponses: 4
    Dernier message: 27/05/2005, 14h39
  5. [Concept] Dépendances fonctionnelles
    Par bolo dans le forum Décisions SGBD
    Réponses: 4
    Dernier message: 24/01/2003, 20h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo