on a une relation R(A,B,C,D)
A est la cle
et on a
AB determine C
est ce que cette relation est en deuxieme forme normale?
l'ambiguité c'est que ( AB determine C) n'est pas une DF elementaire
merci de votre reponse
on a une relation R(A,B,C,D)
A est la cle
et on a
AB determine C
est ce que cette relation est en deuxieme forme normale?
l'ambiguité c'est que ( AB determine C) n'est pas une DF elementaire
merci de votre reponse
Euh...
Si A est la clé, alors B est déterminé par A, C est déterminé par A et D est déterminé par A.
Donc dire que C est déterminé par AB est faux, B est inutile.
Donc soit C est déterminé par B, et à ce moment, il faut éclater votre relation, soit C n'est déterminé que par A, et à ce moment il n'y a plus d'ambiguïté.
merci stringbuilder
mais est ce que on peut dire que cette relation est en 3eme forme normale ou non?
Bonjour,
Je ne suis pas un spécialiste, mais c'est en expliquant que nous pouvons progresser.
Il aurait été préférable de présenter les dépendances fonctionnelles de R. Ainsi, nous aurions compris plus facilement les raisons pour lesquelles tu indiques
Si tu confirmes ce qui est expliqué par @StringBuilderAB determine C
Cette relation est bien 3NF et même en BCNF.Si A est la clé, alors B est déterminé par A, C est déterminé par A et D est déterminé par A.
Donc dire que C est déterminé par AB est faux, B est inutile.
Donc soit C est déterminé par B, et à ce moment, il faut éclater votre relation, soit C n'est déterminé que par A, et à ce moment il n'y a plus d'ambiguïté.
En effet, A est clé candidate et surclé.
Ted Codd donne cette définition de la 3NF
Nous sommes bien dans cette situation en partant de l'hypothèse présentée par @StringBuilder.Une relation R 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 R.
Pour la BNCF, A étant une surclé de R, nous repectons les conditions fixées par DATE.
Tu auras toutes les explication nécessaires en te reportant
http://fsmrel.developpez.com/basesre...?page=3#L3.4.1
Bon courage
Bonjour,
Objection ! Puisque {A} est clé, on a la DF :
DF1 : {A} -> {C}Par application à DF1 de l’axiome d’augmentation, on produit la DF :
DF2 : {A, B} -> {B, C}Par application à DF2 de la règle de décomposition on produit la DF :
DF3 : {A, B} -> {C}Donc énoncer que « C est déterminé par AB est faux » c’est affirmer que les axiomes d’Armstrong (qui ont près de 40 ans) sont faux : en voilà un scoop !
Puisque {A} est clé, on a les dépendances fonctionnelles :
DF1 : {A} -> {A}
DF2 : {A} -> {B}
DF3 : {A} -> {C}
DF4 : {A} -> {D}
Vous écrivez : « A est la clé », autrement dit R a pour seule clé candidate {A}, à l'exclusion de toute autre. Les attributs B, C et D n’en font pas partie et on répond donc à la condition formulée dans l’énoncé de la 2NF : celle-ci est respectée.
La DF (inférée de DF3 par les axiomes d'Armstrong, cf. mon message précédent) :
DF5 : {A, B} -> {C}n’a pas pu s’opposer au respect de la 2NF.
Comme je viens de le dire, DF5 est inférée de DF3 mais sans incidence sur le respect par R de la 2NF. En revanche, supposons que l’ensemble donné des dépendances fonctionnelles soit par exemple le suivant :
DF3 : {A} -> {C}
DF5 : {A, B} -> {C}
DF6 : {A, B} -> {D}
Du fait de DF5 et DF6, R a pour (seule) clé la paire K = {A, B}. A cause de DF3, {C} qui n’appartient à aucune clé dépend d’une partie seulement de K (à savoir {A}) : la 2NF est violée.
C’est de fait une condition nécessaire pour traiter de la normalisation des relations...
Manifestement, pour moufi213, les seules dépendances fonctionnelles non inférables sont celles qui font que {A} est clé de R :
DF1 : {A} -> {A}
DF2 : {A} -> {B}
DF3 : {A} -> {C}
DF4 : {A} -> {D}
Comme vous le dites, R respecte la 3NF puisque les attributs B, C, D n’appartiennent à aucune clé candidate et à aucun déterminant de DF non triviale.
Étant donné que R ne comporte qu’une seule clé candidate est que celle-ci est singleton (un seul attribut), on peut même affirmer qu’elle respecte la 5NF (donc la BCNF et la 4NF).
merci a vous tous
@fsmrel
merci beaucoup pour cette explication et voila l'enoncé de l'exercice pour mieux eclaircir les choses
Exercice: soient les relations:
R1(A,B,C,D) avec les dependances fonctionnelles suivantes {A} -> {D} et {B} -> {C}
R2(A,B,C,D) avec la dependance fonctionnelle {A,B} -> {C}
R3(A,B,C,D) avec la dependance fonctionnelle {C} -> {D}
Lesquelles de ces relations sont en troisieme forme normale?
Merci
Bonjour moufi,
Dans vos schémas, il est convenu que les attributs soulignés et en gras représentent une clé⁽¹⁾, pour ne pas dire LA clé d’une relation Rx (ou plutôt d’une variable relationnelle Rx, en abrégé relvar, car une relation est en réalité une valeur prise par une telle variable).
On fera avec, mais notez qu’il est plus rationnel de déduire LES clés de Rx à partir :
1) De son schéma de relation (de son en-tête pour être plus précis).En effet, c’est de la connaissance de Fx que l’on infère les clés de Rx (quitte à ce qu’il n’y en ait qu’une comme dans vos exemples).
2) De l’ensemble Fx des dépendances fonctionnelles qui lui est associé.
Cela dit, examinons maintenant le cas de R1. Fournissons l’ensemble des dépendances fonctionnelles en complément des dépendances fonctionnelles données, sachant que sa clé K1 détermine chacun des attributs de R1 :
DF1 : {A} -> {D},Les dépendances fonctionnelles DF1 et DF2 sont données, tandis que DF3, DF4, DF5, DF6 expriment le fait que {A, B} est clé.
DF2 : {B} -> {C},
DF3 : {A, B} -> {A},
DF4 : {A, B} -> {B},
DF5 : {A, B} -> {C},
DF6 : {A, B} -> {D}.
Notez l’emploi des accolades, car le déterminant et le dépendant d’une dépendance fonctionnelle sont des ensembles.
R1 respecte-t-elle la 3NF ?
Sur le terrain on a plus vite fait de vérifier directement qu’elle respecte ou non la BCNF, mais on vous parle de 3NF : d’accord, on ne prendra pas de raccourci. Pour vérifier que R1 respecte la 3NF, il faut d’abord s’assurer qu’elle respecte la 2NF.
La 2NF est violée. En effet, puisque {A, B} est clé, chaque DF {A, B} -> X (X représentant {A} ou {B} ou {C} ou {D}) doit être élémentaire (irréductible, totale), donc il ne doit pas exister de sous-ensemble strict Z de {A, B} tel que Z -> X soit une dépendance fonctionnelle non triviale.
Considérons le cas où Z = {A} :
Pour X = {A}, qu’en est-il de la dépendance fonctionnelle {A} -> {A} ? Elle est triviale, donc elle n’est pas cause de viol.
Pour X = {B}, qu’en est-il de la dépendance fonctionnelle {A} -> {B} ? Elle n’existe pas, donc pas de problème là non plus.
Pour X = {C}, qu’en est-il de la dépendance fonctionnelle {A} -> {C} ? Elle n’existe pas, donc pas de problème là non plus.
Pour X = {D}, qu’en est-il de la dépendance fonctionnelle {A} -> {D} ? Elle existe (c’est DF1), donc la dépendance fonctionnelle DF6 n’est pas élémentaire, donc la 2NF est violée, donc la 3NF est violée.
De la même façon, à cause de la dépendance fonctionnelle DF2, la dépendance fonctionnelle DF5 n’est pas élémentaire, donc la 2NF est violée une deuxième fois (la malheureuse !), donc la 3NF à son tour.
En traitant de la même façon la relvar R3, on aboutit à la conclusion qu’elle ne respecte pas la 2NF (donc la 3NF).
Reste R2 qui, comme on l’a vu hier, respecte la 3NF (et même la 5NF).
___________
⁽¹⁾ Incidemment, si Rx comporte plusieurs clés, comment graphiquement les représenter ? Pour la 1re clé, tout va bien, vous soulignez, mais pour les autres ?
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager