Bases de datos y sistemas de información Soluciones a los problemas del Tema 5 1) ¿Es posible definir un esquema de relación con n atributos y n+1 claves candidatas? Demuéstrese. Solución: Sí es posible. Por ejemplo: Sea R(A,B,C,D) con F={ AB → CD AC → BD AD → BC BC → AD BD → AC } No puede haber claves de longitud 1 2) ¿Es cierto que {B→C} ∈ {AB → C, A→C}+? Demuéstrese. Solución: 1ª alternativa: Calcular el cierre de {AB → C, A→C} y comprobar si {B→C} ∈ {AB → C, A→C}+. 2ª alternativa: Calcular el cierre del conjunto de atributos {B} con respecto a {AB → C, A→C}. resultado:={B} AB → C: ¿AB⊆ resultado? NO A→C: ¿A⊆ resultado? NO Luego {B}+ = {B} {B→C} no se deriva funcionalmente 3) Un conjunto de atributos se dice cerrado cuando X+ = X. Suponemos que tenemos un esquema de relación R(A,B,C,D) con un conjunto de dependencias funcionales F. Determínese F sabiendo que los únicos conjuntos de atributos cerrados son ∅, {A,B} y {A,B,C,D}. ¿Cuáles son las claves candidatas del esquema? Solución: Idea Inicial: Hay que evitar conjuntos cerrados de un atributo, como {A}, por ello es necesario incorporar en F la DF A → B (no se podría añadir A → C ni A → D porque entonces {A,B} ya no sería cerrado). F={A→B} Se tiene que {A,B}+ = {A,B} y {A,B,C,D}+ = {A,B,C,D} ¿Pero son los únicos conjuntos cerrados? No, porque {B}+ = {B}, {B,C}+={B,C} ..... Para evitar que {B} sea cerrado se añade B → A (no se podría añadir B → C ni B → D porque entonces {A,B} ya no sería cerrado). F = { A → B, B → A } Aplicando reiteradamente la misma idea llegamos a: F= 4-1 Bases de datos y sistemas de información { A → B, B → A, C → ABD, D → ABC } Por ejemplo, no podemos escribir C → AB en lugar de C→ABD, porque entonces {A,B,C} sería cerrado. Ahora: - Ningún conjunto de un solo elemento queda invariante - El único conjunto de 2 elementos cerrado es {A,B}, porque en un conjunto con {X,Y} y X o Y valiendo C o D, se tiene {X,Y}+ = {A,B,C,D} - Todos los conjuntos de 3 elementos deben contener C o D por lo que {X,Y,Z} = {A,B,C,D} no puede ser cerrado. - Evidentemente {A,B,C,D} cerrado Así que hemos encontrado la F buscada. ¿Cuáles son las claves candidatas del esquema?. De longitud 1: - {C}, {D} De longitud 2: ninguna No pueden incluir ni a C ni a D, así que la única alternativa es {A,B}, que no es clave candidata. De longitud 3 o 4: ninguna porque forzosamente deberían incluir a C o a D. 4) Determínese si los conjuntos F y G de dependencias funcionales son equivalentes. F = { A → C, AC → D, E → AD, E → H} G = { A → CD, E → AH} Solución: Si la respuesta es sí habría que probar que cada X→Y cumple X→Y ∈ F+ <==> X→Y ∈ G+. Otra forma más fácil: Ver que toda X→Y ∈ F verifica X→Y ∈ G+ Y Viceversa: X→Y ∈ G verifica X→Y ∈ F+ Vamos a ver esto: Primero con las de F en G+ - A → C ∈ G+? Sí, porque en G , {A}+ = {A,C,D} - AC → D ∈ G+? Sí, porque en G , {A,C}+ = {A,C,D} - E → AD ∈ G+? Sí, porque en G , {E}+ = {E,A,H,C,D} - E → H ∈ G+? Sí, porque en G , {E}+ = {E,A,H,C,D} Ahora al revés: - A → CD ∈ F+?. Sí, en F, {A}+ = {A,C,D} - E → AH ∈ F+?. Sí, en F, {A}+ = {A,D,H} Por lo tanto sí son equivalentes. 4-2 Bases de datos y sistemas de información 5) Encuéntrese un conjunto mínimo de dependencias funcionales equivalente a: (a) F = { AB → C, A → B, B → A, C → E, E → A} (b) F = { AB → C, C→A, BC → D, ACD → B, D→EG, BE → C, CG → BD, CE → AG} Solución: 1 G := F 2 Reemplazar cada dep. func. X→Y1Y2...Yk de G por k dep. func. X→Y1, X→Y2,. ..., X→Yk 3 Para cada X→A ∈ G hacer: // Eliminación de atributos redundantes Para cada B ∈ X, B atributo hacer: Calcular {X-B}+ con respecto al conjunto de dep. func. G Si A ∈ {X-B}+, hacer G := (G –{X→A}) U {X-B → A) 4 Para cada X→A ∈ G, Calcular X+ con respecto a (G – {X→A}) // Eliminación de dependencias funcionales redundantes Si X+ contiene A entonces G := G – {X→A} 1 G:=F 2 No hay que cambiar G 3 Atributos redundantes: A redundante si B → C ∈ G+ , es decir, si C ∈ {B}+G {B}+ = {B,A,C} G := {B → C, A→B, B→A, C→E, E→A} 4 Dep. redundantes B → C : {B}+ = {B,A} en G / {B→C}. C ⊄ {B}+. No es redundante A→B : {A}+ = {A} en G/{A→B}. B ⊄ {A}+. No es redundante B→A : {B}+ = {B,C,E,A} en G/{B→A}. A ⊆ {B}+. Redundante G := {B → C, A→B, C→E, E→A} C→E : {C}+ = {C} en G /{C→E} E→A : {E}+ = {E} en G/{E→A} Solución: G := {B → C, A→B, C→E, E→A} b) 1 G := F 2 G := { AB → C, C→A, BC → D, ACD → B, D→E, D→G, BE → C, CG → B, CG →D, CE → A, CE → G}→ 3 Atributos redundantes {A}+ = {A} {B}+ = {B} {C}+ = {C,A} {D}+ = {D,E,G} {E}+ = {E} {G}+ = {G} {A,C}+ = {A,C} 4-3 Bases de datos y sistemas de información {A,D}+ = {A,D,E,G} {C,D}+ ={A,C,D} No hay atributos redundantes. 4 Reglas redundantes: {A,B}+ en G\{A,B→C}={A,B} {B,C}+ en G\{B,C→D}={B,C,A} {A,C,D}+ en G\{A,C, D→B}={A,C,D,E,G,B, ...} ACD → B redundante G := { AB → C, C→A, BC → D, D→E, D→G, BE → C, CG → B, CG →D, CE → A, CE → G} {B,E}+ en G\{BE→C}={B,E} {C,G}+ en G\{CG→B} no puede contener B que no aperece en más partes derechas. {C,G}+ en G\{CG→D} = { C,G,A, B, D, E...} CD→D redundante G := { AB → C, C→A, BC → D, D→E, D→G, BE → C, CG → B, CE → A, CE → G} {C,E}+ en G\{CE→A}={C,E,A,G} Redundante G := { AB → C, C→A, BC → D, D→E, D→G, BE → C, CG → B, CE → G} {C,E}+ en G\{CE→G}={C,E,A} No es redundante. 6) Sea R (A,B,C,D) un esquema de relación y F={AB→C, C→D, D→A} el conjunto de dependencias funcionales asociado. (a) Calcúlese el conjunto F+ . (b) Calcúlese el conjunto de todas las dependencias no triviales que se pueden derivar a partir del conjunto F. (c) ¿Cuáles son las claves candidatas de R? (d) ¿Cuáles son superclaves de R pero no son claves candidatas? (a) y (b) Se podrían usar los axiomas de Armstrong hasta que estuviéramos convencidos de que las tenemos todas. Una forma más sistemática sería hacer el cierre de los 15 subconjuntos de atributos que se pueden formar: A, B, C, D, AB, AC, AD, BC, BD, CD, ABC, ABD, CBD, ACD, ABCD A+ = A, B+ = B, C+ = ACD, y D+ = AD. Por tanto la única dependencia nueva que podríamos añadir con un único atributo en el lado izquierdo es: C→A. Los de dos elementos: AB+ = ABCD, de donde obtenemos la dependencia AB→D. AC+ = ACD, de donde obtenemos AC→D. AD+ = AD. BC+ = ABCD, de donde obtenemos BC→A y BC→D. BD+ = ABCD, de donde obtenemos BD→A y BD→C. CD+ = ACD, de donde obtenemos CD→A. Los de 3 elementos: ACD+ = ACD 4-4 Bases de datos y sistemas de información ABC+ = ABCD ABD+ = ABCD CBD+ = ABCD Obtenemos ABC→D, ABD→C, y BCD→A. ABCD+ = ABCD Las 11 nuevas dependencias son: {C→A, AB→D, AC→D, BC→A, BC→D, BD→A, BD→C, CD→A, ABC→D, ABD→C, y BCD→A} Habría que unir el conjunto anterior con F={AB→C, C→D Y D→A} Y con el conjunto de todas las dependencias triviales para obtener F+. c) Analizando los cierres que acabamos de obtener, podemos ver que AB, BC y BD son claves porque determinan funcionalmente a todos los atributos de la relación ({A,B,C,D}). Todos los demás, o bien su cierre no es ABCD o bien son un superconjunto de los anteriores (y por tanto no son claves sino superclaves). d) Las superclaves son todos los conjuntos cuyo cierre es ABCD y que son superconjuntos de las claves. Las superclaves que no son claves candidatas son ABC, ABD, BCD, y ABCD. 7) Sea R(A,B,C,D,E) un esquema de relación y sea F={A→D, B→E, DE→C } el conjunto de dependencias asociado. Si descomponemos R en la tabla S(A,B,C) y otra tabla. ¿Qué dependencias se cumplen en S? X cada subconjunto del esquema de S. X={A} X={B} X={C} X={AB} X={AC} X={BC} X={ABC} X+ = {AD} D∈X+. D∉X, D∉esquema de S. X+ = {BE} E∈X+. E∉X, E∉esquema de S. X+ = {C} X+ = {ABCDE} C∈X+. C∉X, C∈ esquema de S. {AB → C} D∈X+. D∉X, D∉esquema de S. E∈X+. E∉X, E∉esquema de S. X+ = {ACD} X+ = {BCE} X+ = {ABCDE} D∉esquema de S. E∉esquema de S. D, E ∉esquema de S. Resultado final: F1= {AB → C} se cumple en S (A,B,C) Como siempre también se cumplen las triviales y algunas que se obtienen aplicando los axiomas de Armstrong a F1. En definitiva, el cierre de F1. P.e. AB → BC 4-5