functional-dependencies - resueltos - dependencia transitiva base de datos
Claves candidatas de dependencias funcionales. (4)
Dada la relación R con atributos ABCDE. Se le dan las siguientes dependencias: A -> B, BC -> E, y ED -> A. Ya tengo la respuesta que es CDE, ACD y BCD. Solo necesito saber como hacerlo. Gracias.
CD es la clave candidata, por lo que ACD, BCD, CDE pueden ser clave candidata. C, D no aparecen en el lado derecho de las dependencias funcionales, por lo que el CD es la clave candidata.
This te ayudará a entender.
Para encontrar la clave candidata, debe dividir los FD en atributos en Izquierda, Media, Derecha: la izquierda incluye atributos que solo aparecen en el lado izquierdo (CD). La Intermedia incluye atributos que se muestran tanto en la izquierda como en la derecha ( ABE) - El derecho incluye atributos que solo aparecen en el lado derecho (ninguno)
Ahora encuentre el cierre de atributos desde la izquierda: * CD + -> CD Ya que no obtenemos todos los atributos de la relación, necesitamos agregar los atributos del medio (ABE) uno por uno e intentar encontrar el cierre nuevamente.
Entonces: * CDA + -> CDABE (CDA es una clave candidata) * CDB + -> CDBEA (CDB es una clave candidata) * CDE + -> CDEAB (CDE es una clave candidata)
Una clave candidata es una superclave mínima. En otras palabras, no hay atributos superfluos en la clave. El primer paso para encontrar una clave candidata es encontrar todas las superclaves. Para aquellos que no están familiarizados, una superclave es un conjunto de atributos cuyo cierre es el conjunto de todos los atributos. En otras palabras, una supertecla es un conjunto de atributos desde los que puede comenzar, y seguir las dependencias funcionales lo llevará a un conjunto que contiene todos y cada uno de los atributos.
Como tenemos las dependencias funcionales: A -> B, BC -> E, y ED -> A, tenemos las siguientes superclaves:
- ABCDE (Todos los atributos son siempre una super clave)
- BCED (podemos obtener el atributo A a ED -> A)
- ACDE (Solo agrega B a través de A -> B)
- ABCD (Solo agregue E a BC -> E)
- ACD (Podemos obtener B a través de A -> B, y luego podemos obtener E a través de BC -> E)
- BCD (Podemos obtener E a BC -> E, y luego A de ED -> A)
- CDE (podemos obtener de A a ED -> A y luego B de A -> B)
(Un truco aquí para comprender es que dado que C y D nunca aparecen en el lado derecho de una dependencia funcional, cada clave debe incluir tanto C como D)
Ahora que tenemos todas nuestras superclaves, podemos ver que solo las últimas tres son claves candidatas. Dado que los cuatro primeros se pueden recortar. Pero no podemos quitar ningún atributo de las últimas tres superclaves y aun así hacer que sigan siendo una superclave.
Por lo tanto, las claves candidatas son: ACD, BCD y CDE.
Espero que ayude,
Utilice un algoritmo;
1. Tomar cualquier atributo o conjunto de atributos.
por ejemplo: ACD
2. Tomar la primera dependencia funcional mencionada.
por ejemplo: A -> B
3. ¿Es el LHS de la dependencia un subconjunto de los atributos que eligió en el paso 1?
En caso afirmativo, agregue el RHS de la dependencia funcional al atributo. Si no, ignora esta dependencia funcional.
Por ejemplo: A es un subconjunto de ACD. Entonces agrega B a ACD. ACD ahora es ABCD
4. Ahora vaya a la siguiente dependencia funcional. Repita el paso 3.
por ejemplo: BC -> E BC es un subconjunto de ABCD. Así que ABCD ahora es ABCDE
5. Si tienes todos los atributos ahora, puedes parar.
Si no tiene todos los atributos, continúe con la siguiente dependencia funcional y repita el paso 3. Si ha alcanzado la última dependencia funcional y no tiene todos los atributos, regrese a la primera dependencia funcional y repita los pasos 3 y 4 Mantenga el ciclo en este bucle hasta que el conjunto de atributos que tiene no cambie sin importar la dependencia funcional con la que repita el paso 3.
por ejemplo: Como tengo ABCDE para el conjunto de atributos ACD, puedo parar.
Si tienes todos los atributos tienes una superclave. Ej .: ACD es una superclave porque tengo ABCDE.