Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Nota:
• A, B, C, D, E, G, H , I son considerados atributos atómicos.
• W, X, Y , Z son considerados conjuntos de atributos atómicos.
Ejercicio 2. Sean las siguientes definiciones alternativas de dependencia funcional. Indicar cuales
son correctas y cuales no.
Ejercicio 3. Indicar cuales de las siguientes derivaciones para dependencias funcionales son válidas
demostrando o usando un contraejemplo.
a. { X →Y, Z → Y } ╞ XZ → Y. e. { XY → Z, Z → X } ╞ Z → Y.
b. { XZ → Y } ╞ X → Y. f. { X → Y, Y → Z } ╞ X → YZ.
c. { XZ → Y, X → Z } ╞ X → Y. g. { X → Y, W → Z, W ⊆ Y } ╞ X → Z.
d. { Z → W , X →Y } ╞ XZ →YW. h. { XY →Z, Y →W } ╞ XW →Z
a. B → D c. C → DE e. HA → CD g. A → D
b. E → D d. A → C f. CD → E
Ejercicio 11.
Un club esta organizando un campeonato de tenis individual. A cada persona que se inscribe se le
pide el nombre, la edad, el DNI y la fecha de vencimiento de la ficha médica. El torneo se juega en
un determinado conjunto de pistas de las que se conoce la dirección de cada una, un código que las
identifica, y si tienen iluminación o no. A partir de estos datos, se organizan los partidos del
campeonato con los siguientes criterios.
• A cada partido se le asigna un código que lo identifica dentro del torneo, una hora, una pista,
dos inscriptos diferentes (local y visitante), una etapa (eliminatorias, octavos, cuartos,
semifinales y final) y un ganador.
• No se pueden jugar dos partidos a la misma hora en la misma pista.
• En cada etapa, cada jugador juega un solo partido.
a. Indicar las dependencias funcionales que se cumplen en esta realidad.
2
DISEÑO DE BASES DE DATOS SOLUCION DEPENDENCIAS
FUNCIONALES
3
a. No satisface F. Viola E → B , ya que si la primer tupla se denomina t , y la
A B C D E segunda u , se tendrá que:
a1 b1 c1 d1 e1 t[E] = u[E] = e1 , pero t[B] ≠u[B]
a2 b2 c2 d1 e1 con lo que no se cumple la definición de dependencia funcional.
Ejercicio 2.
DEFINICIÓN DE DEPENDENCIA FUNCIONAL:
Sea R(A1,...,An) un esquema relación, y X e Y subconjuntos de {A1,...,An}.
Decimos que X → Y, (que se lee X determina funcionalmente Y) si para toda instancia r del esquema de
relación R, no es posible que r tenga dos tuplas que coincidan en los atributos de X y no lo hagan en los
de Y.
a. Es correcta, corresponde directamente a la definición.
b. Idem a., pero usando "existe". (se establecen equivalencias lógicas)
Se tiene que ∀r de R:
∀t,u ∈ r, si t[X] = u[X] → t[Y] = u[Y] ≈
∀t,u ∈ r, si t[X] = u[X] o t[Y] = u[Y] ≈
(¬∃) t, u ∈ r tal que t[X] = u[X] y t[Y] = u[Y]. X Y Z
c. No es correcta, ya que obligaría a que los valores de X y Y fueran siempre x1 y1 z1 los
mismos, lo cual es más restrictivo que una fd. x 2 y1 z 2
g. Es correcta, es equivalente a a. pero sin usar implicación. (como en el caso b.) se aplican
equivalencias lógicas)
La definición general es de la forma: ∀t, u ∈ r, si t[X] = u[X] → t[Y] = u[Y] la cual se vio es
equivalente a: ∀t, u ∈ r, si t[X] ≠ u[X] o t[Y] = u[Y]
Al analizar esta ultima, se nota que cualquier par de tuplas, si difieren en Y, necesariamente, para obtener una condición
verdadera, deberá ser diferentes en X, ya que de no serlo, el valor de verdad de la expresión no se mantiene.
h. No es correcta, el mismo contraejemplo que en el caso f. es aplicable aquí también.
a. { X → Y, Z → Y } ╞ XZ → Y
Se cumple
X → Y ╞ ZX → YZ Aumento
ZX → YZ ╞ ZX → Y Descomposición
b. { XZ → Y } ╞ X → Y X Y Z
No se cumple. Ver este contraejemplo: R(X,Y,Z) x1 y1 z1
Esta relación satisface XZ → Y, pero no x1 y2 z2
satisface X → Y.
c. { XZ → Y, X → Z }╞ X → Y
Se cumple
X→X Reflexiva (X ⊇ X)
{ X → Z , X → X }╞ X → XZ Unión
{ X → XZ , XZ →Y }╞ X → Y Transitiva
d. { Z → W , X → Y }╞ XZ → YW.
Se cumple
X → Y ╞ XZ → YZ Aumento
Z → W╞ ZY → WY Aumento
{ XZ → YZ , YZ → WY } ╞ XZ → YW. Transitiva
e. { XY → Z, Z → X } ╞ Z → Y
5
g. { X → Y, W → Z, W ⊆ Y } ╞ X → Z
Se cumple
Y→W Reflexiva (Y ⊇ W)
{ X → Y ,Y → W, W → Z }╞ X → Z Transitiva dos veces
h. { XY → Z, Y → W } ╞ XW → Z
No se cumple. Ver el siguiente contraejemplo: w1 x1 y1 z1
R(W,X,Y,Z)Esta relación satisface XY → Z y Y w1 x1 y2 z2
→ W pero no satisface XW → Z.
W X Y Z
Ejercicio 4.
Sea R(A,B,C,D,E,G,H,I) y F = { AB → CH, CD → B, B → GAE, H → DI }.
En cada uno de los casos siguientes se determinaran las clausuras de cada conjunto de atributos a
través de los axiomas de Armstrong.
La idea al aplicar la clausura es tratar de obtener los demás atributos de la relación, por lo que siempre
trataran de inferirse estos a través de aplicaciones de las reglas anteriores.
a. (A)+ = { A }
Considero el conjunto de partida{ A }
{A}╞ A→ A Reflexiva (A ⊆ A)
Partiendo de A, no es posible inferir otros atributos distintos de la relación R.
En este caso se observa claramente que no es posible "escaparse" del nodo A, por lo que la
clausura estará compuesta solo por A.
b. (B)+ = { B, G, A, E, C, H, D, I }
Considero el conjunto de partida{ B }
{B}╞ B→ B Reflexiva (B ⊆ B)
{ B } ╞ B → GAE dependencia funcional en F
el conjunto de trabajo pasa a:
{ B,G,A,E } ╞ AB → CH dependencia funcional en F
el conjunto de trabajo pasa a:
{ B,G,A,E,C,H } ╞ H → DI dependencia funcional en F
el conjunto de trabajo pasa a:
{ B,G,A,E,C,H,D,I }
c. (CD) + = { C, D, B, G, A, E, H, I }
d. (BEI) + = { B, E, I, G, A, C, H, D }
e. (BE) + = { B, E, G, A, C, H, D, I }
f. (HA) + = { H, A, D, I }
g. (ABH) + = { A, B, H, C, D, I, B , E }
Ejercicio 5.
Sea F = { AB → C, C → D, B → C, C → E, HB → D }.
Se van a calcular los X+F correspondientes a cada dependencia funcional X → Y ∈ F, utilizando las
mismas técnicas que en Ej. anterior. Se concluirá que esta dependencia funcional
X → Y ∈ F+ en caso de que Y ∈ X+.
a. (B) + = { B, C, D, E }, D ∈ B+ ⇒ (B → D) ∈ F+.
6
b. (E) + = { E }, D ∉ E+ ⇒ (E → D) ∉ F+.
c. (C) + = { C, D, E }, D,E ∈ C+ ⇒ (C → DE) ∈ F+.
d. (A) + = { A }, C ∉ A+ ⇒ (A → C) ∉ F+.
e. (HA) + = { H, A }, C,D ∉ (HA) + ⇒ (HA → CD) ∉ F+.
f. (CD) + = { C, D, E }, E ∈ (CD) + ⇒ (CD → E) ∈ F+.
g. (A) + = { A }, D ∉ A+ ⇒ (A → D) ∉ F+.
Ejercicio . Se aclara que el siguiente conjunto de propiedades puede resultar muy útil a la hora de
determinar las claves de un esquema de relación, así como también al obtener recubrimientos
minimales y clausuras.
a. Si existe X t.q. X no aparece en ninguna dependencia funcional, entonces X está en toda
clave.
Por absurdo, supongo que Z clave tq. X ⊄ Z.
Si Z es clave, entonces se cumple Z → X.
Si Z →X entonces, o bien X ⊆ Z (que contradice la hipótesis), o bien Z → X es una fd no trivial, lo
cual contradice que X no aparece en ninguna fd.
ABSURDO, X pertenece a toda clave.
b. Si existe X t.q. X no está a la derecha de ninguna dependencia funcional, X está en toda clave.
Por absurdo, supongo que Z clave tq. X ⊄ Z.
Si Z es clave, entonces se cumple Z → X.
Si Z → X entonces, o bien X ⊆ Z (que contradice la hipótesis), o bien Z → X es una fd
no trivial, lo cual contradice que X no aparece a la derecha de ninguna fd.
ABSURDO, X pertenece a toda clave.
ACLARACION INTERESANTE: juntando las partes a. y b. , pudo haberse demostrado en primera
instancia la parte b. para luego afirmar que si X no aparece en ninguna dependencia funcional,
entonces obviamente no aparece a la derecha de ninguna dependencia funcional, por lo que por la
parte b. , estará en toda clave.
c. Si existe X t.q. X no está a la derecha de ninguna dependencia funcional, X es clave y es
única.
No se cumple. Contraejemplo: R(A,B,C) y F = { A →B }
En este caso A está en las hipótesis y no es clave (y aun menos única).
d. Si existe X t.q. X no está a la derecha de ninguna dependencia funcional y X es superclave, X
es clave y es única.
Por b. X esta en toda clave. O sea, toda clave contiene a X. Como X es superclave, X determina
funcionalmente al resto de los atributos.
ES CLAVE.
Notar que es minimal porque no hay clave que no contenga a TODA X.
Es única, porque si hubiera otra clave, debería contener a X; y como X ya es clave la otra sería
superclave.
7
e. Si existe X t.q. X aparece a la izquierda de alguna dependencia funcional y es superclave, hay una
sola clave y es X.
No se cumple. Contraejemplo: R(A,B,C), con F = { AC → B, A → BC }.
(AC) es superclave y aparece a la izq. de (AC → B), sin embargo no es clave ya que A lo es.
8
d. F4 = { A →C, B →C, C →DE, E →C } A B C D E
No son equivalentes. Sea la siguiente relación: R(A,B,C,D,E) a1 b1 c1 d1 e1
Satisface F pero no F4. (A →C, B →C) ∉ F+ a1 b2 c2 d1 e2
9
Ejercicio 10.
c. {A → Β , B → C , C → D , D → E , E → A , A → C , C → Ε , E → Β , B → D, D → Α}.
Por lo tanto, los siguientes conjuntos son cubrimientos minimales del conj. original
F1 = { A → Β , B → C , C → D , D → E , E → A }
F2 = {A → C , C → Ε , E → Β , B → D, D → Α}
d. {A → Β, AE → D, B → C, DH → C, C → D, CG → B, D → A, BF → Α}.
El siguiente es el minimal del conjunto anterior: F = { A → Β, B → C, C → D, D → A}
10
Diseño de bases de datos. Normalización. Curso 2000/2001
b. Teniendo en cuenta las dependencias encontradas, indicar en que forma normal se encuentra el
esquema que contiene todos los atributos. Si no se encuentra en una forma normal "aceptable",
normalícela hasta que así lo considere. Justifique las respuestas.
11
Las mismas empresas que se encargaron de diseñar los planos de las calles, construyeron hospitales y zonas
deportivas. En la construcción de un hospital ó de una zona deportiva designa un único ingeniero responsable.
A su vez dichos ingenieros trabajan en una única empresa constructora.
12
Diseño de bases de datos. Soluciones Normalización.
f. Claves de R según F.
B y H pertenecen a toda clave, ya que no están a la derecha de ninguna dependencia
funcional.
Analizamos la clausura de este conjunto de atributos, a fin de determinar que se obtiene a
partir de ellos, y no debe incluirse el las claves de R. (Podrían utilizarse técnicas gráficas como
las del Practico 6, pero evitaremos estas por ahora.)
(BH)+ = { B, H } ⇒ (BH) no es clave.
Busco entonces claves con 3 atributos:
(BHA)+ = { B,H,A,C,E,D,G } ⇒ (BHA) es clave
(BHC)+ = { B,H,C,A,E,D,G } ⇒ (BHC) es clave
(BHD)+ = { B,H,D,E,G } ⇒ (BHD) no es clave
+
(BHE) = { B,H,E,G } ⇒ (BHE) no es clave
(BHG)+ = { B,H,G } ⇒ (BHG) no es clave
Busco claves con 4 atributos:
(BHDE)+ = { B,H,D,E,G } ⇒ (BHDE) no es clave
(BHDG)+ = { B,H,D,G,E } ⇒ (BHDG) no es clave
(BHEG)+ = { B,H,E,G } ⇒ (BHEG) no es clave
Busco claves con 5 atributos:
(BHDEG)+ = { B,H,D,E,G } debido a que (BHDE)+ = { B,H,D,E,G } ⇒ (BHDE) no es clave
Se deduce entonces que las claves son (BHA) y (BHC)
h. Sea la descomposición:
R(A,B,C,D,E,H,G)F = { AB → CED, C → Α, D → Ε, EH → G}
R1(A,B,D,E) FR1 = { AB → D, D → E }
R2(A,B,C,H,G) FR2 = { AB → C, C → A }
j. Llevar la descomposición de la parte d. a BCNF con join sin pérdida. Indicar si se pierden
dependencias funcionales y cuales.
En la descomposición anterior sólo R1(A,B,C,D) está en 3NF, los demás están en BCNF.
R1 está en 3NF y no en BCNF, ya que la dependencia C → A viola BCNF (C no es
superclave).
Por lo tanto descomponemos está en dos:
R1(A,B,C,D) FR1 = { AB → CD, C → Α }, Claves: (AB, BC) , C → A viola BCNF
Aclaramos que: La nueva descomposición tiene join sin pérdida, ya que la anterior
descomposición a 3NF tenía jsp. Sin embargo, si se pierden dependencias, ya que antes de
aplicar el algoritmo se disponía de:
R1(A,B,C,D) F1 = { AB → C, AB → D, C → A } R2(D,E) F3 = { D → E }
R3(E,H,G) F4 = { EH → G } R4(B,H,A) F5 = { }
Donde claramente la unión de las proyecciones de las dependencias funcionales, es el
conjunto minimal de partida (Fminimal), por lo que las dependencias se preservan. Sin embargo,
al particionar R1, se obtiene R11(B,C,D) FR11 = { } con lo que las dependencias { AB → C, AB
→ D } se pierden. (se comprueba a simple vista, al unir las proyecciones de las dependencias
en BCNF, y tratar de deducir AB → C de dicho conjunto).
Ejercicio 3.
Un club esta organizando un campeonato de tenis individual. A cada persona que se inscribe se le
pide el nombre, la edad, la DNI y la fecha de vencimiento de la ficha médica. El torneo se juega en
un determinado conjunto de pistas de las que se conoce la dirección de cada una, un código que
las identifica, y si tienen iluminación o no. A partir de estos datos, se organizan los partidos del
campeonato con los siguientes criterios:
• A cada partido se le asigna un código que lo identifica dentro del torneo, una hora, una pista,
dos inscritos diferentes (local y visitante), una etapa (eliminatorias, octavos, cuartos,
semifinales y final) y un ganador.
• No se pueden jugar dos partidos a la misma hora en la misma pista.
• En cada etapa, cada jugador juega un solo partido.
"A cada persona que se inscribe se le pide el nombre, la edad, la DNI y la fecha de vencimiento
de la ficha médica." ⇒ DNI → nombre, edad, fechavencimiento
"El torneo se juega en un determinado conjunto de pistas de las que se conoce la dirección de
cada una, un código que las identifica, y si tienen iluminación o no"
⇒ códigopista → dirección, con_iluminación
17
"A cada partido se le asigna un código que lo identifica dentro del torneo, una hora, una pista,
dos inscritos diferentes (local y visitante), una etapa (eliminatorias, octavos, cuartos,
semifinales y final) y un ganador."
⇒ códigopartido → hora , códigopista , DNIlocal , DNIvisitante , etapa , DNIganador
"No se pueden jugar dos partidos a la misma hora en la misma pista."
⇒ hora , códigopista → códigopartido
"En cada etapa , cada jugador juega un solo partido."
⇒ DNIlocal , etapa → códigopartido, ⇒ DNIvisitante , etapa → códigopartido
Además debe tenerse en cuenta, que los jugadores locales y visitantes, son en realidad DNIs,
son los mismos atributos, con distinto nombre, por lo que pueden deducirse las siguientes
dependencias:
DNIlocal → DNI, DNI → DNIlocal, DNIvisitante → DNI, DNI → DNIvisitante ,
DNIganador → DNI, DNI → DNIganador
Obtenemos el esquema relación R sobre F con: R(C, N, E, FV, CC, D, CI, CP, H, CG, CL, CV, E)
según F = { C → N, E, FV ; CC → D, CI ; CP → H, CC, CL, CV, E, CG ; H, CC → CP; CL, E →
CP ; CV, E → CP; CG, E → CP; CL → C; CV → C; CG → C; C → CL; C → CV; C →
CG }
Hay que tener presente que los atributos CL, CV y CG son DNIs de inscritos, motivo por el cual se
creó la relación PISTAS.
18
INSCRITOS está en BCNF, ya que la única dependencia que se cumple sobre esta tiene a la
izquierda una clave. La misma situación se da con PISTAS. En partidos, (CP) es una clave, por lo
que (CC,H), (CL,E), (CV,E) y (CG,E) también son claves porque determinan a (CP). De esta forma,
Partidos también está en BCNF.
DNI también esta en BCNF, ya que todos los atributos de la tabla son claves por si solos, motivo
por el cual todas las dependencia de FDNI tienen a la izquierda atributos que son superclaves.
Por lo tanto, la descomposición propuesta están en BCNF y por lo tanto en 3NF y como todas las
dependencias caen en un determinado subesquema, la unión de todas estas será el conjunto
original de dependencias , por lo que se preservan las dependencias funcionales.
Queda por verificar si cumple la propiedad de join sin pérdida. En este caso particular, se puede
observar que los joins posibles con sentido son entre INSCRITOS y CEDULAS ,entre PISTAS y
PARTIDOS y entre DNI y PARTIDOS. De esta forma se puede aplicar la propiedad DSPS1:
Ejercicio 4.
Se quiere modelar una base de datos de información histórico-política e histórico-administrativa de las
calles de una ciudad, así como información sobre los hospitales y zonas deportivas sobre las mismas.
La información histórico-política de interés se refiera al año en que fue inaugurada la calle así como el
nombre del intendente en ejercicio.
La información histórico-administrativa que se desea mantener es la identificación del plano de
construcción de la calle en cuestión, así como la empresa constructora que estuvo a cargo del diseño
de dicho plano. El plano de construcción de la calle consiste del diseño de la misma y el identificador
del plano es una referencia que se utiliza a fin de ubicarlo en el archivo de planos que mantiene la
intendencia. Desde ahora al plano de construcción lo llamaremos simplemente plano de la calle.
Se sabe que una calle tiene tanto un número de calle como un nombre y que cada uno identifica a la
calle. El número de calle determina en forma única tanto el nombre de la calle como el identificador
del plano de la calle y la empresa constructora. A su vez el número de la calle y la identificación del
plano de la calle y la empresa constructora son únicos dado el nombre de la calle.
El nombre de la calle fue elegido durante el ejercicio de un intendente, es decir que el nombre del
intendente queda determinado por el nombre de la calle.
Dado el nombre y el número de la calle y el nombre del intendente queda determinado el año de
inauguración de la calle.
Se sabe que una identificación del plano de una calle puede describir a distintas calles, pero un plano
es diseñado por una única empresa constructora.
Las mismas empresas que se encargaron de diseñar los planos de las calles, construyeron hospitales
y zonas deportivas. En la construcción de un hospital ó de una zona deportiva designa un único
ingeniero responsable. A su vez dichos ingenieros trabajan en una única empresa constructora.
19
Por lo tanto, el esquema relación universal será de la forma:
R(NRO,NC,ID,EC,NI,AI,IP,ING,HO,ZD)
"Se sabe que una calle tiene tanto un número de calle como un nombre y que cada uno identifica
a la calle."
"El número de calle determina en forma única tanto el nombre de la calle como el identificador del
plano de la calle y la empresa constructora. "
"A su vez el número de la calle y la identificación del plano de la calle y la empresa constructora
son únicos dado el nombre de la calle."
"El nombre de la calle fue elegido durante el ejercicio de un intendente, es decir que el nombre del
intendente queda determinado por el nombre de la calle."
NRO → NC,IP,EC; NC → NRO,IP,EC,NI
"Dado el nombre y el número de la calle y el nombre del intendente queda determinado el año de
inauguración de la calle." NC,NRO,NI → AI
"Se sabe que una identificación del plano de una calle puede describir a distintas calles, pero un
plano es diseñado por una única empresa constructora."; IP → EC
"En la construcción de un hospital ó de una zona deportiva de fútbol designa un único ingeniero
responsable."; HO → EC,ING; ZD → EC,ING
"A su vez dichos ingenieros trabajan en una única empresa constructora."; ING → EC
i. Llevamos a 3NF
Aplicamos el algoritmo para obtener una descomposición de R en 3NF
Tenemos:
Fminimal = { NRO → NC, NC → NRO, NC → IP, NC → NI, NC → AI, IP → EC, ING → EC,
HO → ING, ZD → ING }
Obtenemos al principio:
{ R1 (NRO, NC), R2 (NC, NRO), R3 (NC, IP), R4 (NC, NI), R5 (NC, AI), R6 (IP, EC), R7 (ING, EC),
R8 (HO, ING), R9 (ZD, ING) }
Simplificamos
{ R1 (NRO, NC). R3 (NC, IP, NI, AI), R6 (IP, EC), R7 (ING, EC), R8 (HO, ING), R9 (ZD, ING) }
Agregamos un esquema asociado a una de las claves de R
R10 (NC,ZD,HO)
Proyectamos las dependencias de Fminimal en el esquema obtenido:
R1 (NRO, NC) F = { NRO → NC, NC → NRO } claves: { (NRO) ,(NC) }
R3 (NC, IP, NI, AI) F = { NC → ID, NC → NI, NC → NI } clave: { (NC) }
R6 (IP, EC) F = { IP → EC } clave: { (IP) }
21
R7 (ING, EC) F = { ING → EC } clave: { (ING) }
R8 (HO, ING) F = { HO → ING } clave: { (HO) }
R9 (ZD, ING) F = { ZD → ING } clave: { (ZD) }
R10 (NC,ZD, HO) F = { } clave: { (NC,ZD,HO) }
No se pierde ninguna dependencia funcional, ya que la unión de las proyecciones es igual al
conjunto minimal, con lo que serán inmediatamante son equivalentes.
R1 (NRO, NC) R3 (NC, IP, NI, AI) R6 (IP, EC) R7 (ING, EC)
R8 (HO, ING) R9 (ZD, ING) R10 (NC,ZD, HO)
22
DISEÑO DE BASES DE DATOS. DEPENDENCIAS FUNCIONALES. Ejercicios 1.
Nota:
• A, B, C, D, E, G, H , I son considerados atributos atómicos.
• W, X, Y , Z son considerados conjuntos de atributos atómicos.
Ejercicio 2. Indicar cuales de las siguientes derivaciones para dependencias funcionales son válidas
demostrando o usando un contraejemplo.
i. { X →Y, Z → Y } ╞ XZ → Y. m. { XY → Z, Z → X } ╞ Z → Y.
j.{ XZ → Y } ╞ X → Y. n. { X → Y, Y → Z } ╞ X → YZ.
k. { XZ → Y, X → Z } ╞ X → Y. o. { X → Y, W → Z, W ⊆ Y } ╞ X → Z.
l. { Z → W , X →Y } ╞ XZ →YW. p. { XY →Z, Y →W } ╞ XW →Z
h. B → D j.C → DE l. HA → CD n. A → D
i. E → D k. A → C m. CD → E
23
Ejercicio 8. Sea R(A,B,C,D,E) y F = { AB → C, C → DE, E → C }.
Decir cuáles de los conjuntos de dependencia funcionales son equivalentes a F. En caso de no serlo
dar relaciones de R que ejemplifiquen este hecho.
e. F1 = { AB → CDE, E → CD, C → D }.
f.F2 = { AB → D, D → C, C → DE, E → C }.
g. F3 = { AB → CDE, C → D, C → E, E → C, E → D }.
h. F4 = { A → C, B → C, C → DE, E → C }.
Normalización.
Ejercicio 12. Un club esta organizando un campeonato de tenis individual. A cada persona que se inscribe se le
pide el nombre, la edad, el DNI y la fecha de vencimiento de la ficha médica. El torneo se juega en un
determinado conjunto de pistas de las que se conoce la dirección de cada una, un código que las identifica, y si
tienen iluminación o no. A partir de estos datos, se organizan los partidos del campeonato con los siguientes
criterios.
• A cada partido se le asigna un código que lo identifica dentro del torneo, una hora, una pista, dos
inscriptos diferentes (local y visitante), una etapa (eliminatorias, octavos, cuartos, semifinales y final) y
un ganador.
• No se pueden jugar dos partidos a la misma hora en la misma pista.
• En cada etapa, cada jugador juega un solo partido.
k. Indicar las dependencias funcionales que se cumplen en esta realidad.
24
l. Teniendo en cuenta las dependencias encontradas, indicar en que forma normal se encuentra el esquema
que contiene todos los atributos. Si no se encuentra en una forma normal "aceptable", normalícela hasta
que así lo considere. Justifique las respuestas.
Ejercicio 13. Se quiere modelar una base de datos de información histórico-política e histórico-administrativa de
las calles de una ciudad, así como información sobre los hospitales y zonas deportivas sobre las mismas.
La información histórico-política de interés se refiera al año en que fue inaugurada la calle así como el nombre
del intendente en ejercicio.
La información histórico-administrativa que se desea mantener es la identificación del plano de construcción de
la calle en cuestión, así como la empresa constructora que estuvo a cargo del diseño de dicho plano. El plano
de construcción de la calle consiste del diseño de la misma y el identificador del plano es una referencia que se
utiliza a fin de ubicarlo en el archivo de planos que mantiene la intendencia. Desde ahora al plano de
construcción lo llamaremos simplemente plano de la calle.
Se sabe que una calle tiene tanto un número de calle como un nombre y que cada uno identifica a la calle. El
número de calle determina en forma única tanto el nombre de la calle como el identificador del plano de la calle
y la empresa constructora. A su vez el número de la calle y la identificación del plano de la calle y la empresa
constructora son únicos dado el nombre de la calle.
El nombre de la calle fue elegido durante el ejercicio de un intendente, es decir que el nombre del intendente
queda determinado por el nombre de la calle.
Dado el nombre y el número de la calle y el nombre del intendente queda determinado el año de inauguración
de la calle.
Se sabe que una identificación del plano de una calle puede describir a distintas calles, pero un plano es
diseñado por una única empresa constructora.
Las mismas empresas que se encargaron de diseñar los planos de las calles, construyeron hospitales y zonas
deportivas. En la construcción de un hospital ó de una zona deportiva designa un único ingeniero responsable.
A su vez dichos ingenieros trabajan en una única empresa constructora.
25
DISEÑO DE BASES DE DATOS DEPENDENCIAS FUNCIONALES
26
a. No satisface F. Viola E → B , ya que si la primer tupla se denomina t , y la
A B C D E segunda u , se tendrá que:
a1 b1 c1 d1 e1 t[E] = u[E] = e1 , pero t[B] ≠u[B]
a2 b2 c2 d1 e1 con lo que no se cumple la definición de dependencia funcional.
b.
A B C D E Satisface F, trivialmente, ya que para todo par de tuplas u, t en esta
a1 b1 c1 d1 e1 instancia de R y para toda dependencia funcional Att1 → Att2 en F, se
a2 b2 c2 d1 e2 cumple que: t[Att1] = u[Att1] con lo que la definición de dependencia
funcional será valida en todos los casos.
i. { X → Y, Z → Y } ╞ XZ → Y
Se cumple
X → Y ╞ ZX → YZ Aumento
ZX → YZ ╞ ZX → Y Descomposición
j. { XZ → Y } ╞ X → Y X Y Z
No se cumple. Ver este contraejemplo: R(X,Y,Z) x1 y1 z1
Esta relación satisface XZ → Y, pero no x1 y2 z2
satisface X → Y.
k. { XZ → Y, X → Z }╞ X → Y
Se cumple
X→X Reflexiva (X ⊇ X)
{ X → Z , X → X }╞ X → XZ Unión
{ X → XZ , XZ →Y }╞ X → Y Transitiva
l. { Z → W , X → Y }╞ XZ → YW.
Se cumple
X → Y ╞ XZ → YZ Aumento
Z → W╞ ZY → WY Aumento
{ XZ → YZ , YZ → WY } ╞ XZ → YW. Transitiva
m. { XY → Z, Z → X } ╞ Z → Y
o. { X → Y, W → Z, W ⊆ Y } ╞ X → Z
Se cumple
Y→W Reflexiva (Y ⊇ W)
{ X → Y ,Y → W, W → Z }╞ X → Z Transitiva dos veces
p. { XY → Z, Y → W } ╞ XW → Z
No se cumple. Ver el siguiente contraejemplo: w1 x1 y1 z1
R(W,X,Y,Z)Esta relación satisface XY → Z y Y w1 x1 y2 z2
→ W pero no satisface XW → Z.
W X Y Z
Ejercicio 3.
Sea R(A,B,C,D,E,G,H,I) y F = { AB → CH, CD → B, B → GAE, H → DI }.
En cada uno de los casos siguientes se determinaran las clausuras de cada conjunto de atributos a
través de los axiomas de Armstrong. La idea al aplicar la clausura es tratar de obtener los demás
atributos de la relación, por lo que siempre trataran de inferirse estos a través de aplicaciones de las
reglas anteriores.
h. (A)+ = { A }
Considero el conjunto de partida{ A }
{A}╞ A→ A Reflexiva (A ⊆ A)
Partiendo de A, no es posible inferir otros atributos distintos de la relación R.
En este caso, considerando el grafo de dependencias funcionales, se observa claramente que no
es posible "escaparse" del nodo A, por lo que la clausura estará compuesta solo por A.
i. (B)+ = { B, G, A, E, C, H, D, I }
Considero el conjunto de partida { B }
{B}╞ B→ B Reflexiva (B ⊆ B)
{ B } ╞ B → GAE dependencia funcional en F
el conjunto de trabajo pasa a:
{ B,G,A,E } ╞ AB → CH dependencia funcional en F
el conjunto de trabajo pasa a:
{ B,G,A,E,C,H } ╞ H → DI dependencia funcional en F
el conjunto de trabajo pasa a:
{ B,G,A,E,C,H,D,I }
Se finaliza el proceso debido a que el resultado es el esquema de la relación. Para los demás
casos, el mecanismo formal para deducir la clausura, es utilizar las reglas de Armstrong, pero como
ayuda puede utilizarse el grafo de dependencias funcionales. Planteamos a continuación los
resultados de las clausuras.
j. (CD) + = { C, D, B, G, A, E, H, I }
k. (BEI) + = { B, E, I, G, A, C, H, D }
l. (BE) + = { B, E, G, A, C, H, D, I }
m. (HA) + = { H, A, D, I }
n. (ABH) + = { A, B, H, C, D, I, B , E }
Ejercicio 4. Sea F = { AB → C, C → D, B → C, C → E, HB → D }.
Se van a calcular los X+F correspondientes a cada dependencia funcional X → Y ∈ F, utilizando las
mismas técnicas que en Ej. anterior. Se concluirá que esta dependencia funcional
X → Y ∈ F+ en caso de que Y ∈ X+.
h. (B) + = { B, C, D, E }, D ∈ B+ ⇒ (B → D) ∈ F+.
28
i. (E) + = { E }, D ∉ E+ ⇒ (E → D) ∉ F+.
j. (C) + = { C, D, E }, D,E ∈ C+ ⇒ (C → DE) ∈ F+.
k. (A) + = { A }, C ∉ A+ ⇒ (A → C) ∉ F+.
l. (HA) + = { H, A }, C,D ∉ (HA) + ⇒ (HA → CD) ∉ F+.
m. (CD) + = { C, D, E }, E ∈ (CD) + ⇒ (CD → E) ∈ F+.
n. (A) + = { A }, D ∉ A+ ⇒ (A → D) ∉ F+.
29
Ejercicio 5. Sea R(A B C D E G) y F = { AB → D, CD → G, E → A, A → C, BG → C, D → A }.
a. Se aplican las mismas técnicas obtenidas de los ejercicios anteriores.
7. (AD) + = { A , D, C, G } 10. (EB) + = { E, B, A, C, D, G }
+
8. (D) = { D, A, C, G } 11. (B) + = { B }
9. (BC) + = { B, C } 12. (EBC) + = { E, B, C, A, D, G }
e. Los conjuntos (EB) y (EBC) son superclave, ya que su clausura contiene a todos los atributos de la
relación.
f. El conjunto que podría ser clave es (EB), pero primero hay que verificar que no contiene una clave.
(E) + = { E, A, C } no es clave. (B) + = { B } no es clave. (EB) es clave
g. B y E no quedan determinados por ningún otro conjunto de atributos, porque nunca aparecen en la
parte derecha de ninguna df por lo que estarán contenidos en todas las claves. Pero (BE) es clave
(por c.), por lo tanto no habrá otra clave, porque si la hubiera debería contener a (BE) y entonces
sería superclave. La única clave es (BE)
Ejercicio 6. Las siguientes propiedades pueden resultar útiles a la hora de determinar las claves de un
esquema de relación, así como también al obtener recubrimientos minimales y clausuras.
f. Si existe X t.q. X no aparece en ninguna dependencia funcional, entonces X está en toda clave.
Por absurdo, supongo que Z clave tq. X ⊄ Z.
Si Z es clave, entonces se cumple Z → X.
Si Z →X entonces, o bien X ⊆ Z (que contradice la hipótesis), o bien Z → X es una df no trivial, lo
cual contradice que X no aparece en ninguna df.
ABSURDO, X pertenece a toda clave.
g. Si existe X t.q. X no está a la derecha de ninguna dependencia funcional, X está en toda clave.
Por absurdo, supongo que Z clave tq. X ⊄ Z.
Si Z es clave, entonces se cumple Z → X.
Si Z → X entonces, o bien X ⊆ Z (que contradice la hipótesis), o bien Z → X es una df
no trivial, lo cual contradice que X no aparece a la derecha de ninguna df.
ABSURDO, X pertenece a toda clave.
ACLARACION INTERESANTE: juntando las partes a. y b. , pudo haberse demostrado en primera
instancia la parte b. para luego afirmar que si X no aparece en ninguna dependencia funcional,
entonces obviamente no aparece a la derecha de ninguna dependencia funcional, por lo que por la
parte b. , estará en toda clave.
30
D no está en ninguna df, entonces está en toda clave. H I no están nunca a la izquierda en df’s,
entonces no sirven para determinar a ningún atributo, entonces no están en ninguna clave. E y G no
están a la derecha de ninguna dependencia, entonces están en toda clave.
Pruebo con (E,G,D), (EGD)+ = { E, D, G, I, H }, no es superclave, entonces no es clave.
Pruebo con claves de cuatro atributos:
(EGDA) + = { D, A, B, C, E, G, I, H } es clave
(EGDB) + = { D, B, C, E, G, I, H, A } es clave
(EGDC) + = { D, C, B, E, I, H, A, G } es clave
No hay mas, pues si no serían superclaves. LAS CLAVES SON: (EGDA), (EGDB), (EGDC).
Ejercicio 8. F = { AB →C, C →DE, E →C }
e. F1 = { AB →CDE, E →CD, C →D } No son equivalentes. A B C D E
Sea la siguiente relación: R(A,B,C,D,E) a1 b1 c1 d1 e1
Satisface F1 pero no F. (C →E) ∉ F1+ a1 b2 c1 d1 e2
f. F2 = { AB →D, D →C, C →DE, E →C } No son equivalentes. A B C D E
Sea la siguiente relación: R(A,B,C,D,E) a1 b1 c1 d1 e1
Satisface F pero no F2. (D →C) ∉ F+ a1 b2 c2 d1 e2
g. F3 = { AB →CDE, C →D, C →E, E →C, E →D }
Son equivalentes. Para eso verificaremos que cada df de un conjunto está en la clausura del otro.
F ⊆ F3+: F3 ⊆ F+ :
(AB) +F3 = { A, B, C, D, E } ⇒ (AB →C) ∈ F3+. (AB) +F = { A, B, C, D, E } ⇒ (AB →CDE) ∈ F+.
(C) +F3 = { C, D, E } ⇒ (C →DE) ∈ F3+. (C) +F = { C, D, E } ⇒ {C →D,C →E} ∈ F+.
(E) F3 = { E, C, D } ⇒ (E →C} ∈ F3 .
+ +
(E → C) ∈ F.
(E)+F = { E, C, D } ⇒ (E →D) ∈ F+.
31
Ejercicio 9.
g. {A → Β , B → C , C → D , D → E , E → A , A → C , C → Ε , E → Β , B → D, D → Α}.
Por lo tanto, los siguientes conjuntos son cubrimientos minimales del conjunto original
F1 = { A → Β , B → C , C → D , D → E , E → A }
F2 = {A → C , C → Ε , E → Β , B → D, D → Α}
h. {A → Β, AE → D, B → C, DH → C, C → D, CG → B, D → A, BF → Α}.
El siguiente es el minimal del conjunto anterior: F = { A → Β, B → C, C → D, D → A}
32
Diseño de bases de datos. Soluciones Normalización.
33
F' = F3 − { CDE → A }; (CDE)+F, = {C,D,E} ⇒ CDE → A no es una dependencia redundante
en F3
Se deduce entonces que el conjunto minimal es:
Fminimal = F3 = { CDG → B, AB → C, A → D, B → E, CDE → A }
34
Por tal motivo, como esa dependencia es la causante de problemas, descomponemos
utilizando el algoritmo para llevar a BCNF, usando la dependencia A → D. Obtenemos así:
R4(CDEA) FR4 = { CDE → A , A → D } , A → D viola BCNF
R41(AD) FR41 = { A → D } Claves: (A) ⇒ R41 esta en BCNF
R42(CEA) FR42 = { } Claves: (CEA) ⇒ R42 esta en BCNF
Ejercicio 11.
R(A,B,C,D,E,H,G) , según F = { AB → CED, C → Α, D → Ε, EH → G}
p. Claves de R según F.
B y H pertenecen a toda clave, ya que no están a la derecha de ninguna dependencia
funcional.
Analizamos la clausura de este conjunto de atributos, a fin de determinar que se obtiene a
partir de ellos, y no debe incluirse el las claves de R. (Podrían utilizarse técnicas gráficas como
las del Practico 6, pero evitaremos estas por ahora.)
(BH)+ = { B, H } ⇒ (BH) no es clave.
Busco entonces claves con 3 atributos:
(BHA)+ = { B,H,A,C,E,D,G } ⇒ (BHA) es clave
(BHC)+ = { B,H,C,A,E,D,G } ⇒ (BHC) es clave
(BHD)+ = { B,H,D,E,G } ⇒ (BHD) no es clave
(BHE)+ = { B,H,E,G } ⇒ (BHE) no es clave
(BHG)+ = { B,H,G } ⇒ (BHG) no es clave
Busco claves con 4 atributos:
(BHDE)+ = { B,H,D,E,G } ⇒ (BHDE) no es clave
(BHDG)+ = { B,H,D,G,E } ⇒ (BHDG) no es clave
(BHEG)+ = { B,H,E,G } ⇒ (BHEG) no es clave
Busco claves con 5 atributos:
(BHDEG)+ = { B,H,D,E,G } debido a que (BHDE)+ = { B,H,D,E,G } ⇒ (BHDE) no es clave
Se deduce entonces que las claves son (BHA) y (BHC)
35
F' = F3 − { EH → G }; (EH)+F, = {E,H} ⇒ EH → G no es una dependencia redundante en F3
Se concluye entonces que
Fminimal = F3 = { AB → C, AB → D, C → A, D → E, EH → G }
r. Sea la descomposición:
R(A,B,C,D,E,H,G)F = { AB → CED, C → Α, D → Ε, EH → G}
R1(A,B,D,E) FR1 = { AB → D, D → E }
R2(A,B,C,H,G) FR2 = { AB → C, C → A }
t. Llevar la descomposición de la parte d. a BCNF con join sin pérdida. Indicar si se pierden
dependencias funcionales y cuales.
En la descomposición anterior sólo R1(A,B,C,D) está en 3NF, los demás están en BCNF.
36
R1 está en 3NF y no en BCNF, ya que la dependencia C → A viola BCNF (C no es
superclave).
Por lo tanto descomponemos está en dos:
R1(A,B,C,D) FR1 = { AB → CD, C → Α }, Claves: (AB, BC) , C → A viola BCNF
Aclaramos que: La nueva descomposición tiene join sin pérdida, ya que la anterior
descomposición a 3NF tenía jsp. Sin embargo, si se pierden dependencias, ya que antes de
aplicar el algoritmo se disponía de:
R1(A,B,C,D) F1 = { AB → C, AB → D, C → A } R2(D,E) F3 = { D → E }
R3(E,H,G) F4 = { EH → G } R4(B,H,A) F5 = { }
Donde claramente la unión de las proyecciones de las dependencias funcionales, es el
conjunto minimal de partida (Fminimal), por lo que las dependencias se preservan. Sin embargo,
al particionar R1, se obtiene R11(B,C,D) FR11 = { } con lo que las dependencias { AB → C, AB
→ D } se pierden. (se comprueba a simple vista, al unir las proyecciones de las dependencias
en BCNF, y tratar de deducir AB → C de dicho conjunto).
Ejercicio 12.
b. De la realidad planteada, se identifican las siguientes dependencias funcionales
"A cada persona que se inscribe se le pide el nombre, la edad, la DNI y la fecha de vencimiento
de la ficha médica." ⇒ DNI → nombre, edad, fechavencimiento
"El torneo se juega en un determinado conjunto de pistas de las que se conoce la dirección de
cada una, un código que las identifica, y si tienen iluminación o no"
⇒ códigopista → dirección, con_iluminación
"A cada partido se le asigna un código que lo identifica dentro del torneo, una hora, una pista,
dos inscritos diferentes (local y visitante), una etapa (eliminatorias, octavos, cuartos,
semifinales y final) y un ganador."
⇒ códigopartido → hora , códigopista , DNIlocal , DNIvisitante , etapa , DNIganador
"No se pueden jugar dos partidos a la misma hora en la misma pista."
⇒ hora , códigopista → códigopartido
"En cada etapa , cada jugador juega un solo partido."
⇒ DNIlocal , etapa → códigopartido, ⇒ DNIvisitante , etapa → códigopartido
Además debe tenerse en cuenta, que los jugadores locales y visitantes, son en realidad DNIs,
son los mismos atributos, con distinto nombre, por lo que pueden deducirse las siguientes
dependencias:
DNIlocal → DNI, DNI → DNIlocal, DNIvisitante → DNI, DNI → DNIvisitante ,
DNIganador → DNI, DNI → DNIganador
37
Renombrando el conjunto de atributos, tendremos:
Nombre Atrib Nombre Atrib Nombre Atrib Nombre Atrib Nombre Atrib
DNI C Edad E códigopista CC códigopartido CP DNIlocal CL
nombre N fechavencimiento FV dirección D hora H DNIvisitante CV
con_iluminac CI DNIganador CG etapa E
Obtenemos el esquema relación R sobre F con: R(C, N, E, FV, CC, D, CI, CP, H, CG, CL, CV, E)
según F = { C → N, E, FV ; CC → D, CI ; CP → H, CC, CL, CV, E, CG ; H, CC → CP; CL, E →
CP ; CV, E → CP; CG, E → CP; CL → C; CV → C; CG → C; C → CL; C → CV; C →
CG }
Hay que tener presente que los atributos CL, CV y CG son DNIs de inscritos, motivo por el cual se
creó la relación PISTAS.
INSCRITOS está en BCNF, ya que la única dependencia que se cumple sobre esta tiene a la
izquierda una clave. La misma situación se da con PISTAS. En partidos, (CP) es una clave, por lo
que (CC,H), (CL,E), (CV,E) y (CG,E) también son claves porque determinan a (CP). De esta forma,
Partidos también está en BCNF.
DNI también esta en BCNF, ya que todos los atributos de la tabla son claves por si solos, motivo
por el cual todas las dependencia de FDNI tienen a la izquierda atributos que son superclaves.
Por lo tanto, la descomposición propuesta están en BCNF y por lo tanto en 3NF y como todas las
dependencias caen en un determinado subesquema, la unión de todas estas será el conjunto
original de dependencias , por lo que se preservan las dependencias funcionales.
Queda por verificar si cumple la propiedad de join sin pérdida. En este caso particular, se puede
observar que los joins posibles con sentido son entre INSCRITOS y CEDULAS ,entre PISTAS y
PARTIDOS y entre DNI y PARTIDOS. De esta forma se puede aplicar la propiedad DSPS1:
38
Ejercicio 13.
"Se sabe que una calle tiene tanto un número de calle como un nombre y que cada uno identifica
a la calle."
"El número de calle determina en forma única tanto el nombre de la calle como el identificador del
plano de la calle y la empresa constructora. "
"A su vez el número de la calle y la identificación del plano de la calle y la empresa constructora
son únicos dado el nombre de la calle."
"El nombre de la calle fue elegido durante el ejercicio de un intendente, es decir que el nombre del
intendente queda determinado por el nombre de la calle."
NRO → NC,IP,EC; NC → NRO,IP,EC,NI
"Dado el nombre y el número de la calle y el nombre del intendente queda determinado el año de
inauguración de la calle." NC,NRO,NI → AI
"Se sabe que una identificación del plano de una calle puede describir a distintas calles, pero un
plano es diseñado por una única empresa constructora."; IP → EC
"En la construcción de un hospital ó de una zona deportiva de fútbol designa un único ingeniero
responsable."; HO → EC,ING; ZD → EC,ING
"A su vez dichos ingenieros trabajan en una única empresa constructora."; ING → EC
39
F1 = { NRO → NC; NRO → ID; NRO → EC; NC → NRO
NC → IP; NC → EC; NC → NI; NC,NRO,NI → AI; IP → EC; ING → EC
HO → EC; HO → ING; ZD → EC ; ZD → ING }
u. Llevamos a 3NF
Aplicamos el algoritmo para obtener una descomposición de R en 3NF
Tenemos:
Fminimal = { NRO → NC, NC → NRO, NC → IP, NC → NI, NC → AI, IP → EC, ING → EC,
HO → ING, ZD → ING }
Obtenemos al principio:
{ R1 (NRO, NC), R2 (NC, NRO), R3 (NC, IP), R4 (NC, NI), R5 (NC, AI), R6 (IP, EC), R7 (ING, EC),
R8 (HO, ING), R9 (ZD, ING) }
40
Simplificamos
{ R1 (NRO, NC). R3 (NC, IP, NI, AI), R6 (IP, EC), R7 (ING, EC), R8 (HO, ING), R9 (ZD, ING) }
Agregamos un esquema asociado a una de las claves de R
R10 (NC,ZD,HO)
Proyectamos las dependencias de Fminimal en el esquema obtenido:
R1 (NRO, NC) F = { NRO → NC, NC → NRO } claves: { (NRO) ,(NC) }
R3 (NC, IP, NI, AI) F = { NC → ID, NC → NI, NC → NI } clave: { (NC) }
R6 (IP, EC) F = { IP → EC } clave: { (IP) }
R7 (ING, EC) F = { ING → EC } clave: { (ING) }
R8 (HO, ING) F = { HO → ING } clave: { (HO) }
R9 (ZD, ING) F = { ZD → ING } clave: { (ZD) }
R10 (NC,ZD, HO) F = { } clave: { (NC,ZD,HO) }
No se pierde ninguna dependencia funcional, ya que la unión de las proyecciones es igual al
conjunto minimal, con lo que serán inmediatamante son equivalentes.
R1 (NRO, NC) R3 (NC, IP, NI, AI) R6 (IP, EC) R7 (ING, EC)
R8 (HO, ING) R9 (ZD, ING) R10 (NC,ZD, HO)
41