Skip to content

Instantly share code, notes, and snippets.

@farfanoide
Last active June 8, 2016 23:21
Show Gist options
  • Save farfanoide/4c920cc29585eaefed5db806b49dd568 to your computer and use it in GitHub Desktop.
Save farfanoide/4c920cc29585eaefed5db806b49dd568 to your computer and use it in GitHub Desktop.

Una facultad cuenta con una base de datos en donde registra la informacin de los finales de las materias. Para ellos tienen una relacion:

Final(cod_materia, nom_materia, fecha_final, anio_materia, profesor_acargo,
numero_alumno, nomb_alumno, nota_alumno)

Donde:

  • el codigo de materia es unico pero el nombre se puede repetir para distintos codigos.
  • Una materia se toma en muchas fechas.
  • Cada materia para una fecha tiene muchos profesores a cargo.
  • En una materia en una fecha se presentan varios alumnos, y para cada uno se registra una nota.
  • Un alumno se puede presentar en la misma materia en diferentes fechas mas de una vez.

Lleve a cuarta forma normal.

Dependencias Funcionales

  • DF1: cod_materia -> nom_materia, anio_materia
  • DF2: numero_alumno -> nomb_alumno
  • DF3: cod_materia, fecha_final, numero_alumno -> nota_alumno

Claves Candidatas

  • CC1: (cod_materia, numero_alumno, fecha_final, profesor_acargo)

Final (cod_materia, numero_alumno, fecha_final, profesor_acargo nom_materia, anio_materia, nomb_alumno, nota_alumno)

Final % DF1

F1 (cod_materia, nom_materia, anio_materia)

F2 = Final - { nom_materia, anio_materia }

F2 (cod_materia, numero_alumno, fecha_final, profesor_acargo, nomb_alumno, nota_alumno)

F2 % DF2

F3(numero_alumno, nomb_alumno)

F4 = F2 - { nomb_alumno }

F4(cod_materia, numero_alumno, fecha_final, profesor_acargo, nota_alumno)

F4 % DF3

F5(cod_materia, fecha_final, numero_alumno, nota_alumno)

F6 = F4 - { nota_alumno }

F6(cod_materia, numero_alumno, fecha_final, profesor_acargo)

F6 == CC1 => Super Clave

Esquemas en BCNF:

F1, F3, F5 (metemos la sc?)

Dependencias Multivaluadas:

DM1: cod_materia, fecha_final ->> profesor_acargo

F6 % DM1

F7 = (cod_materia, fecha_final, profesor_acargo)

F8 = F6 - { profesor_acargo }

F8(cod_materia, numero_alumno, fecha_final)

DM2: cod_materia, fecha_final ->> numero_alumno

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment