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 :

ma décomposition en 3FN est-elle correcte?


Sujet :

Schéma

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2008
    Messages
    207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2008
    Messages : 207
    Points : 114
    Points
    114
    Par défaut ma décomposition en 3FN est-elle correcte?
    Bonjour,

    en vue de préparation d'un concours, j'essaie de résoudre des exercices d'annales non corrigées.

    On a la table suivante:

    Voiture (n°stock, marque, modèle, année, couleur, prix).

    On nous demande pourquoi le schéma n'est pas en 3 FN. La dépendance d'un élément non clef (modèle, par exemple) avec un autre élément non clef (marque) en est la raison.

    Mais, ensuite, on nous demande une décomposition en 3FN.

    Je sais que cela relève du bon sens, mais j'aimerais avoir votre avis.

    Je décomposerais cette table de cette manière:

    modele (marque, prix, annee)
    voiture (n°stock, marque, couleur)

    C'est pour année, où je ne suis pas sûr de moi.

    Auriez-vous une autre proposition?

    Merci par avance,
    Johnny

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 249
    Points : 1 745
    Points
    1 745
    Par défaut
    Voiture (n°stock, marque, modèle, année, couleur, prix).

    On nous demande pourquoi le schéma n'est pas en 3 FN. La dépendance d'un élément non clef (modèle, par exemple) avec un autre élément non clef (marque) en est la raison.
    Ton énoncé est cyniquement trompeur, si on applique la règle de la 3 ème forme normale, on découpe alors ton objet en deux:

    Voiture (n°stock, marque, année, couleur, prix).

    SousComposant (marque, modèle).

    Malheureusement, cela n'a aucun sens sur le plan sémantique. d'abord, parce que marque et modèle n'ont pas de dépendance transitive. En effet, modèle est une clef, comme marque. Une dependance transitive digne de ce nom serait ( Departement, Description du departement ).

    Ensuite, il existe de nombreuses relation interdépendantes entre les élèments de la voiture que l'énonce ne precise pas, l'année, la couleur, le prix dependent de quel clef ( N°Stock ou Marque )...

    tu devrais travailler avec conception de bases de données relationnelles de Jacky AKOKA et ISABELLE COMYN-WATTIAU pour avoir des exemples réalistes.

    Pour en savoir plus sur les formes normales basiques : ici

  3. #3
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 001
    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 001
    Points : 30 905
    Points
    30 905
    Billets dans le blog
    16
    Par défaut Correction table T2 : ajout du modèle
    Bonsoir,


    Affirmer qu’un schéma T* d’une table T est ou n’est pas en 3NF ne se décide pas au hasard, mais sur preuves.
    Dans un premier temps, on doit disposer de la liste des règles de gestion de données concernées par T*.
    Dans un deuxième temps, on traduit sous forme de dépendances fonctionnelles les règles qui manifestement sont concernées.
    Dans un troisième temps, on détermine de façon algorithmique les clés candidates de T*.
    Dans un quatrième temps on vérifie le niveau de normalité de T*, sachant que la cible est la BCNF (forme normale de Boyce-Codd).
    (On se limitera ici à la 3NF).
    Or, vous dites :
    Citation Envoyé par johnny3 Voir le message
    On a la table suivante:
    Voiture (n°stock, marque, modèle, année, couleur, prix).
    On nous demande pourquoi le schéma n'est pas en 3 FN. La dépendance d'un élément non clef (modèle, par exemple) avec un autre élément non clef (marque) en est la raison.
    Où sont les règles de gestion des données ?
    Je suppose qu’en ayant souligné l’attribut NoStock, vous voulez signifier que celui-ci est clé ? Tout cela s’appelle mettre la charrue avant les bœufs.

    Si l’on parcourt le film en arrière, en ayant procédé ainsi, vous signifiez qu’il existe (entre autres) les dépendances fonctionnelles suivantes :
    DF1 : {NoStock} → {marque}
    DF2 : {NoStock} → {modèle}
    DF3 : {NoStock} → {année}
    DF4 : {NoStock} → {couleur}
    DF5 : {NoStock} → {prix}
    Je rappelle au passage la définition de la dépendance fonctionnelle (DF) :
    Soit A et B deux sous-ensembles d’attributs de l’en-tête (ou schéma) d’une table T. Cette table satisfait à la DF A → B si et seulement si à chaque fois que deux lignes de la table ont la même valeur pour A, elles ont nécessairement la même valeur pour B (A est appelé le déterminant et B le dépendant). On dit encore que A détermine fonctionnellement B.
    Vous noterez que je n’écris pas NoStock → marque, mais {NoStock} → {marque}. En effet, les DF ne mettent pas en jeu des éléments (les attributs) mais des sous-ensembles composés d’attributs.

    En remontant à la première phase, on doit obligatoirement trouver les règles de gestion des données du genre des suivantes (parmi une foultitude d’autres) :
    (RG1) Une voiture est synonyme d’un stock.
    (RG2) Une voiture est d’une seule marque.
    (RG3) Une voiture est d’un seul modèle.
    (RG4) Une voiture est d’une seule année.
    (RG5) Une voiture est d’une seule couleur.
    (RG6) Une voiture a un seul prix.
    Le coup du stock mérite des explications (j’aurais plutôt vu un numéro de série), mais bon. De même, qu’est-ce qu’une marque, un modèle ? De quelle année s’agit-il ? Production ? Vente ? Destruction ? Etc. Bref, il faut mettre un peu de sémantique dans tout cela, c’est la base. Règle d'or : on doit savoir parfaitement de quoi on parle. Partant de là, on peut produire un modèle conceptuel qui servira à la production des tables.
    Par ailleurs, il ne faut pas hésiter à utiliser des exemples. Je ne connais pas grand-chose au monde automobile, mais je ne pense pas dire de bêtises en prenant un exemple au hasard :
    La voiture Stock007, de marque Renault, modèle Clio III, produite en 2008, de couleur rose bonbon est à vendre pour 12000 euros.
    Je subodore alors qu’un modèle n’appartient qu’à une seule marque, je me renseigne auprès du chef de projet, et après confirmation de sa part, si la règle de gestion correspondante a été omise, je la fais rajouter :
    (RG7) un modèle est d’une seule marque.
    D’où une règle de gestion supplémentaire :
    DF6 : {modèle} → {marque}
    Le prix de la Clio III est peut être le même pour toutes les voitures de ce modèle (prix de vente conseillé en fonction de l’année par exemple), et plus généralement pour tous les modèles d’une marque. On va supposer que le chef de projet a dit que ce prix pouvait connaître des variations, en fonction de négociations avec l’acheteur et donc qu’il n’y a pas de règle unique en l’occurrence.
    Supposons donc que les règles de gestion soient complètes du point de vue de celles qui nous intéressent, c'est-à-dire les règles d’unicité entre attributs ou ensembles d’attributs.
    Les règles de gestions étant complètes, Les dépendances fonctionnelles qui en sont la traduction le sont aussi, il s’agit en la circonstance de DF1 à DF6.

    Je rappelle maintenant la définition de la clé candidate :
    Une clé candidate est un sous-ensemble d’attributs K de l’en-tête d’une relation R, respectant les deux contraintes suivantes :
    Unicité. Deux tuples distincts de R ne peuvent avoir même valeur de K.
    Irréductibilité (ou minimalité). Il n’existe pas de sous-ensemble strict de K garantissant la règle d’unicité.
    (vous pouvez remplacer "relation" par "table" et "tuple" par "ligne".)

    En vertu de quoi, une clé candidate détermine fonctionnellement chaque {attribut} de la table. Du fait de DF1 à DF5, {NoStock} est clé candidate.
    Il vous faudra ensuite vérifier s’il existe d’autres clés candidates.
    Partant, vous pourrez attaquer la normalisation, en commençant par la 2NF (ça n’est pas ma stratégie, mais on va faire comme si).

    Pour que le schéma de la table Voiture vérifie la 2NF, il faut
    1) Qu’il vérifie la 1NF
    2) Que tout {attribut} n’appartenant pas à une clé candidate n’en dépende pas que d’une partie.
    C’est notre cas, dans la mesure où l’on n’a trouvé qu’une seule clé, laquelle est un singleton.

    Pour que le schéma de table vérifie la 3NF, il faut :
    1) Qu’il vérifie la 2NF
    2) Que tout {attribut} n’appartenant pas à une clé candidate ne dépende pas d’un sous-ensemble d’attributs non-clés.
    Et cette fois-ci, on constate que la 3NF n’est pas respectée, à cause de DF6 :
    {modèle} → {marque}, en effet {marque} dépend de {modèle} qui n’est pas clé candidate.
    Normaliser consiste en l’occurrence à appliquer le théorème de Heath qui s’énonce ainsi :
    Soit la table R {X, Y, Z} dans laquelle X, Y et Z sont des ensembles d’attributs de R. Si R satisfait à la dépendance fonctionnelle X → Y, alors R est égale à la jointure de ses projections sur {X, Y} et {X, Z}.
    Si vous remplacez X par {modèle}, Y par {marque} et Z par ce qui reste, à savoir {NoStock, année, couleur, prix}, l’application du théorème conduit à décomposer la table en :
    T1 {modèle, marque}
    T2 {NoStock, modèle, année, couleur, prix}
    T1 a pour seule clé candidate {modèle} (facile à vérifier)
    T2 a pour clé candidate NoStock, héritée de Voiture.

    Je vous engage à lire la discussion avec Boubou382002, laquelle concerne votre sujet.

    Pour votre part, vous obtenez :
    modele (marque, prix, année)
    voiture (n°stock, marque, couleur)
    Si l’on traduit ceci sous forme de DF, puis de règles de gestion, on obtient :
    DF11 : {NoStock} → {marque}
    DF12 : {NoStock} → {couleur}
    DF13 : {marque} → {prix}
    DF14 : {marque} → {année}
    (RG11) Une voiture est d’une seule marque
    (RG12) Une voiture est d’une seule couleur
    (RG13) Une marque vend toutes ses voitures à un prix unique
    (RG14) Une marque vend toutes ses voitures la même année
    Admettez que les deux dernières règles n’ont pas d’équivalent dans la réalité...
    En plus on a perdu la relation entre une marque et ses modèles. Fâcheux.
    (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.

  4. #4
    Membre régulier
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2008
    Messages
    207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2008
    Messages : 207
    Points : 114
    Points
    114
    Par défaut
    Citation Envoyé par ylarvor Voir le message
    Ton énoncé est cyniquement trompeur, si on applique la règle de la 3 ème forme normale, on découpe alors ton objet en deux:

    Voiture (n°stock, marque, année, couleur, prix).

    SousComposant (marque, modèle).

    Malheureusement, cela n'a aucun sens sur le plan sémantique. d'abord, parce que marque et modèle n'ont pas de dépendance transitive. En effet, modèle est une clef, comme marque. Une dependance transitive digne de ce nom serait ( Departement, Description du departement ).

    Ensuite, il existe de nombreuses relation interdépendantes entre les élèments de la voiture que l'énonce ne precise pas, l'année, la couleur, le prix dependent de quel clef ( N°Stock ou Marque )...

    tu devrais travailler avec conception de bases de données relationnelles de Jacky AKOKA et ISABELLE COMYN-WATTIAU pour avoir des exemples réalistes.

    Pour en savoir plus sur les formes normales basiques : ici
    Merci, je vais commander le livre écrit par ces deux personnes pour m'entraîner pour l'examen (début février)

  5. #5
    Membre régulier
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2008
    Messages
    207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2008
    Messages : 207
    Points : 114
    Points
    114
    Par défaut
    Citation Envoyé par fsmrel Voir le message
    Bonsoir,


    Affirmer qu’un schéma T* d’une table T est ou n’est pas en 3NF ne se décide pas au hasard, mais sur preuves.
    Dans un premier temps, on doit disposer de la liste des règles de gestion de données concernées par T*.
    Dans un deuxième temps, on traduit sous forme de dépendances fonctionnelles les règles qui manifestement sont concernées.
    Dans un troisième temps, on détermine de façon algorithmique les clés candidates de T*.
    Dans un quatrième temps on vérifie le niveau de normalité de T*, sachant que la cible est la BCNF (forme normale de Boyce-Codd).
    (On se limitera ici à la 3NF).
    Or, vous dites :

    Où sont les règles de gestion des données ?
    Je suppose qu’en ayant souligné l’attribut NoStock, vous voulez signifier que celui-ci est clé ? Tout cela s’appelle mettre la charrue avant les bœufs.

    Si l’on parcourt le film en arrière, en ayant procédé ainsi, vous signifiez qu’il existe (entre autres) les dépendances fonctionnelles suivantes :
    DF1 : {NoStock} → {marque}
    DF2 : {NoStock} → {modèle}
    DF3 : {NoStock} → {année}
    DF4 : {NoStock} → {couleur}
    DF5 : {NoStock} → {prix}
    Je rappelle au passage la définition de la dépendance fonctionnelle (DF) :
    Soit A et B deux sous-ensembles d’attributs de l’en-tête (ou schéma) d’une table T. Cette table satisfait à la DF A → B si et seulement si à chaque fois que deux lignes de la table ont la même valeur pour A, elles ont nécessairement la même valeur pour B (A est appelé le déterminant et B le dépendant). On dit encore que A détermine fonctionnellement B.
    Vous noterez que je n’écris pas NoStock → marque, mais {NoStock} → {marque}. En effet, les DF ne mettent pas en jeu des éléments (les attributs) mais des sous-ensembles composés d’attributs.

    En remontant à la première phase, on doit obligatoirement trouver les règles de gestion des données du genre des suivantes (parmi une foultitude d’autres) :
    (RG1) Une voiture est synonyme d’un stock.
    (RG2) Une voiture est d’une seule marque.
    (RG3) Une voiture est d’un seul modèle.
    (RG4) Une voiture est d’une seule année.
    (RG5) Une voiture est d’une seule couleur.
    (RG6) Une voiture a un seul prix.
    Le coup du stock mérite des explications (j’aurais plutôt vu un numéro de série), mais bon. De même, qu’est-ce qu’une marque, un modèle ? De quelle année s’agit-il ? Production ? Vente ? Destruction ? Etc. Bref, il faut mettre un peu de sémantique dans tout cela, c’est la base. Règle d'or : on doit savoir parfaitement de quoi on parle. Partant de là, on peut produire un modèle conceptuel qui servira à la production des tables.
    Par ailleurs, il ne faut pas hésiter à utiliser des exemples. Je ne connais pas grand-chose au monde automobile, mais je ne pense pas dire de bêtises en prenant un exemple au hasard :
    La voiture Stock007, de marque Renault, modèle Clio III, produite en 2008, de couleur rose bonbon est à vendre pour 12000 euros.
    Je subodore alors qu’un modèle n’appartient qu’à une seule marque, je me renseigne auprès du chef de projet, et après confirmation de sa part, si la règle de gestion correspondante a été omise, je la fais rajouter :
    (RG7) un modèle est d’une seule marque.
    D’où une règle de gestion supplémentaire :
    DF6 : {modèle} → {marque}
    Le prix de la Clio III est peut être le même pour toutes les voitures de ce modèle (prix de vente conseillé en fonction de l’année par exemple), et plus généralement pour tous les modèles d’une marque. On va supposer que le chef de projet a dit que ce prix pouvait connaître des variations, en fonction de négociations avec l’acheteur et donc qu’il n’y a pas de règle unique en l’occurrence.
    Supposons donc que les règles de gestion soient complètes du point de vue de celles qui nous intéressent, c'est-à-dire les règles d’unicité entre attributs ou ensembles d’attributs.
    Les règles de gestions étant complètes, Les dépendances fonctionnelles qui en sont la traduction le sont aussi, il s’agit en la circonstance de DF1 à DF6.

    Je rappelle maintenant la définition de la clé candidate :
    Une clé candidate est un sous-ensemble d’attributs K de l’en-tête d’une relation R, respectant les deux contraintes suivantes :
    Unicité. Deux tuples distincts de R ne peuvent avoir même valeur de K.
    Irréductibilité (ou minimalité). Il n’existe pas de sous-ensemble strict de K garantissant la règle d’unicité.
    (vous pouvez remplacer "relation" par "table" et "tuple" par "ligne".)

    En vertu de quoi, une clé candidate détermine fonctionnellement chaque {attribut} de la table. Du fait de DF1 à DF5, {NoStock} est clé candidate.
    Il vous faudra ensuite vérifier s’il existe d’autres clés candidates.
    Partant, vous pourrez attaquer la normalisation, en commençant par la 2NF (ça n’est pas ma stratégie, mais on va faire comme si).

    Pour que le schéma de la table Voiture vérifie la 2NF, il faut
    1) Qu’il vérifie la 1NF
    2) Que tout {attribut} n’appartenant pas à une clé candidate n’en dépende pas que d’une partie.
    C’est notre cas, dans la mesure où l’on n’a trouvé qu’une seule clé, laquelle est un singleton.

    Pour que le schéma de table vérifie la 3NF, il faut :
    1) Qu’il vérifie la 2NF
    2) Que tout {attribut} n’appartenant pas à une clé candidate ne dépende pas d’un sous-ensemble d’attributs non-clés.
    Et cette fois-ci, on constate que la 3NF n’est pas respectée, à cause de DF6 :
    {modèle} → {marque}, en effet {marque} dépend de {modèle} qui n’est pas clé candidate.
    Normaliser consiste en l’occurrence à appliquer le théorème de Heath qui s’énonce ainsi :
    Soit la table R {X, Y, Z} dans laquelle X, Y et Z sont des ensembles d’attributs de R. Si R satisfait à la dépendance fonctionnelle X → Y, alors R est égale à la jointure de ses projections sur {X, Y} et {X, Z}.
    Si vous remplacez X par {modèle}, Y par {marque} et Z par ce qui reste, à savoir {NoStock, année, couleur, prix}, l’application du théorème conduit à décomposer la table en :
    T1 {modèle, marque}
    T2 {NoStock, année, couleur, prix}
    T1 a pour seule clé candidate {modèle} (facile à vérifier)
    T2 a pour clé candidate NoStock, héritée de Voiture.

    Je vous engage à lire la discussion avec Boubou382002, laquelle concerne votre sujet.

    Pour votre part, vous obtenez :
    modele (marque, prix, année)
    voiture (n°stock, marque, couleur)
    Si l’on traduit ceci sous forme de DF, puis de règles de gestion, on obtient :
    DF11 : {NoStock} → {marque}
    DF12 : {NoStock} → {couleur}
    DF13 : {marque} → {prix}
    DF14 : {marque} → {année}
    (RG11) Une voiture est d’une seule marque
    (RG12) Une voiture est d’une seule couleur
    (RG13) Une marque vend toutes ses voitures à un prix unique
    (RG14) Une marque vend toutes ses voitures la même année
    Admettez que les deux dernières règles n’ont pas d’équivalent dans la réalité...
    En plus on a perdu la relation entre une marque et ses modèles. Fâcheux.
    Ouf, merci pour cette réponse! Je la lirai à tête reposée demain soir.

    Ce qui est terrible dans cet exemple, c'est que je me suis rendu compte qu'il était fréquemment utilisé.

    Par exemple, à cette adresse, je viens de retomber dessus. Il est dit:

    VOITURE (NoStock, Marque, Modèle, Année, Couleur, Prix, TélFabricant)

    Dans le cas des voitures usagées, toutes les voitures de la même année sont vendues au même prix.

    Il y a une DF entre "Année" et "Prix", ce qui signifie que cette table n’est pas en 3FN. Il faut donc décomposer cette table en deux.
    VOITURE (NoStock, Marque, Modèle, Année, Couleur, TélFabricant)
    PRIXVENTE (Année, Prix)

  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 001
    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 001
    Points : 30 905
    Points
    30 905
    Billets dans le blog
    16
    Par défaut
    Bonsoir Johnny,


    Ok, mais vous auriez pu donner la référence dès le départ. On va quand même arranger ça tranquillement.

    Attention : dans mon précédent message, du fait d’un copier/coller intempestif, la table T2 a perdu un attribut, à savoir modèle.
    Donc au lieu de lire :
    T2 {NoStock, année, couleur, prix}
    Il faut lire :
    T2 {NoStock, modèle, année, couleur, prix}
    Je suis désolé. J’ai corrigé mon message en ce sens. Il serait bien que vous en fassiez autant dans la citation que vous faites...

    Ceci dit, Reprenons les règles initiales :
    (RG1) Une voiture est synonyme d’un stock.
    (RG2) Une voiture est d’une seule marque.
    (RG3) Une voiture est d’un seul modèle.
    (RG4) Une voiture est d’une seule année.
    (RG5) Une voiture est d’une seule couleur.
    (RG6) Une voiture a un seul prix.
    J’avais complété la liste avec la règle suivante :
    (RG7) Un modèle est d’une seule marque.
    L’auteur de l’exercice n’en a pas tenu compte, mais il aurait dû.
    Complétons à nouveau la liste, avec la règle nouvelle :
    (RG8) Toutes les voitures de la même année sont vendues au même prix.
    Voici la liste des dépendances fonctionnelles (DF) que j’avais fournie :
    DF1 : {NoStock} → {marque}
    DF2 : {NoStock} → {modèle}
    DF3 : {NoStock} → {année}
    DF4 : {NoStock} → {couleur}
    DF5 : {NoStock} → {prix}
    DF6 : {modèle} → {marque}
    Cette liste est donc à compléter :
    DF7 : {année} → {prix}
    A la coquille près, en normalisant, on était arrivé à la décomposition suivante :
    T1 {modèle, marque}
    T2 {NoStock, modèle, année, couleur, prix}
    Au vu des DF dont on disposait, les tables étaient normalisées.

    Je rappelle que pour respecter la 3NF, le schéma de la table T2 doit vérifier les points suivants :
    1) Être en 2NF
    2) Tout {attribut} n’appartenant pas à une clé candidate ne doit pas dépendre d’un sous-ensemble non-clé d’attributs.
    Or, du fait de DF7, {prix} dépend de {année} qui n’est pas clé candidate (sinon, pour une année donnée, le stock serait constitué de voitures qui seraient toutes du même modèle et de la même couleur)
    Donc, n'étant pas normalisée en 3NF, T2 doit à son tour subir l’application du théorème de Heath que je mentionne à nouveau :
    Soit la table R {X, Y, Z} dans laquelle X, Y et Z sont des ensembles d’attributs de R. Si R satisfait à la dépendance fonctionnelle X → Y, alors R est égale à la jointure de ses projections sur {X, Y} et {X, Z}.
    Si vous remplacez X par {année}, Y par {prix} et Z par ce qui reste, à savoir {NoStock, modèle, couleur}, l’application du théorème conduit à décomposer la table T2 en :
    T21 {année, prix}
    T22 {NoStock, modèle, année, couleur}
    T21 a pour seule clé candidate {année} (facile à vérifier)
    T22 a pour clé candidate NoStock, héritée de T2.
    T22 ne comporte plus de DF conduisant à un viol de la 3NF.

    Pour revenir à la case Départ et pour résumer, comme la table initiale :
    Voiture {NoStock, marque, modèle, année, couleur, prix}
    viole la 3NF, elle fait l’objet d’une décomposition sans perte en 3 tables normalisées :
    T1 {modèle, marque}
    T21 {année, prix}
    T22 {NoStock, modèle, année, couleur}
    Telles que :
    Voiture = T1 JOIN T21 JOIN T22.
    Il est évident que si votre source tenait compte de DF6, il devrait continuer le travail, pour aboutir à un résultat normalisé.

    Encore désolé pour la coquille. N'hésitez pas à poser des questions. Bon courage.
    (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 régulier
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2008
    Messages
    207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2008
    Messages : 207
    Points : 114
    Points
    114
    Par défaut réponse
    Bonjour,

    je croyais avoir répondu à ce post mais je viens de me rendre compte que ce n'était pas le cas. Je vous présente mes excuses pour cela.

    Merci d'avoir répondu à ma question, cela m'a beaucoup aidé.

    Cordialement,
    Johnny

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

Discussions similaires

  1. [MySQL] La syntaxe !mysql_query est-elle correcte ?
    Par pierre50 dans le forum PHP & Base de données
    Réponses: 10
    Dernier message: 11/02/2008, 15h38
  2. [DTD simple] Est-elle correcte ?
    Par FenX. dans le forum Valider
    Réponses: 1
    Dernier message: 21/08/2007, 09h47
  3. Ma requête est-elle correcte?
    Par nicotine002 dans le forum Langage SQL
    Réponses: 8
    Dernier message: 15/12/2006, 16h58
  4. cette requête est-elle correcte?
    Par spilliaert dans le forum Requêtes
    Réponses: 1
    Dernier message: 02/02/2006, 22h33
  5. Syntaxe est-elle correcte
    Par Silvia12 dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 18/07/2005, 12h21

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