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 :

insertion d'une identifiant incrémenté-


Sujet :

Schéma

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    976
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 976
    Points : 139
    Points
    139
    Par défaut insertion d'une identifiant incrémenté-
    Bonjour,

    Dans le schéma suivant:
    INGREDIENT(nom_ingrédient, lib_type_ingrédient)

    TYPE INGREDIENT(lib_type_ingredient,unité_mesure_ingredient)
    j'aimerais apporter une précision en transformant l'identifiant de chacune de ces entités en un numéro incrémenté, ce qui donnerait cela :

    INGREDIENT( num_ingredient,nom_ingredient, num_type_ingredient)

    TYPE_INGREDIENT(num_type_ingredient, lib_type_ingredient,unité_mesure_ingredient)

    Le problème est que l'on peut dire qu'il existe un Df entre lib_type_ingredient et unité_mesure_ingredient dans l'entité TYPE_INGREDIENT, et donc que ce schéma n'est pas en 3 FN.
    comment supprimer cette contradiction apparente?

    sinon, pouvez vous me préciser si la normalisation du MCD doit se faire après le passage du MCD au MLD ou pas forcément.

    Merci encore beaucoup de votre aide.
    Cordialement.

    Natahlie Harbonne

  2. #2
    Membre expert
    Avatar de hed62
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2007
    Messages
    2 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 029
    Points : 3 134
    Points
    3 134
    Par défaut
    comment supprimer cette contradiction apparente?
    En n'ajoutant pas les id, je dirais... A valider.

  3. #3
    Membre chevronné
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Août 2007
    Messages
    797
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Août 2007
    Messages : 797
    Points : 2 065
    Points
    2 065
    Par défaut
    Bonjour Nathalie,

    Selon l'hypothèse de départ :
    • nom_ingrédient -> lib_type_ingrédient (1)
    • lib_type_ingredient -> unité_mesure_ingredient (2)


    L'ajout des numéros sous-entend les DF :
    • num_ingredient -> nom_ingredient (3)
    • num_ingredient -> num_type_ingredient (4)
    • num_type_ingredient -> lib_type_ingredient (5)
    • num_type_ingredient -> unité_mesure_ingredient (6)


    Ce schéma n'est pas en 3FN car la DF (6) n'est pas directe, elle peut être obtenue par (5) + (2).
    Le cas de lib_type_ingredient est un peu plus "bizarre" : cet attribut est déterminé par nom_ingredient (1) et par num_type_ingredient (5), mais pas par la concaténation des deux (sinon il aurait existé la DF {num_type_ingredient, nom_ingredient} -> lib_type_ingredient). Donc il dépend de l'identifiant de la table dans laquelle il se trouve, mais aussi d'un autre attribut extérieur à cette table.


    Solution 1 :

    Décomposition de TYPE_INGREDIENT :
    T1(num_type_ingredient, lib_type_ingredient)
    T2(lib_type_ingredient, unité_mesure_ingredient)

    Création d'une nouvelle table :
    T3(nom_ingrédient, lib_type_ingrédient)

    INGREDIENT reste telle quelle :
    INGREDIENT(num_ingredient, nom_ingredient, num_type_ingredient)

    Toutes les tables sont en 3FN et toutes les DF existantes sont satisfaites (mais pas toi, j'imagine !)


    Solution 2 :

    Remettre en cause l'hypothèse de départ, c'est-à-dire l'existence des DF (1) et (2) après ta 2e modélisation.
    Le fait de décider que les ingrédients doivent être identifiés par un numéro doit répondre à un besoin, sinon c'est inutile. Ce besoin est probablement que nom_ingrédient est un mauvais identifiant. Du coup, la DF (1) est caduque. De même pour num_type_ingrédient qui rend caduque la DF (2).
    Et la contradiction est levée.


    JPhi33

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 06/09/2017, 09h27
  2. Insert vide pour auto-incrémenter l'identifiant, est-ce possible ?
    Par thedev44 dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 22/05/2014, 10h52
  3. [MySQL] Insertion d'un identifiant auto-incrementé dans une autre table
    Par knebhi dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 30/07/2009, 11h25
  4. [DOM] [Xerces] Insertion d'une entité
    Par Traroth dans le forum Format d'échange (XML, JSON...)
    Réponses: 10
    Dernier message: 19/05/2008, 09h28
  5. Insert ds une column identity
    Par Trahwn dans le forum MS SQL Server
    Réponses: 11
    Dernier message: 06/10/2003, 15h14

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