web-dev-qa-db-fra.com

Vérifiez si la relation est en BCNF

J'ai la relation et les dépendances de la fonction suivantes.

R = ABCDE
F: C->AB, D->A, BE->CE, E->B

Je dois vérifier si cette relation est en BCNF.

Wikipedia déclare:

... Si et seulement si pour chacune de ses dépendances x → Y, au moins une des conditions suivantes: [4] x → y est une dépendance fonctionnelle triviale (y ⊆ x) x est un surcharge de schéma r

Alors d'abord, je suis allé trouver les superkeys.

Depuis D n'est pas du côté droit, je suppose que le Supery doit contenir de D y faire.

Ce que je pensais, c'est que le seul surcharge est de. Est-ce correct?

Et si le seul Supery est de, alors la relation n'est pas dans BCNF car aucune des dépendances fonctionnelles n'a le surende à gauche.

Quelqu'un peut-il signaler si je me trompe?

2
Tool

"Les axiomes d'Armstrong sont un ensemble d'axiomes (ou, plus précisément, des règles d'inférence) utilisés pour déduire toutes les dépendances fonctionnelles sur une base de données relationnelle" ( link ).

  • R: abcde
  • F: C-> AB, D-> A, BE-> CE, E-> B

Be-> CE peut être divisé en be-> c et be-> e. La dépendance fonctionnelle triviale be-> e peut être ignorée. Be-> c peut être remplacé par e-> c car de be-> c et e-> b on peut déduire e-> c. Par conséquent, l'ensemble des dépendances fonctionnelles peut être réduit à:

  • R: abcde
  • F: C-> AB, D-> A, E-> C, E-> B

A et B ne peuvent pas être membres d'une clé car ils ne peuvent pas être trouvés sur le site gauche d'une dépendance fonctionnelle. Il suffit donc de rechercher toutes les clés du système relationnel (supprimer les attributs A B de R et toutes les dépendances fonctionnelles contenant A et B)

  • R: cde
  • F: E-> C

C n'est pas sur le côté gauche d'une dépendance fonctionnelle de nouveau pour que l'on puisse réduire le système à

  • R: de
  • F:

La liste des identités fonctionnelles est donc vide. La seule clé de ce système relationnel est également la seule clé des systèmes non réduits. Donc, votre réponse de votre première question est vraie.

Vous pouvez utiliser cette page pour trouver vos clés candidates

Pour vérifier si le système est en BCNF, il n'est pas nécessaire de trouver toutes les clés candidates. Il suffit de trouver une dépendance fonctionnelle qui a un côté gauche qui n'est pas une clé.

C-> AB est une dépendance aussi fonctionnelle: C n'est pas une clé car la fermeture de C est C. Cela signifie que aucun autre attributs ne peut être généré en appliquant des dépendances fonctionnelles sur C.

Vous pouvez utiliser cette page Pour rechercher un chèque si une relation est sous forme normale.

3
miracle173