wayground logo

Free Printable Worksheets

NEW

Font size

S
M
L
XL
Worksheets

Tema 2 AD

Total questions: 80

Worksheet time: 1hrs 15mins

Name
Class
Date
1.
¿Qué propiedad distingue a una base de datos frente a un sistema basado solo en ficheros?
a)
Persistencia garantizada
b)
Lectura condicionada al recorrido secuencial
c)
Organización dependiente del formato físico del archivo
d)
Acceso vinculado a un flujo lineal de procesamiento
2.
¿Qué limitación clave presenta el almacenamiento basado únicamente en ficheros?
a)
Ausencia de relaciones estructuradas entre datos
b)
Necesidad de un controlador externo para cada lectura
c)
Restricción a un único usuario por operación
d)
Imposibilidad de almacenar información textual compleja
3.
¿Qué ventaja esencial aportan las bases de datos relacionales?
a)
Coherencia e integridad ante múltiples operaciones simultáneas
b)
Eliminación del uso de claves de identificación
c)
Transformación automática de tipos complejos
d)
Almacenamiento indiferenciado de datos repetidos
4.
¿Cómo se interpreta formalmente una tabla en el modelo relacional?
a)
Un conjunto de tuplas sin orden inherente
b)
Una lista ordenada según su índice
c)
Un árbol jerárquico con nodos dependientes
d)
Un vector de elementos apuntados por clave
5.
¿Qué operación obtiene solo las filas que cumplen una condición?
a)
Selección
b)
Proyección
c)
Combinación
d)
Correspondencia
6.
¿Qué operación permite trabajar únicamente sobre columnas específicas?
a)
Proyección
b)
Selección
c)
Acotación
d)
Expansión
7.
¿Qué operación requiere técnicas avanzadas en SQL por no tener equivalencia directa?
a)
División
b)
Selección
c)
Unión
d)
Renovación
8.
¿Qué factor explica el desfase entre objetos y tablas?
a)
Los objetos admiten estructuras complejas y las tablas solo valores atómicos
b)
Las tablas gestionan identidades internas más amplias que los objetos
c)
Los objetos siempre mantienen relaciones uno a uno
d)
Las tablas permiten almacenar colecciones sin restricción
9.
¿Por qué una columna no puede almacenar varias direcciones para un mismo registro?
a)
Porque cada columna debe contener valores atómicos
b)
Porque las claves ajenas deben ser únicas
c)
Porque las tablas no permiten más de una relación por fila
d)
Porque las columnas dependen de un único tipo de dato
10.
¿Qué tarea debe realizarse manualmente sin un mecanismo de mapeo?
a)
Reconstruir y descomponer objetos mediante consultas específicas
b)
Generar automáticamente claves primarias
c)
Validar tipos complejos antes de insertarlos
d)
Asignar índices a cada relación detectable
11.
¿Qué permite trabajar con distintos motores de base de datos usando la misma API?
a)
Drivers especializados bajo un estándar común
b)
Traducción interna del dialecto SQL
c)
Conversión automática de estructuras relacionales
d)
Reducción de dependencias en la conexión
12.
¿Qué afirmación describe correctamente la función del conector JDBC?
a)
Es una biblioteca que actúa como interfaz entre Java y el motor de base de datos
b)
Sustituye al servidor y ejecuta consultas directamente
c)
Impide el uso de SQL en favor de objetos
d)
Gestiona únicamente consultas sobre tablas temporales
13.
¿Qué archivo debe añadirse manualmente al proyecto al instalar el driver sin Maven?
a)
Un archivo .jar que contiene el driver JDBC
b)
Un archivo .cfg con credenciales
c)
Un archivo .zip que se ejecuta como instalador
d)
Un archivo .ini con la estructura del esquema
14.
¿Dónde se definen las dependencias necesarias cuando se usa Maven?
a)
En el archivo pom.xml
b)
En un descriptor de compilación externo
c)
En las propiedades de la conexión
d)
En la estructura del paquete principal
15.
¿Qué NO puede configurarse directamente desde el archivo de dependencias de Maven?
a)
Sentencias SQL a ejecutar
b)
Descripción del proyecto
c)
Versión del lenguaje
d)
Pasos de compilación
16.
¿Qué clase localiza y gestiona el driver adecuado para la conexión?
a)
DriverManager
b)
ResultSet
c)
Connection
d)
Statement
17.
¿Qué representa un objeto Connection dentro del flujo de acceso a datos?
a)
Una sesión activa entre la aplicación y la base de datos
b)
La estructura relacional de la tabla
c)
El resultado de una consulta
d)
El mapeo entre clases y columnas
18.
¿Para qué sirve un método que devuelve un boolean al intentar abrir una conexión?
a)
Para verificar si la conexión puede establecerse correctamente
b)
Para validar la sintaxis de la consulta
c)
Para generar automáticamente la URL de acceso
d)
Para crear el esquema si no existe
19.
¿Qué método se utiliza para abrir una conexión con un motor de base de datos?
a)
getConnection()
b)
openSession()
c)
createLink()
d)
initDriver()
20.
¿Por qué es recomendable encapsular la lógica de conexión en una clase dedicada?
a)
Para centralizar la configuración y evitar duplicación de código
b)
Para impedir que existan múltiples conexiones simultáneas
c)
Para garantizar que el driver se cargue en cada llamada
d)
Para obligar a que la conexión se cierre automáticamente
21.
¿Qué elemento debe almacenarse para abrir una conexión a una base de datos?
a)
Ninguna de las opciones anteriores es correcta
b)
Contraseña, URL, usuario y versión del motor utilizada
c)
Usuario, contraseña, URL y protocolo interno de autenticación
d)
URL, usuario, contraseña y modo de compatibilidad del servidor
22.
¿Qué requisito es imprescindible para que la aplicación pueda comunicarse con un motor SQL?
a)
Ninguna de las opciones anteriores es correcta
b)
Usuario, contraseña, URL y nivel de optimización del driver
c)
Contraseña, usuario, URL y modo de cifrado del servidor
d)
URL, contraseña, usuario y política de concurrencia activa
23.
¿Qué implica obtener un objeto Connection al iniciar el acceso a datos?
a)
Una sesión activa lista para enviar operaciones SQL
b)
Una referencia simbólica a la estructura de tablas
c)
Una asignación temporal de índices globales
d)
Un canal interno para gestionar archivos físicos
24.
¿Qué papel cumple un Statement dentro del proceso de acceso a datos?
a)
Permitir el envío directo de sentencias SQL al motor
b)
Mantener en memoria los índices utilizados
c)
Deserializar estructuras numéricas de la base de datos
d)
Inferir tipos complejos sin conversión explícita
25.
¿Qué método debe usarse al ejecutar una instrucción que modifica datos?
a)
executeUpdate()
b)
executeQuery()
c)
applyStatement()
d)
runMutation()
26.
¿Qué método devuelve registros provenientes de una consulta?
a)
executeQuery()
b)
getResult()
c)
fetchRows()
d)
runSelect()
27.
¿Qué característica define el recorrido de un ResultSet?
a)
Avanzar fila a fila mediante next()
b)
Acceder en paralelo a columnas simultáneas
c)
Saltar automáticamente a la última fila
d)
Reordenar registros según claves externas
28.
¿Qué método permite obtener texto almacenado en una columna?
a)
getString()
b)
readChar()
c)
parseField()
d)
fetchText()
29.
¿Qué tipo de datos se obtiene al usar getInt()?
a)
Valores enteros recuperados desde la columna
b)
Identificadores internos de transacción
c)
Registros binarios convertidos
d)
Segmentos de memoria referenciados
30.
¿Qué distingue a execute() del resto de métodos de Statement?
a)
Puede ejecutar cualquier sentencia sin conocer si devolverá datos
b)
Solo procesa operaciones con múltiples JOIN
c)
Requiere estructuras temporales previas
d)
Obliga a validar la consulta antes de enviarla
31.
¿En qué situación resulta adecuado utilizar execute()?
a)
Cuando se desconoce si la operación generará un ResultSet
b)
Cuando se necesitan resultados indexados
c)
Cuando se requiere validar tipos complejos
d)
Cuando se ejecutan funciones matemáticas internas
32.
¿Qué riesgo aparece al crear consultas combinando texto y variables sin validación?
a)
Inyección SQL
b)
Pérdida de claves ajenas
c)
Eliminación de índices activos
d)
Saturación del cursor de sesión
33.
¿Qué ventaja aporta PreparedStatement respecto a Statement?
a)
Separar los datos del usuario del código SQL mediante parámetros
b)
Actualizar índices al finalizar la consulta
c)
Detectar automáticamente relaciones mal formadas
d)
Validar columnas sin revisar el tipo declarado
34.
¿Qué mejora de rendimiento ofrece PreparedStatement?
a)
Compilar la sentencia una sola vez y reutilizarla
b)
Paralelizar automáticamente todas las consultas
c)
Evitar la creación de nuevas conexiones
d)
Reducir el tamaño físico de la tabla
35.
¿Qué método se utiliza para asignar valores a los parámetros de una sentencia parametrizada?
a)
setString(), setInt(), setDouble()…
b)
assign(), bind(), attach()
c)
pushValue(), writeArg()
d)
applyParam(), castValue()
36.
¿Qué efecto tienen los parámetros de PreparedStatement al ser enviados al servidor SQL?
a)
Se transmiten como datos y no como fragmentos de código
b)
Se convierten en expresiones lógicas internas
c)
Reconfiguran el plan de ejecución de la tabla
d)
Se ajustan como columnas temporales
37.
¿Qué patrón organiza el acceso a datos separándolo del resto de la lógica de la aplicación?
a)
Data Access Object
b)
Distributed Architecture Orchestration
c)
Dynamic Application Overlay
d)
Data Alignment Orchestrator
38.
¿Cuál es una responsabilidad típica de una clase DAO?
a)
Gestionar todas las operaciones CRUD sobre una tabla
b)
Renderizar elementos gráficos de la aplicación
c)
Mantener la sesión de usuario
d)
Generar claves únicas para el sistema
39.
¿Qué beneficio proporciona aislar la capa DAO en una aplicación?
a)
Mejor mantenimiento y menor acoplamiento entre módulos
b)
Ejecución simultánea sin bloqueo de registros
c)
Sincronización automática de índices
d)
Carga más rápida del esquema
40.
¿Qué requiere reconstruir un objeto complejo a partir de sus datos distribuidos en varias tablas?
a)
Unir la información mediante consultas que combinen ambas estructuras
b)
Generar columnas reflejo dentro de cada tabla
c)
Convertir la información a un formato binario
d)
Crear índices temporales por cada subobjeto
41.
¿Qué requiere transformar un objeto en registros antes de insertarlo?
a)
Descomponer sus atributos en valores compatibles con columnas atómicas
b)
Convertir todos los campos en un formato binario
c)
Crear índices auxiliares para cada propiedad
d)
Generar claves externas de forma automática
42.
¿Qué consecuencia directa tiene almacenar datos no atómicos en una columna?
a)
Dificulta las consultas y rompe la consistencia relacional
b)
Optimiza la lectura secuencial de registros
c)
Permite reducir el número total de tablas
d)
Aumenta la velocidad de las operaciones JOIN
43.
. ¿Qué garantiza que un conjunto de filas pueda vincularse correctamente al reconstruir un objeto?
a)
La existencia de claves que identifiquen las relaciones entre tablas
b)
La existencia de columnas duplicadas entre entidades
c)
La ausencia de restricciones en la tabla secundaria
d)
El uso de nombres idénticos entre columnas
44.
¿Qué columna debe estar presente para identificar de forma consistente una fila?
a)
Una clave primaria que garantice unicidad
b)
Una referencia textual que represente el registro
c)
Un índice compartido entre varias tablas
d)
Un valor autogenerado sin restricciones
45.
. ¿Qué problema aparece si un mismo dato se almacena en dos tablas sin relación?
a)
Actualizaciones inconsistentes entre ambas copias
b)
Optimización de las lecturas agregadas
c)
Eliminación automática de duplicados
d)
Simplificación de la integridad referencial
46.
¿Qué operación permite obtener solo las columnas necesarias antes de reconstruir un objeto?
a)
Proyección
b)
Selección
c)
Unión
d)
Expansión
47.
¿Qué tipo de error puede provocar acceder a un ResultSet cerrado?
a)
Excepción SQL relacionada con estado no válido
b)
Conversión automática a valores nulos sin aviso
c)
Ejecución parcial de la sentencia siguiente
d)
Pérdida silenciosa de todas las filas leídas
48.
. ¿Qué requisito debe cumplirse para ejecutar operaciones SQL desde Java?
a)
Disponer de un driver JDBC compatible con el motor utilizado
b)
Configurar un canal de lectura secuencial
c)
Definir índices automáticos para cada tabla
d)
Utilizar un conjunto fijo de tipos primitivos
49.
¿Qué condición debe cumplirse para manipular un ResultSet?
a)
La consulta debe haberse ejecutado correctamente y el cursor debe estar abierto
b)
Todas las filas deben haber sido precargadas en memoria
c)
El motor debe aplicar ordenación implícita
d)
La tabla debe estar bloqueada durante su lectura
50.
¿Qué aporta devolver Optional<Clase> al recuperar un objeto desde la base de datos?
a)
Indicar de forma explícita que el resultado puede no existir sin recurrir a null
b)
Evitar que el método devuelva null generando automáticamente un objeto por defecto
c)
Sustituir cualquier ausencia de datos por una instancia vacía sin atributos
d)
Garantizar que no se produzcan excepciones incluso cuando la consulta falla
51.
¿Qué debe garantizar un método de acceso antes de devolver un objeto envuelto en Optional?
a)
Que la consulta distinga entre ausencia real y error de ejecución
b)
Que exista siempre al menos un registro coincidente
c)
Que los datos obtenidos sean convertidos a JSON
d)
Que la tabla haya sido reconstruida en memoria
52.
¿Qué requisito debe cumplirse al validar credenciales en un sistema de login?
a)
Comparar únicamente datos recuperados mediante una consulta parametrizada
b)
Duplicar la contraseña en memoria para verificar coincidencias
c)
Generar claves temporales antes de cada intento
d)
Reconstruir toda la tabla para evitar inconsistencias
53.
¿Qué obligación tiene un DAO al crear nuevas entidades que dependen de un usuario concreto?
a)
Asociar la clave del usuario como referencia en las operaciones de inserción
b)
Duplicar la entidad en una tabla auxiliar
c)
Ignorar la relación y vincularla dinámicamente en memoria
d)
Generar claves externas sin validación previa
54.
¿Qué debe cumplir una consulta SQL utilizada para comprobar credenciales?
a)
Restringirse a coincidencias exactas en campos relevantes usando parámetros
b)
Incluir ordenación para asegurar consistencia
c)
Utilizar JOINs para verificar tablas asociadas
d)
Simplificar la contraseña a un único formato
55.
¿Qué elemento debe considerarse al diseñar un método de actualización sobre una entidad?
a)
Aplicar una condición que identifique de forma única el registro a modificar
b)
Forzar el recálculo de todas las claves ajenas
c)
Regenerar la tabla antes de cada modificación
d)
Propagar automáticamente cambios a cada entidad relacionada
56.
¿Qué suposición debe evitarse al procesar una lista de entidades recuperadas por un DAO?
a)
Asumir que la consulta siempre devuelve elementos
b)
Asumir que cada fila pertenece a un usuario distinto
c)
Asumir que la lista está libre de duplicados internos
d)
Asumir que la reconstrucción evita inconsistencias
57.
¿Qué característica es esencial al generar objetos de dominio a partir de consultas?
a)
Respetar el orden y tipo de cada columna al mapearlas a los atributos
b)
Agregar valores por defecto cuando falten columnas
c)
Reordenar las filas para optimizar la creación de objetos
d)
Eliminar atributos que no aparezcan en el SELECT
58.
¿Qué garantiza una sentencia preparada en operaciones de inserción?
a)
Separación entre valores proporcionados y código SQL ejecutado
b)
Inserción optimizada por eliminación de tipos
c)
Persistencia inmediata sin transacciones
d)
Detección automática de relaciones inconsistentes
59.
¿Qué condición debe cumplirse antes de confirmar una operación en una transacción?
a)
Verificar que todas las operaciones intermedias finalizaron sin error
b)
Validar que la tabla objetivo esté bloqueada
c)
Regenerar índices ofensivos
d)
Forzar un rollback parcial
60.
¿Qué práctica reduce el acoplamiento entre interfaz gráfica y acceso a datos?
a)
Instanciar las operaciones de datos en clases independientes
b)
Crear consultas directamente desde los componentes visuales
c)
Pasar conexiones abiertas entre distintos paneles
d)
Vincular objetos Swing a cada registro recuperado
61.
¿Qué justifica que una capa DAO devuelva listas en lugar de estructuras más complejas?
a)
Representan colecciones simples compatibles con resultados tabulares
b)
Reducen el tiempo de lectura sin usar cursores
c)
Evitan la conversión de tipos compuestos
d)
Mantienen relaciones automáticamente
62.
¿Qué debe considerar un método que crea nuevas entidades dependientes de otra?
a)
Validar que la entidad padre exista antes de insertar la hija
b)
Insertar primero la hija y vincular después la clave padre
c)
Reducir la transacción a una única operación
d)
Generar identificadores temporales sin restricción
63.
¿Qué principio se aplica al mostrar elementos de un usuario concreto?
a)
Filtrar datos mediante parámetros que dependan de la identidad del usuario
b)
Duplicar información en memoria para acelerar el filtrado
c)
Combinar tablas no relacionadas para obtener un subconjunto amplio
d)
Ordenar los registros para evitar resultados inconsistentes
64.
¿Qué riesgo surge si un método de acceso no controla excepciones SQL?
a)
Interrumpir el flujo de la aplicación sin posibilidad de recuperación
b)
Descartar automáticamente los datos afectados
c)
Generar copias en memoria de tablas completas
d)
Alterar el esquema de la base de datos
65.
¿Qué supone modificar un registro basado en su identificador único?
a)
Localizar exactamente el registro afectado sin ambigüedad
b)
Validar la tabla completa para evitar conflictos
c)
Eliminar automáticamente dependencias asociadas
d)
Aplicar recálculo de claves primarias
66.
¿Qué define la consistencia lógica en un CRUD de entidades?
a)
Que cada operación mantenga la integridad de vínculos y restricciones
b)
Que las operaciones se ejecuten en orden alfabético
c)
Que todas las entidades tengan la misma cantidad de atributos
d)
Que las claves primarias puedan modificarse libremente
67.
¿Qué consideración es clave al componer objetos que requieren información de varias tablas?
a)
Unir los resultados mediante consultas que respeten las relaciones establecidas
b)
Crear objetos vacíos antes de conocer los datos
c)
Ignorar columnas que dependan de claves externas
d)
Reducir las consultas a una sola tabla
68.
¿Qué garantiza la parametrización en consultas de filtrado?
a)
Evitar que los valores de entrada modifiquen la estructura del SQL
b)
Duplicar resultados para mejorar precisión
c)
Ordenar las filas sin intervención del motor
d)
Sustituir automáticamente valores nulos
69.
¿Qué debe cumplir un método que elimina entidades asociadas a un usuario específico?
a)
Aplicar un filtro que incluya la referencia al usuario vinculado
b)
Eliminar primero las entidades hijas sin comprobación
c)
Ignorar el identificador del usuario y filtrar luego en memoria
d)
Recuperar toda la tabla antes de eliminar
70.
¿Qué exige la descomposición de un objeto en una operación de inserción?
a)
Traducir cada atributo a un parámetro equivalente en la sentencia preparada
b)
Generar claves externas antes de conocer los datos
c)
Crear tablas provisionales durante la operación
d)
Convertir todos los atributos en cadenas de texto
71.

