Para comprender la equivalencia de los conjuntos de dependencias funcionales (conjuntos FD), la idea básica sobre los cierres de atributos se da en este artículo. Dada una relación con diferentes conjuntos FD para esa relación, tenemos que averiguar si un conjunto FD es un subconjunto de otro o ambos son igual. ¿Cómo encontrar la relación entre dos conjuntos FD? Sean FD1 y FD2 dos conjuntos FD para una relación R.
- Si todos los FD de FD1 pueden derivarse de los FD presentes en FD2, podemos decir que FD2 ⊃ FD1.
- Si todos los FD de FD2 pueden derivarse de los FD presentes en FD1, podemos decir que FD1 ⊃ FD2.
- Si 1 y 2 son verdaderos, FD1=FD2.
Estos tres casos se pueden mostrar usando el diagrama de Venn:
Por qué necesitamos comparar Dependencias funcionales:
Supongamos que en el proceso de diseño convertimos el diagrama ER en un modelo relacional y esta tarea se le da a dos ingenieros diferentes. Ahora esos dos ingenieros dan dos conjuntos diferentes de dependencias funcionales. Entonces, como administrador, debemos asegurarnos de tener un buen conjunto de dependencias funcionales. Para asegurar esto requerimos estudiar la equivalencia de Dependencias Funcionales.
P. Tomemos un ejemplo para mostrar la relación entre dos conjuntos FD. Una relación R(A,B,C,D) que tiene dos conjuntos FD FD1 = {A->B, B->C, AB->D} y FD2 = {A->B, B->C, A- >C, A->D}
Paso 1. Comprobar si todos los FD de FD1 están presentes en FD2
- A->B en el conjunto FD1 está presente en el conjunto FD2.
- B->C en el conjunto FD1 también está presente en el conjunto FD2.
- AB->D está presente en el conjunto FD1 pero no directamente en FD2 pero comprobaremos si podemos derivarlo o no. Para el conjunto FD2, (AB) + = {A,B,C,D}. Significa que AB puede determinar funcionalmente A, B, C y D. Por lo tanto, AB->D también se mantendrá en el conjunto FD2.
Como todos los FD en el conjunto FD1 también se cumplen en el conjunto FD2, FD2 ⊃ FD1 es cierto.
Paso 2. Comprobar si todos los FD de FD2 están presentes en FD1
- A->B en el conjunto FD2 está presente en el conjunto FD1.
- B->C en el conjunto FD2 también está presente en el conjunto FD1.
- A->C está presente en FD2 pero no directamente en FD1 pero vamos a comprobar si podemos derivarlo o no. Para el conjunto FD1, (A) + = {A,B,C,D}. Significa que A puede determinar funcionalmente A, B, C y D. SO A->C también se mantendrá en el conjunto FD1.
- A->D está presente en FD2 pero no directamente en FD1 pero vamos a comprobar si podemos derivarlo o no. Para el conjunto FD1, (A) + = {A,B,C,D}. Significa que A puede determinar funcionalmente A, B, C y D. SO A->D también se mantendrá en el conjunto FD1.
Como todos los FD en el conjunto FD2 también se cumplen en el conjunto FD1, FD1 ⊃ FD2 es verdadero.
Paso 3. Como FD2 ⊃ FD1 y FD1 ⊃ FD2 ambos son verdaderos FD2 =FD1 es verdadero. Estos dos conjuntos de FD son semánticamente equivalentes.
P. Tomemos otro ejemplo para mostrar la relación entre dos conjuntos FD. Una relación R2(A,B,C,D) que tiene dos conjuntos FD FD1 = {A->B, B->C,A->C} y FD2 = {A->B, B->C, A- >D}
Paso 1. Comprobar si todos los FD de FD1 están presentes en FD2
- A->B en el conjunto FD1 está presente en el conjunto FD2.
- B->C en el conjunto FD1 también está presente en el conjunto FD2.
- A->C está presente en FD1 pero no directamente en FD2 pero vamos a comprobar si podemos derivarlo o no. Para el conjunto FD2, (A) + = {A,B,C,D}. Significa que A puede determinar funcionalmente A, B, C y D. SO A->C también se mantendrá en el conjunto FD2.
Como todos los FD en el conjunto FD1 también se cumplen en el conjunto FD2, FD2 ⊃ FD1 es cierto.
Paso 2. Comprobar si todos los FD de FD2 están presentes en FD1
- A->B en el conjunto FD2 está presente en el conjunto FD1.,
- B->C en el conjunto FD2 también está presente en el conjunto FD1.
- A->D está presente en FD2 pero no directamente en FD1 pero vamos a comprobar si podemos derivarlo o no. Para el conjunto FD1, (A) + = {A,B,C}. Significa que A no puede determinar funcionalmente D. SO A->D no se mantendrá en FD1.
Como todos los FD en el conjunto FD2 no se mantienen en el conjunto FD1, FD2 ⊄ FD1.
Paso 3. En este caso, FD2 ⊃ FD1 y FD2 ⊄ FD1, estos dos conjuntos de FD no son semánticamente equivalentes.
Este artículo es una contribución de Sonal Tuteja. Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA