Ingeniero Técnico en Informática de Sistemas
Fundamentos de las Bases de Datos
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 L(A,F) C={c " dom_ario} "{c " dom_plan} "{c " dom_aula} "{c " dom_capa} "{c " dom_cod} "{c " dom_nom} "{c " dom_curso} "{c " dom_tipo} "{c " dom_conv} "{c " dom_fecha} "{c " dom_hora} P={ AULA(.,.,.,.), ASIGNATURA(.,.,.,.), EXAMEN(.,.,.,.), SEREALIZAEN(.,.,.,.,.) } | Definición de la interpretación I = (D,K,H,E) D = dom_ario " dom_plan " dom_aula " dom_capa " dom_cod " dom_nom " dom_curso " dom_tipo " dom_conv " dom_fecha " dom_hora K = { (c,d) / c " C, d " D, c y d se escriben igual } H = " 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 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.
a)R(a, b, c, d, e, f, g, h, i) CP: (a, b, c) | b) R1(a, d, e) CP: (a) R2(b, c, f, g, h) CP: (b, c) R21(b, f) CP: (b) R22(b, c, g, h) CP: (b, c) CAj: b ! R21 R(a, b, c, i) CP: (a, b, c) CAj: (b, c) ! R22 CAj: a ! R1 | c)R11(d, e) CP: (d) R1(a, d) CP: (a) CAj: d ! R11 |
Relaciones normalizadas hasta FNBC: del apartado b) R, R21 y R22, y del c) R1 y R11
a) Card( PERRO, PERTENECE) = (1,1) Card( RAZA, PERTENECE) = (0, N) Card( PERRO, ADIESTRA) = (0, N) Card( ESCUELA, ADIESTRA) = (0, N) Card( SUPERVISOR, SUPERVISA) = (0, N) Card( ADIESTRA, SUPERVISA) = (0, 1) | b) Falso Verdadero Verdadero Falso | Falso Falso Falso Falso Verdadero |
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.
Descargar
Enviado por: | Rogelio Moreno |
Idioma: | castellano |
País: | España |