Preguntas examenes años anteriores resueltas

De FdIwiki ABD
Saltar a: navegación, buscar

EXAMEN JUNIO 2014

Enlace CV Examen Junio 2014

EJERCICIO 1 EXAMEN JUNIO 2014

APARTADO A

Estar en 1FN (Todos los atributos son atómicos), estar en 2FN (Los atributos que no forman parte de la CP, dependen de forma completa de la CP. Depender de forma completa significa que si la CP está formada por dos atributos, los atributos que no formen parte de la CP dependen de ambos. Si sólo depende de uno de ellos, se trata de dependencia parcial), y que no exista ninguna dependencia funcional transitiva entre los atributos que no son CP, es decir, que no exista ningún atributo que dependa funcionalmente de atributos que no formen parte de la CP.

APARTADO B1

En esta tabla se relaciona el nombre del agente y la comisaria con el día en el que hace el turno de noche y las horas que debe estar esa noche en comisaria.

CP: Nombre_Agente, Comisaria

Las DFs que encontramos son:

Nombre_Agente, Comisaria -> Día_turno_noche, Horas_noche

Es decir, no hay ninguna dependencia transitiva, todos los atributos dependen de la CP completa. El día y las horas dependen exclusivamente del nombre del agente y de la comisaria. Por ello, se puede observar que cada fila tiene horas distintas.

Nombre_Agente Comisaria Día_turno_noche Horas_noche
Becket 1 Lunes 6
Becket 2 Martes 7
Castle 1 Martes 4
Castle 2 Lunes 5
Ryan 1 Viernes 3

APARTADO B2

Si se añade una dependencia transitiva, la tabla dejará de estar en 3ªFN.

Por ejemplo:

Nombre_Agente, Comisaria -> Día_turno_noche

Día_turno_noche -> Horas_noche

Ahora siempre que sea Lunes por ejemplo son 6 horas y siempre que sea Martes son 4

Nombre_Agente Comisaria Día_turno_noche Horas_noche
Becket 1 Lunes 6
Becket 2 Martes 4
Castle 1 Martes 4
Castle 2 Lunes 6
Ryan 1 Viernes 3

APARTADO C

Cuando normalizamos hay que cumplir estas dos propiedades:

 - La preservación de dependencias: asegura que las dependencias funcionales originales se
   mantienen en el esquema de relación después de la descomposición.
 - La propiedad de reunión no aditiva: evita el problema de la creación de tuplas incorrectas.

EJERCICIO 2 EXAMEN JUNIO 2014

APARTADO A

 CREATE OR REPLACE PROCEDURE Regalo AS
   DECLARE
     v_DNI          CL.DNI%TYPE;
     v_NombreC      CL.NombreC%TYPE;
     v_Suma         I.Cantidad%TYPE;
     v_Porcentaje   I.Cantidad%TYPE;
     CURSOR c_Cursor_Regalo IS
       SELECT CL1.DNI, CL1.NombreC
         FROM CL CL1
         WHERE 100000 < (SELECT SUM(I.Cantidad)
                         FROM CL CL2, I
                         WHERE I.DNI = CL2.DNI
                         AND CL1.DNI = CL2.DNI
                         GROUP BY CL2.DNI);
   BEGIN
     OPEN c_Cursor_Regalo;
     LOOP
       FETCH c_Cursor_Regalo INTO v_DNI, v_NombreC  
       EXIT WHEN c_Cursor_Regalo%NOTFOUND;
         UPDATE I
           SET Cantidad = Cantidad +1
           WHERE DNI = v_DNI;
         SELECT SUM(Cantidad) INTO v_Suma
         FROM I
         WHERE DNI = v_DNI
         GROUP BY DNI;
         IF v_Suma > 1000000 THEN
           v_Porcentaje := v_Suma * 0.1;
           INSERT INTO I VALUES (v_DNI, 'particular', v_Porcentaje, 'regalo');
         END IF;   
     END LOOP;
     CLOSE c_Cursor_Regalo;
     COMMIT; 
     
     (Añado la parte que dice mostrar mensaje en caso de error)
      EXCEPTION
      WHEN OTHERS THEN
        DBMS.output.put_line('Ha ocurrido un error');

 END Regalo;

APARTADO B

 BEGIN
   Regalo;
 END;


EJERCICIO 3 EXAMEN JUNIO 2014

APARTADO C

a) Cuando ambas tienen el nivel de aislamiento READ COMMITED

CONSULTA 1: COLOR = 'ROJO'

CONSULTA 2: COLOR = 'ROJO'

CONSULTA 3: COLOR = 'AZUL'

CONSULTA 4: COLOR = 'VERDE'

b) Cuando ambas tienen el nivel de aislamiento SERIALIZABLE

CONSULTA 1: COLOR = 'ROJO'

CONSULTA 2: COLOR = 'ROJO'

CONSULTA 3: COLOR = 'ROJO'

CONSULTA 4: COLOR = 'VERDE' (Edito: A mi esta parte no me da como resultado verde si no azul, comprobado con sqldeveloper. Comprobarlo bien por si acaso...)


EJERCICIO 3 APARTADO D EXAMEN JUNIO 2014

APARTADO D1

Arbol ejercicio3.jpg


APARTADO D2

COSTE = 210, FILAS = 80