SOLUCIONES AL EXAMEN •

Anuncio
SOLUCIONES AL EXAMEN
• f1: Todo examen tiene asignada al menos un aula.
f2: No se pueden realizar, el mismo día, dos examenes de asignaturas del mismo curso siendo ambas troncales
u obligatorias indistintamente.
b)
Definición de la interpretación
I = (D,K,H,E)
Definición de L(A,F)
D = dom_ario " dom_plan " dom_aula " dom_capa "
dom_cod " dom_nom " dom_curso " dom_tipo "
dom_conv " dom_fecha " dom_hora
C={c " dom_ario} "{c " dom_plan} "{c " dom_aula}
K = { (c,d) / c " C, d " D, c y d se escriben igual }
"{c " dom_capa} "{c " dom_cod} "{c " dom_nom}
"{c " dom_curso} "{c " dom_tipo} "{c " dom_conv}
H="
"{c " dom_fecha} "{c " dom_hora}
P={ AULA(.,.,.,.), ASIGNATURA(.,.,.,.),
EXAMEN(.,.,.,.), SEREALIZAEN(.,.,.,.,.) }
E(AULA) = Ext(AULA)
E(ASIGNATURA) = Ext(ASIGNATURA)
E(EXAMEN) = Ext(EXAMEN)
E(SEREALIZAEN) = Ext(SEREALIZAEN)
Puesto que no se ha dado extensión a las relaciones, una posibilidad es suponer éstas vacías y podemos
asegurar que la interpretación es modelo para las dos fórmulas: para todo valor de c y a (en f1) y para todo
valor de e1 (en f2) se cumple que el antecedente de la implicación es falso, y falso ! ? es siempre cierto.
•
a) Hay dos posibles respuestas:
− si no tenemos en cuenta las fórmulas, la afirmación es falsa puesto que no hay nada en la definición de las
relaciones que nos obligue a ello.
− si tenemos en cuenta las fórmulas, la afirmación es cierta puesto que f1 obliga a que a cualquier examen le
asignemos un lugar donde realizarlo.
b) Card(cod, EXAMEN) = (0,3).
c) Suponiendo que el dominio de aulario contiene más de un elemento, como parece lógico, la afirmación es
falsa puesto que la composición de la clave primaria de SEREALIZAEN permite que se realicen en más de
uno.
d) El SGBD, si el borrado hiciese que se violase la integridad referencial, necesitaría conocer las políticas
definidas en la clave ajena cod de la tabla EXAMEN (será rechazar o propagar; anular no sería posible al ser
cod parte de la clave primaria), y en la clave ajena (convocatoria, cod) de la tabla SEREALIZAEN si fuese
1
necesario para mantener la integridad referencial como consecuencia de la política tomada en EXAMEN (para
esta clave ajena, al igual que en caso anterior, no tiene sentido la política anular).
e) Tendrá que comprobar que los valores se mueven en los dominios correspondientes, comprobar la
integridad de clave primaria (ni nulos, ni duplicados) y comprobar que no se viola la integridad referencial
(que el valor de la columna cod está en la columna cod de la tabla ASIGNATURA). Para los que hayan
contestado al apartado a) teniendo en cuenta las fórmulas, aquí habría que responder también que se verificase
si se realiza la inserción que se iban a seguir cumpliendo f1 y f2.
•
Define alias SER para SEREALIZAEN
(2(1SER x SEREALIZAEN) donde
SER.aulario=II y SER.aulario=SEREALIZAEN.aulario y
SER.cod=SEREALIZAEN.cod y SER.convocatoria=SEREALIZAEN.convocatoria y
(0SER.aula<>SEREALIZAEN.aula o SER.planta<>SEREALIZAEN.planta0)1)[SER.cod]
" ASIGNATURA2) [nombre]
Si no se ha hecho la comprobación de que sea el mismo examen teniendo en cuenta a la vez cod y
convocatoria es porque no se entiende la clave primaria de EXAMEN, y ocurre lo mismo con AULA y
sSEREALIZAEN si para que sea distinta aula no se tienen en consideración el aula y la planta.
•
b) R1(a, d, e) CP: (a)
R2(b, c, f, g, h) CP: (b, c)
R21(b, f) CP: (b)
c)R11(d, e)
R22(b, c, g, h)
CP: (d)
a)R(a, b, c, d, e, f, g, h, i)
CP: (b, c)
R1(a, d)
CP: (a, b, c)
CAj: b ! R21
CP: (a)
R(a, b, c, i)
CAj: d ! R11
CP: (a, b, c)
CAj: (b, c) ! R22
CAj: a ! R1
Relaciones normalizadas hasta FNBC: del apartado b) R, R21 y R22, y del c) R1 y R11
•
a)
b)
Card( PERRO, PERTENECE) = (1,1)
• Falso
• Falso
• Falso
• Falso
2
Card( RAZA, PERTENECE) = (0, N)
Card( PERRO, ADIESTRA) = (0, N)
• Verdadero
• Verdadero
• Falso
• Falso
• Verdadero
Card( ESCUELA, ADIESTRA) = (0, N)
Card( SUPERVISOR, SUPERVISA) = (0, N)
Card( ADIESTRA, SUPERVISA) = (0, 1)
•
Sea G " "x ( P(x,y) " "z ( Q(z) ! P(z,y) " R(x,z) ) )
G " "x ( F1 " "z ( F2 " F3) ) donde F1 " P(x,y) , F2 " Q(z) ! P(z,y) y F3 " R(x,z)
El dominio de G está compuesto por todos los símbolos que aparecen en las extensiones de los predicados
P(.,.), Q(.) y R(.,.). (No hay símbolos de constantes).
i) Para que la fórmula pueda ser segura una de las cosas a comprobar es que todo valor de la variable libre y
que haga cierta la fórmula debe pertenecer al dominio de la fórmula.
Un valor de y que haga cierta G tiene que hacer cierto F1 y "z ( F2 " F3). Si hace cierto F1 es que ese valor de
y está en alguna tupla de la extensión de P(.,.) y por tanto está en el dominio de G.
ii) La única subfórmula del tipo "x F corresponde con la fórmula G, de la que ya hemos definido su dominio.
Para que la fórmula pueda ser segura una de las cosas a comprobar es que todo valor de la variable x que haga
cierta la fórmula debe pertenecer al dominio de la fórmula.
Un valor de x que haga cierta G tiene que hacer cierto F1 y "z ( F2 " F3). Si hace cierto F1 es que ese valor de
x está en alguna tupla de la extensión de P(.,.) y por tanto está en el dominio de G.
iii) La única subfórmula del tipo "xF corresponde con la fórmula "z ( F2 " F3).
El dominio de esta subfórmula vuelve a estar formado por todos los valores que aparezcan en las extensiones
de P(.,.), Q(.) y R(.,.).
Para que la fórmula G pueda ser segura una de las cosas a comprobar es que todos los valores de z que hagan
falsa la subfórmula pertenecen al dominio de ésta.
Para que la subfórmula sea falsa debe ser falso F2 o F3.
Un caso posible sería que F2 " Q(z) ! P(z,y), sea verdadero de este modo falso ! falso,y que F3 sea falso. Para
este caso en el que la subfórmula es falsa no podemos asegurar que el valor de z con el que estamos evaluando
la subfórmula pertenezca al dominio de la subfórmula, por lo que la fórmula inicial G NO ES SEGURA.
3
Descargar