Apartado A (3 puntos)

Anuncio
EXAMEN
DISEÑO DE BASES DE DATOS Y SEGURIDAD DE LA INFORMACIÓN
(23 de junio de 2008)
2º Parcial
Autorizo la publicación de la nota del examen junto a mi número de matrícula tanto en la
Web como en los tablones:
SI † NO †
Nombre y Apellidos:
Tiene 1 hora y 30 minutos para realizar el examen.
Puntuación Total: 10 puntos
Apartado A (3 puntos):
1.75 /
0.75
1.25 /
1
0.75
0.5
Responda el apartado A en las propias hojas del examen.
1. (1.75 puntos) Dadas las siguientes sentencias de creación de tablas en
SQL:
CREATE TABLE Producto
(cod_producto
descripcion_p
proveedor
unidades_vendidas
INTEGER PRIMARY KEY,
VARCHAR2(100),
VARCHAR2(25),
INTEGER);
CREATE TABLE Almacen
(cod_prod_stock
INTEGER PRIMARY KEY,
stock
INTEGER,
FOREIGN KEY (cod_prod_stock) REFERENCES Producto);
Y las correspondientes extensiones de las tablas PRODUCTO y ALMACEN:
PRODUCTO
ALMACEN
Cod_Producto
Descripción_P
Proveedor
Unidades_Vendidas
10001
Bolígrafo
Staedtler
76
11002
Rotulador
Edding
102
12007
Cuaderno
Paper
90
13009
Carpeta
Paper
120
Cod_Prod_Stock
Stock
10001
500
11002
176
12007
1000
13009
34
Y dado el código del siguiente disparador:
CREATE OR REPLACE TRIGGER Actualizar_Almacen
AFTER UPDATE OF Unidades_Vendidas ON Producto
FOR EACH ROW
WHEN (NEW.unidades_vendidas>100)
BEGIN
UPDATE Almacen
SET Almacen.stock = Almacen.stock + :OLD.unidades_vendidas :NEW.unidades_vendidas
WHERE Almacen.cod_prod_stock =:NEW.cod_producto;
END Actualizar_Almacen;
/
Responda a las siguientes preguntas de forma breve y concisa.
a) (0.75 puntos) Explique el propósito y funcionamiento del disparador.
Solución:
Este disparador se encarga de actualizar el stock de ALMACEN cada vez
que se vendan unidades de un determinado producto, es decir, cada vez
que se produzca un incremento (modificación-UPDATE) del valor del
atributo unidades_vendidas de la tabla PRODUCTO, siempre que el nuevo
número unidades vendidas del producto sea superior a 100.
b) (1 punto) Indique si las siguientes sentencias provocarían la ejecución
(disparo) del código del disparador. Justifique su respuesta y en caso
afirmativo, explique su funcionamiento.
UPDATE Producto
SET unidades_vendidas=unidades_vendidas-2
WHERE Cod_Producto=11002;
Solución:
Ahora el valor de unidades_vendidas es de 100 para el producto 11002 y por lo
tanto NO se ejecuta el código del disparador.
UPDATE Producto
SET unidades_vendidas=unidades_vendidas+20
WHERE cod_producto=12007;
Solución:
Ahora el valor de unidades_vendidas es de 110 para el producto 12007, tras
realizar la actualización. Por lo tanto, el número total de unidades vendidas
(nuevo valor) es superior a 100 y se procederá a actualizar el valor del atributo
del stock del almacen, sumándole al valor del stock (1000 unidades) el número
anterior de unidades vendidas (90) y restándole el nuevo número de unidades
vendidas (110), quedándonos como resultado 980 (1000+90-110), es decir, un
decremento de 20 unidades en el stock del almacén para el producto 12007.
Examen de Diseño de Bases de Datos y Seguridad de la Información
2º Parcial - 23 de junio de 2008
Nombre y Apellidos:
2) (1.25 puntos) Se pide:
a) (0.75 puntos) Represente mediante un esquema E/R el siguiente esquema
lógico representado con ERWIN:
Solución:
B1
A1
B2
A2
1:N
Id
Entidad1
Interrelacion
Entidad2
a) (0.5 puntos) ¿Cuál de los siguientes conceptos tienen representación
directa en ERWIN, es decir, se pueden representar sin necesidad de utilizar
ningún artificio que lo simule?
Marque la casilla SÍ, si tiene representación directa, o NO, en caso
contrario:
Solución:
SI
NO
■
□
□
□
□
□
■
■
■
■
Cardinalidades mínimas en una interrelación 1:N
Interrelación N:M con atributos en la interrelación
Interrelación ternaria 1:N:M
Jerarquía total y exclusiva
Restricción de inclusión entre interrelaciones
Examen de Diseño de Bases de Datos y Seguridad de la Información
2º Parcial - 23 de junio de 2008
Nombre y Apellidos:
Apartado B (3 puntos):
1
2
Responda el apartado A en las propias hojas del examen.
1) (1 punto) Para cada uno de los siguientes esquemas, que ya son mínimos,
diga todas sus claves y la forma normal más avanzada en la que se
encuentran. Cuando un esquema tenga más de una clave, especifíquelas
claramente con el formato {k1}, {k2}... No es necesaria ninguna justificación.
1) R ({A, B, C},
A → C,
B → C })
{A → C,
A → B,
B → A })
B → C,
C→D,
D → A })
B→A
B→C
B → D })
(0’1) Claves: {A,B}
(0’1) Forma Normal: 1FN
2) R ({A, B, C, D },
(0’1) Claves: {A, D}, {B, D}
(0’1) Forma Normal: 1FN
3) R ({A, B, C, D },
{A → B,
(0’1) Claves: {A}, {B}, {C}, {D}
(0’1) Forma Normal: FNBC
4) R ({A, B, C, D },
{ A,C → B,
(0’1) Claves: {A, C}, {B}
(0’1) Forma Normal: FNBC
5) R ({A, B, C, D },
Ø})
(0’1) Claves: {A,B,C,D}
(0’1) Forma Normal: FNBC
2) (0.5 puntos) ¿Es mínimo el siguiente esquema? Justifique su respuesta.
R ({A, B, C, D, E, F},
{A → B,
B → C,
C, D → E })
Solución:
Sí lo es. No hay atributos extraños, ya que tanto el cierre de C como el de D no
contienen a E. No hay DF redundantes porque todas tienen diferente implicado.
3) (0.5 puntos) Aplique el método de síntesis, que garantiza esquemas en
3FN, conservando la información y las dependencias, al siguiente esquema,
que ya es mínimo. Justifique su respuesta. ¿En qué forma se encuentran los
esquemas resultantes?
R ({A, B, C, D },
{A → B,
B → C })
Solución:
De acuerdo al método, una vez tenemos el conjunto mínimo, creamos un
esquema por cada dependencia (o conjunto de DF con igual implicante) y, caso
de no estar contenida en alguno de los esquemas, uno que contenga a la
clave. Calculamos la clave:
Una Kp es {A,D} (A siempre es implicante y D es independiente, por tanto (A,D)
van a estar en todas las claves). Como(A,D)+DF={A,B,C,D}, es K única.
Aplicando síntesis:
R1 ({A, B}, {A → B})
R2 ({B, C}, {B → C })
R3 ({A,D }, { Ø }) (ya que la clave no estaba en ningún esquema)
Todos los esquemas están en FNBC.
4) (1 punto) Obtenga un conjunto de esquemas de relación aplicando el
algoritmo de análisis (descomposición) al esquema del ejercicio 3 hasta
obtener un conjunto de esquemas en FNBC, verificándose que en cada paso
se conservan la información y las dependencias.
Solución:
R1 ({B,C},
R’ ({A, B, D},
R2 ({A,B },
R3 ({A, D },
{B → C })
{A → B })
K: {B}, FNBC
K: {A,D}, 1FN
{A → B })
{Ø})
K: {A}, FNBC
K: {A,D}, FNBC
El esquema original lo descomponemos en R1, R2 y R3
Claramente en todos los pasos se verifica que se conservan las DF. Además,
se conserva la información, ya que siempre se cumple que:
- (A1∩A2)→(A1-A2) ó
- (A1∩A2)→(A2-A1)
Examen de Diseño de Bases de Datos y Seguridad de la Información
2º Parcial - 23 de junio de 2008
Nombre y Apellidos:
Apartado C (4 puntos):
Responda el apartado C en las propias hojas del examen.
1) ( 1.5 puntos) Se pide:
a) (0.9 puntos) Explique brevemente qué es una transacción, cuáles son
sus propiedades (explíquelas también brevemente) y qué sucede
cuando una transacción termina en fracaso.
Solución:
Una transacción es una secuencia de operaciones que han de ejecutarse de
forma atómica. Sus propiedades son:
• Atomicidad: se ejecutan todas las sentencias o ninguna.
• Preservación de la consistencia: la ejecución de una transacción debe
dejar a la BD en un estado consistente.
• Aislamiento: una transacción no muestra los cambios que produce hasta
que finaliza.
• Persistencia: una vez la transacción finaliza con éxito, sus efectos
perduran en la BD.
Si una transacción termina en fracaso, debe ser restaurado el estado inicial en el
que se encontraba la BD antes de que empezara a ejecutarse la transacción.
Las actualizaciones de que consta la transacción deberán deshacerse (rollback).
b) (0.6 puntos) Indique si las siguientes afirmaciones acerca de la
confidencialidad y las políticas de autorización son ciertas o falsas:
Cierto
Falso
Afirmación
La autorización implícita consiste en almacenar qué
sujetos pueden acceder a ciertos objetos con
determinados privilegios.
Una autorización fuerte no permite invalidar aquellas
autorizaciones deducidas de la misma.
Una autorización positiva indica la existencia de una
autorización explícita.
Un perfil agrupa una serie de privilegios que se
asignan de forma global a un usuario o a un grupo
Solución:
Cierto
Falso
X
X
X
X
Afirmación
La autorización implícita consiste en almacenar qué sujetos
pueden acceder a ciertos objetos con determinados
privilegios.
Una autorización fuerte no permite invalidar aquellas
autorizaciones deducidas de la misma.
Una autorización positiva indica la existencia de una
autorización explícita.
Un perfil agrupa una serie de privilegios que se asignan de
forma global a un usuario o a un grupo
2) ( 2.5 puntos) Dado el siguiente esquema E/R.
a
A
b
(1,1)
I
(0,2)
B
a) (1.8 puntos) Marque las casillas correspondientes a las cardinalidades que
SÍ están recogidas en las siguientes transformaciones. Se indican los atributos
que admiten nulos (NULL), los que no admiten nulos (NN) y las claves
alternativas (UNIQUE). En los apartados a.1, a.2 y a.3, asuma que se conserva
la consistencia. En los apartados a.3 y a.6, asuma que la interrelación de B
hacia A se recoge por medio del atributo CodB1:
Cardinalidad
Cardinalidad
en A
en B
(1 , 1)
(0 , 2)
NULL
a.1
A ( a, CodB)
NULL
B ( b, CodA)
a.2
NULL
A ( a, CodB)
NN
B ( b, CodA)
a.3
NN
NULL
A ( a, CodB1, CodB2)
NN
B ( b, CodA)
a.4
A(a)
B(b)
I ( CodA, CodB)
a.5
A(a)
B(b)
UNIQUE
NN
I ( CodA, CodB)
a.6
A(a)
B(b)
UNIQUE
NN
NULL
I ( CodA, CodB1, CodB2)
b) (0.7 puntos) Diseñar una aserción que permita controlar la cardinalidad
mínima 1 en A teniendo en cuenta el esquema relacional mostrado en la
transformación a.4. del apartado anterior.
Examen de Diseño de Bases de Datos y Seguridad de la Información
2º Parcial - 23 de junio de 2008
Nombre y Apellidos:
Solución:
a)
Cardinalidad
en A
(1 , 1)
a.1
Cardinalidad
en B
(0 , 2)
NULL
A ( a, CodB)
NULL
B ( b, CodA)
a.2
X
X
X X
X
NULL
A ( a, CodB)
NN
B ( b, CodA)
a.3
NN
NULL
A ( a, CodB1, CodB2)
NN
X X
X
B ( b, CodA)
a.4
A(a)
X
B(b)
I ( CodA, CodB)
a.5
A(a)
B(b)
X
UNIQUE
NN
I ( CodA, CodB)
a.6
X
A(a)
B(b)
UNIQUE
NN
NULL
I ( CodA, CodB1, CodB2)
Solución:
b)
CREATE ASSERTION ej_4b
CHECK NOT EXISTS (SELECT b FROM B WHERE b NOT IN
(SELECT CodB FROM I));
X
Descargar