DAW BBDD B UF3
![]() |
![]() |
![]() |
Título del Test:![]() DAW BBDD B UF3 Descripción: DAW BBDD B UF3 |




Comentarios |
---|
NO HAY REGISTROS |
Las conexiones a BBDD no utilizan nunca de contraseña, ya que esta podría deshabilitar el usuario principal del sistema. Verdadero. Falso. En MySQL Workbench es posible conocer los detalles de conexión al servidor, ¿cuál de las siguientes opciones utilizaremos?. Server Status. Check connection. Data show. Status variables. ¿Cuáles de las siguientes características debería de cumplir un usuario de BBDD?. a) El nombre de usuario no debe sobrepasar los 30 caracteres. b) El usuario debe tener asignados privilegios y permisos. c) No debe contener una contraseña. d) A y B son correctas. Las cuentas de BBDD no tienen diferentes estados, se crean y se eliminan, pero siempre con el mismo estado. Verdadero. Falso. Una buena práctica es evitar hacer uso del privilegio SYSDBA, para ello existen diferentes tipos de privilegios dependiendo de la tarea que deseemos realizar. Si se pretende gestionar las credenciales de los usuarios, ¿qué privilegio se utilizará?. SYSBACKUP. SYSKM. SYSDG. SYSRAC. Mediante el comando DBA_USERS se muestra la lista y configuración de los usuarios del sistema. Entre los siguientes comandos, ¿cuál es el correcto para visualizar la estructura?. DESC DBA_USERS. SHOW USERS. SHOW DBA_USERS. DESCRIPT DBA_USER. Existen varias formas de crear usuarios en MySQL. Indica cuál de ellas es la correcta. a) Mediante interfaz gráfica. b) Modificando usuarios. c) Mediante comandos. d) Las respuestas a y c son correctas. e) Las respuestas a, b y c son correctas. Un usuario de una BBDD posee una serie de permisos y privilegios que nos indicarán qué acciones pueden realizar dichos usuarios dentro de la BBDD. Verdadero. Falso. ¿Cuáles de las siguientes opciones no es un tipo de privilegios dentro de una BBDD?. GRANT OPTION. EXECUTE USER. INSERT. SELECT. ALL. DELETE. Los roles son grupos de privilegios que se definen en el usuario de forma directa, ya que estos no pueden ser almacenados en la BBDD. Verdadero. Falso. ¿Cuál de las siguientes opciones no es un beneficio de trabajar con roles?. Se disminuye el número de GRANT que están almacenados en el diccionario de datos. Es posible activar o desactivar los roles de un usuario. Un rol solamente puede abarcar un tipo de permiso. Es posible aplicar un mismo rol a diferentes usuarios. ¿Cuál de las siguientes características no nos aporta el lenguaje PL/SQL?. Uso de variables. Permite una programación con funciones. Trabaja integrado con SQL. No trabaja con estructuras de control de flujo. ¿En qué parte del código podemos declarar una expresión que utilice un IF?. a) Parte de declaraciones. b) Parte ejecutable. c) Parte de tratamiento de excepciones. d) B y C son correctas. ¿Cuál de las siguientes opciones es válida como tipo de una variable dentro de un entorno de BBDD?. DATE, INTEGER y CHAR. SYSTEM, DATE y CHAR. WINDS, CHAR y SYSTEM. Ninguna opción es correcta. ¿Qué opción tendríamos que indicar a un parámetro para que sea solo de entrada?. IN. OUT. IN/OUT. No es necesario indicar el tipo del parámetro. Las funciones y los procesos son lo mismo, realizan las mismas acciones y permiten ejecutarse al mismo nivel dentro de una base de datos, aunque los procesos son más utilizados, ya que las funciones son elementos obsoletos. Verdadero. Falso. ¿En qué parte del código podemos declarar un error definido por el usuario?. Parte de declaraciones. Parte ejecutable. Parte de tratamiento de excepciones. En cualquiera de las partes que podemos encontrar en el código. ¿Cuáles de las siguientes opciones son excepciones conocidas por el sistema?. a - NO_DATA_FOUND. b - TOO_MANY_ROWS. c - CERODIVIDE. d - CASE_FOUND. A y B son correctas. No podemos generar excepciones propias, siempre que queramos controlar excepciones tendremos que utilizar las definidas por defecto por el sistema gestor de BBDD. Verdadero. Falso. Los cursores implícitos son aquellos que devuelven varios registros y se tienen que recorrer. Verdadero. Falso. ¿Cuál de las siguientes opciones es un atributo de un cursor explicito?. a) %ISOPEN. b) %OPEN. c) %FOUND. d) %ISCLOSE. e) A y C son correctas. Un trigger es un módulo PL/SQL compilado y almacenado en la base de datos que tiene asociada una tabla y que se ejecuta al llevar a cabo una instrucción SQL. Verdadero. Falso. Para que un trigger se ejecute después de una determinada acción, ¿qué clausula debemos indicarle?. AFTER. INSERTING. BEFORE. UPDATING. ¿Qué clausula utilizaremos en un campo si queremos referenciar el valor antes de ser modificado?. :AFTER. :OLD. :BEFORE. :NEW. Las bases de datos, nos permiten crear distintos usuarios y otorgarles privilegios. Los permisos que asignemos a cada usuario, se corresponderán con las tareas que tengan que realizar en la BBDD del aplicativo. Es importante gestionar bien los usuarios y sus permisos para aplicar una base de seguridad en nuestro aplicativo, aunque esta se gestione por diferentes partes del aplicativo, la parte de almacenamiento de los datos es fundamental! De las siguientes opciones que se muestran en el ejercicio, selecciona la cláusula que te permite crear un usuario. GRANT USER. CREATE USER. IDENTIFIED BY USER. SHOW USER. Ordena esta sentencia de código que nos permite dar privilegios a un usuario: clientes. GRANT. (NombrePersona, tlf, CP). SELECT. ON. juanma@localhostClientes. TO. Completa los siguientes huecos para la creación de un usuario: CREATE --1-- Manuel IDENTIFIED --2-- ManuPsw QUOTA UNLIMITED ON users --3-- OPERADOR;. PROFILE. USER. BY. Además de crear distintos usuarios y otorgarles privilegios, las bases de datos también nos permiten eliminar permisos. Los permisos otorgados a un determinado usuario, son las acciones que este puede realizar, estos permisos pueden ser modificados o incrementados según sea necesario. Ordena las siguientes opciones (siendo 1 el primer valor) de tal manera que formen una sentencia para eliminar permisos a un determinado usuario: Insert. REVOKE. On. ana@localhost. sastreria. *. from. Las BBDD, nos brindan la posibilidad de actualización de un usuario. Completa los siguientes huecos para dar permisos de selección y actualización de un usuario a campos de una tabla: GRANT SELECT, --1-- (nombreCliente, Telefono) --2-- Jardineria.Clientes --3-- ANTONIO;. UPDATE. TO. ON. Tenemos un usuario llamado "profe1", una tabla llamada "notas" que tiene 4 campos (nif_alumno, nombre_alumno, nota_examen, nota_final) y queremos que el usuario "profe1" pueda tener permisos de selección y actualización solo del campo "nota_final" de la tabla "notas". Completa los huecos de la siguiente sentencia para dar el permiso correspondiente al usuario: GRANT SELECT, --1-- ( --2-- ) on --3-- --4-- --5-- ;. nota_final. notas. profe1. update. to. El lenguaje PL/SQL (Procedural Language/ Structure Query Language) tiene una serie de características Indica las características correctas: Solo utiliza procedimientos. Estructuras de control de flujo. Uso de variables. No controla los errores y ni las excepciones. Soporta Programación Orientada a Web (POW). Integrado con SQL. Los usuarios de Oracle, tienen ciertas restricciones a la hora de crearlos y ciertas características que debemos saber Relaciona cada término con su definición: Su longitud máxima no debe sobrepasar los 30 caracteres. Espacio que posee el usuario para almacenar su información y límite de almacenamiento. Son los diferentes recursos de los que dispone el usuario del sistema. Concesión de funciones que pueden realizar los usuarios. Debe ser único e irrepetible. Tablespace. Al instalar Oracle tenemos por defecto diferentes cuentas con permisos diferentes Relaciona cada término con su definición: Contiene el mismo rol que la anterior y, por defecto, tiene una serie de tablas ya creadas. Funciona como administrador de la base de datos (rol de DBA) y no interesa modificar su esquema. Controla la aplicación Enterprise Manager. Realiza tareas administrativas utilizando Enterprise Manager. Oracle nos permite definir ciertas clausulas para los usuarios ¿sabes cuáles son? Identifica las clausulas y sus respectivas definiciones correctas. REVOKE: Sirve para eliminar solo los roles otorgados al usuario. GRANT: Ofrece la posibilidad a un usuario de acceder, manipular o ejecutar objetos concretos (tablas, vistas, secuencias, procedimientos, funciones o paquetes). EXECUTE: Permite al usuario ejecutar rutinas almacenadas. ALTER TABLE: Modifica o borra rutinas almacenadas. Oracle tiene una serie de roles predefinidos para ayudar a la administración de las BBDD. Relaciona los roles predefinidos con sus características: Incluye “CREATE CLUSTER”, “CREATE INDEXTYPE”, “CREATE OPERATOR”, “CREATE PROCEDURE”, “CREATE SEQUENCE”, “CREATE TABLE”, “CREATE TIGGER” y “CREATE TYPE”. Incluye únicamente el privilegio “CREATE SESSION” (que permite conectar a la base de datos). Incluye todos los privilegios del sistema mediante la opción “WITH ADMIN OPTION”. Se requiere realizar un código que permita crear una vista, asignar permisos y realizar una conexión. Rellena los espacios en blanco, de tal forma que el código realice la creación de una vista, asigne permisos y realice una conexión. CREATE --1-- dept_201 AS (SELECT emp_id, name, department, hire_date) FROM gbd.employees --2-- department = 201; --3-- SELECT ON rocket.dep_201 --4-- mgr200; conn gbd/gbd.bdg --5-- SELECT --6-- gbd.alumns --7-- rocket --8.-- GRANT OPTION;. WHERE. TO. ON. GRANT. WITH. VIEW. Dependiendo del rol que tengas en la base de datos, puedes tener ciertos privilegios o no. Identifica los beneficios que se dan a la hora de trabajar con roles: Maneja los privilegios de forma estática, es decir, si se modifican los privilegios asociados al rol dichos privilegios no se actualizan en todos los usuarios. Simplifican el manejo de privilegios. Disponibilidad selectiva de privilegios. Los roles asignados a un usuario pueden ser activados o desactivados temporalmente y se pueden proteger con clave. El uso de roles aumenta el número de “GRANT” almacenados en el diccionario de datos, por lo que mejora la productividad. A un rol se le pueden asignar diferentes permisos. Un rol sólo puede ser asignado a un usuario. Según el rol que tenga cada usuario, se podrán realizar diferentes acciones, según permita el rol. Revisa la siguiente sentencia de código para quitar privilegios de SELECT de la tabla NOTAS al usuario ALUMNO. ¿Es correcta? REVOKE SELECT ON notas TO alumno;. No. "TO" es incorrecto. La sentencia es con FROM. No. "ON" es incorrecto. La sentencia es con WITH. Es correcta. No. Para quitar privilegios se usa DROP. Vamos a ver las herramientas que nos proporciona el gestor de bases de datos para automatizar tareas. Identifica las variables que NO son de PL/SQL: Compuesto. HOST. BIND. LOB. Escalar. Un usuario puede configurar su sesión y su perfil con las variables SESSION y PROFILE. Veamos cómo hacerlo. Rellena este fragmento de código para crear un perfil que permita solo 2 sesiones activas de forma simultanea, con tiempo ilimitado de CPU para una sesión, 10 minutos máximo de inactividad y 2 horas como máximo teniendo la sesión activa. CREATE --1-- PERFILALUMNO LIMIT SESSIONS_PER_USER 2 CPU_PER_ --2-- UNLIMITED --3-- _TIME 10 --4-- _TIME 120;. PROFILE. SESSION. IDLE. CONNECT. Sobre la configuración de usuarios y las variables de entrada/salida Veamos su explicación relacionando conceptos. Une cada concepto con su definición de valores de entrada/salida: El valor viene del proceso de llamada, es un dato de entrada y su valor no se cambia. Es el valor por defecto. En una salida de programa sin error, el valor del argumento devuelve al proceso de llamada. Es una variable de entrada/salida. Los tipos de datos que nos podemos encontrar a la hora de trabajar con las bases de datos y automatizar tareas, son muy variados y nos permiten definir nuestras variables. Veamos cuáles son los más importantes. Relaciona cada característica con su definición respecto de los tipos de datos: Almacena cadenas de caracteres de longitud variable, tamaño máximo 2 Gb. Dirección física de una fila de la BDD. Almacena objetos binarios. Almacena “TRUE”, “FALSE” o “NULL”. Almacena objetos binarios de hasta 2 Gb. Completa el siguiente código con las palabras clave: DECLARE v_nom empleados.nombre%TYPE; v_ape empleados.apellido%TYPE; BEGIN --1-- nombre, apellido INTO v_nom, v_ape FROM empleados WHERE documento = 23564390; --2-- ('Nombre: ' || v_nom || 'Apellido: ' || v_ape); --3-- WHEN --4-- THEN dbms_output.put_line ('No existe empleado con ese DNI'); WHEN OTHERS THEN dbms_output.put_line ('otros errores'); END;. SELECT. EXCEPTION. NO_DATA_FOUND. dbms_output.put_line. Identifica que función de Oracle, NO es correcta: NLS_Session_Parameters. Sysdate. User. DAUL. Rowid. Completa estos códigos de control de flujo: DECLARE fecha_nac DATE := '11-06-1982'; salario NUMBER := 1000; BEGIN IF fecha_nac < '11-06-1982' THEN salario := salario * 1.15; --1-- salario := salario * 1.05; END IF; dbms_output.put_line(salario); END; ----- DECLARE numero NUMBER := 0; mes VARCHAR2(20); BEGIN numero := № CASE numero WHEN 1 THEN mes := 'Enero'; --2-- 2 THEN mes := 'Febrero'; WHEN 3 THEN mes := 'Marzo'; WHEN 4 THEN mes := 'Abril'; ELSE mes := 'Otro'; END --3-- ; dbms_output.put_line(mes); END; ----- DECLARE total NUMBER := 0; cont NUMBER := 0; BEGIN --4-- cont := cont + 1; total := total + cont * cont; EXIT --5-- total > 250; END LOOP; dbms_output.put_line (total); END;. ELSE. LOOP. WHEN. CASE. Identifica qué características de SET SERVEROUTPUT ON son las correctas: Es una librería de PL/SQL. Activa el visionado de los mensajes por consola. Activar la salida de DBMS. Nos sirve para insertar datos en la tabla. Completa el siguiente código con las palabras clave sobre procedimientos: CREATE OR REPLACE PROCEDURE ajustar_sueldo ( doc_emp --1-- empleados.documento%TYPE, porcentaje IN NUMBER ) IS --2-- UPDATE empleados --3-- sueldo = sueldo + sueldo * porcentaje / 100 --4-- documento = doc_emp; END;. BEGIN. WHERE. SET. IN. Completa el siguiente código con las palabras clave sobre funciones para calcular la cantidad total de un producto: CREATE OR REPLACE FUNCTION ventas_producto ( id_prod NUMBER ) --1-- NUMBER IS total NUMBER(6); BEGIN --2-- SUM(cantidad) INTO total FROM detalle WHERE prod_num = id_prod; IF total IS NULL --3-- total := 0; END IF; --4-- total; END;. SELECT. THEN. RETURN. Vamos a trabajar con tablas. Tenemos que tener claro, cómo debemos crear una tabla y trabajar con ella. Indica la opción de por qué este código puede dar error: CREATE TABLE empleados( id_cambio NUMBER(5), descripcion_cambio VARCHAR2(100), fecha_cambio DATA, PRIMARY KEY ( id_cambio ) );. La primary key no es correcta. Hay un tipo de dato no válido. Falta definir la foreign key. Falta definir un objeto. Un cursor nos permitirá recorrer fila a fila, leer y modificar un conjunto de resultados. Indica qué característica es incorrecta sobre cursores: Con cada cursor implícito debe existir la palabra clave “INTO”. Los cursores implícitos solo pueden devolver una única fila. En caso de que se devuelva más de una fila (o ninguna fila) se producirá una excepción. No se preocupe si aún no sabe que es una excepción, le valdrá conocer que es el medio por el que PL/SQL gestiona los errores. Los cursores implícitos no necesitan declaración. Las variables que reciben los datos devueltos por el cursor tienen que contener un tipo diferente de dato que las columnas de la tabla. Dentro de la programación de funciones y procedimientos, tenemos que controlar las transacciones y errores para que la ejecución de los programas no se quede colgada. Completa el siguiente código con las palabras adecuadas: DECLARE nombre VARCHAR(20); BEGIN SELECT nombre INTO nombre FROM empleados --1-- documento = 9; EXCEPTION --2-- no_data_found OR --3-- THEN dbms_output.put_line('El error es: ' || sqlcode); dbms_output.put_line(sqlerrm); --4-- ;. WHEN. END. TOO_MANY_ROWS. WHERE. Relaciona cada atributo sobre los cursores con su definición correspondiente: Devuelve un valor booleano, “TRUE” si está abierto el cursor o “FALSE” si está cerrado. Devuelve un valor booleano, “TRUE” si tras la recuperación más reciente no se recuperó ninguna fila. Retorna el número de filas devueltas hasta el momento. Devuelve un valor booleano, “TRUE” si tras la recuperación más reciente se recuperó una fila. Completa el código de excepciones creadas por el usuario: DECLARE --1-- EXCEPTION; valor NUMBER; BEGIN valor := -1; IF valor < 0 THEN --2-- valor_negativo; END IF; EXCEPTION WHEN valor_negativo THEN --3-- ('El valor no puede ser negativo'); END;. RAISE. dbms_output.put_line. valor_negativo. Vamos a analizar el código de los siguientes procedimientos para ver su correcto funcionamiento... Identifica el motivo por el que este procedimiento da error: CREATE OR REPLACE PROCEDURE sumaruno ( num3 IN OUT NUMBER ) AS BEGIN num3 := num2 + 1; END;. Deberían declararse como FUNCTION. La variable num2 debe declararse. La variable num3 debe ser solo de entrada. Ninguna de las anteriores. cursores... Completa el siguiente código con las palabras adecuadas: SET --1-- ON; DECLARE CURSOR cempleado --2-- SELECT nombre, apellido FROM empleados; vnombre VARCHAR2(50); vapellido VARCHAR2(50); BEGIN OPEN cempleado; LOOP FETCH --3-- INTO vnombre, vapellido; EXIT WHEN cempleado%notfound; dbms_output.put_line('Nombre: ' || vnombre || ' apellido: ' || vapellido); --4-- LOOP; -- 5 -- cempleado; END;. SERVEROUTPUT. END. cempleado. CLOSE. IS. Completa el siguiente código: DECLARE lugar_var dept.lugar%TYPE; deptnum dept.dept_no%TYPE; sin_datos --1 -- ; CURSOR lugares IS SELECT lugar --2-- dept WHERE dept.dept_no = deptnum; BEGIN deptnum := 20; --3-- lugares; FETCH lugares INTO lugar_var; IF ( --4-- %notfound ) --5-- RAISE sin_datos; END IF; dbms_output.put_line ('LUGAR: ' || lugar_var); CLOSE lugares; EXCEPTION WHEN sin_datos THEN --6-- ('No se han encontrado datos'); WHEN OTHERS THEN dbms_output.put_line ('Otro tipo de error'); END;. FROM. dbms_output.put_line. THEN. exception. lugares. OPEN. Indica cuáles de estas afirmaciones sobre triggers son correctas: Realizar cambios en la base de datos de forma que el usuario debe autorizar esos cambios. Forzar reglas de integridad que son difíciles de definir a partir de constraints. Generar automáticamente valores de columnas derivadas en base a un valor proporcionado por una sentencia. Sincronizar el mantenimiento de tablas duplicadas que están localizadas en nodos iguales de una base de datos en paralelo. Completa el siguiente código sobre triggers: CREATE OR --1-- TRIGGER empleados_fechabaja_fechaalta BEFORE INSERT OR UPDATE OF fechaalta, fechabaja ON empleado FOR --2-- ROW BEGIN IF ( :new.fechabaja IS NOT NULL ) AND ( :new.fechabaja <= :new.fechaalta ) --3-- raise_application_error (-20600, 'La fecha de la baja debe ser nula o mayor que la fecha de alta'); --4-- IF; END;. EACH. THEN. END. REPLACE. Un trigger es un módulo PL/SQL compilado y almacenado en la Base de Datos que tiene asociada una tabla y que se ejecuta al llevar a cabo una instrucción SQL. Verdadero. Falso. ¿Cuál de las siguientes opciones es un estado de usuario de Oracle?. Expirada (Bloqueda/Expirada y bloqueada/Expirada en periodo de gracia). Creada. Eliminada. Especialista. ¿Cuál de las siguientes consultas es correcta?. DROP TABLESPACE ejercicios. DELETE TABLESPACE ejercicios. DEL TABLESPACE ejercicios. Ninguna de las respuestas es correcta. ¿Cuál de las siguientes opciones es un usuario de la base de datos SQL?. SYSTEM (SYS/ SYSMAN/DBSMNP). SIS. DBA_USER. Ninguna de las respuestas es correcta. ¿Cuál de las siguientes consultas es correcta?. ALTER USER ilerna DEFAULT TABLESPACE test. ALTER ilerna DEFAULT test. USER ilerna ALTER DEFAULT TABLESPACE test. Ninguna. ¿Cuál de las siguientes consultas es correcta?. ALTER USER ilerna QUOTA UNLIMITED ON Alumnos;. ALTER USER ilerna UNLIMITED QUOTA ON Alumnos;. ALTER USER ilerna UNLIMITED ON Alumnos;. Ninguna de las respuestas es correcta. ¿Cuál de las siguientes consultas es correcta?. GRANT SELECT on Alumnos to miguel;. GRANT SELECT to miguel;. GRANT Alumnos to miguel;. Ninguna de las respuestas es correcta. ¿Cuál de las siguientes opciones es un posible estado de una cuenta de un usuario de SQL Developer?. Expirada. Limitada. Mediana. Ninguna de las respuestas es correcta. CREATE OR REPLACE TRIGGER auditaemple2 BEFORE UPDATE OF SALARIO ON EMP FOR EACH ROW WHEN (NEW:SALARIO>OLD:SALARIO*1.1) BEGIN INSERT INTO auditaemple VALUES ((SELECT COUNT(*) FROM auditaemple), “El salario del empleado ‘||:OLD.EMP_NO || ‘ antes era de ‘|| :OLD:SALARIO|| ‘ y ahora será de ‘ || :NEW.SALARIO, SYSDATE); END; ¿En cuál de las siguientes acciones será ejecutado el disparador?. Antes de actualizar el salario de un empleado. Después de actualizar el salario de un empleado. Antes de insertar un salario en un empleado. Ninguna de las respuestas es correcta. ¿Qué valor nos devuelve la palabra reservada SYSDATE?. La fecha actual del sistema. La fecha actual. La hora actual. Ninguna de las respuestas es correcta. CREATE OR REPLACE TRIGGER auditaemple2 BEFORE UPDATE OF SALARIO ON EMP FOR EACH ROW WHEN (NEW:SALARIO>OLD:SALARIO*1.1) BEGIN INSERT INTO auditaemple VALUES ((SELECT COUNT(*) FROM auditaemple), “El salario del empleado ‘||:OLD.EMP_NO || ‘ antes era de ‘|| :OLD:SALARIO|| ‘ y ahora será de ‘ || :NEW.SALARIO, SYSDATE); END; ¿Qué acción realiza este disparador?. Inserta datos en una tabla. Actualiza datos en una tabla. Actualiza y elimina datos en una tabla. Ninguna de las respuestas es correcta. CREATE OR REPLACE TRIGGER auditaemple2 BEFORE UPDATE OF SALARIO ON EMP FOR EACH ROW WHEN (NEW:SALARIO>OLD:SALARIO*1.1) BEGIN INSERT INTO auditaemple VALUES ((SELECT COUNT(*) FROM auditaemple), “El salario del empleado ‘||:OLD.EMP_NO || ‘ antes era de ‘|| :OLD:SALARIO|| ‘ y ahora será de ‘ || :NEW.SALARIO, SYSDATE); END; Si la instrucción de actualización realiza una reducción del salario, ¿qué acción realiza el disparador?. No inserta datos en la tabla. Inserta datos en una tabla. Actualiza y elimina datos en una tabla. Ninguna de las respuestas es correcta. CREATE OR REPLACE TRIGGER auditaemple2 BEFORE UPDATE OF SALARIO ON EMP FOR EACH ROW WHEN (NEW:SALARIO>OLD:SALARIO*1.1) BEGIN INSERT INTO auditaemple VALUES ((SELECT COUNT(*) FROM auditaemple), “El salario del empleado ‘||:OLD.EMP_NO || ‘ antes era de ‘|| :OLD:SALARIO|| ‘ y ahora será de ‘ || :NEW.SALARIO, SYSDATE); END; Si la instrucción de actualización realiza un incremento del salario superior al 10%, ¿qué acción realiza el disparador?. No inserta datos en la tabla. Inserta datos en una tabla. Actualiza y elimina datos en una tabla. Ninguna de las respuestas es correcta. ¿Cuál de las siguientes es una sentencia válida de inserción de datos donde hay un campo referenciado a un objeto?. INSERT INTO Empleados VALUES (“Informática”, Persona (1, “Paco”, “González”));. INSERT Empleados VALUES (“Informática”, Persona (1, “Paco”, “González”));. INSERT Empleados (“Informática”, Persona (1, “Paco”, “González”));. Ninguna de las respuestas es correcta. De las siguientes opciones que se muestran en el ejercicio, selecciona la cláusula que permite crear un usuario: CREATE USER. IDENTIFIED BY USER. SHOW USER. GRANT USER. Ordena esta sentencia de código que nos permite dar privilegios a un usuario: GRANT. juanma@loclhostClientes. TO. SELECT. (NombrePersona, tlf, CP). ON. Clientes. Otra posibilidad que nos brindan las BBDD, es la actualización de un usuario.. Completa los siguientes huecos para la creación de la actualización de un usuario: GRANT --1-- , UPDATE (nombreCliente, Telefono) --2-- Jardineria.Clientes --3-- Javier;. ON. TO. SELECT. Completa los siguientes huecos para la creación de un usuario: CREATE --1-- Manuel IDENTIFIED --2-- ManuPsw --3-- UNLIMITED --4-- users PROFILE OPERADOR;. ON. BY. USER. QUOTA. Oracle nos permite definir ciertas cláusulas para los usuarios. ¿Sabes cuáles son? Identifica las características correctas de Oracle Database Server respecto de la normativa legal vigente sobre la protección de datos: REVOKE Denegar la posibilidad a un usuario de acceder, manipular o ejecutar objetos concretos. • GRANT Ofrece la posibilidad a un usuario de acceder, manipular o ejecutar objetos concretos (tablas, vistas, secuencias, procedimientos, funciones o paquetes. EXECUTE Permite al usuario ejecutar rutinas almacenadas. ALTER TABLE Modifica o borra rutinas almacenadas. ¿Conoces cuáles son las características de los usuarios Oracle? Relaciona cada término con su definición: Debe ser único e irrepetible. Su longitud máxima no debe sobrepasar los 30 caracteres. Además, solamente puede contener caracteres alfanuméricos y los signos ‘$’ y ‘_’ como caracteres especiales. Espacio que posee el usuario para almacenar su información y límite de almacenamiento. En Oracle se denomina tablespace. Son los diferentes recursos de los que dispone el usuario del sistema. Concesión de funciones que pueden realizar los usuarios. Relaciona cada término con su definición: Contiene el mismo rol que SYS y, por defecto, tiene una serie de tablas ya creadas. Realiza tareas administrativas utilizando Enterprise Manager. Funciona como administrador de la BBDD (rol DBA) y no interesa modificar su esquema. Controla la aplicación Enterprise Manager. Relaciona los roles predefinidos para ayudar a la administración de las BBDD: Incluye “CREATE CLUSTER”, “CREATE INDEXTYPE”, “CREATE OPERATOR”, “CREATE PROCEDURE”, “CREATE SEQUENCE”, “CREATE TABLE”, “CREATE TRIGGER” y “CREATE TYPE”. Incluye únicamente el privilegio “CREATE SESSION” (que permite conectar a la BBDD). Incluye todos los privilegios del sistema mediante la opción “WTH ADMIN OPTION”. Los roles que tenga cada usuario indicarán las tablas y acciones que puedan realizar los usuarios que estén en ese rol. Analicemos en códigos estas sentencias de roles. ¿Es correcta esta sentencia de código? REVOKE SELECTO ON prueba.personas TO user;. No. El TO es incorrecto. La sentencia es con FROM. No. Para quitar privilegios es con la sentencia DROP. No. Necesitas un UPDATE para actualizarlo. Es correcta. Con respecto a los roles, que afirmaciones son verdaderas y cuales falsas. Maneja los privilegios de forma estática, es decir, si se modifican los privilegios asociados al rol, dichos privilegios no se actualizan en todos los usuarios. Simplifican el manejo de privilegios. Se pueden asignar diferentes permisos a un rol y este también puede ser asignado a distintos usuarios. Disponibilidad selectiva de privilegios. Los roles asignados a un usuario pueden ser activados o desactivados temporalmente y se pueden proteger con clave. El uso de roles aumenta el número de “GRANT” almacenados en el diccionario de datos, por lo que mejora la productividad. ¿Cuáles de las siguientes sentencias utilizaremos para saber a qué usuario estamos conectados en la BBDD de Oracle?. SHOW USER. GET USER. CONNECTED USER. CURRENT USER. ¿Cuál de las siguientes opciones es un nombre de usuario dentro del sistema SQL Developer?. SYSTEM. ILERNA. SIS. ORACC. ¿Cuál de las siguientes opciones es un posible estado de una cuenta de usuario en SQL Developer?. Bloqueada. Extralimitada. Pequeña. Ninguna de las respuestas es correcta. ¿Cuál de las siguientes consultas es correcta?. ALTER USER ilerna QUOTA UNLIMITED ON Alumnos;. ALTER USER ilerna UNLIMITED QUOTA ON Alumnos;. ALTER USER ilerna UNLIMITED ON Alumnos. Ninguna de las respuestas es correcta. La sentencia SET SERVEROUTPUT ON activa el visionado de los mensajes por consola. Verdadero. Falso. ¿Cuál de las siguientes opciones es el valor devuelto por el proceso duplica?: Ninguna de las respuestas es correcta. num0. Las respuestas num1 y num0 son correctas. num1. ¿Cuál de las siguientes opciones es válida como valor para el hueco Nº4?: deparment. dept. Ninguna de las respuestas es correcta. departamento. - ¿Si el proceso duplica recibe el valor 3 por parámetro que valor devuelve?: 5. Ninguna de las respuestas es correcta. 6. 4. ¿Cuál de las siguientes opciones es un posible estado de una cuenta de usuario en SQL Developer?: Limitada. Abierta. Grande. Ninguna de las respuestas es correcta. ¿Qué sentencia es correcta para eliminar los privilegios de un usuario?: DELETE ALL PRIVILEGES. REMOVE ALL PRIVILEGES. REVOKE ALL PRIVILEGES. DROP ALL PRIVILEGES. ¿Cuál de las siguientes opciones es un estado de un usuario de Oracle?: DELETED. LOCKED. ADMIN. CREATED. ¿Cuál de las siguientes consultas es correcta?: ALTER USER ilerna DEFAULT TABLESPACE test. USER ilerna ALTER DEFAULT TABLESPACE test. ALTER ilerna DEFAULT test. Ninguna de las respuestas es correcta. ¿Cuál de las siguientes consultas es correcta?: CREATE TABLESPACE ejercicios DATAFILE '/oraclexe/app/oracle/oradata/XE/test01.dbf' SIZE 100M. CRETATE ejercicios SIZE 50M;. CREATE TABLESPACE ejercicios SIZE 100M;. Ninguna de las respuestas es correcta. ¿Cuál de los siguientes atributos es un atributo de cursor?: %FIND. %ROWCOUNT. %CLOSE. %OPEN. ¿Cuál de las siguientes opciones es válida como valor para el hueco Nº2?: Ninguna de las respuestas es correcta. ciudad. departamento. &Numero_Depatamento. ¿Cuál de las siguientes opciones es válida como valor para el hueco Nº5?: Ninguna de las respuestas es correcta. Nim. accum. dbms_out.put_line. ¿Cuál de las siguientes opciones es válida como valor para el hueco Nº5?: ciudadVAR. NUEVAciudadVar. LUGAR. Ninguna de las respuestas es correcta. ¿Cuál de las siguientes opciones es válida como valor para el hueco Nº2?: Ninguna de las respuestas es correcta. i. Nlim. accum. ¿Cuál de las siguientes opciones es válida como valor para el hueco Nº3?: acum - i. acum + i. Ninguna de las respuestas es correcta. 0. ¿Qué acción realiza este disparador?: Ninguna de las respuestas es correcta. Actualiza y elimina datos en una tabla. Actualiza datos en una tabla. Inserta datos en una tabla. ¿Qué valor nos devuelve la palaba reservada sysdate?: Ninguna de las respuestas es correcta. La hora actual. La fecha actual. La fecha actual del sistema. ¿Si la instrucción de actualización realiza un incremento del campo superior a un 10% qué hace el disparador?: Inserta datos en una tabla. Ninguna de las respuestas es correcta. Actualiza y elimina datos en una tabla. No inserta datos en una tabla. ¿Qué palabra clave utilizamos en la creación de un objeto para heredar de una superclase?. UNDER. EXTENDS. HERED. Ninguna de las respuestas es correcta. Selecciona la cláusula que te permite crear un usuario: IDENTIFIED BY USER. SHOW USER. CREATE USER. GRANT USER. ¿Cuál de las siguientes instrucciones es una instrucción de control de flujo?. WHILE. FOR. LOOP …. END LOOP. IF condición THEN. ¿Cuál de los siguientes elementos es un módulo PL/SQL compilado y almacenado en la Base de Datos que tiene asociada una tabla y que se ejecuta al llevar a cabo una instrucción SQL?. FUNCTION. CURSOR. PROCEDURE. TRIGGER. ¿Cuál de las siguientes consultas es correcta?. Ninguna de las respuestas es correcta. DELETE TABLESPACE ejercicios;. DROP TABLESPACE ejercicios;. DEL TABLESPACE ejercicios;. Cual es el uso mas frecuente de los "trigger". Crear tablas de históricos. Modificar valores en las tablas. Definir reglas y restricciones de integridad. Comprobar valores antes de insertar. La principal diferencia entre procedimientos y funciones es: La función devuelve siempre un resultado. El procedimiento solo usa variables tipo INT. El procedimiento se compila una sola vez. La función empieza siempre por F. Cual de estas afirmaciones sobre cursores explícitos es falsa. Se declaran en la zona de DECLARE. Se hace tratamiento fila a fila. Se usan para sentencias SELECT que devuelven más de una fila. Se abren con la sentencia ISOPEN. ¿Cuál de las siguientes consultas es correcta?. Ninguna de las respuestas es correcta. GRANT ALL PRIVILEGES TO ilerna;. GRANT ALL PRIVILEGIS TO ilerna;. GRANT ALL TO ilerna;. ¿Cuál de las siguientes consultas es correcta?. ALTER ilerna ACCOUNT UNLOCK. ALTER USER ilerna ACCOUNT UNLOCK;. Ninguna de las respuestas es correcta. ALTER USER ACOUNT UNLOCK. ¿Cuál es la sentencia que activa el visionado de los mensajes por consola?. SET PRINTF ON. OUTPUT ON. SERVEROUTPUT. SET SERVEROUTPUT ON. ¿Cuál de las siguientes opciones es un estado de un usuario de Oracle?. Expirada. Eliminada. Creada. Especialista. ¿Qué sentencia utilizamos en PL/SQL para crear una nueva tabla?. DEFINE TABLE. ALTER TABLE. INSERT TABLE. CREATE TABLE. ¿Cuál de las siguientes sentencias sirve para invocar el intérprete de comandos de la aplicación?. cmdSql. SqlOra. Sqlplus. OracleSql. ¿Cuál de las siguientes consultas es correcta?. GRANT ALL TO ilerna;. GRANT CREATE SESSION, DROP ANY TABLE to marta;. Ninguna de las respuestas es correcta. GRANT SESSION to marta;. ¿Cómo podemos solucionar el error?: Según el siguiente código responde a las preguntas que se plantean: Ninguna de las respuestas es correcta. Modificando el código del primer proceso. Poniendo una / entre bloque y bloque. Modificando la primera línea del segundo proceso. ¿Cómo podemos solucionar el error?. Ninguna de las respuestas es correcta. Creando otro campo para la clave primaria. Modificando el campo fecha. Adjuntando REPLACE a la línea de creación. CREATE USER Ilerna IDENTIFIED BY 123; GRANT CREATE SESSION, UPDATE ANY TABLE TO Ilerna; CONN Ilerna/123; Atendiendo a la sentencia anterior, elige cual de las siguientes sentencias podría lanzar: UPDATE system.alumnos SET nombre='pepito' where nombre = 'juan';. DELETE FROM system.alumnos WHERE dni = '7654321d';. INSERT INTO system.alumnos VALUES (1, 'Nuevo empleado con el codigo: ' || :NEW.emp_no , SYSDATE);. Ninguna de las respuestas es correcta. CREATE OR REPLACE PROCEDURE proceso1 AS variable VARCHAR2(10); BEGIN SELECT extract(year from sysdate) into variable from dual; sys.dbms_output.put_line(variable); END; Atendiendo al proceso anterior, elige cual de las siguientes opciones mostrara por la pantalla de la consola: 2022. 1900. 2018. Ninguna de las respuestas es correcta. Atendiendo a que tenemos la siguiente tabla en BBDD: Que muestra por la pantalla de la consola el siguiente bloque de código: DECLARE numeroEmpleado VARCHAR2(10); salarioEmpleado emp.salario%type; nuevoSalario emp.salario%type; BEGIN numeroEmpleado := 3; SELECT emp.salario into salarioEmpleado from emp where emp_no = numeroEmpleado; nuevoSalario := salarioEmpleado - (salarioEmpleado / 4); UPDATE emp SET emp.salario = nuevoSalario where emp_no = numeroEmpleado; SELECT salario into salarioEmpleado from emp where emp_no = numeroEmpleado; DBMS_OUTPUT.PUT_LINE('El salario del empleado numero ' || numeroEmpleado || ' es ' || salarioEmpleado); END;. 1000. 1500. 750. 375. Atendiendo a que tenemos la siguiente función en BBDD: CREATE OR REPLACE FUNCTION diaSem(numero number) RETURN varchar2 AS dia varchar2(10); BEGIN IF numero = 0 THEN dia := 'Lunes'; ELSIF numero = 2 THEN dia := 'Martes'; ELSIF numero = 4 THEN dia := 'Miercoles'; ELSIF numero = 6 THEN dia := 'Jueves'; ELSIF numero = 8 THEN dia := 'Viernes'; ELSIF numero = 10 THEN dia := 'Sabado'; ELSIF numero = 12 THEN dia := 'Domingo'; ELSE dia := 'Domingo'; END IF; RETURN (dia); END; Que devuelve la siguiente llamada: CALL diaSem(3);. Domingo. Martes. Miercoles. Jueves. DECLARE fecha_incorrecta EXCEPTION; PRAGMA EXCEPTION_INIT (fecha_incorrecta, -01847); mañana DATE; hoy DATE := sysdate; BEGIN mañana := TO_DATE('32-10-2020'); dbms_output.put_line(hoy||' '||mañana); EXCEPTION WHEN fecha_incorrecta THEN dbms_output.put_line('La fecha introducida es incorrecta'); END; ¿Si ejecutamos este código en el gestor developer que resultado mostrará?. La fecha introducida es incorrecta. 24-03-2020 32-10-2020. 24/03/2020 32/10/2020. ORA-01847: el día del mes debe estar entre 1 y el último día del mes. Atendiendo a que tenemos la siguiente tabla en BBDD: DECLARE lugar_var dept.lugar%type; deptnum int; CURSOR lugares is SELECT lugar from dept where dept.dept_no=deptnum; sin_datos EXCEPTION; BEGIN deptnum:=10; open lugares; fetch lugares into lugar_var; IF (lugares%NOTFOUND) THEN RAISE sindatos; END IF; dbms_output.put_line('LUGAR: '||lugar_var); close lugares; EXCEPTION WHEN NO_DATA_FOUND THEN dbms_output.put_line('NO SE HA ENCONTRADO DATOS'); WHEN INVALID_NUMBER THEN dbms_output.put_line('EL PARAMETRO NO ES UN NUMERO'); WHEN ZERO_DIVIDE THEN dbms_output.put_line('DIVISIÓN ENTRE CERO'); WHEN CURSOR_ALREADY_OPEN THEN dbms_output.put_line('EL CURSOR YA ESTA ABIERTO'); WHEN INVALID_CURSOR THEN dbms_output.put_line('CURSOR YA ESTA CERRADO'); WHEN SIN_DATOS THEN dbms_output.put_line('EL CURSOR NO TIENE DATOS'); WHEN OTHERS THEN dbms_output.put_line('ALGO HA PASADO!!'); END;. EL CURSOR NO TIENE DATOS. NO SE HA ENCONTRADO DATOS. EL CURSOR YA ESTA ABIERTO. ALGO HA PASADO!!. CREATE OR REPLACE TRIGGER auditaempleT BEFORE UPDATE ON EMP ___________ BEGIN IF ___________> __________ *1.10 THEN INSERT INTO auditaemple VALUES (1, 'El salario del empleado ' || ___________ || 'era: ' || [____________ || ' ahora es: ' || _____________ , SYSDATE); END IF;. FOR EACH ROW, :NEW.Salario, :OLD.Salario, :NEW.Salario, :OLD.Salario, :NEW.Salario. FOR EACH ROW, :NEW.Salario, :OLD.Salario, :NEW.Salario, :NEW.Salario, :OLD.Salario. FOR EACH ROW, :NEW.Salario, :OLD.Salario, :OLD.Salario, :NEW.Salario, :NEW.Salario. FOR EACH ROW, :NEW.Salario, NEW.Salario, :OLD.Salario, :OLD.Salario, :NEW.Salario. CREATE OR REPLACE FUNCTION get_Comision(dept_n IN _____) RETURN INT AS CURSOR emp_list IS SELECT comision FROM emp WHERE dept_no = dept_n; cont INT; comi _____________ ; BEGIN cont := 0; OPEN ___________ ; FETCH emp_list INTO comi; IF emp_list%NOTFOUND THEN RETURN NULL; END IF; ______ ______ WHEN emp_list%NOTFOUND; IF comi > 0 THEN cont := cont + 1; END IF; FETCH emp_list INTO comi; END LOOP; _____ emp_list; END;. INT, emmp.comision%type, emp_list, LOOP, EXIT, CLOSE. INT, emp_list, emmp.comision%type, LOOP, EXIT, CLOSE. INT, emmp.comision%type, emp_list, EXIT, CLOSE, LOOP. INT, emmp.comision%type, emp_list,EXIT, LOOP, CLOSE. DECLARE _______lugnom IS SELECT lugar, dnombrebre FROM dept WHERE dept.dept_no>20; lugar_var dept.lugar%type; dnombrebre_var dept.dnombrebre%type; BEGIN dbms_output.put_line('1: ¿Está abierto? '||sys.diutil.bool_to_int(lugnom%isopen)); open ______; dbms_output.put_line('2: ¿Está abierto? '||sys.diutil.bool_to_int(lugnom%isopen)); loop fetch lugnom into lugar_var, dnombrebre_var; exit when lugnom%notfound; dbms_output.put_line('Registro no. '|| _____________||' lugar-departamento: '||lugar_var||'-'||dnombrebre_var); END loop; close lugnom; dbms_output.put_line('3: ¿Está abierto? '||sys.diutil.bool_to_int(lugnom%isopen)); END;. CURSOR , lugnom, lugnom%rowcount. lugnom, lugnom%rowcount, CURSOR. CURSOR , lugnom%rowcount, lugnom,. CREATE OR REPLACE ________control_insercion_productos _______ INSERT ___tabla_producto BEGIN IF TO_CHAR(SYSDATE, 'D') = '2' THEN _________ _APPLICATION_ERROR (-20506, '¡Los lunes no se pueden insertar productos!'); END IF; END;. TRIGGER, BEFORE, ON, RAISE. TRIGGER, ON, RAISE, BEFORE. TRIGGER, BEFORE, RAISE, ON. BEFORE, ON, RAISE, TRIGGER. |