¿Qué función cumple el método next() en un ResultSet?

a)

Avanzar el cursor a la siguiente fila del resultado

b)

Verificar si la consulta está correctamente parametrizada

c)

Avanzar hasta el siguiente parametro deseado

d)

Ninguna es correcta

72.

¿Qué devuelve next() al recorrer un ResultSet?

a)

true si existe una fila siguiente, false si no

b)

El número total de filas recuperadas

c)

El valor de la columna actual

d)

Una colección con todas las filas devuelva por la consulta realizada

73.

¿Para qué sirven los placeholders (?) en un PreparedStatement?

a)

Para separar los valores de usuario del código SQL

b)

Para remalcar la diferencia entre variable y sentencia

c)

Para obtener todos los datos en formato String

d)

No sirve

74.

¿Qué ocurre al asignar valores a un placeholder mediante setString() o setInt()?

a)

El valor se envía como dato, no como código ejecutable

b)

La consulta se ejecuta inmediatamente

c)

Se genera un índice temporal para agilizar la consulta

d)

El valor se envía como código ejecutable en lugar de enviarse como un dato

75.

¿Por qué es habitual que las clases de dominio incluyan un constructor vacío?

a)

Porque puede ser necesario instanciar objetos antes de asignar atributos

b)

Porque es lo que permitira admitir valores auto_increment de las claves primarias de las BD

