Cuestiones
ayuda
option
Mi Daypo

TEST BORRADO, QUIZÁS LE INTERESEMP2. Bases de datos B (DAW)

COMENTARIOS ESTADÍSTICAS RÉCORDS
REALIZAR TEST
Título del test:
MP2. Bases de datos B (DAW)

Descripción:
PACs y modelos de examen, 2020

Autor:
Katia Sheleh
(Otros tests del mismo autor)

Fecha de Creación:
25/03/2020

Categoría:
Otros

Número preguntas: 88
Comparte el test:
Facebook
Twitter
Whatsapp
Comparte el test:
Facebook
Twitter
Whatsapp
Últimos Comentarios
No hay ningún comentario sobre este test.
Temario:
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 SHOW USER CREATE USER IDENTIFIED BY USER .
Ordena esta sentencia de código que nos permite dar privilegios a un usuario: GRANT (NombrePersona, tlf, CP) SELECT ON juanma@localhostClientes TO clientes.
Completa los siguientes huecos para la creación de un usuario: CREATE (--1--) Manuel IDENTIFIED (--2--) ManuPsw QUOTA UNLIMITED ON users (--3--) OPERADOR; USER BY profile .
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 Select REVOKE On sastreria. * ana@localhost from.
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 SELECT, (--1--) (nombreCliente, Telefono) (--2--) Jardineria.Clientes (--3--) Javier UPDATE ON TO.
Teniendo en cuenta todos los privilegios que podemos otorgar (Privilegios de inserción, actualización y borrado), completa los huecos: GRANT SELECT, (--1--) , DELETE, (--2--) on atp.jugadores to francisco@localhost (--3--) MAX_QUERIES_PER_HOUR 20 MAX_UPDATES_PER_HOUR 20 INSERT UPDATE WITH.
Oracle es un gestor de bases de datos con sus características ¿De qué forma podemos trabajar con él? Indica las características correctas de Oracle Database Server respecto de la normativa legal vigente sobre la protección de datos: Solo utiliza procedimientos. Estructuras de control de flujo. Uso de variables. No controla los errores y ni las excepciones. No tiene soporte en la programación orientada a objetos. Integrado con SQL.
¿Conoces cuáles son las características de los usuarios de 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 tablespac. Son los diferentes recursos de los que dispone el usuario del sistema. Concesión de funciones que pueden realizar los usuarios.
Relacionar / Arrastrar y soltar / Desplegables. ENUNCIADO: 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. Realiza tareas administrativas utilizando Enterprise Manager. Funciona como administrador de la base de datos (rol de DBA) y no interesa modificar su esquema. Controla la aplicación Enterprise Manager.
Oracle nos permite definir ciertas clausulas 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.
Ahora nos centraremos en las características de sesiones sobre las bases de datos de Oracle. Relaciona los roles predefinidos para ayudar a la administración de las bases: 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”.
Rellena los siguientes espacios en blanco, e tal forma que el siguiente 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 (--4--) rocket.dep_201 (--5--) mgr200; conn gbd/gbd.bdg (--6--) SELECT (--7--) gbd.alumns (--8--) rocket (--9--) GRANT OPTION; view where grant on to with.
Dependiendo del rol que tengas en la base de datos, puedes tener ciertos privilegios o no. Veamos cuáles son... Identifica los beneficios 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. 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.
Los roles que tenga cada usuario indicaran las tablas y acciones que podremos realizar con usuarios que estén en ese rol. Analicemos en código estas sentencias de roles. ¿Es correcta esta sentencia de código? REVOKE SELECT ON prueba.personas TO user No. Para quitar privilegios es con la sentencia DROP Es correcta No. Necesitas un UPDATE para actualizarlo No. El TO es incorrecto. La sentencia es con FROM .
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 son: 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 sobre sesiones de usuario: CREATE (--1--) OPERADOR LIMIT SESSION_PER_USER 5 CPU_PER_ (--2--) UNLIMTED IDLE_TIME 10 (--3--) _TIME 120 PROFILE SESSION CONNECT.
Seguimos con 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.
Vamos a ver la forma de programar en bases de datos Oracle y qué mejor que verlo en código. Completa el siguiente código con las palabras clave sobre excepciones: DECLARE v_nom empleados.nombre%type; v_ape (--1--); BEGIN Select nombre,apellido into v_nombre, v_ape from Empleados where dni=23564390; (--2--) ('Nombre: '||v_nombre|| 'Apellido: '||v_apellido ); EXCEPTION WHEN (--3--) THEN dbms_output.put_line( 'No existe empleado con ese DNI'); WHEN OTHERS THEN dbms_output.put_line ('otros errores'); END; empleados.apellido%type dbms_output.put_line NO_DATA_FOUND.
Hay muchas funciones que nos permiten trabajar con Oracle. Identifica que función de Oracle, NO es la correcta: NLS_Session_Parameters: parámetros de sesión. DUAL: tabla del sistema donde encontramos la fecha y otros parámetros. Rowid: identificador de la fila. Sysdate: fecha por mes User: usuario del sistema de base de datos. .
Hay varias estructuras de flujo para trabajar la programación en BBDD: IF, LOOP, CASE, etc. Gracias a unos ejemplos, veamos cómo se trabaja el código. Completa estos códigos de control de flujo: IF fecha_nac < ’11-06-1982’ THEN salario:= salario *1.15; (--1--) salario:= salario* 1.05; END IF; SELECT Nombre, CASE EstadoCivil WHEN 'C' THEN 'Casado/a' (--2--) 'S' THEN 'Soltero/a' WHEN 'D' THEN 'Divorciado/a' ELSE 'Otros' END AS "Estado Civil" FROM tablaEstado; DECLARE total NUMBER(9) := 0; cont NUMBER(6) := 0; BEGIN (--3--) cont := cont + 1; -- Incrementamos la variable total := total + cont * cont; EXIT WHEN total = 25000; END LOOP; END else when loop.
Centrándonos en variables de salida en Oracle. 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.
Ahora nos centraremos directamente en la programación con procedimientos y funciones. Completa el siguiente código con las palabras clave sobre procedimientos y funciones: CREATE OR REPLACE (--1--) adjust_salary( in_employee_id IN EMPLOYEES.EMPLOYEE_ID%TYPE, in_percent IN (--2--) ) IS BEGIN -- update employee's salary UPDATE employees (--3--) salary = salary + salary * in_percent / 100 WHERE employee_id = in_employee_id; END; PROCEDURE NUMBER SET.
Completa el siguiente código con las palabras clave sobre funciones: CREATE OR (--1--) FUNCTION dbo.ufnGetInventoryStock(@ProductID int) RETURNS int AS BEGIN DECLARE @ret int; SELECT @ret = SUM(p.Quantity) FROM Production.ProductInventory p (--2--) p.ProductID = @ProductID AND p.LocationID = '6'; IF (@ret IS NULL) SET @ret = 0; (--3--) @ret; END; REPLACE WHERE 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 da error: La tabla ya existe Ninguna de las anteriores Falta definir un objeto Falta definir la foreign key .
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”. Las variables que reciben los datos devueltos por el cursor tienen que contener un tipo diferente de dato que las columnas de la tabla. 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.
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. Veamos como realizarla. Completa el siguiente código con las palabras adecuadas: DECLARE identificador NUMBER; BEGIN SELECT nombre INTO identificador FROM Alumno (--1--) cod = 100; EXCEPTION (--2--) NO_DATA_FOUND OR (--3--) THEN DBMS_OUTPUT.PUT_LINE ('El error es: ' || SQLCODE); DBMS_OUTPUT.PUT_LINE (SQLERRM); END; where when too_many_rows.
Para trabajar con cursores, debemos aprender qué palabras reservadas tenemos para recorrer nuestras variables. 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. Devuelve un valor booleano, “TRUE” si tras la recuperación más reciente se recuperó una fila. Retorna el número de filas devueltas hasta el momento.
Vamos a poner un ejemplo en código de cursores donde vamos a ver el funcionamiento de los mismos. Así, 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; VALOR_NEGATIVO RAISE dbms_output.put_line.
Vamos a analizar el código de los siguientes procedimientos para ver su correcto funcionamiento... Identifica el motivo por el que estos procedimientos dan error: La variable num0 debe ser solo de entrada Deberían declararse como FUNCTION Entre ambos, debería haber una / Ninguna de las anteriores .
Seguimos practicando con cursores... Ahora desarrollemos el siguiente código. Completa el siguiente código con las palabras adecuadas: SET (--1--) ON; DECLARE CURSOR calumno IS SELECT nombre, apellidos FROM Alumnos; vnombre VARCHAR2(50); vapellidos VARCHAR2(50); BEGIN OPEN calumno; LOOP (--2--) calumno INTO vnombre, vapellidos; EXIT (--3--) calumno%NOTFOUND; dbms_output.put_line('Nombre: ' || vnombre || ' apellido: ' || vapellidos); END LOOP; CLOSE SERVEROUTPUT fetch when.
Seguimos practicando con cursores... completa el siguiente código: DECLARE lugar_var dept.lugar%TYPE; deptnum dept.dept_no%TYPE; CURSOR lugares IS SELECT lugar FROM (--1--) WHERE dept.dept_no = deptnum; BEGIN deptnum := 10; OPEN lugares; FETCH lugares INTO (--2--) IF (lugares%NOTFOUND) THEN RAISE SIN_DATOS; END (--3--); (--4--) ('LUGAR: ' || lugar_var); --se imprime el valor por pantalla CLOSE lugares; EXCEPTION WHEN INVALID_NUMBER THEN dbms_output.put_line(' El parametro no es un numero'); WHEN SIN_DATOS THEN dbms_output.put_line(' El parametro no es un numero'); WHEN OTHERS THEN dbms_output.put_line(' El parametro no es un numero'); END; dept lugar_var if dbms_output.put_line.
Los triggers (disparadores) son funcionalidades que se lanzan de forma automática en determinadas acciones que realizara la base de datos. Son muy utilizados para completar datos en tablas de registros, tablas con claves foráneas, etc... Centrándonos ahora en la parte de los disparadores o triggers...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) THEN (--3--) (-20600, 'La fecha de la baja debe ser nula o mayor que la fecha de alta'); END IF; END; replace each raise_application_error.
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: 2020 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; 750 1000 1500 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 (--1--) BEGIN IF (--2--) > (--3--) *1.10 THEN INSERT INTO auditaemple VALUES (1, 'El salario del empleado ' || (--4--) || 'era: ' || (--5--) || ' ahora es: ' || (--6--) , SYSDATE); END IF; END; FOR EACH ROW :NEW.Salario :OLD.Salario :NEW.emp_no.
CREATE OR REPLACE FUNCTION get_Comision(dept_n IN INT) RETURN (--1--) AS CURSOR emp_list IS SELECT comision FROM emp WHERE dept_no = dept_n; cont INT; comi (--2--) ; BEGIN cont := 0; OPEN (--3--) ; FETCH emp_list INTO comi; IF emp_list%NOTFOUND THEN RETURN NULL; END IF; (--4--) (--5--) WHEN emp_list%NOTFOUND; IF comi > 0 THEN cont := cont + 1; END IF; FETCH emp_list INTO comi; END LOOP; (--6--) emp_list; END; INT emmp.comision%type emp_list LOOP EXIT CLOSE .
DECLARE (--1--) 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)); (--2--) ; 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. '|| (--3--) ||' 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 open lugnom lugnom%rowcount.
CREATE OR REPLACE (--1--) control_insercion_productos (--2--) INSERT (--3--) tabla_producto BEGIN IF TO_CHAR(SYSDATE, 'D') = '2' THEN (--4--) (-20506, '¡Los lunes no se pueden insertar productos!'); END IF; END; TRIGGER BEFORE ON RAISE_APPLICATION_ERROR .
Las bases de datos orientadas a objetos, cada registro es considerado un objeto. Empecemos a trabajar con bases de datos orientadas a objeto. Para ellos vamos a ver conceptos básicos de las mismas... Se caracterizan porque se basan en una programación orientada a objetos (POO) que se desarrolla basándose en: encapsulamiento, herencia y polimorfismo herencia encapsulamiento encapsulamiento y herencia polimorfismo .
Veamos ahora qué restricciones tenemos que tener en cuenta a la hora de trabajar con estas bases de datos... Relaciona cada atributo con su definición correspondiente sobre restricciones en las bases de datos: Evita que el método pueda modificar las tablas de la base de datos. Evita que el método pueda leer las tablas de la base de datos. Evita que el método modifique variables del paquete PL/SQL. Evita que el método pueda leer las variables del paquete PL/SQL.
Hay características de programación orientada a objetos con las que podemos trabajar en bases de datos. Selecciona la opción incorrecta sobre las características de la herencia: Los subtipos no pueden definir sus propios atributos y métodos Gracias a la herencia se pueden crear superclases abstractas Pueden crearse subtipos de objetos a partir de otros Se puedan crear subclases más específicas .
Identifica la respuesta correcta de NOT FINAL: no poner la cláusula al crear este objeto, da error, pero compila no poner la cláusula al crear este objeto, no compila no poner la cláusula al crear este objeto, da error no poner la cláusula al crear este objeto, da error y no compila .
En una base de datos orientada a objetos... identifica las respuestas correctas: Cada tupla de la super tabla puede corresponderse, como máximo con una tupla de cada una de sus subtablas inmediatas SQL posee una restricción adicional que hace que todas las tuplas que se corresponden entre si deben proceder de una tupla (insertada en una tabla) Constituye una nueva forma de pensar acerca de problemas empleando modelos que se han organizado tomando como base conceptos del mundo real La base es la atomicidad de los atributos.
Ahora nos vamos a centrar en la creación de tablas de tipo objeto con el desarrollo del BODY... Completa este código sobre la creación del body de objetos: CREATE OR (--1--) TYPE BODY tipo_lista_compra AS (--2--) FUNCTION total RETURN NUMBER IS i INTEGER; tot NUMBER := 0; BEGIN FOR i in 1..Detalle.count LOOP tot := tot + (detalle(i).cantidad * detalle(i).articulo.precio)* (1+(detalle(i).articulo.proct_iva/100)); END LOOP; (--3--) tot; END; END; / REPLACE MEMBER RETURN.
Hay palabras reservadas en la programación de bases de datos orientadas a objetos que hay que conocer para poder trabajar con funciones y procedimientos. Veamos cuales son. Relaciona estos conceptos con su definición sobre palabras reservadas en la programación de objetos: Clausula con la que definir procedimientos y funciones. Es una directiva de compilación. Se procesan en tiempo de compilación, no en tiempo de ejecución. Se usan para inicializar un objeto. Esta inicialización asigna valores a los miembros del objeto.
Los usuarios pueden definir sus propios tipos de datos, a partir de los tipos básicos provistos por el sistema o por otros tipos de datos predefinidos anteriormente por el usuario. Estos tipos de datos pueden pertenecer a colecciones de objetos... Centrándonos en las colecciones de objetos, selecciona la respuesta correcta: Son tablas anidadas Tienen atributos atómicos Es un grupo de elementos del mismo tipo Ninguna de las anteriores .
Completa el siguiente código sobre colecciones de datos: CREATE TYPE nombreColeccionObjeto AS TABLE OF nombreTablaObjeto; / CREATE TABLE nombreTabla( atributo1 TIPO1, atributo2 TIPO2, tablaAnidada (--1--) ) (--2--) TABLE tablaAnidada (--3--) AS nombre_tabla; nombreColeccionObjeto NESTED STORE.
Fijándonos en el siguiente código, ¿sabes qué hace? Devuelve un valor negativo si el objeto pasado por parámetro es mayor que el objeto que llama la función, un valor positivo si ocurre lo contrario y un cero si ambos son iguales. Devuelve un valor negativo si el parámetro de la llamada es menor que el objeto de la llamada a la función. Crea un cliente nuevo Devuelve un valor negativo si se crea un cliente nuevo .
Ahora vamos a poner en práctica los conocimientos adquiridos con un ejemplo en código sobre bases de datos orientadas a objetos. Completa el siguiente código sobre objetos en bases de datos: CREATE OR REPLACE TYPE Persona AS (--1--) ( idpersona NUMBER, dni VARCHAR2(9), nombre VARCHAR2(15), apellidos VARCHAR2(30), fecha_nac DATE, (--2--) FUNCTION muestraEdad RETURN NUMBER, (--3--) RESTRICT_REFERENCES (muestraEdad, WNDS) ); OBJECT MEMBER PRAGMA.
La referencia (REF) toma como argumento una variable de alias de una tabla asociada con una fila de una tabla de objeto o una vista de objeto. Se devuelve un valor REF para la instancia del objeto que está vinculada a la variable o fila. Vamos a ver conceptos asociados a ella. Relaciona cada concepto con su definición sobre referencias entre objetos: La tabla a la que hace referencia debe tener un atributo que guarde el identificador para cada tupla. Podemos acceder al objeto referenciado Tabla predeterminada en todas las instalaciones de bases de datos de Oracle Tabla anidada.
Ahora veremos un ejemplo en código, como se trabaja con una referencia y como se desreferencia para poder trabajar con los datos directamente. ¿sabes qué hace el siguiente código? Inserta en la tabla empleados y lo muestra por pantalla Borra una referencia Borra la tabla empleados Actualiza la tabla empleados y lo muestra en pantalla .
Completa el siguiente código sobre tablas anidadas: CREATE (--1--) autor AS OBJECT ( id INTEGER, nombre VARCHAR (100), direccion VARCHAR (255) ); CREATE TYPE libro AS (--2--) ( id INTEGER, nombre VARCHAR (200), escritor (--3--) autor ); type object ref.
Una vez referenciada una variable, tenemos que desreferenciarla para sacar su valor... Completa el siguiente código sobre referencias: CREATE OR REPLACE TYPE BODY pedido_t AS (--1--) FUNCTION valorTotal RETURN NUMBER IS i INTEGER; stock stock_t; item item_ t; total NUMBER: = 0; precio NUMBER; BEGIN FOR i IN 1 .. SELF . lista_item.COUNT LOOP item : = SELF . lista_item ( i ) ; SELECT (--2--) ( item . stockref ) INTO stock FROM DUAL; total : = total + item .cantidad * stock.precio ; END (--3--) ; RETURN total ; END; member deref loop.
Vamos a trabajar con conceptos de integridad de las bases de datos orientadas a objetos. Se deben cumplir unas normas que vamos a ver... En relación con las colecciones de BBDDOO identifica si las siguientes afirmaciones son verdaderas o falsas: Se definen para poder implementar relaciones 1: 1 Está formado por un número definido de elementos Unas funciones constructoras de colecciones cuyo nombre coincide con el del tipo Es posible almacenar un conjunto de tuplas en un único atributo.
En las colecciones, trabajamos con atributos multievaluados y en las tablas derivadas creamos objetos haciendo uso de los tipos definidos. Veamos sus características. Señala la respuesta incorrecta sobre tablas anidadas: El tipo de dato que almacena puede ser básico o definido por el usuario. Pueden tener una o más columnas. No existe un orden predefinido. Es un conjunto de elementos del mismo tipo.
En relación con los métodos en objetos, selecciona la respuesta correcta: Acciones que modelan el comportamiento de los objetos Son punteros a un objeto Todas son correctas Mejoramos la búsqueda de información.
Trabajamos con la sentencia SELECT. Vamos a ver la inserción, modificación y borrado de objetos. De las siguientes opciones, identifica cuál es la correcta: A B C.
De las siguientes opciones, identifica cuál es la correcta: A B C.
Identifica cuál es el programa de desarrollo en Oracle para bases de datos: SQL developer LinQ MySQL SQLi.
En el modelo objeto- relacional: Cada registro de una tabla se considera una función Ninguna de las respuestas es correcta. Cada registro de una tabla se considera un objeto. Cada registro de una tabla se considera un proceso.
CREATE (--1--) REPLACE (--2--) direccion_t AS (--3--) (calle VARCHAR2(50), ciudad VARCHAR2(50), provincia VARCHAR2(30), cp NUMBER) OR TYPE OBJECT.
Un objeto puede estar compuesto por: Un nombre, unos atributos y unos métodos. Atributos y funciones Atributos y procesos Ninguna de las respuestas es correcta.
CREATE OR REPLACE (--1--) empleado_t AS (--2--) (codigo NUMBER, nombre VARCHAR2(50), direccion dirección_t, telefono NUMBER(10), fechaNac DATE, (--3--) FUNTION edad (--4--) NUMBER) CREATE OR REPLACE TYPE (--5--) empleado_t AS (--3--) FUNCTION edad (--4--) NUMBER IS edadx NUMBER(10); mes1 NUMBER(10); dia1 NUMBER(10); mes2 NUMBER(10); dia2 NUMBER(10); BEGIN edadx := (extract(year from sysdate)) – (extract(year from fechaNac)); mes1 := extract(month from sysdate); dia1 := extract(day from sysdate); mes2 := extract(month from fechaNac); dia2 := extract(day from fechaNac); IF mes1 < mes2 (--6--) edadx := edadx – 1; END IF; IF mes1 = mes2 THEN IF dia1 < dia2 THEN edadx := edadx – 1; END IF; END IF; (--4--) edadx; END; TYPE OBJECT MEMBER RETURN BODY MEMBER RETURN THEN RETURN.
Selecciona la opción incorrecta sobre las características de la herencia: Se puedan crear subclases más específicas Pueden crearse subtipos de objetos a partir de otros Los subtipos no pueden definir sus propios atributos y métodos Gracias a la herencia se pueden crear superclases abstractas.
CREATE TYPE colec_empleados AS (--1--) (10) OF VARCHAR2(50); CREATE TABLE departamento( id NUMBER(10), dept VARCHAR2(50), empleados (--2--) ) INSERT INTO (--3--) VALUES( 1, 'Administración', colec_empleados('José Rodriguez', 'Maria Gutierrez', 'Yara Lopez')); VARRAY colec_empleados departamento.
¿Cuál de las siguientes opciones es válida como campo de un objeto con referencia a una colección de datos? Empleados personas Empleados VARRAY Ninguna de las respuestas es correcta Empleados AS VARRAY.
CREATE (--1--) tabla_composiciones AS (--2--) OF VARCHAR2 (30); CREATE TABLE producto( id NUMBER, nombre VARCHAR2 (20), composicion (--3--) ) (--4--) TABLE telefonos (--5--) AS t_telefono; TYPE TABLE tabla_composiciones NESTED STORE.
Una de las principales ventajas de la programación orientada a objetos (POO) es... la inserción de condicionales. Todas las respuestas son correctas. la inserción de estructuras repetitivas. la herencia.
¿Cuál de las siguientes sentencias utilizaremos para saber a qué usuario estamos conectado en la BBDD de Oracle? SHOW USER GET USER CONNECTED USER CURRENT USER.
Indica qué característica es incorrecta sobre cursores: Con cada cursor implícito debe existir la palabra clave “INTO”. Las variables que reciben los datos devueltos por el cursor tienen que contener un tipo diferente de dato que las columnas de la tabla. 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.
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 consultas es correcta? GRANT SELECT on ALUMNOS to miguel; GRANT SELECT to miguel; GRANT ALUMNOS to miguel; Ninguna de las respuestas es correcta.
En Oracle los tipos de objetos son aquellos tipos de datos que han sido definidos por el usuario. Los objetos se presentan de forma abstracta, realmente se siguen almacenando en columnas y tablas. Verdadero Falso.
En el modelo objeto- relacional: Las tablas dejan de ser elementos bidimensionales para pasar a convertirse a estructuras de datos bastante más complejas. Las tablas dejan de ser elementos bidimensionales para convertirse en pequeñas funciones Las tablas dejan de ser elementos bidimensionales para convertirse en procesos con parámetros Ninguna de las respuestas es correcta.
Las colecciones se crean mediante vArrays nested tables under not final.
Para definir métodos en BBDD-OR Se usan funciones o procedimientos miembros de un tipo de datos Se utilizan paquetes con cuerpo y cabecera No es posible utilizar métodos Ninguna de las respuestas es correcta.
Cual 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.
Para invocar a un método en BBDD-OR Se utiliza el operador -> Se usa la función REF Se usa la función object-value() Se usa el operador punto (.).
¿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.
La herencia es el mecanismo por el cual una clase derivada va a heredar los atributos de otra. Verdadero Falso.
Denunciar test Consentimiento Condiciones de uso