Está en la página 1de 6

8) Dado el siguiente esquema

FESTIVALES (#festival, denominacion_festival, localidad, cuil_musico, nombre_musico,


fecha_nacimiento, #banda, nombre_banda, estilo_musical, #tema, nombre_tema, duracion,
instrumento, cuil_auspiciante, url_plataforma_entradas, #locacion)

Donde:
● Para cada festival se conoce su denominación y la localidad en la que se realiza.
Más de un festival podría tener la misma denominación.
● De cada banda se conoce su nombre y estilo musical.
● De cada músico se conoce su nombre y su fecha de nacimiento. Tenga en cuenta
que varios músicos podrían tener el mismo nombre.
● Para cada tema interpretado por una banda en un festival se conoce su nombre y
duración. Además, de cada músico que participó en el tema se sabe con qué instrumento lo
hizo. ● Los #tema pueden repetirse para las distintas bandas.
● Un festival puede tener varios auspiciantes, y se vendieron entradas al mismo a
través de varias plataformas.
● Se tiene además un registro de todas las posibles locaciones donde se pueden
realizar los festivales.

Dependencias funcionales:

df1)#festival->denominacion_festival,localidad
df2)#banda->nombre_banda,estilo_musical
df3)cuil_musico->nombre_musico,fecha_nacimiento
df4)#tema,#banda,#festival->nombre_tema,duracion
df5)cuil_musico,#tema,#festival->instrumento

Claves candidatas:

cc1{#festival,#banda,#tema,cuil_musico,cuil_auspiciante,url_plataforma_entradas,#locacion
}

Analizo si FESTIVALES se encuentra en BCNF:

En FESTIVALES vale df1 y como el determinante de df1,es decir,{#festival} no es


superclave del esquema se concluye que FESTIVALES no se encuentra en BCNF.

Particiono teniendo en cuenta df1:

df1)#festival->denominacion_festival,localidad

