TIPO TEST
Tenemos el siguiente listado de operaciones: 1. INSERT 2. INSERT 3. UPDATE 4. ROLLBACK 5. INSERT 6. UPDATE 7. COMMIT 8. DELETE 9. DELETE Pregunta 2: Si la BD está con AC = 1, y partiendo de la base de que no hay operaciones ejecutadas previamente a la número 1: b) ¿Qué efecto tiene el COMMIT de la operación 7? Razonar. 1 línea.
Ninguno. Con AC = 1 ya se ha hecho commit implicito.
De entre las siguientes opciones de código, ¿cuál sería la más adecuada para evitar una inyección SQL? a. query = "SELECT * from actor where actor_id = %s" cursor.execute(query, (id,)) b. query = "SELECT * from actors where actor_id = '%s'" (id) cursor.execute(query) c. query = "SELECT * from actors where actor_id = " + str(id) cursor.execute(query) d. query = "SELECT * from actor where actor_id = %s" cursor.execute(query)
a
Pregunta 2: Si quiero meter en una estructura de datos independiente todos los datos de un cursor de una tacada, ¿Qué método/función debo usar? a) fetchall() b) fectchone() c) fetchmany() d) Ninguna de las anteriores
a
En el acceso a una Base de Datos las consultas y respuesta del Gestor de la BD: a. Van protegidas siempre por un algoritmo de cifrado propietario. b. Van en claro, salvo que se haya configurado un acceso seguro. c. La consulta puede ir en claro pero la respuesta del gestor siempre va cifrada. d. Sólo van protegidas si eres el Administrador del sistema
b
7) Nos conectamos mediante MySQLConnector desde Python a una base de datos llamada 'sakila' en un servidor, con las tablas 'actor' y 'film', especificando en los parámetros de conexión database = 'sakila'. Si ejecutamos la sentencia 'SELECT * FROM asociación_cervera.bar' ocurrirá lo siguiente: a. No será posible establecer la conexión y el objeto de conexión devolverá un mensaje de error. b. Siempre obtendremos resultados, pero el objeto cursor estará vacío. c. Podremos ejecutar dicha sentencia solo si la base de datos existe y el usuario tiene permisos sobre ella, y la tabla 'bar' existe en la base de datos 'asociacion_cervecera'. d. Todas las anteriores son falsas.
c
El acceso programático a bases de datos a. Está pensado y orientado a usuarios inexpertos, para que puedan acceder directamente a bases de datos relacionales. b. No requiere tener conocimientos en sentencias SQL, todas las operaciones se realizan mediante una interfaz gráfica. c. Está orientado a programadores, que desarrollan aplicaciones para usuarios no expertos. d. Ninguna de las anteriores es correcta.
c
Existen distintas funciones para obtener los datos que devuelve una consulta en un cursor. Uno de estos métodos es fetchmany(), que a. Obtiene todas las filas del resultado de una consulta y devuelve una lista de tuplas. b. Obtiene la siguiente fila del resultado de la consulta y devuelve una sola secuencia. c. Obtiene el siguiente conjunto de filas del resultado de la consulta (pudiendo ser especificado el número de filas) y devuelve una lista de tuplas. d. Todas las anteriores son correctas.
c
Pregunta 3: Si quiero garantizar que, tras una operación determinada, a nivel de la configuración de la base de datos, el dato va a estar en la base de datos, ¿Cuál es la configuración correcta? a) ROLLBACK = 1 b) COMMIT = 1 c) AUTOCOMMIT = 1 d) AUTOCOMMIT = 0
c
Pregunta 4: ¿Cuál es el puerto que utiliza por defecto MySQL para las conexiones y que se ha usado en la práctica? a) 3307 b) 3063 c) 3306 d) 3606
c
Pregunta 5: Dado el siguiente código: data = miobjeto.fetchmany(size=15) for row in data: fname = row[1] ¿Qué representa el 1? a) El número de registro al que quiero acceder. b) Limita el número de registros obtenidos. c) La columna/posición de la columna. d) Ninguna de las anteriores.
c
¿Qué se almacena en la columna "Password" de la tabla mysql.user? a. La password del usuario en claro. b. La password del usuario cifrada con una clave simétrica sólo conocida por el Gestor. c. Un resumen (hash) de la password del usuario. d. Un número aleatorio generado al acceder el usuario la primera vez.
c
4) Cuando hablamos de una transacción nos referimos a a. Un conjunto de sentencias a ejecutar en diferentes bases de datos alojadas en diferentes gestores. b. Una operación no persistente. c. Un conjunto de operaciones satisfactorias tras la ejecución siempre necesaria de un ROLLBACK. d. Todas las respuestas anteriores son falsas.
d
Algunas de las operaciones en transacciones son a. COMMIT, ROLLBACK y SCHEMA b. AUTOCOMMIT, BACKUP, ROLLBACK y COMMIT c. COMMIT, ROLLBACK, AUTOCOMMIT, UPLOAD TRANSACTION. d. START TRANSACTION, COMMIT, ROLLBACK
d
Pregunta 1: ¿Cuál de estos parámetros no existe/no es válido a la hora de realizar una conexión a una base de datos? a) Usuario b) Contraseña c) Puerto d) Todos son parámetros válidos
d
Si queremos acceder a una base de datos que se encuentra en nuestra propia máquina, accederemos a la IP a. 127.7.0.0 b. 127.0.0.0 c. 127.1.0.0 d. 127.0.0.1
d
Tenemos el siguiente listado de operaciones: 1. INSERT 2. INSERT 3. UPDATE 4. ROLLBACK 5. INSERT 6. UPDATE 7. COMMIT 8. DELETE 9. DELETE Pregunta 1: Si la BD está con AC = 0, y partiendo de la base de que no hay operaciones ejecutadas previamente a la número 1: ¿Cuántas operaciones (y cuales) han modificado la base de datos y podemos garantizar una vez finalice el conjunto de operaciones que las modificaciones perdurarán?
l ROLLBACK deshace las 3 primeras. La 5 y la 6 se garantizan por el COMMIT. La 8 y 9 no podemos garantizar nada.
Tenemos el siguiente listado de operaciones: 1. INSERT 2. INSERT 3. UPDATE 4. ROLLBACK 5. INSERT 6. UPDATE 7. COMMIT 8. DELETE 9. DELETE Pregunta 2: Si la BD está con AC = 1, y partiendo de la base de que no hay operaciones ejecutadas previamente a la número 1: a) ¿Cuántas transacciones hay en el bloque proporcionado?
7 (tantas como operaciones: ROLLBACK Y COMMIT no cuentan)
Tenemos el siguiente listado de operaciones: 1. INSERT 2. INSERT 3. UPDATE 4. ROLLBACK 5. INSERT 6. UPDATE 7. COMMIT 8. DELETE 9. DELETE Pregunta 1: Si la BD está con AC = 0, y partiendo de la base de que no hay operaciones ejecutadas previamente a la número 1: a) ¿Cuántos bloques de transacción (consideramos como bloque de transacción a un conjunto de operaciones que están entre dos operaciones que limitan una transacción) podemos garantizar que tiene ese conjunto de operaciones?
El ROLLBACK de la 4 hace que se genere un bloque. El COMMIT de la 7 genera el segundo bloque. Tras esa, no podemos saber que pasará con la 8 y 9.