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

Schéma Discussion :

[DF]Clefs candidates d'une couverture minimale


Sujet :

Schéma

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 115
    Points : 53
    Points
    53
    Par défaut [DF]Clefs candidates d'une couverture minimale
    Bonjour à tous

    J’ai deux questions sur la normalisation
    ce sont les 2 questions sur mon examen précédent

    Une relation est
    R1(A,B,C,D,E,F)

    A->B ,C,D F->E B,C->D D,F->C
    Les identifiants sont {A,F} est-ce qu’il est correct.
    Par la pseudo transtivité,je peux faire détuite A->D,car A->{B,C} et {B,C}->D

    2ème question sur une relation

    R3(A,B,C,D,E,F)
    A,B->C D->F C,D->E D,E->F

    Les identifiants sont bien {A,B,D},ils sont bien en 1er forme normal mais pas en 2ème car D->F

    j’ai eu un peu mal pour C ,D-> E et D->F

    Est-ce que je peux décomposer en 3ème forme normal pour C ,D-> E et D->F

    Donc je décompose suivant :

    R1(A,B,C)
    R2(C,D,E)
    R3(D,F)
    R4(D,E,F)/*il est un peu bizarre,parce que avec la relation R3,ils ne sont pas élémentaire*/

    Comment je peux déduire ces deux relations,j’ai une idée pour déduite,mais je ne sais pas si c’est correct,je considère D->E et D->F et D,E->F comme pseudo transitivité D->E,D->F,donc je peux déduire {D ,D}->F,donc D->F cela veut dire car D->F en extension D,E->F et il n’est pas élémentaire,donc je garde origine R3 D->F,je peux supprimer relation R4 .

    merci

    Cordialement

  2. #2
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 002
    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 002
    Points : 30 907
    Points
    30 907
    Billets dans le blog
    16
    Par défaut Insatiable le wang_xue...
    Citation Envoyé par wang_xue
    Les identifiants sont {A,F} est-ce qu’il est correct. A->B ,C,D F->E B,C->D D,F->C
    Merci d’écrire proprement les formules : on répondra après.
    En notant que puisque manifestement A, B, C, D, E, F sont des noms d’attributs, donc des éléments des sous-ensembles que sont les dépendances fonctionnelles, on n’écrit pas :

    A -> B

    mais :

    {A} -> {B}


    Citation Envoyé par wang_xue
    Par la pseudo transtivité,je peux faire détuite A->D,car A->{B,C} et {B,C}->D
    Ça n’est pas par pseudo-transitivité mais tout simplement par transitivité.
    Une fois de plus soyez cohérent :
    La pseudo-transitivité intervient quand vous écrivez :
    A -> B et BC -> D alors AC -> D


    Citation Envoyé par wang_xue
    Les identifiants sont bien {A,B,D}
    "identifiant" est un terme qui ne fait pas partie du vocabulaire relationnel. {A, B, D} est clé candidate mais il faut le prouver.

    Etant donné les DF suivantes :

    DF1 : {A, B} -> {C}
    DF2 : {D} -> {F}
    DF3 : {C, D} -> {E}

    Il faut partir du principe que si {A, B, D} est clé candidate, alors on doit vérifier :

    DF4 : {A, B, D} -> {A}
    DF5 : {A, B, D} -> {B}
    DF6 : {A, B, D} -> {C}
    DF7 : {A, B, D} -> {D}
    DF8 : {A, B, D} -> {E}
    DF9 : {A, B, D} -> {F}

    Les dépendances fonctionnelles DF4, DF5 et DF7 sont vérifiées car elles sont triviales (1er axiome d’Armstrong).

    Considérons DF1. Par augmentation (2e axiome d’Armstrong), cette DF donne lieu à la DF :

    {A, B, D} -> {C, D}

    et par application de la règle de décomposition :

    {A, B, D} -> {C}

    Donc la dépendance DF6 est vérifiée.

    Par augmentation, on a vu que DF6 donne lieu à la DF : {A, B, D} -> {C, D}. Or {C, D} -> {E}, donc par transitivité (3e axiome d’Armstrong) :

    {A, B, D} -> {E}

    Donc la dépendance DF8 est vérifiée.

    Considérons DF2. Par augmentation, cette DF donne lieu à la DF : {A, B, D} -> {A, B, F} et par application de la règle de décomposition :

    {A, B, D} -> {F}

    Donc la dépendance DF9 est vérifiée.

    Les dépendances fonctionnelles DF4, DF5, DF6, DF7, DF8, DF9 étant vérifiées :

    {A, B, D} est clé candidate.


    Citation Envoyé par wang_xue
    Les identifiants sont bien {A,B,D},ils sont bien en 1er forme normal mais pas en 2ème car D->F
    Une clé (ou un identifiant...) n’a pas à vérifier la contrainte de 1re forme normale, car la normalisation ne s’applique qu’aux relations, en l’occurrence R. Par ailleurs, une relation est automatiquement en 1re forme normale dans le cadre de la théorie relationnelle. Sorti de cette théorie, on dit (donc informellement) que les attributs de R ne doivent pas comporter de "groupes répétitifs de valeurs" (terme non formel et flou). Or votre étude ne dit rien à ce sujet, on ne sait donc pas si R est en 1re forme normale. On est supposera pour la suite qu’il en est quand même ainsi.

    Concernant la 2NF, il est vrai que du fait de DF2, elle n’est pas vérifiée pour R. Mais ça peut aussi être à cause de DF1.


    Citation Envoyé par wang_xue
    Est-ce que je peux décomposer en 3ème forme normal
    Il faut déjà s’assurer de la 2NF. Il faut utiliser le théorème de Heath, selon lequel, si on a une relation {X, Y, Z} dans laquelle X, Y et Z représentent des sous-ensembles de la relation et si l’on a la DF : X -> Y, alors la relation peut être décomposée sans perte en {X, Y} et {X, Z}. En outre, il faut veiller à l’ordre dans lequel les décompositions successives sont effectuées, afin de ne pas perdre "trop tôt" certaines DF.
    Par exemple, votre relation R comporte la dépendance DF2 : {D} -> {F}. L’attribut F y joue le rôle de dépendant et ne participe à aucune autre DF en tant que déterminant, on peut donc commencer par décomposer R à partir de DF2.

    Ainsi, R {A, B, C, D, E, F} donne lieu à la décomposition par projection :

    Pa {D, F}
    Pb {A, B, C, D, E}

    De telle sorte que Pa JOIN Pb redonne R, ni plus ni moins.

    A son tour, l’attribut E ne participe à aucune DF en tant que déterminant. A partir de la dépendance DF3, on peut décomposer Pb, pour produire :

    Pc {C, D, E}
    Pd {A, B, C, D}

    Enfin, à partir de DF1, Pd donne lieu à :

    Pe {A, B, C}
    Pf {A, B, D}

    Vous remarquerez que votre décomposition R4 {D, E, F} ne figure pas dans les décompositions ci-dessus.


    Citation Envoyé par wang_xue
    je peux supprimer relation R4
    Exact, mais il vous manquera la projection {A, B, D}. La jointure de vos décompositions ne redonne pas la relation initiale.
    Votre système doit se résumer à :

    R1 {A, B, C}
    R2 {C, D, E}
    R3 {D, F}
    R4 {A, B, D}

    Ces relations sont en BCNF (clés candidates soulignées).
    (a) Faites simple, mais pas plus simple ! (A. Einstein)
    (b) Certes, E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire »)
    => La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale »)

    __________________________________
    Bases de données relationnelles et normalisation : de la première à la sixième forme normale
    Modéliser les données avec MySQL Workbench
    Je ne réponds pas aux questions techniques par MP. Les forums sont là pour ça.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 115
    Points : 53
    Points
    53
    Par défaut
    Merci beacoup

    Une relation est
    R1(A,B,C,D,E,F)

    A->B,C,D F->E B,C->D D,F->C

    R1(A,B,C)

    R2(B,C,D)

    R3(D,F,C)

    R4(F,E)

    R5(A,F)

    clés candidates soulignées

    les identifiants sont {A,F},mais est-ce qu'il y a les cléf étrangères et lesquelles??



    si je comprend,vous voulez dire si l’attribut F y joue le rôle de dépendant et ne participe à aucune autre DF en tant que déterminant, on peut donc commencer par décomposer R à partir de DF2.
    R {A, B, C, D, E, F} peut décomposer par projection :

    Pa {D, F}
    Pb {A, B, C, D, E}

    ces deux relations peut faire un jointure natuelle avec l'attribut D identique et redonne R {A, B, C, D, E, F}
    pour décomposer Pb,on peut reprend DF3,car E l’attribut E ne participe à aucune DF en tant que déterminant,et les relations suivant:
    Pc {C, D, E}
    Pd {A, B, C, D}
    parce que DF3 est Pc {C, D, E} ,il reste Pd {A, B, C, D} pour join avec Pc et ils peuvent redonne Pb

    Ensuite pour décompser Pd,on reprend DF1 comme Pe {A, B, C}
    car {A, B} -> {C} pour redonne Pd et faire un jointure ,on peut faire Pf {A, B, D}




    votre explication sont très claire.

  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 002
    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 002
    Points : 30 907
    Points
    30 907
    Billets dans le blog
    16
    Par défaut
    Problème n° 1.
    Citation Envoyé par wang_xue
    A->B,C,D F->E B,C->D D,F->C
    Merci d’utiliser une ligne pour chaque dépendance fonctionnelle, sinon votre ligne ressemble à un gros pâté plus qu’à un ensemble de dépendances fonctionnelles.
    Et n’oubliez pas les accolades : {}.

    Votre décomposition ci-dessous est correcte :

    R1(A,B,C)

    R2(B,C,D)

    R3(D,F,C)

    R4(F,E)

    R5(A,F)

    Ne dites pas

    les identifiants sont {A, F}
    1) Parce que je vous ai déjà signalé que pour les relations le terme approprié est "clé candidate" ("clé" pour abréger, quand il n'y a pas d'ambiguïté).
    2) Parce que {A, F} est seulement clé de {A, B, C, D, E, F} et de R5. Pour leur part, R1 a pour clé {A}, R2 a pour clé {B, C}, R3 a pour clé {D, F} et R4 a pour clé {F}

    Vous devriez savoir mettre en évidence les clés étrangères potentielles entre ces relations. Vous savez que les attributs composant une clé étrangère dans une relation doivent être les mêmes que ceux d’une autre relation dans laquelle ces attributs composent une clé candidate (les 2 relations ne sont pas forcément distinctes, par exemple dans le cas des nomenclatures).
    Par exemple, R1 et R2 ont en commun le couple d’attributs {B, C}. Ce couple n’est pas clé candidate de R1, mais de R2, donc le couple est une clé étrangère dans R1 et fait référence à la clé candidate {B, C} de R2. Je vous laisse découvrir les autres clés étrangères.


    Problème n° 2.
    Citation Envoyé par wang_xue
    si je comprend ,vous voulez dire si l’attribut F y joue le rôle de dépendant et ne participe à aucune autre DF en tant que déterminant, on peut donc commencer par décomposer R à partir de DF2.
    R {A, B, C, D, E, F} peut décomposer par projection :

    Pa {D, F}
    Pb {A, B, C, D, E}

    ces deux relations peut faire un jointure natuelle avec l'attribut D identique et redonne R {A, B, C, D, E, F}
    Oui.


    Citation Envoyé par wang_xue
    pour décomposer Pb,on peut reprend DF3,car E l’attribut E ne participe à aucune DF en tant que déterminant,et les relations suivant:
    Pc {C, D, E}
    Pd {A, B, C, D}
    parce que DF3 est Pc {C, D, E} ,il reste Pd {A, B, C, D} pour join avec Pc et ils peuvent redonne Pb
    Oui


    Citation Envoyé par wang_xue
    Ensuite pour décomposer Pd, on reprend DF1 comme Pe {A, B, C}
    car {A, B} -> {C} pour redonne Pd et faire une jointure, on peut faire Pf {A, B, D}
    Je ne suis pas sûr de comprendre votre formulation. Pour reprendre le théorème de Heath, Pd contient la dépendance fonctionnelle {A, B} -> {C}, donc Pd peut être décomposée selon les deux projections :

    Pe {A, B, C} et Pf {A, B, D}.
    (a) Faites simple, mais pas plus simple ! (A. Einstein)
    (b) Certes, E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire »)
    => La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale »)

    __________________________________
    Bases de données relationnelles et normalisation : de la première à la sixième forme normale
    Modéliser les données avec MySQL Workbench
    Je ne réponds pas aux questions techniques par MP. Les forums sont là pour ça.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 115
    Points : 53
    Points
    53
    Par défaut
    Envoyé par wang_xue
    Ensuite pour décomposer Pd, on reprend DF1 comme Pe {A, B, C}
    car {A, B} -> {C} pour redonne Pd et faire une jointure, on peut faire Pf {A, B, D}

    ok, je comprend,si {A, B} -> {C},aussi après la décomposition,il peut décomposer {A, B} -> {D}.Et par contre,pour faire le graphe minimum,je peux garder R3 {D, F} et
    je peux déduire R {D,E, F},pour expliquer ça,je peux juste dire il n'est pas élémentaire,est-ce que ça suffisant???

    merci

    problème n°1

    pour clé étrangère: de R2, le couple {B, C} est une clé étrangère dans R1 et fait référence à la clé candidate {B, C} de R2.
    de R2 et R3,Je n'ai pas trouvé clé étrangère, de R3 et R4,on peut trouvé F est un attribut commun et il peut faire référencer à la clé candidate {F} de R4,dans la relation R5,il y a un couple{A, F},{A} fait référence à la clé candidate {A} de R1 et {F} fait référence à la clé candidate {F} de R4.

    pourquoi je dis toujours les identifiant,c'est à cause l'énoncé de mon exo,

    il a dit:
    pour chacune des relation suivantes:
    --définir le graphe minimum des DF,
    --définir le(les)identifiants(s),

    donc ce que je veut dire les identifiants,ils sont pluôt dire pour la relation,dsl,je n'ai pas faire attention.

  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 002
    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 002
    Points : 30 907
    Points
    30 907
    Billets dans le blog
    16
    Par défaut
    Bonjour,

    Merci de prendre l’habitude d'insérer un espace après chaque virgule, ça facilite la lecture.

    Citation Envoyé par wang_xue
    ok, je comprend, si {A, B} -> {C},aussi après la décomposition, il peut décomposer {A, B} -> {D}.
    Erreur : Il n’existe pas de dépendance {A, B} -> {D}.
    En vertu du théorème de Heath et étant donnée la relation Pd {A, B, C, D},
    s’il existe la dépendance DFc : {A, B} -> {C} alors Pd peut être décomposée en 2 relations :

    Pe {A, B, C} et Pf {A, B, D}

    mais cela n’engendre pas de dépendance {A, B} -> {C}, celle-ci n'est que le fruit de votre imagination.

    Quant aux clés candidates :
    Pe a une seule clé Ke : {A, B}. L’attribut C ne participe pas à Ke puisqu’il fait partie du dépendant {C} de la dépendance DFc.
    Pf a une seule clé Kf : {A, B, D} : en effet les seules dépendances fonctionnelles de Pf sont triviales.

    En soulignant les clés candidates, Pe et Pf peuvent être ainsi représentées :

    Pe {A, B, C}
    Pf {A, B, D}


    Citation Envoyé par wang_xue
    je peux déduire R {D,E, F}
    Il existe da dépendance Pa : {D} -> {F}.
    Par augmentation et décomposition, vous pouvez produire les dépendances :

    Paa : {D, E} -> {E, F}
    Pab : {D, E} -> {F}
    Pac : {D, E, F} -> {F}
    Etc.

    Autrement dit la dépendance Pac pouvant être déduite de la dépendance Pa, elle ne doit pas faire partie de la couverture irréductible (ou minimale, très informellement graphe minimum).


    Citation Envoyé par wang_xue
    pour clé étrangère: de R2, le couple {B, C} est une clé étrangère dans R1 et fait référence à la clé candidate {B, C} de R2.
    de R2 et R3,Je n'ai pas trouvé clé étrangère, de R3 et R4,on peut trouvé F est un attribut commun et il peut faire référencer à la clé candidate {F} de R4,dans la relation R5,il y a un couple{A, F},{A} fait référence à la clé candidate {A} de R1 et {F} fait référence à la clé candidate {F} de R4.
    Oui.


    Citation Envoyé par wang_xue
    pourquoi je dis toujours les identifiant, c'est à cause l'énoncé de mon exo
    Donc retenez qu’une relation comporte un identifiant (sans "s") ou plusieurs identifiants (avec un "s").
    (a) Faites simple, mais pas plus simple ! (A. Einstein)
    (b) Certes, E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire »)
    => La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale »)

    __________________________________
    Bases de données relationnelles et normalisation : de la première à la sixième forme normale
    Modéliser les données avec MySQL Workbench
    Je ne réponds pas aux questions techniques par MP. Les forums sont là pour ça.

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 115
    Points : 53
    Points
    53
    Par défaut
    Il existe da dépendance Pa : {D} -> {F}.
    Par augmentation et décomposition, vous pouvez produire les dépendances :

    Paa : {D, E} -> {D, F}
    Pab : {D, E} -> {F}
    Pac : {D, E, F} -> {F}
    Etc.
    Je n'ai pas compris pourquoi {D, E} -> {D, F} et {D, E, F} -> {F} pouvez vous me expliquer comment fonctionner avec augmentation pour {D, E} -> {D, F} selon {D} -> {F}.

    je fournis un schéma graphe minimum non déduire et déduire,est-ce qu'ils sont correct??

    celui de gauche est non déduire et droit est graphe minimum.
    Images attachées Images attachées   

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 115
    Points : 53
    Points
    53
    Par défaut
    pour le problème n°1

    le graphe est l'image que je vous fourni,ils sont correct
    Images attachées Images attachées   

  9. #9
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 002
    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 002
    Points : 30 907
    Points
    30 907
    Billets dans le blog
    16
    Par défaut
    Citation Envoyé par wang_xue
    Par augmentation et décomposition, vous pouvez produire les dépendances :

    Paa : {D, E} -> {D, F}
    Pab : {D, E} -> {F}
    Pac : {D, E, F} -> {F}
    Etc.
    Je n'ai pas compris pourquoi {D, E} -> {D, F} et {D, E, F} -> {F}
    Bien vu, vous suivez ! "D" a pris la place de "E" : il faut remplacer par
    Paa : {D, E} -> {E, F}
    Pab : {D, E} -> {F}
    Pac : {D, E, F} -> {F}
    Etc.
    Je modifierai mon précédent message en conséquence.


    Citation Envoyé par wang_xue
    je fournis un schéma graphe minimum non déduire et déduire,est-ce qu'ils sont correct??
    Vos schémas ne font pas partie de la théorie relationnelle, donc je n’ai pas d’opinion. Toutefois, le dessin de droite représente manifestement une couverture irréductible. Dans le dessin de gauche, vous faites figurer une flèche supplémentaire, ce qui veut certainement signifier quelque chose. En tout cas, c’est assez joli, on dirait de l’art contemporain.
    (a) Faites simple, mais pas plus simple ! (A. Einstein)
    (b) Certes, E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire »)
    => La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale »)

    __________________________________
    Bases de données relationnelles et normalisation : de la première à la sixième forme normale
    Modéliser les données avec MySQL Workbench
    Je ne réponds pas aux questions techniques par MP. Les forums sont là pour ça.

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 115
    Points : 53
    Points
    53
    Par défaut
    Paa : {D, E} -> {E, F}
    Pab : {D, E} -> {F}
    Pac : {D, E, F} -> {F}

    merci,donc vous dites Paa est par augmentation selon {D} -> {F} ,je comprend,Pab par décompostion, oui , Pac est aussi par augmentation {D, E, F} -> {F,F} et {F,F} comme {F},donc {D, E, F} -> {F},c'est comme ça.Après selon {D} -> {F} Paa on peut trouver Pab {D, E} -> {F},cela signifie qu'il n'est pas élémentaire,car il n'est pas unqiue pour le valeur {F},et {D} -> {F} est l'origine,donc on le garde {D} -> {F} et on supprime {D, E} -> {F}.si je m'explique correct,merci de me corriger les erreurs.

    merci beacoup.

  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 002
    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 002
    Points : 30 907
    Points
    30 907
    Billets dans le blog
    16
    Par défaut
    Citation Envoyé par wang_xue
    vous dites Paa est par augmentation selon {D} -> {F} ,je comprend. Pab par décompostion, oui , Pac est aussi par augmentation {D, E, F} -> {F,F} et {F,F} comme {F},donc {D, E, F} -> {F},c'est comme ça.
    D’accord.


    Citation Envoyé par wang_xue
    Après selon {D} -> {F} Paa on peut trouver Pab {D, E} -> {F}, cela signifie qu'il n'est pas élémentaire, car il n'est pas unqiue pour le valeur {F}, et {D} -> {F} est l'origine, donc on le garde {D} -> {F} et on supprime {D, E} -> {F}.si je m'explique correct, merci de me corriger les erreurs.
    Si vous cherchez à évacuer {D, E} -> {F} de quelque chose, c’est qu’il s’agit de la couverture irréductible (minimale), laquelle n’est composée que de DF primitives, sources des autres DF.
    Ainsi, {D, E} -> {F} ayant été inférée à partir de {D} -> {F}, elle n’est pas primitive et ne fait pas partie de cette couverture.


    Une observation concernant l'adjectif "élémentaire" :

    Vous parlez de [dépendance fonctionnelle] élémentaire : ce concept prend son intérêt dans le cadre de la normalisation. Ted Codd, qui a donné naissance à tous cela, a écrit en 1971 :

    Une relation R est en deuxième forme normale si elle est en première forme normale et si chaque attribut n’appartenant pas à une clé candidate est en dépendance totale de chaque clé candidate de R.

    Aujourd’hui, on ne dit pas "chaque attribut" mais chaque "sous-ensemble d’attributs", toutefois ça n’est pas un problème, on rectifie automatiquement.

    Ce que Codd appelle dépendance totale, vous l’appelez dépendance élémentaire, peu importe, ce sont des synonymes.

    Maintenant, si on considère la relation R {D, E, F} et la dépendance fonctionnelle {D} -> {F}, on est d'accord que celle-ci est élémentaire (irréductible à gauche).

    En conséquence la dépendance {D, E} -> {F} n’est pas élémentaire, ce que l'on a déjà observé plus haut.

    Le couple {D, E} est clé candidate de R, et c’est aussi le déterminant d’une dépendance qui n’est pas élémentaire : R n’est pas en deuxième forme normale et doit être décomposée selon R’ {D, F} et R" {D, E}.
    (a) Faites simple, mais pas plus simple ! (A. Einstein)
    (b) Certes, E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire »)
    => La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale »)

    __________________________________
    Bases de données relationnelles et normalisation : de la première à la sixième forme normale
    Modéliser les données avec MySQL Workbench
    Je ne réponds pas aux questions techniques par MP. Les forums sont là pour ça.

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 115
    Points : 53
    Points
    53
    Par défaut
    Merci beacoup

    J'ai compris

  13. #13
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 115
    Points : 53
    Points
    53
    Par défaut
    En conséquence la dépendance {D, E} -> {F} n’est pas élémentaire, ce que l'on a déjà observé plus haut.,vous dites plus haut,c'est la phase "Si vous cherchez à évacuer {D, E} -> {F} de quelque chose, c’est qu’il s’agit de la couverture irréductible (minimale), laquelle n’est composée que de DF primitives, sources des autres DF.
    Ainsi, {D, E} -> {F} ayant été inférée à partir de {D} -> {F}, elle n’est pas primitive et ne fait pas partie de cette couverture",
    n'est-ce pas?

    R n’est pas en deuxième forme normale et doit être décomposée selon R’ (D, F} et R" {D, E}.on ne peut pas décomposer R'''(D,E,F),car il n'est pas primitive,et il est inféré à partir de {D} -> {F}, .

  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 002
    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 002
    Points : 30 907
    Points
    30 907
    Billets dans le blog
    16
    Par défaut
    Citation Envoyé par wang_xue
    En conséquence la dépendance {D, E} -> {F} n’est pas élémentaire, ce que l'on a déjà observé plus haut.,vous dites plus haut,c'est la phase "Si vous cherchez à évacuer {D, E} -> {F} de quelque chose, c’est qu’il s’agit de la couverture irréductible (minimale), laquelle n’est composée que de DF primitives, sources des autres DF.
    Ainsi, {D, E} -> {F} ayant été inférée à partir de {D} -> {F}, elle n’est pas primitive et ne fait pas partie de cette couverture", n'est-ce pas?
    Oui. La couverture irréductible C d’une relation R est constituée de l’ensemble minimum des dépendances fonctionnelles permettant de produire l’ensemble S des dépendances fonctionnelles pour R. La couverture C est irréductible parce que si vous en éliminez une dépendance, on ne peut plus produire l’ensemble S.
    Par exemple, {D, E} -> {F} ne fait pas partie de la couverture C :
    En effet, vous pouvez produire cette dépendance à partir de {D} -> {F}.
    En revanche, {D} -> {F} fait partie de la couverture :
    En effet, sans elle vous ne pourriez plus produire la dépendance {D, E} -> {F}.


    Citation Envoyé par wang_xue
    R n’est pas en deuxième forme normale et doit être décomposée selon R’ (D, F} et R" {D, E}.on ne peut pas décomposer R'''(D,E,F),car il n'est pas primitive,et il est inféré à partir de {D} -> {F}
    Hum...
    R'''{D, E, F} est une relation alors que la dépendance fonctionnelle {D, E} -> {F} est une contrainte.
    R''' est le résultat de la jointure de R’ et R" et en vertu du théorème de Heath, R''' est égale à R.
    Je récapitule : à la relation R{D, E, F} est associée la dépendance fonctionnelle {D} -> {F} (qui est une contrainte).
    R n’est pas en 2e forme normale.
    Par application du théorème de Heath, on la décompose en
    R’{D, F} et R"{D, E}.
    Par jointure de R’ et R" vous retrouvez exactement R.
    Votre R''' est égale à R et doit donc être décomposée pour respecter la 2NF.
    La notion de primitive ne s’applique dans notre exemple qu'aux dépendances fonctionnelles.
    Pour une relation, ou plus exactement relvar (une relation est une valeur affectée à une relvar (variable relationnelle) à un instant donné), on parle de relvar de base ou de relvar dérivée. Si R’ et R''' sont des relvars de base, R et R''' peuvent être considérées comme des relvars dérivées, résultant en l’occurrence de la jointure naturelle de R’ et R".
    (a) Faites simple, mais pas plus simple ! (A. Einstein)
    (b) Certes, E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire »)
    => La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale »)

    __________________________________
    Bases de données relationnelles et normalisation : de la première à la sixième forme normale
    Modéliser les données avec MySQL Workbench
    Je ne réponds pas aux questions techniques par MP. Les forums sont là pour ça.

  15. #15
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 115
    Points : 53
    Points
    53
    Par défaut
    Je n'ai pas compris le mot relvar??

    et R"{D, E}.il est en 2 forme normale,on peut expliquer à une seule phrase car il est élémentaire,ça sera suffisant?? et dans la relation quand tous les "sous-ensemble d’attributs" sont fait partie des cléf candidates comme R" ,il n'existe pas d'autres "sous-ensemble d’attributs" non clé,il est sûr en 2 forme normale même si en 3 ème forme normale et boyce-codd,n'est-ce pas?

    Vous avez raison,s'il existe R''',ça sera exactement même chose et égale R,il faut respecter le regle de théoreme de heath et on peut décomposer à R' et R''.

  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 002
    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 002
    Points : 30 907
    Points
    30 907
    Billets dans le blog
    16
    Par défaut What’s a relvar ?
    Citation Envoyé par wang_xue
    Je n'ai pas compris le mot relvar
    Relvar est un terme qui est au coeur de la théorie relationnelle mais qui est absent du langage SQL. Pour l'expliquer, je partirai des fondements, mais sans être rigoureux pour ne pas vous faire fuir. Dans un programme, vous pouvez par exemple déclarer une variable Montant, de type entier :
    Int Montant ;
    et lui affecter une valeur, par exemple :
    Montant = 12000 ;
    Vous noterez bien que Montant n’est pas une valeur, mais une variable qui accueille à un moment donné la valeur 12000 laquelle est immuable. Ensuite, quand votre programme exécute par exemple l’instruction :
    Montant = Montant + 2000
    alors la variable Montant accueille maintenant la valeur 14000 à la place de la valeur précédente 12000.

    Ce qu’il faut retenir, c’est que des valeurs comme 12000 ou 14000 sont immuables, tandis que, par définition, la variable Montant est un lieu d’accueil pour ces valeurs, chacune à son tour, l'une chassant l'autre.

    Passons à SQL. Quand vous exécutez l’instruction :
    CREATE TABLE R (A Integer, B Char(4), PRIMARY KEY (A)) ;
    Alors vous définissez une variable de type relation (en abrégé : relvar) que vous nommez R. Cette déclaration de variable est conservée dans le catalogue du SGBDR, ce qui permet d’y faire à nouveau référence ultérieurement. R héberge une valeur de type relation (ou plus simplement relation), ce que l’on peut illustrer à l’aide d’une image :




    La relvar R héberge ici une valeur qui est une relation de degré 2 et de cardinalité 0. Le type de cette relation (qui est aussi celui de la relvar) est le suivant :
    RELATION {A Integer, B Char(4)}
    Quand vous exécutez ensuite une instruction du genre :
    INSERT INTO R (A, B) VALUES (1, "ABCD") ;
    Alors la relvar R accueille une nouvelle relation constituée d’un seul tuple, ce que l’on peut illustrer à l’aide d’une image :




    R héberge maintenant une autre valeur qui est une relation de degré 2, de cardinalité 1 et du même type que précédemment.

    Quand vous exécutez ensuite l’instruction
    INSERT INTO R (A, B) VALUES (5, "EFGH") ;
    Alors la relvar R accueille une nouvelle relation, constituée de deux tuples, ce qui peut être illustré à l’aide d’une nouvelle image :




    R héberge maintenant une valeur qui est une relation de degré 2 et de cardinalité 2, toujours du même type.

    Puis, si vous exécutez l’instruction
    UPDATE R SET B = "EFGI" WHERE B = "EFGH" ;
    la relvar R héberge à nouveau une autre relation, toujours du même type :




    Puis, si vous exécutez l’instruction
    DELETE FROM R ;
    la relvar R héberge à nouveau la relation initiale :




    Etc.
    (a) Faites simple, mais pas plus simple ! (A. Einstein)
    (b) Certes, E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire »)
    => La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale »)

    __________________________________
    Bases de données relationnelles et normalisation : de la première à la sixième forme normale
    Modéliser les données avec MySQL Workbench
    Je ne réponds pas aux questions techniques par MP. Les forums sont là pour ça.

  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 002
    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 002
    Points : 30 907
    Points
    30 907
    Billets dans le blog
    16
    Par défaut
    Citation Envoyé par wang_xue
    R"{D, E}. il est en 2 forme normale, on peut expliquer à une seule phrase car il est élémentaire, ça sera suffisant?
    R" est forme normale de Boyce-Codd (BCNF) parce que les seules dépendances fonctionnelles qu’elle comporte sont triviales :

    {D, E} -> {D, E}
    {D, E} -> {D}
    {D, E} -> {E}
    {D} -> {D}
    {E} -> {E}

    Étant en BCNF, R" est automatiquement en 3NF et en 2NF.

    BCNF, rappel :

    Une relvar R est en forme normale de Boyce-Codd (BCNF), si pour chaque DF : A -> B satisfaite par R :

    • Ou bien la DF est triviale,
    • Ou bien le déterminant A est une surclé de R.

    Surclé, rappel :

    Une surclé est un ensemble d’attributs K d’une relvar R garantissant la contrainte suivante, dite d’unicité :
    Aucune valeur de R ne peut contenir deux tuples distincts ayant la même valeur pour K.
    Si en plus il n’existe pas de sous-ensemble strict de K garantissant l’unicité, la surclé est une clé candidate (règle d’irréductibilité).
    (a) Faites simple, mais pas plus simple ! (A. Einstein)
    (b) Certes, E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire »)
    => La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale »)

    __________________________________
    Bases de données relationnelles et normalisation : de la première à la sixième forme normale
    Modéliser les données avec MySQL Workbench
    Je ne réponds pas aux questions techniques par MP. Les forums sont là pour ça.

  18. #18
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 115
    Points : 53
    Points
    53
    Par défaut
    est-ce que vous pouvez m'expliquer un peu pour surclé

  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 002
    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 002
    Points : 30 907
    Points
    30 907
    Billets dans le blog
    16
    Par défaut What’s a superkey?
    Citation Envoyé par wang_xue
    est-ce que vous pouvez m'expliquer un peu pour surclé
    Revenons sur la 2e question que vous posiez dans votre 1er message :

    http://www.developpez.net/forums/sho...32&postcount=1

    Vous décrivez la relvar R3 :

    R3 {A, B, C, D, E, F}

    à laquelle vous associez les DF :
    {A, B} -> {C}
    {D} -> {F}
    {C, D} -> {E}
    {D, E} -> {F}
    Par application des axiomes d’Armstrong et des règles qu’on en infère, vous êtes arrivé à la conclusion suivante :

    Le triplet K = {A, B, D} est clé candidate de R3.

    K vérifie donc les deux contraintes suivantes :
    • Unicité. Aucune valeur de R3 ne peut contenir deux tuples distincts ayant la même valeur pour K.

    • Irréductibilité. Il n’existe pas de sous-ensemble strict de K garantissant l’unicité.

    K est irréductible car aucun de ses sous-ensembles {A, B}, {A, D} et {B, D} ne garantit l’unicité.

    Une surclé (superkey) de R3 est un sous-ensemble (non strict) d’attributs de R3 qui doit garantir la règle d’unicité mais pas forcément celle d’irréductibilité. Une clé candidate est un cas particulier de la surclé parce qu’elle garantit en plus la règle d’irréductibilité.
    Considérez maintenant le quadruplet {A, B, C, D}. Vous savez mettre en évidence les DF suivantes :

    {A, B, C, D} -> {A}
    {A, B, C, D} -> {B}
    {A, B, C, D} -> {C}
    {A, B, C, D} -> {D}
    {A, B, C, D} -> {E}
    {A, B, C, D} -> {F}

    Le quadruplet {A, B, C, D} garantit donc la règle d’unicité, mais il contient le sous-ensemble strict {A, B, D} qui garantit lui aussi la règle d’unicité :

    le quadruplet {A, B, C, D} est réductible, c'est une surclé sans être une clé candidate.
    (Le fait qu’il soit réductible est une conséquence de la DF {A, B} -> {C}).

    Par contre, puisqu’on sait qu’il est irréductible, le triplet K = {A, B, D} est une surclé qui est aussi une clé candidate.

    Le sextuplet {A, B, C, D, E, F} représente l’en-tête de R3 et il est lui aussi une surclé qui n’est pas une clé candidate. (A noter que ce sextuplet justifie l’expression précédente : « sous-ensemble (non strict) »).
    (a) Faites simple, mais pas plus simple ! (A. Einstein)
    (b) Certes, E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire »)
    => La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale »)

    __________________________________
    Bases de données relationnelles et normalisation : de la première à la sixième forme normale
    Modéliser les données avec MySQL Workbench
    Je ne réponds pas aux questions techniques par MP. Les forums sont là pour ça.

  20. #20
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 115
    Points : 53
    Points
    53
    Par défaut
    merci,je comprend maintenant..

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Normalisation] Couverture minimale VS clés candidates
    Par Sephi_999 dans le forum Schéma
    Réponses: 5
    Dernier message: 23/05/2013, 05h45
  2. [Normalisation] Calcul d'une couverture minimale
    Par redsaint0 dans le forum Schéma
    Réponses: 8
    Dernier message: 09/02/2010, 14h13
  3. [DF] Calcul d'une couverture minimale
    Par Anonymouse dans le forum Schéma
    Réponses: 5
    Dernier message: 16/12/2008, 22h32
  4. Comment comment définir une clef primaire dans une table??
    Par nek_kro_kvlt dans le forum Bases de données
    Réponses: 4
    Dernier message: 07/02/2005, 21h06
  5. récupérer la clef primaire d'une table
    Par orionis69 dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 28/02/2004, 13h00

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