Examen Final BD Resuelto

Embed Size (px)

Citation preview

  • 7/22/2019 Examen Final BD Resuelto

    1/4

    1. El atributo que permite conocer el tipo de una variable, constante o campo de la basede datos:

    A. %TYPE B. %ROWTYPEC. &

    D. %COLUMN

    2. Los bloques PL/SQL presentan una estructura especfica compuesta de tres partesbien diferenciadas:

    A. Seccin Declarativa, de Ejecucin, y de Excepciones B. Seccin Inicio(BEGIN), Procedural y Fin(END).C. Seccin de Librerias, Declarativa y de Ejecucin.D. N.A.

    3. Es incorrecto afirma con respecto al concepto de PROCEDIMIENTO:A. El uso de OR REPLACE permite sobreescribir un procedimiento existenteB. La sintaxis es muy parecida a la de un bloque annimo, se usa la palabra

    reservada PROCEDURE ... IS en la especificacin del procedimientoC. Los parmetros pueden ser de entrada (IN), de salida (OUT) o de entrada

    salida (IN OUT)

    D. Subprograma que devuelve un valor. E. Todas las anteriores.

    4. Excepcin que se disparan automticamente al producirse error de lectura de registros:

    A. too_many_rows B. no_data_founded:C. too_many_dataD. login_failedE. N.A.

    5. Un trigger es un bloque PL/SQL asociado a una tabla, que se ejecuta comoconsecuencia de una determinada instruccin SQL. Cul de las instruccionesenumeradas no corresponde para el uso de Trigger.

    A. INSERTB. UPDATEC. DELETE

    D. DROP E. N.A.

    6. Es un rea compartida por todos los procesos de servidor y procesos de segundoplano.

    A. SGA B. PGAC. InstanceD. SMONE. PMON

    7. Una base de datos se divide en unidades lgicas de almacenamiento denominadas:A. ControlFiles

    B. Tablespaces C. SegmentosD. ExtensionesE. DataFiles

  • 7/22/2019 Examen Final BD Resuelto

    2/4

    8. Por ello dado que normalmente las consulta pueden devolver varias filas estas sesuelen manejar mejor haciendo uso del concepto :

    A. ExpcetionB. ProcedimientoC. Funcin

    D. Cursores E. N .A

    9. El cdigo contenido en un disparador, denominado cuerpo del disparador, est formadopor bloques

    A. FuncinB. Cursor

    C. PL/SQL D. ProcedimientoE. N.A

    10. Se crea cuando la instancia es levantada (startup) y se borra cuando sta se deja deusar (shutdown), indicar el rea de memoria :

    A. SGA B. PGA

    C. JGAD. GSAE. N.A

  • 7/22/2019 Examen Final BD Resuelto

    3/4

    Se tiene las siguiente tablas:

    1. Crear un cursor que muestre la relacin de cursos y notas obtenidas por curso (Cdigoalumno, Nombre, Apellidos, Curso, Nota Parcial, Practicas, Nota Final y Promedio

    Final). Ingresar como parmetro el cdigo del alumno. En caso de no encontrar

    registros, indicar que el alumno no existe.

    DECLARE CURSOR c_cursos(cod_alumno IN varchar2)IS

    SELECT a.codigoalumno, a.nombre, a.apellidos, c.curso, n.notaparcial,n.notapracticas, n.notafinal, n.promediofinal

    FROM alumnos a inner join notas non a.codigoalumno = n.codigoalumno inner join cursos con c.codigocurso = n.codigocurso

    where a.codigoalumno = cod_alumno;

    ccurs_registro c_cursos%ROWTYPE;

    BEGINDBMS_OUTPUT.PUT_LINE('Relacin de cursos con notas ' ||

    ccurs_registro.curso);FOR ccurs_registro IN c_cursos(&cod_alumno)LOOP

    DBMS_OUTPUT.PUT_LINE (ccurs_registro.codigoalumno || ' ' ||ccurs_registro.nombre || ' ' ||ccurs_registro.curso || ' ' ||

    ccurs_registro.notaparcial || ' ' ||ccurs_registro.notafinal || ' ' ||ccurs_registro.promediofinal);

    END LOOP;EXCEPTIONWHEN NO_DATA_FOUND THEN

    dbms_output.put_line('El alumno no existe');END;

    ALUMNOS

    CodigoAlumno Texto

    Nombre Texto

    Apellidos Texto

    CURSOS

    CodigoCurso Texto

    Curso Texto

    NOTAS

    CodigoAlumno Texto

    CodigoCurso Texto

    NotaParcial Numerico

    NotaPracticas Numerico

    NotaFinal Numerico

    PromedioFinal Numerico

  • 7/22/2019 Examen Final BD Resuelto

    4/4

    2. Se tiene 3 tablas (Persona, Masculino, Femenino) con la misma estructura siguiente :DNI char(8)Nombre char(20)Sexo char(1) ( F femenino o Masculino )Edad Number(2)

    Realizar un trigger de tal manera que al insertar si es masculino se guarda en la tabla

    masculino caso contrario se guarda en la tabla femenino. Poner una excepcin altrigger que no permita grabar aquellos que tengan edad mayores de

    60 aos.

    CREATE OR REPLACE TRIGGER COPIA_GENERO

    BEFORE INSERT ON PERSONA

    FOR EACH ROW

    BEGIN

    IF (INSERTING AND :new.edad>=60) THEN

    RAISE_APPLICATION_ERROR(-20001,'Err. Ingreso no

    permitido');

    ELSIF (INSERTING AND :new.sexo='f') THEN

    INSERT INTO FEMENINO VALUES(:new.dni,:new.nombre,

    :new.sexo,

    :new.edad);

    ELSIF (INSERTING AND :new.sexo='m') THEN

    INSERT INTO MASCULINO

    VALUES(:new.dni,:new.nombre,

    :new.sexo,

    :new.edad);

    END IF;

    END;