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 :

formes normales à l'instinct. [Normalisation]


Sujet :

Schéma

  1. #1
    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 formes normales à l'instinct.
    bon, voilà, j'ai eu un examen, on m'a demandé les formes normales, je ne me souvenais plus de la définition, j'ai préféré faire un schéma innovant mais peut etre faux...

    voila ce que j'ai dit...

    1 er forme normale

    atomicité

    exemple

    (pk,nom prenom, age) (1, larvor yann, 37) devient (pk, nom, prenom, age ) ( 1, larvor, yann, 37 )...

    jusque là rien d'innovant...

    2 ème forme normale

    ( pk , nom, prenom, pk, chiffre d'affaire )
    devient
    ( pk, nom, prenom ) et ( pk, chiffre d'affaire ).

    est ce que c'est bon ?

    3 ème forme normale

    ( pk, nom, prenom, adresse ) devient (pk, nom, prenom, pk adresse ) et ( pkadresse, adresse ) avec pour exemple

    l'arvor yann, 52 route de porsgwen
    l'arvor maryvonne, 52 route de porsgwen
    dupont alain, rue des mimosas

    devient

    larvor yann 1
    larvor maryvonne 1
    dupond alain 2

    et adresses
    1 52 route de porsgwen
    2 rue des mimosas

    qu'en pensez vous ? quel note accorderiez vous ?

    d'après wikipedia, ma 3 ème forme normale, est en fait une deuxième forme normale. et ma deuxième forme normale ? elle sort d'ou ?

    il semble que je n'aurais que 1/3 des points pour la premiere forme normale...

    autre debat, wikipedia dit que la clef primaire est obligatoire dans le champs relationnelle... et pourtant une clef primaire ne sert qu'en cas de clef etrangère ? qu'en pensez vous ? wikipedia a t'il tord ?

  2. #2
    Expert confirmé
    Avatar de Hephaistos007
    Profil pro
    Enseignant Chercheur
    Inscrit en
    Décembre 2004
    Messages
    2 493
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 493
    Points : 4 166
    Points
    4 166
    Par défaut
    En effet, tu gères les formes normales à l'instinct . En pratique, on ne peut répondre correctement à la question qu'en ayant sous les yeux une relation de départ (non-décomposée) ainsi qu'un ensemble de dépendances fonctionnelles (DFs).

    Tout bêtement, ta relation de départ est la suivante (no-personne, nom-personne, prenom-personne, age-personne, CA-personne, adresse-personne), ainsi que les DFs suivantes :

    no-personne -> nom-personne,
    no-personne -> prenom-personne,
    no-personne -> age-personne,
    no-personne -> CA-personne,
    no-personne -> adresse-personne

    De là tu en déduit que la clé primaire va être no-personne, et que du même coup, ta relation initiale est déjà en 3FN. Il n'y a rien à décomposer.

  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 113
    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 113
    Points : 31 588
    Points
    31 588
    Billets dans le blog
    16
    Par défaut
    Bonsoir,


    Citation Envoyé par ylarvor Voir le message
    autre debat, wikipedia dit que la clef primaire est obligatoire dans le champs relationnelle... et pourtant une clef primaire ne sert qu'en cas de clef etrangère ? qu'en pensez vous ? wikipedia a t'il tord ?
    Une clé (primaire ou plus généralement candidate, car une table peut comporter plus d’une clé) a pour objet de garantir les règles dites d’unicité et d’irréductibilité.

    Soit K un sous-ensemble d’attributs de l’en-tête d’une table T. K est une clé candidate (clé pour abréger) pour T si et seulement si :
    (1) Pour deux lignes l1 et l2 de la table T, dont les valeurs pour K sont respectivement k1 et k2, on vérifie toujours k1 ≠ k2. Ceci correspond à la règle d’unicité.

    (2) Il n’existe pas de sous-ensemble strict K’ de K qui vérifie la règle d’unicité. Ceci correspond à la règle d’irréductibilité.
    Toute table doit être dotée d’une clé, même si la norme SQL ne l’exige pas.

    Les clés étrangères ne sont pas parties prenantes dans cette affaire. Elles n’interviennent que pour garantir l’intégrité référentielle entre tables.

    Wikipedia n’a donc pas tort, si ce n’est qu’une clé étrangère peut aussi bien faire référence à une clé alternative qu’à la clé primaire (clé candidate non retenue comme clé primaire).


    Citation Envoyé par ylarvor Voir le message
    1 er forme normale

    atomicité

    exemple

    (pk,nom prenom, age) (1, larvor yann, 37) devient (pk, nom, prenom, age ) ( 1, larvor, yann, 37 )...
    Disons que le mot « atomicité » intervient souvent dans la définition de la 1re forme normale, mais celle-ci ne se résume pas à un seul mot... D’autant plus que l'atomicité peut ici être interprétée de 36 façons, la plus pertinente étant qu’un attribut de doit pas comporter de tableau (array) de valeurs.
    Par ailleurs, « (pk,nom prenom, age) » est syntaxiquement faux et ne signifie donc rien.

    Reportez-vous à Bases de données relationnelles et normalisation pour en savoir plus sur la première forme normale.


    Citation Envoyé par ylarvor Voir le message
    2 ème forme normale

    ( pk , nom, prenom, pk, chiffre d'affaire )
    Cet en-tête comporte des éléments en double, or, quoi qu’en dise la norme SQL, l’en-tête d’une table est un ensemble (au sens de la théorie des ensembles), donc l’élément « pk » ne doit être présent qu’une fois. Je ne vois aucun rapport avec la définition de la deuxième forme normale, selon laquelle :
    Une table T est en deuxième forme normale si elle est en première forme normale et si chaque attribut n’appartenant à aucune clé candidate de T est en dépendance totale de chaque clé candidate de T.
    N.B. Soit X un sous-ensemble quelconque d’attributs de T et C un attribut quelconque de T. La dépendance fonctionnelle X {C} est dite totale s’il n’existe pas Y strictement inclus dans X tel que Y {C}. (Noter que C peut appartenir à X).


    Citation Envoyé par ylarvor Voir le message
    3 ème forme normale
    Toujours les mêmes remarques concernant la rigueur...
    Une table T est en troisième forme normale si elle est en deuxième forme normale et si chaque attribut n’appartenant à aucune clé candidate ne dépend directement que des clés candidates de T.
    N.B. Étant donnés trois sous-ensemble d’attributs A, B, C d’une table T, la dépendance fonctionnelle A C est dite transitive si elle vérifie :
    (1) A B
    (2) B C
    (3) B –/ A (la dépendance fonctionnelle B A n’existe pas)
    (4) B n’est pas inclus dans A (la dépendance fonctionnelle A B est donc non triviale).
    Si C ne dépend pas transitivement de A, la dépendance fonctionnelle A C est dite directe.

    Sinon, vos exemples illustrent ce qui précède (dommage que vous n'ayez pas eu un minimum de rigueur) :

    l'arvor yann, 52 route de porsgwen
    l'arvor maryvonne, 52 route de porsgwen
    dupont alain, rue des mimosas

    devient

    larvor yann 1
    larvor maryvonne 1
    dupond alain 2

    et adresses
    1 52 route de porsgwen
    2 rue des mimosas
    ...


    Citation Envoyé par ylarvor Voir le message
    d'après wikipedia, ma 3 ème forme normale, est en fait une deuxième forme normale. et ma deuxième forme normale ? elle sort d'ou ?
    Vous n’avez fourni aucune définition des deuxième et troisième formes normales et vous n’avez pas fourni le lien Wikipedia. Impossible de dire qui a bon, ou encore si vous avez faux tous les deux.

    A part ça, votre instinct et votre manque total de rigueur vous ont joué un vilain tour...

  4. #4
    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
    Pour ma défense, l'examen portait sur la business intelligence, nous avions 15 questions théoriques à répondre en 1H dont une toute petite question portait sur les définitions des formes normales. J'ai appris le jeudi soir pour le samedi que l'examen portait aussi sur les formes normales et je savais que c'était un sujet complexe que j'ai essayé d'expliquer avec mes mots sur de vagues souvenirs de 2008.
    Je me suis réinscrit sur NFE 113, pour ne pas perdre la main, administration de bases de données, au deuxième semestre, je ne doute pas que l'on abordera en détail ce sujet.
    le cours que l'on me proposa pour étudier les formes normales en bi est le cours de wikipédia
    http://fr.wikipedia.org/wiki/Forme_n...relationnelles)
    jettez un coup d'oeil sur les exemples! cela a mis le doute dans mon esprit.

    je retiens que (pk, nom, prenom, pk, chiffre d'affaire ) est une absurdité car on traite des ensembles et par conséquent, l'ensemble ne possède qu'une clef primaire cohérente avec l'ensemble des attributs. elle peut possède plusieurs clef candidates.
    C'est dommage, je croyais avoir trouver une façon d'expliquer la séparation des tables par la deuxième forme normale... trop facile

    je retiens qu'une table doit toujours avoir une clé primaire même si en pratique, le sgbd peut fonctionner sans.

    Bonne soirée à vous. Merci pour vos explications. Pour le reste, malgré une certaine précipitation pendant l'examen, je pense quand même avoir la moyenne.

  5. #5
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 113
    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 113
    Points : 31 588
    Points
    31 588
    Billets dans le blog
    16
    Par défaut
    Bonsoir Yann,


    Citation Envoyé par ylarvor Voir le message
    le cours que l'on me proposa pour étudier les formes normales en bi est le cours de wikipédia
    http://fr.wikipedia.org/wiki/Forme_n...relationnelles)
    jettez un coup d'oeil sur les exemples! cela a mis le doute dans mon esprit.
    J’ai regardé : c’est tout et n’importe quoi. A oublier d’urgence.


    Citation Envoyé par ylarvor Voir le message
    je retiens que (pk, nom, prenom, pk, chiffre d'affaire ) est une absurdité car on traite des ensembles
    C'est-à-dire que cet en-tête de table est un ensemble E dont les éléments sont des noms d’attributs : <pk>, <nom>, <prenom>, <chiffre_d_affaire>, d’où l’ensemble E ={pk, nom, prenom, chiffre_d_affaire}.


    Citation Envoyé par ylarvor Voir le message
    par conséquent, l'ensemble ne possède qu'une clef primaire cohérente avec l'ensemble des attributs.
    Il n’y a aucune relation entre l’antécédent (le fait que l’en-tête de la table soit un ensemble) et le conséquent (existence d’une clé). Un sac (bag) a lui aussi un en-tête qui est un ensemble d’attributs, mais les lignes en double y sont autorisées (cas de la norme SQL par exemple) et un sac n'a donc pas de clé primaire. Comme vous l’a expliqué Hephaistos007, pour découvrir les clés de la table, vous devez connaître les dépendances fonctionnelles qui lui sont associées, c'est-à-dire les relations fonctionnelles entre sous-ensembles d’attributs.

    Quoi qu’il en soit, s’il n’existe aucune DF non triviale pour la table, alors il faut définir une clé (appelons-la K) dont les éléments sont ceux de l’en-tête : K = {pk, nom, prenom, chiffre_d_affaire}.

    Je rappelle en passant une définition de la dépendance fonctionnelle.

    Une dépendance fonctionnelle (DF) est une instruction de la forme :
    X Y
    où X et Y sont deux sous-ensembles d’attributs de l’en-tête d’une table T, et répondant à la règle : pour une valeur de X, correspond exactement une valeur de Y, c'est-à-dire que si deux lignes ont la même valeur vx pour X, alors elles ont aussi la même valeur vy pour Y.


    Citation Envoyé par ylarvor Voir le message
    malgré une certaine précipitation pendant l'examen, je pense quand même avoir la moyenne.
    Espérons, mais il faudra tout de même me soigner ces formes normales...

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

Discussions similaires

  1. Formes normales et champs multi-valués
    Par Doom dans le forum IHM
    Réponses: 3
    Dernier message: 08/02/2007, 12h58
  2. forme normale d'une table
    Par katkouta dans le forum Décisions SGBD
    Réponses: 2
    Dernier message: 05/06/2006, 22h20
  3. [FN]Question sur les formes normales
    Par joxbl dans le forum Schéma
    Réponses: 1
    Dernier message: 18/10/2005, 16h11
  4. 1ere ,2eme ...forme normal
    Par Melvine dans le forum Décisions SGBD
    Réponses: 5
    Dernier message: 24/05/2005, 23h05
  5. explication de définition-formes normales
    Par new_wave dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 25/01/2005, 13h40

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