c)

Porque se lanzará un error si no existe

d)

Todas son correctas

76.

¿Qué ventaja aporta un constructor sin parámetros en el mapeo objeto–relacional?

a)

Permitir crear el objeto y luego rellenarlo con datos procedentes de una consulta

b)

Garantizar que la clase tenga siempre valores por defecto válidos

c)

Forzar la creación de índices asociados a la clase

d)

Evitar que existan varios constructores sobrecargados

77.

¿Qué consecuencia tiene reutilizar el mismo PreparedStatement con distintos parámetros?

a)

Se mantiene la sentencia compilada mejorando el rendimiento

b)

Se produce un cierre automático del cursor

c)

Se pierde la capacidad de ejecutar transacciones

d)

Se reduce el tamaño del ResultSet

78.

¿Por qué los placeholders reducen significativamente el riesgo de inyección SQL?

a)

Porque el motor recibe los valores ya tipados y nunca los concatena a la sentencia SQL

b)

Porque bloquean caracteres especiales

c)

Porque encriptan automáticamente la consulta

d)

Porque fuerzan una transacción por parámetro

79.

¿Por qué es mala práctica capturar SQLException sin registrarla?

a)

Porque oculta información necesaria para diagnosticar problemas críticos

b)

Porque impide ejecutar consultas preparadas

c)

Porque obliga a cerrar la conexión

d)

Porque elimina automáticamente el ResultSet

80.

¿Qué relación existe entre el constructor vacío y el patrón DAO?

a)

Facilita la creación de objetos a partir de ResultSet sin requerir lógica adicional

b)

Obliga a declarar todos los atributos como públicos

c)

Elimina la capa de servicio

d)

Reemplaza la necesidad de prepared statements