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 :

normalisation 2NF quel intérêt


Sujet :

Schéma

  1. #1
    Membre à l'essai
    Homme Profil pro
    Chômeur professionnel
    Inscrit en
    Novembre 2020
    Messages
    122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Algérie

    Informations professionnelles :
    Activité : Chômeur professionnel

    Informations forums :
    Inscription : Novembre 2020
    Messages : 122
    Points : 14
    Points
    14
    Par défaut normalisation 2NF quel intérêt
    Yo les mecs,

    ok pour le 1NF, il est important qu'un tableau ne ressemble pas à un gros pâté où on a fourré toutes les infos.
    en respectant une normalisation 1NF on a déjà qqch qui ressemble très fortement à une vraie BDD
    par contre 2NF j'ai pas trop compris. Déjà qui est assez bête pour mettre 2 colonnes composite key au lieu d'une seule colonne primary key dont on sait que c'est généralement la colonne ID.
    à partir du moment où on a une seule colonne ID primary key pour un tableau la question ne se pose plus de savoir si un attribut non candidat deprendra partiellement ou complètement d'une composite key. si vous avez des exemples où 2 colonnes composite key sont obligatoires et preferable à une colonne primary key jveux bien entendre l'exemple.
    et si un gars omettait de lier une colonne non candidate complètement aux 2 colonnes composite key à quel moment ça génère une anomalie ?
    si je lance une requete de recherche en joignant les 2 colonnes, l'attribut non lié aux 2 colonnes ne sortira pas dans les resultats, right ? mais que dire si je modifie cette colonne ? il ny aura aucune anomalie. enfin bref jvois pas en quoi c'est critique de respecter le 2NF

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 121
    Points : 82
    Points
    82
    Par défaut
    Bonjour,

    Je ne suis pas sûr d'avoir tout compris votre problème. Mais en exemple si vous avez une clé primaire composé de deux attributs, un nom et un prénom par exemple, cela évitera d'avoir des doublons de personnes car vous ne pouvez avoir qu'une unique personne avec ce nom et prénom. Par contre si vous utilisez des id qui sont des chiffres en clé primaire, rien ne vous empeches d'avoir deux fois les mêmes données.

  3. #3
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 133
    Points : 38 556
    Points
    38 556
    Billets dans le blog
    9
    Par défaut
    Bonjour,

    Citation Envoyé par Yuseph Voir le message
    Yo les mecs,
    ok pour le 1NF, il est important qu'un tableau ne ressemble pas à un gros pâté où on a fourré toutes les infos.
    en respectant une normalisation 1NF on a déjà qqch qui ressemble très fortement à une vraie BDD
    Une table n'est pas un tableau, dans un tableau, les formes normales, on s'en fiche.


    Citation Envoyé par Yuseph Voir le message
    par contre 2NF j'ai pas trop compris. Déjà qui est assez bête pour mettre 2 colonnes composite key au lieu d'une seule colonne primary key dont on sait que c'est généralement la colonne ID.
    à partir du moment où on a une seule colonne ID primary key pour un tableau la question ne se pose plus de savoir si un attribut non candidat deprendra partiellement ou complètement d'une composite key. si vous avez des exemples où 2 colonnes composite key sont obligatoires et preferable à une colonne primary key jveux bien entendre l'exemple.
    Les exemples sont légion :
    • Cas des tables associatives : l'identifiant d'une table associative est composé des identifiants de chaque type d'entité participant à l'association, soit à minima deux colonnes
    • Cas de l'identification relative : la table issue de l'entité-type faible a pour identifiant celui de l'entité-type forte complété d'un identifiant propre.
      par exemple, la table "ligne de commande" aura pour identifiant l'identifiant commande + un chrono



    Citation Envoyé par Yuseph Voir le message
    et si un gars omettait de lier une colonne non candidate complètement aux 2 colonnes composite key à quel moment ça génère une anomalie ?
    si je lance une requete de recherche en joignant les 2 colonnes, l'attribut non lié aux 2 colonnes ne sortira pas dans les resultats, right ? mais que dire si je modifie cette colonne ? il ny aura aucune anomalie. enfin bref jvois pas en quoi c'est critique de respecter le 2NF
    "Les mecs", "un gars" , disons plutôt quelqu'un ce sera plus correct et plus réaliste. Les femmes aussi ont le droit, fort heureusement, de modéliser des bases de données et de les utiliser...
    Cela étant dit, si un attribut non candidat ne dépend que d'une partie de l'identifiant, c'est qu'il y a redondance.
    Ce faisant, toute modification de la valeur de cet attribut devra être répétée autant de fois qu'il est redondant. C'est un risque d'oubli, un coût de stockage et un coût de mise à jour inutiles.


    Citation Envoyé par bbsebb Voir le message
    Bonjour,

    Je ne suis pas sûr d'avoir tout compris votre problème. Mais en exemple si vous avez une clé primaire composé de deux attributs, un nom et un prénom par exemple, cela évitera d'avoir des doublons de personnes car vous ne pouvez avoir qu'une unique personne avec ce nom et prénom. Par contre si vous utilisez des id qui sont des chiffres en clé primaire, rien ne vous empeche d'avoir deux fois les mêmes données.
    C'est différent : le doublon fonctionnel vrai sera évité par l'ajout d'une contrainte UNIQUE sur le ou les attributs permettant de vérifier l'unicité.
    Dans votre exemple, la contrainte UNIQUE posée sur nom+prenom évite les doublons, pour autant, ce binôme n'a pas vocation a être l'identifiant primaire, c'est même à éviter : les colonnes dont le contenu peut changer (modification de l'orthographe du nom suite à erreur de saisie par exemple) ne doivent pas être retenues comme identifiants primaires. Les identifiants primaires se propagent dans les tables liées c'est pourquoi ils doivent être stables pour éviter les mises à jour en cascade.
    Dans la vraie vie, on posera plutôt une contrainte unique sur une colonne fiable telle que le numéro national d'identité (NNI ou NIR) car le couple nom+prénom ne saurait être unique, homonymes oblige.

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 121
    Points : 82
    Points
    82
    Par défaut
    Cest vrai, l'exemple n'était pas probant.

Discussions similaires

  1. JBPM : quel intérêt ?
    Par shada dans le forum Wildfly/JBoss
    Réponses: 0
    Dernier message: 12/09/2008, 07h58
  2. JavaScript >1.5 : quel intérêt ?
    Par Hibou57 dans le forum Général JavaScript
    Réponses: 12
    Dernier message: 03/10/2007, 18h42
  3. [JRuby] quel intérêt ?
    Par titoumimi dans le forum Autres
    Réponses: 9
    Dernier message: 18/06/2007, 23h31
  4. Attribut public, quel intérêt?
    Par FCDB dans le forum Langage
    Réponses: 6
    Dernier message: 18/09/2005, 00h44

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