Un ejemplo de aplicación con dependencias funcionales y

Anuncio
Universidad Nacional de Sur – Departamento de Ciencias e Ingeniería de la Computación
Elementos de Bases de Datos – 2do. Cuatrimrestre 2004.
Un ejemplo de aplicación con dependencias funcionales y
descomposiciones para un problema real.
Descripción del problema
Supongamos que deseamos mantener información sobre los cursados de alumnos de una
universidad. Los datos que se desean mantener sobre los cursados incluyen1:
ESQUEMA_CURSADOS (MateriaCódigo, MateriaNombre, DptoCódigo, DptoNombre,
AlumnoLU, AlumnoApellido, AlumnoNombre, AlumnoDomicilio, AlumnoTipoDoc,
AlumnoNroDoc, Cuatrimestre, AñoAcadémico, CursadoResultado)
Donde:
Atributo
MateriaCódigo
MateriaNombre
DptoCódigo
DptoNombre
AlumnoLU
AlumnoApellido
AlumnoNombre
AlumnoDomicilio
AlumnoTipoDoc
AlumnoNroDoc
Cuatrimestre
AñoAcadémico
CursadoResultado
Descripción
Código de materia. Es el atributo que identifica
a una materia.
Nombre de la materia.
Código de departamento académico. Cada
departamento tiene su propio código.
Nombre del departamento.
Número de libreta de un alumno. A cada
alumno se le asigna un único número de libret
Apellido del alumno.
Nombre del alumno.
Domicilio del alumno.
Tipo de documento. Puede asumir uno de los
siguientes valores: DNI, LC, CI o Pasaporte.
Número de documento
Cuatrimestre lectivo. Asume los valores: 1 y 2
Año académico.
Resultdo con que se califica el cursado. Puede
tener asociado uno de los siguientes valores:
“Aprobado”, “Desaprobado”, “Ausente”, “Sin
Calificar”.
Mapeo a
Letra
A
B
C
D
E
F
G
I
J
K
L
M
Dependencias funcionales
Para el esquema del inciso anterior se plantearon las siguientes restricciones o dependencias
funcionales que se espera satisfagan todas las instancias de R:
Dependencias funcionales
1. MateriaCódigo →MateriaNombre, DptoCódigo, DptoNombre
1
Este problema es una simplificación de la realidad, por esta misma razón sólo se consideraron un número
reducido de atributos
1
Universidad Nacional de Sur – Departamento de Ciencias e Ingeniería de la Computación
Elementos de Bases de Datos – 2do. Cuatrimrestre 2004.
2. DptoCódigo → DptoNombre
3. AlumnoLU → AlumnoApellido, AlumnoNombre, AlumnoDomicilio,
AlumnoTipoDoc, AlumnoNroDoc
4. AlumnoTipoDoc, AlumnoNroDoc → AlumnoApellido, AlumnoNombre,
AlumnoDomicilio, AlumnoLU
5. AlumnoLU, MateriaCódigo, DptoCódigo, AñoAcadémico, Cuatrimestre
→CursadoResultado
6. AlumnoTipoDoc, AlumnoNroDoc, MateriaCódigo, DptoCódigo, AñoAcadémico,
Cuatrimestre → CursadoResultado
Siguiendo el mapeo de letras las dependencias anteriores podrían reescribirse de la siguiente
manera:
Dependencias funcionales
1. A→ BCD
2. C→D
3. E→FGHIJ
4. IJ →EFGH
5. ACEKL →M
6. IJACKL → M
Esto es, ahora es posible redefinir el problema como:
Dado R un esquema de relación R(A,B,C,D,E,F,G,H,I,J,K,L,M) y sea el siguiente conjunto de
dependencias funcionales definido sobre R
F={ A→ BCD, C→D, E→FGHIJ, IJ →EFGH, ACEKL →M, IJACKL → M}
Queda propuesto como ejercicio al lector comprobar que el siguiente es un cubrimiento
mínimo reducido para F:
Fminimo reducido = {A→ BC, C→D, E→FGHIJ, IJ →E, AEKL →M}
Forma Normal
¿Qué forma normal respeta R?. Para poder responder esta consulta es necesario conocer las
llaves de R
Siempre
AKL
Nunca
BDFGHM
Talvez
CEIJ
Cálculo de las llaves candidatas
AKL+ = AKLBCD no es llave.
AKLC+ = AKLBCD no es llave.
AKLE+ = AKLEBCDFGHIJM = ABCDEFGHIJKLM si es llave.
AKLI+ = AKLIBCD no es llave.
AKLJ+ = AKLJBCD no es llave.
AKLCI+ = AKLCIBD no es llave.
AKLCJ+ = AKLCJBD no es llave.
AKLIJ+ =AKLIJBCDEFGHM = ABCDEFGHIJKLM si es llave.
2
Universidad Nacional de Sur – Departamento de Ciencias e Ingeniería de la Computación
Elementos de Bases de Datos – 2do. Cuatrimrestre 2004.
Atributos primos
AKLEIJ
Atributos no primos
BCDFGH
El esquema R(ABCDEFGHIJKLM) bajo el conjunto de df’s FMinimoReducido ={A→ BC, C→D,
E→FGHIJ, IJ →E, AEKL →M}respeta la 1FN ya el dominio de todos los atributos es
simple. Sin embargo no respeta la 2FN, dado que por ejemplo la dependencia funcional
A→BC sobre los atributos no primos BC contiene una dependencia parcial con una de las
llaves, más específicamente con las dos llaves de este esquema AKLE y AKLIJ.
Descomposición
Un esquema que sólo respeta la 1FN no es un buen diseño conceptual. Tiene problemas de
redundancia, inconsistencia y anomalías de inserción y borrado. La solución es plantear una
descomposición que respete una forma normal más alta.
Como resultado de aplicar el algoritmo 3FN-Preserva Dependencias-JSP visto en teoría se
obtiene la siguiente descomposición para R
ρ(ABC, CD, EFGHIJ, AEKLM)
donde:
R1 (ABC) = {A→ BC} con llave A, está en la FNBC
R2 (CD) = {C→D} con llave C, está en la FNBC
R3 (EFGHIJ) = {E→FGHIJ, IJ →E} con llaves E y IJ, está en la FNBC
R4 (AEKLM) = {AEKL→M} con llaves AEKL , está en la FNBC
Luego la descomposición ρ(ABC, CD, EFGHIJ, AEKLM) obtenida respeta la FNBC, dado
que cada uno de sus esquemas respeta la FNBC. Por otra parte preserva dependencias, de
hecho la unión de las dependencias proyectadas en cada uno de los subesquemas es idéntica
al conjunto FminimoReducido de partida. Además dado que uno de los subesquemas, R4 contiene a
una las llaves de R, para este ejemplo la llave contenida es AEKL, podemos asegurar que la
descomposición tiene además la propiedad de ser join sin pérdida.
Veamos ahora con los atributos reales cuál es la descomposición propuesta por el algoritmo:
R1 (ABC) = Esquema_Materias (MateriaCódigo, MateriaNombre, DptoCódigo)
R2 (CD) = Esquema_Dptos (DptoCódigo, DptoNombre)
R3 (EFGHIJ) = Esquema_Alumnos( AlumnoLU, AlumnoApellido, AlumnoNombre,
AlumnoDomicilio, AlumnoTipoDoc, AlumnoNroDoc)
R4 (AEKLM) = Esquema_Cursados(MateriaCódigo, AlumnoLU, Cuatrimestre,
AñoAcadémico, CursadoResultado)
Se invita al lector a comprobar que esta última descomposición también se podría haber
alcanzado a partir de un buen modelo ER.
3
Descargar