Dependencias Funcionales Francisco Moreno 28102020 Bases de Datos
Dependencias Funcionales Francisco Moreno 28/10/2020 Bases de Datos I 1
Introducción • La normalización de relaciones pretende diseñar “buenas” relaciones Bajo los criterios de minimizar la redundancia* y evitar cierto tipo de anomalías (se ven posteriormente) • El concepto de dependencia funcional (DF) es un paso esencial para el proceso de normalización * Hasta cierto punto 28/10/2020 Bases de Datos I 2
DF: Definición 1 • Dada una relación R, el atributo y R depende funcionalmente del atributo x R si y solo si: - Un único valor de y en R está asociado con cada valor de x en R (en cualquier momento dado) • x y y pueden ser atributos compuestos 28/10/2020 Bases de Datos I 3
DF: Definición 2 • Dada una relación R, el atributo y R depende funcionalmente del atributo x R si y solo si siempre que dos tuplas concuerden en su valor de x, deben por fuerza concordar en su valor de y • Las definiciones 1 y 2 son equivalentes 28/10/2020 Bases de Datos I 4
Representación de DF x y Lectura: x determina funcionalmente a y O también: y depende funcionalmente de x 28/10/2020 Bases de Datos I 5
Ejemplo Sea: CP CA NIT 101 201 973 PROVEEDOR nombre calif Colanta A Alpina A Alquería B ciudad Bello Rionegro Bello Analizar si en esta muestra se cumplen las siguientes DF: NIT nombre {NIT, nombre} calif ciudad NIT calif nombre ciudad calif NIT ciudad nombre NIT {calif, ciudad} {NIT, calif} {nombre, calif, ciudad} 28/10/2020 Bases de Datos I 6
Observaciones Una muestra de datos por sí sola es insuficiente para determinar si una DF se cumple en una relación (a menos que la muestra sea representativa), pero sí puede mostrar que una DF no se cumple 28/10/2020 Bases de Datos I 7
Observaciones • Sea c una clave candidata (CC) R y atr un atributo R entonces siempre se cumple que: c atr; atr R • Por lo tanto, la CP de una relación R determina funcionalmente a todos los atributos de R • ¿Puede un atributo que NO sea CC determinar funcionalmente a otro? • ¿Pueden dos atributos determinarse mutuamente? 28/10/2020 Bases de Datos I 8
Ejemplo Sea la muestra (representativa): ENVÍO año_fundación 1990 1998 1990 28/10/2020 NIT prod 101 Leche 201 Chorizo 101 Yogur 101 Pasas 201 Leche 201 Pasas 128 Leche Bases de Datos I CP compuesta cantidad 10 29 12 80 12 70 10 tipo_prod Lácteo Embutido Lácteo Fruta Lácteo 9
Obsérvese que: Note que NIT por sí solo NO es CC y aun así determina a año_fundación Ø Ø Ø Ø Ø Verdadero (V) V V V Falso(F) V F {NIT, prod} año_fundación {NIT, prod} tipo_prod {NIT, prod} cantidad {NIT, prod} NIT {NIT, prod} prod NIT año_fundación NIT cantidad prod tipo_prod NIT 28/10/2020 Bases de Datos I Note que producto por sí 10 solo no es CC y aun así determina a tipo_prod
DF Completa: Definición El atributo y R es dependiente POR COMPLETO del atributo x R, si depende funcionalmente de x y no depende funcionalmente de ningún z, donde z x. Ejemplo. Sean las DFs de ENVÍO en la muestra dada: • NIT año_fundación • {NIT, prod} año_fundación De estas dos DFs ¿cuál es completa? Para llevar a cabo el proceso de normalización se deben encontrar las DF completas 28/10/2020 Bases de Datos I 11
Axiomas de Armstrong para DFs Sean A, B, C, D atributos (pueden ser compuestos) de una relación R. AC representa la unión de A y C. 1. Reflexión Por simplicidad, se Si B A, entonces A B escribirá sin las llaves {A, C} 2. Aumento Si A B entonces AC BC 3. Transitividad Si A B y B C entonces A C 28/10/2020 Bases de Datos I 12
Teoremas 1. Autodeterminación A A Demostración 2. Descomposición Si A BC, entonces: A B A C Demostración 28/10/2020 Bases de Datos I 13
Teoremas 3. Unión Si A B y A C entonces A BC Demostración 4. Composición Si A B entonces AC BD C D Demostración 28/10/2020 Bases de Datos I 14
5. Teorema de Unificación de Darwen Si A B C D Entonces: A {C – B} BD Tarea: Tarea Demostrarlo. • A partir de un conjunto dado de DFs en una relación R, por medio de los teoremas y axiomas se pueden derivar otras DFs existentes en R • Los axiomas son completos y confiables* confiables * Del inglés “sound”. 28/10/2020 Bases de Datos I 15
Ejemplo • Dado el conjunto S de DFs en R: A BC S B E CD EF ¿Se cumple que AB EC? ¿CDA F? ¿AB FC? ¿AD F? 28/10/2020 Bases de Datos I 16
Cierre de un atributo K bajo S: + KS Cierre (K, S) { cierre K FOREVER ∀ FD S: x y DO IF x cierre THEN cierre = cierre y END IF END ∀ IF cierre no cambió THEN RETURN cierre END IF END FOREVER Nota: K puede ser un atributo compuesto 28/10/2020 Bases de Datos I 17
• Ejemplo: Sea A BC S B E CD EF Determinar K +S , para K = AB y para K = CDA • ¿Cuál es el significado de K +S ? • ¿Cuál es su utilidad? 28/10/2020 Bases de Datos I 18
• S+: Cierre de S. Conjunto de todas las posibles DFs que se pueden derivar a partir de S. • S-: Recubrimiento (cierre) mínimo (canónico) de S. Subconjunto mínimo de DFs S a partir del cual se puede generar S. • ¿Utilidad de estos cierres? • Algoritmos para generarlos 28/10/2020 Bases de Datos I 19
Atributos Extraños (Raros) Si S es un conjunto de DFs en una relación R y x y S, entonces el atributo a es extraño (raro) en x y si: • x = az, y S implica a {S – {x y}} {z y} o • y = aw, y {S – {x y}} {x w} implica a S 28/10/2020 Bases de Datos I 20
Algoritmo para calcular S S-(S) Teorema de la unión { Repeat { - Si existen x y x z sustituir por x yz - Si existe alguna DF con un atributo extraño, eliminarlo de dicha DF (Nota: si al eliminarlo el lado derecho queda vacío*, eliminar la DF, ver ejemplo) } Until S no cambie } * Se trata de una DF trivial, ya que el conjunto vacío es subconjunto de cualquier conjunto 28/10/2020 Bases de Datos I (axioma de reflexión). Ver documento anexo en la página del curso 21
- Slides: 21