J'ai une question théorique. J'ai la relation R (A, B, C, D) et les dépendances B-> C, B-> D. Comment puis-je vérifier si BCNF est présent et comment le décomposer en BCNF? La question vient d'un livre. Je comprends les fondamentaux mais avec celui-ci je n'ai pas réussi, quelqu'un peut-il m'expliquer s'il vous plaît?Base de données Relations normalisation à BCNF
Répondre
D'abord calculer l'ensemble de fermeture de R
.
- {A} = {A}
- {B} = {B, C, D}
- {C} = {C}
- {D} = {D}
- {A, B} = {A, B, C, D} (qui est une clé pour
R
donc nous ne devons plus calculer aucun ensemble de fermeture contenant la cléAB
- {A, C} = { A, C}
- {A, D} = {A, D}
- {B, C} = {B, C, D}
- {B, D} = {B, C, D}
- {C, D} = {C, D}
- {A , C, D} = {A, B, C, D} (aussi une clé car elle contient tous les attributs de
R
dans sa fermeture). - {B, C, D} = {B, C, D}
ensembles comme {A, B, C} n'a pas été calculée comme étant {A, B} (clé) est un sous-ensemble. Ensuite, nous devons déterminer les nouvelles FD (dépendances fonctionnelles). Je ne vais pas expliquer le processus car je suis sûr que votre manuel le décrira. Les dépendances sont:
- B -> C
- B -> D
- AB -> C
- AB -> D
- BC -> D
- BD -> C
- ACD -> B
maintenant, chaque FD qui ne dispose pas d'un superkey sur elle est laissée s ide, est une violation BCNF. Nous pouvons utiliser de telles violations pour diviser la relation R
. Nos FD qui violent sont B -> C, B -> D, BC -> D et BD -> C. Nous pouvons diviser la relation sur les FD B -> C. La première "moitié" de la relation divisée contiendra tous les éléments de la fermeture de l'attribut sur le côté gauche de la FD, dans ce cas l'attribut B
. Donc, notre première relation sera R11(B, C, D)
. Notre deuxième relation contiendra le côté gauche du FD (B
) et les attributs ne sont pas dans la fermeture de B, qui est l'attribut A
. Nous obtenons donc la relation R12(A,B)
. Voyons maintenant: la relation R12
est certainement dans BCNF car elle ne contient que deux attributs. Maintenant, vérifions la relation R11
. Une nouvelle clé pour cette relation est B
car la fermeture de B
contient tous les attributs de R11
. Il n'y a pas de FD qui sont valides sur la relation R11
causant des violations plus car ils contiennent tous B
dans leur côté gauche. Donc les deux relations sont en BCNF. J'espère que c'était assez clair pour toi.
Editer: seulement maintenant remarqué ce message il y a 4 mois ...Eh bien j'espère que c'est encore utile (peut-être pour les autres membres qui cherchent le sujet).
De quel livre apprenez-vous le BCNF, comment est-il possible d'identifier le BCNF, quel est l'algorithme pour le BCNF et où avez-vous été jusqu'à présent avec cet exercice et où êtes-vous bloqué? Vous demandez effectivement un chapitre d'un manuel. Il y a beaucoup de livres et de diapositives en ligne. S'il vous plaît, soyez précis. – philipxy