OVH Cloud OVH Cloud

3ème forme normale

1 réponse
Avatar
Banoît Barbier
Bonjour à tous,

La 3ème forme normale indique qu'une table est en 3NF si tous les
attributs non clés sont directement et pleinement dépendants des clés.
Mais aussi : aucun attribut non clé ne dépend d'un autre attribut non
clé.

Si j'ai bien compris la 3NF interdit les dépendances
fonctionnelles(df) transitives.

Mais que faut-il faire d'un attribut non clef pleinement dépendant de
l'attribut clef mais qui peut aussi garantir l'unicité?
Et donc qui induit une transitivité...

Ex:dans une entité livres(base de données d'une librairie).
#Num_livre
Stock
Prix
ISBN
...


ISBN est un identifient unique de livre mais pas la clef. Ce qui
contreviens à la 3NF puisqu'il induit une transitivité.

Dans cette table, les dépendances fonctionnelles(df) sont les
suivantes

#Num_livre ---df---> Stock
#Num_livre ---df---> Prix
#Num_livre ---df---> ISBN

Mais aussi :
ISBN ---df---> #Num_livre
ISBN ---df---> Stock
ISBN ---df---> Prix

Nous avons bien affaire à des attributs non clef (Stock, Prix, etc)
qui dépendent d'un autre attribut non clef(ISBN). Mais je ne comprend
pas en quoi cela pose problème. C'est très fréquent avec les adresses
émail, etc. J'ai peut-être mal interprété la règle...Qui peut
m'éclairer?

Merci d'avance.

Benoît

1 réponse

Avatar
Fred BROUARD - SQLpro
Banoît Barbier a écrit:
Bonjour à tous,

La 3ème forme normale indique qu'une table est en 3NF si tous les
attributs non clés sont directement et pleinement dépendants des clés.
Mais aussi : aucun attribut non clé ne dépend d'un autre attribut non
clé.

Si j'ai bien compris la 3NF interdit les dépendances
fonctionnelles(df) transitives.

Mais que faut-il faire d'un attribut non clef pleinement dépendant de
l'attribut clef mais qui peut aussi garantir l'unicité?
Et donc qui induit une transitivité...

Ex:dans une entité livres(base de données d'une librairie).
#Num_livre
Stock
Prix
ISBN
...


ISBN est un identifient unique de livre mais pas la clef. Ce qui
contreviens à la 3NF puisqu'il induit une transitivité.

Dans cette table, les dépendances fonctionnelles(df) sont les
suivantes

#Num_livre ---df---> Stock
#Num_livre ---df---> Prix



Oui, mais : prix actuel, peut varier dans le temps, être remisé. Par exemple la Loi autorise jusqu'à 5% de remise max.
Mais étant auteur, j'ai droit à 10% sur certains livres de certains éditeurs et 30% chez mon éditeur !

#Num_livre ---df---> ISBN

Mais aussi :
ISBN ---df---> #Num_livre
ISBN ---df---> Stock
ISBN ---df---> Prix



Donc là, certaiement pas !

A +


Nous avons bien affaire à des attributs non clef (Stock, Prix, etc)
qui dépendent d'un autre attribut non clef(ISBN). Mais je ne comprend
pas en quoi cela pose problème. C'est très fréquent avec les adresses
émail, etc. J'ai peut-être mal interprété la règle...Qui peut
m'éclairer?



papa et maman peuvent avoir le même mail... donc un mail peut correspondre à + sieurs personnes !

A +


Merci d'avance.

Benoît



--
Frédéric BROUARD, MVP MS SQL Server. Expert Langage SQL / Delphi / web
Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html
Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com
************************ www.datasapiens.com *************************