F1(#festival,denominacion_festival,localidad)
F2(#festival,cuil_musico, nombre_musico, fecha_nacimiento, #banda,
nombre_banda, estilo_musical, #tema, nombre_tema, duracion, instrumento,
cuil_auspiciante, url_plataforma_entradas, #locacion)
Analizo si se perdió información:

Para determinar que no se perdió información la intersección de F1 y F2 debe ser


clave de alguno de los esquemas.

F1 ∩ F2 = #festival ,no se perdió información ya que #festival es clave en F1.

Analizo si se perdieron dependencias funcionales:

No se perdieron dependencias funcionales ya que df1 vale en F1 y


df2,df3,df4 y df5 valen en F2.

Analizo si F1 se encuentra en BCNF:

En F1 vale df1 y como el determinante de df1,es decir,#festival es superclave


en F1 se concluye que F1 se encuentra en BCNF.

Analizo si F2 se encuentra en BCNF:

En F2 vale df2 y como el determinante de df2,es decir,#banda no es


superclave en F2 se concluye que F2 no se encuentra en BCNF.

Se particiona teniendo en cuenta df2:

df2)#banda->nombre_banda,estilo_musical

F3(#banda,nombre_banda,estilo_musical)
F4(#festival,cuil_musico, nombre_musico, fecha_nacimiento, #banda,#tema,
nombre_tema, duracion, instrumento, cuil_auspiciante, url_plataforma_entradas, #locacion)

Analizo si se perdió información:

Para determinar que no se perdió información la intersección de F3 y F4 debe ser


clave en alguno de los esquemas.

F3 ∩ F4=#banda,no se perdió información porque #banda es clave en F3.

Analizo si se perdieron dependencias funcionales:

No se perdieron dependencias funcionales ya que df2 vale en F3 y df3,df4 y


df5 valen en F4.

Analizo si F3 se encuentra en BCNF:


En F3 vale df2 y como el determinante de df2,es decir,#banda es superclave
en F3 se concluye que F3 se encuentra en BCNF.

Analizo si F4 se encuentra en BCNF:

En F4 vale df3 y como el determinante de df3,es decir,cuil_musico no es


superclave en F4 se concluye que F4 no se encuentra en BCNF.

Se particiona teniendo en cuenta df3:

df3)cuil_musico->nombre_musico,fecha_nacimiento

F5(cuil_musico,nombre_musico,fecha_nacimiento)
F6(#festival,cuil_musico, #banda,#tema, nombre_tema, duracion, instrumento,
cuil_auspiciante, url_plataforma_entradas, #locacion)

Analizo si se perdió información:

Para determinar que no se perdió información la intersección de F5 y F6 debe ser


clave en alguno de los esquemas.

F5 ∩ F6=cuil_musico,no se perdió información porque cuil_musico es clave


en F5.

Analizo si se perdieron dependencias funcionales:

No se perdieron dependencias funcionales ya que df3 vale en F5 y df4 y df5


valen en F6.

Analizo si F5 se encuentra en BCNF:

En F5 vale df3 y como el determinante de df3,es decir,cuil_musico es


superclave en F5 se concluye que F5 se encuentra en BCNF.

Analizo si F6 se encuentra en BCNF:

En F6 vale df4 y como el determinante de df4,es


decir,{#tema,#banda,#festival} no es superclave en F6 se concluye que F6 no se
encuentra en BCNF.

Se particiona teniendo en cuenta df4:

df4)#tema,#banda,#festival->nombre_tema,duracion
F7(#tema,#banda,#festival,nombre_tema,duracion)
F8(#festival,cuil_musico, #banda,#tema, instrumento, cuil_auspiciante,
url_plataforma_entradas, #locacion)

Analizo si se perdió información:

Para determinar que no se perdió información la intersección de F7 y F8 debe ser


clave en alguno de los esquemas.

F7 ∩ F8={#festival,#banda,#tema},no se perdió información porque


{#festival,#banda,#tema} es clave en F7.

Analizo si se perdieron dependencias funcionales:

No se perdieron dependencias funcionales ya que df4 vale en F7 y df5 vale


en F8.

Analizo si F7 se encuentra en BCNF:

En F7 vale df4 y como el determinante de df4,es


decir,{#festival,#banda,#tema} es superclave en F7 se concluye que F7 se
encuentra en BCNF.

Analizo si F8 se encuentra en BCNF:

En F8 vale df5 y como el determinante de df5,es


decir,{cuil_musico,#tema,#festival} no es superclave en F8 se concluye que F8 no se
encuentra en BCNF.

Se particiona teniendo en cuenta df5:

df5)cuil_musico,#tema,#festival->instrumento

F9(cuil_musico,#tema,#festival,instrumento)
F10(#festival,cuil_musico, #banda,#tema, cuil_auspiciante, url_plataforma_entradas,
#locacion)

Analizo si se perdió información:

Para determinar que no se perdió información la intersección de F9 y F10 debe ser


clave en alguno de los esquemas.

F9 ∩ F10={#festival,cuil_musico,#tema},no se perdió información porque


{#festival,cuil_musico,#tema} es clave en F9.
Analizo si se perdieron dependencias funcionales:

No se perdieron dependencias funcionales ya que df5 vale en F9.

Analizo si F9 se encuentra en BCNF:

En F9 vale df5 y como el determinante de df5,es


decir,{#festival,cuil_musico,#tema} es superclave en F9 se concluye que F9 se
encuentra en BCNF.

Analizo si F10 se encuentra en BCNF:

En F10 todos los atributos forman parte de la clave,por lo que cualquier


dependencia funcional que se detecte va a ser trivial.Por lo tanto F10 se encuentra
en BCNF.

Esquemas en BCNF:

F1(#festival,denominacion_festival,localidad)
F3(#banda,nombre_banda,estilo_musical)
F5(cuil_musico,nombre_musico,fecha_nacimiento)
F7(#tema,#banda,#festival,nombre_tema,duracion)
F9(cuil_musico,#tema,#festival,instrumento)
F10(#festival,cuil_musico, #banda,#tema, cuil_auspiciante, url_plataforma_entradas,
#locacion)

Transformación a 4FN:

Se deben buscar dependencias multivaluadas sobre F10 ya que es la que tiene la


clave del esquema.

Dependencias multivaluadas:

dm1)#festival,cuil_auspiciante->>url_plataforma_entradas
dm2)#locacion->>#festival

Particiono F10 teniendo en cuenta dm1:

F11(#festival,cuil_auspiciante,url_plataforma_entradas)
F12(#festival,cuil_musico, #banda,#tema, cuil_auspiciante,#locacion)

F11 se encuentra en 4FN.


Particiono teniendo en cuenta dm2:

F13(#locacion,#festival)
F14(,cuil_musico, #banda,#tema, cuil_auspiciante,#locacion)

También podría gustarte