First 50 of 200 questions. Each one lists the choices, the correct answer, and an explanation. The checker at the top of this page saves progress in this browser when it is available.
Continue in the practice tool above to load more questions, 50 at a time.
Question 1Ingeniería de software
En el modelo de proceso en cascada, ¿cuál es la principal limitación que motivó la aparición de modelos iterativos como el espiral?
- La imposibilidad de documentar el sistema antes de la entrega final
- La ausencia de actividades de verificación dentro del ciclo de vida
- La dificultad para incorporar cambios en requisitos una vez iniciada la fase de diseño Correct answer.
- La dependencia excesiva de herramientas de integración continua
Explanation
El modelo en cascada asume que los requisitos son estables y se congelan al finalizar el análisis, por lo que cualquier cambio posterior obliga a retroceder fases con alto costo. Los modelos iterativos surgieron para gestionar el riesgo y admitir refinamiento progresivo de requisitos.
Question 2Ingeniería de software
Un equipo adopta Scrum y necesita designar al responsable de maximizar el valor del producto y ordenar el product backlog. ¿Qué rol cumple esa función?
- El Product Owner Correct answer.
- El Development Team en conjunto
- El Scrum Master
- El stakeholder patrocinador
Explanation
En Scrum el Product Owner es el único responsable de gestionar el product backlog y maximizar el valor entregado, incluyendo su ordenamiento. El Scrum Master facilita el proceso y elimina impedimentos, pero no decide prioridades de negocio.
Question 3Ingeniería de software
¿Qué técnica de elicitación resulta más adecuada para observar el flujo real de trabajo de un operador y detectar tareas no documentadas?
- Encuesta cerrada a gran escala
- Observación directa en el puesto de trabajo Correct answer.
- Revisión de manuales de usuario existentes
- Tormenta de ideas con el área de sistemas
Explanation
La observación directa permite captar el trabajo real, incluidas excepciones y pasos informales que el usuario no verbaliza. Las técnicas declarativas como encuestas o manuales reflejan el proceso idealizado, no el efectivo.
Question 4Ingeniería de software
En un diagrama de casos de uso UML, ¿qué representa la relación «include» entre dos casos de uso?
- Que ambos casos comparten el mismo actor primario
- Que el caso incluido puede ejecutarse de forma opcional según el actor
- Que el caso base incorpora obligatoriamente el comportamiento del caso incluido Correct answer.
- Que el caso incluido es una especialización del caso base
Explanation
«include» modela comportamiento común obligatorio: cada ejecución del caso base ejecuta siempre el caso incluido. La variación opcional se modela con «extend», no con «include».
Question 5Ingeniería de software
Se requiere que un sistema de facturación pueda cambiar de proveedor de firma electrónica sin recompilar los módulos de negocio. ¿Qué principio de diseño orientado a objetos guía esa decisión?
- Herencia múltiple para reutilizar el código del proveedor actual
- Acoplamiento fuerte entre módulos para mejorar el rendimiento
- Inversión de dependencias: depender de abstracciones y no de implementaciones concretas Correct answer.
- Encapsulamiento estricto de todos los atributos como públicos
Explanation
El principio de inversión de dependencias indica que los módulos de alto nivel deben depender de interfaces abstractas, de modo que el proveedor concreto sea sustituible. Así el cambio de firma electrónica se resuelve con una nueva implementación de la interfaz.
Question 6Ingeniería de software
¿Qué patrón de diseño conviene para garantizar una única instancia de un gestor de configuración compartido en toda la aplicación?
- Observer
- Adapter
- Singleton Correct answer.
- Decorator
Explanation
Singleton restringe la instanciación a un solo objeto y ofrece un punto de acceso global, lo que encaja con un gestor de configuración único. Observer, Adapter y Decorator resuelven problemas de notificación, compatibilidad de interfaces y extensión de comportamiento.
Question 7Ingeniería de software
Un método debe validar que un campo de edad esté entre 18 y 99 años. ¿Qué partición de equivalencia es la más adecuada para las pruebas?
- Todos los enteros del rango probados uno por uno
- Un valor menor a 18, uno entre 18 y 99, y uno mayor a 99 Correct answer.
- Solo el valor 18 y el valor 99
- Únicamente valores negativos
Explanation
Las particiones de equivalencia agrupan entradas que el sistema trata igual; aquí hay tres clases: inválida por debajo, válida en el rango e inválida por encima. Un representante de cada clase ofrece cobertura razonable sin probar cada entero.
Question 8Ingeniería de software
En una prueba unitaria automatizada, ¿cuál es la función de un doble de prueba tipo stub?
- Medir el rendimiento del sistema bajo carga
- Verificar el orden exacto de las llamadas realizadas al colaborador
- Ejecutar la base de datos real para mayor fidelidad
- Sustituir un colaborador devolviendo respuestas controladas y predefinidas Correct answer.
Explanation
Un stub reemplaza a un colaborador y devuelve valores fijos para aislar la unidad bajo prueba. La verificación de interacciones corresponde a los mocks, y la fidelidad de base de datos o el rendimiento son objetivos de otros tipos de prueba.
Question 9Ingeniería de software
¿Qué métrica de calidad de código mide el número de caminos independientes en el flujo de control de un método?
- Complejidad ciclomática Correct answer.
- Acoplamiento aferente
- Profundidad de herencia
- Índice de mantenibilidad
Explanation
La complejidad ciclomática, calculada como aristas menos nodos más dos en el grafo de flujo, equivale al número de caminos linealmente independientes. Por ello orienta el número mínimo de casos de prueba de caja blanca.
Question 10Ingeniería de software
En Git, un desarrollador necesita guardar temporalmente cambios sin confirmarlos para poder cambiar de rama. ¿Qué comando cumple ese propósito?
- git merge
- git tag
- git rebase
- git stash Correct answer.
Explanation
git stash almacena los cambios del directorio de trabajo en una pila temporal y deja el árbol limpio para cambiar de contexto. Luego se recuperan con git stash pop o apply.
Question 11Ingeniería de software
En una estrategia de ramificación con integración continua, ¿qué práctica reduce el riesgo de conflictos de fusión tardíos?
- Ejecutar la compilación solo antes de cada liberación
- Integrar a la rama principal con frecuencia mediante ramas cortas Correct answer.
- Mantener ramas de funcionalidad durante varios meses
- Prohibir las revisiones de código en las fusiones
Explanation
Ramas de vida corta e integraciones frecuentes disminuyen la divergencia entre líneas de desarrollo y por tanto el costo de resolver conflictos. La integración continua además ejecuta compilación y pruebas en cada integración.
Question 12Ingeniería de software
En una arquitectura de microservicios, ¿qué patrón evita que una caída de un servicio dependiente sature al llamador con reintentos infinitos?
- Sidecar
- Circuit Breaker Correct answer.
- Service Discovery
- API Gateway
Explanation
Circuit Breaker abre el circuito tras fallos repetidos y deja de invocar al servicio degradado, permitiendo recuperación y evitando fallos en cascada. Service Discovery, API Gateway y Sidecar resuelven localización, enrutamiento y preocupaciones transversales, respectivamente.
Question 13Ingeniería de software
¿Qué estilo arquitectónico se caracteriza por componentes que publican y consumen eventos de forma asíncrona a través de un broker?
- Arquitectura dirigida por eventos Correct answer.
- Arquitectura monolítica modular
- Arquitectura en capas
- Arquitectura cliente-servidor de dos capas
Explanation
La arquitectura dirigida por eventos desacopla productores y consumidores mediante eventos asíncronos distribuidos por un broker. La arquitectura en capas organiza el sistema en niveles de abstracción con llamadas síncronas.
Question 14Ingeniería de software
En SQL, una tabla Pedidos referencia Clientes mediante una clave foránea. ¿Qué efecto tiene declarar la clave foránea con ON DELETE CASCADE?
- Duplica los pedidos del cliente antes de eliminarlo
- Convierte en nula la clave foránea de los pedidos al borrar el cliente
- Elimina automáticamente los pedidos asociados al eliminar el cliente Correct answer.
- Impide eliminar cualquier cliente que tenga pedidos
Explanation
ON DELETE CASCADE propaga la eliminación al registro hijo, de modo que al borrar el cliente se eliminan sus pedidos. La opción de poner a nulo corresponde a ON DELETE SET NULL y la restricción a ON DELETE RESTRICT.
Question 15Ingeniería de software
Una consulta sobre una tabla de millones de filas filtra por fecha y ordena por cliente, y resulta lenta. ¿Qué acción mejora más directamente su rendimiento sin cambiar el esquema lógico?
- Aumentar el tamaño de los mensajes de error
- Eliminar las restricciones de integridad referencial
- Crear un índice compuesto adecuado a las columnas de filtro y orden Correct answer.
- Convertir todas las columnas a tipo texto
Explanation
Un índice compuesto que cubra las columnas usadas en filtrado y ordenación reduce el escaneo completo y evita ordenamientos costosos. Los índices deben diseñarse según el patrón de consulta real.
Question 16Ingeniería de software
En la normalización de bases de datos relacionales, ¿qué anomalía elimina específicamente la tercera forma normal respecto de la segunda?
- La existencia de grupos repetidos en una misma columna
- La ausencia de una clave primaria declarada
- La presencia de valores nulos en columnas opcionales
- La dependencia transitiva de un atributo no clave respecto de la clave Correct answer.
Explanation
La tercera forma normal exige que ningún atributo no clave dependa transitivamente de la clave a través de otro atributo no clave. La eliminación de grupos repetidos corresponde a la primera forma normal.
Question 17Ingeniería de software
En un repositorio Git compartido, un desarrollador hizo push de un commit con credenciales expuestas. ¿Cuál es la primera medida correcta?
- Eliminar el archivo solo en el próximo commit
- Rotar o revocar las credenciales expuestas de inmediato Correct answer.
- Ignorar el hecho si el repositorio es privado
- Reescribir el historial sin notificar al equipo
Explanation
Una vez publicado un secreto debe considerarse comprometido, por lo que la prioridad es revocarlo o rotarlo. Limpiar el historial es útil después, pero no elimina el riesgo ya materializado.
Question 18Ingeniería de software
¿Qué principio de seguridad establece que cada usuario debe tener solo los permisos necesarios para realizar su trabajo?
- Defensa en profundidad
- Separación de funciones
- Mínimo privilegio Correct answer.
- Seguridad por oscuridad
Explanation
El principio de mínimo privilegio limita los permisos al conjunto estrictamente necesario para la tarea. La defensa en profundidad superpone controles y la separación de funciones divide responsabilidades críticas.
Question 19Ingeniería de software
Un formulario web refleja directamente en la página el parámetro de URL sin sanearlo. ¿Qué vulnerabilidad se produce?
- Inyección SQL ciega
- Fijación de sesión
- Desbordamiento de búfer
- Cross-Site Scripting reflejado Correct answer.
Explanation
Insertar entrada del usuario sin codificar en la respuesta HTML permite ejecutar script en el navegador de la víctima, lo que constituye XSS reflejado. La mitigación consiste en codificar la salida según el contexto.
Question 20Ingeniería de software
En el contexto de DevOps, ¿qué describe mejor la infraestructura como código?
- Instalar el software de forma manual en cada máquina
- Documentar manualmente los servidores en hojas de cálculo
- Gestionar servidores y redes mediante archivos de definición versionados y automatizados Correct answer.
- Contratar más servidores físicos para cada entorno
Explanation
La infraestructura como código define entornos en archivos declarativos versionados que se aplican automáticamente, lo que aporta reproducibilidad y trazabilidad. Sustituye la configuración manual por procesos idempotentes.
Question 21Ingeniería de software
Un equipo desea desplegar una nueva versión a un subconjunto reducido de usuarios y medir su comportamiento antes de extenderla. ¿Qué técnica de despliegue corresponde?
- Refactorización de código
- Despliegue en cascada
- Despliegue canario Correct answer.
- Compilación estática
Explanation
El despliegue canario libera la nueva versión a un grupo pequeño para observar métricas y revertir rápido si hay problemas. La cascada es un modelo de proceso y la compilación estática o refactorización no son estrategias de liberación.
Question 22Ingeniería de software
¿Cuál es el propósito principal de aplicar refactorización a un código que ya funciona?
- Mejorar su estructura interna sin alterar el comportamiento observable Correct answer.
- Reducir el número de pruebas automatizadas existentes
- Añadir nuevas funcionalidades solicitadas por el cliente
- Cambiar el lenguaje de programación del sistema
Explanation
La refactorización modifica la estructura interna preservando el comportamiento externo, apoyándose en pruebas que garanticen esa equivalencia. Añadir funcionalidad es una actividad distinta de la refactorización.
Question 23Ingeniería de software
Un sistema debe procesar pedidos y, ante fallos transitorios de un servicio externo, reintentar con espera creciente. ¿Qué combinación de patrones es más apropiada?
- Event Sourcing junto con CQRS
- Lazy Loading junto con Paginación
- Cache-aside junto con Sharding
- Reintento con retroceso exponencial junto con Circuit Breaker Correct answer.
Explanation
El retroceso exponencial espacia los reintentos para no saturar al servicio degradado, y el Circuit Breaker corta las llamadas cuando los fallos persisten. Juntos manejan fallos transitorios sin provocar tormentas de reintentos.
Question 24Ingeniería de software
En un pipeline de entrega, ¿qué garantiza una compuerta de calidad antes de promover un artefacto a producción?
- Que se omitan las pruebas de regresión para acelerar
- Que el artefacto se compile en la máquina del desarrollador
- Que se hayan superado las pruebas y verificaciones definidas para ese entorno Correct answer.
- Que el despliegue se realice manualmente sin registro
Explanation
Una compuerta de calidad evalúa resultados de pruebas y controles definidos y bloquea la promoción si no se cumplen. Esto preserva la integridad del artefacto a lo largo de los entornos.
Question 25Ingeniería de software
Una aplicación monolítica crece y distintos equipos necesitan desplegar con frecuencia e independencia. ¿Qué criterio de análisis sustenta mejor la decisión de dividirla en servicios?
- Dividir el código en partes de igual número de líneas
- Asignar un servicio a cada tabla de la base de datos
- Separar por capas técnicas como controladores y repositorios
- Identificar límites de dominio con bajo acoplamiento y alta cohesión funcional Correct answer.
Explanation
La descomposición debe seguir límites de dominio que agrupen funcionalidad cohesiva y minimicen dependencias entre servicios, según principios como los bounded contexts. Dividir por capas técnicas o por tablas genera acoplamiento y servicios anémicos.
Question 26Ingeniería de software
En un proyecto de ingeniería de software se desea comparar la cantidad de defectos detectados por cada 1000 líneas de código entre dos módulos. ¿Qué métrica de calidad corresponde a ese cálculo?
- Cobertura de pruebas de rama
- Índice de mantenibilidad
- Densidad de defectos Correct answer.
- Complejidad ciclomática promedio
Explanation
La densidad de defectos normaliza el número de fallos encontrados respecto al tamaño del código, lo que permite comparar módulos de distinto volumen. Es la métrica que se expresa como defectos por KLOC y sirve para priorizar revisiones.
Question 27Ingeniería de software
Un equipo adopta Scrum y necesita un artefacto que liste los elementos pendientes priorizados del producto. ¿Qué artefacto cumple esa función?
- El product backlog Correct answer.
- El sprint backlog
- El incremento
- La definición de terminado
Explanation
El product backlog es la lista ordenada y viva de todo lo que podría necesitar el producto, gestionada por el product owner. De ahí se seleccionan elementos para cada sprint, que pasan al sprint backlog.
Question 28Ingeniería de software
En un diagrama de clases UML, una clase A necesita usar temporalmente a una clase B como parámetro de uno de sus métodos, sin almacenarla como atributo. ¿Qué tipo de relación representa mejor ese vínculo?
- Agregación
- Herencia
- Dependencia Correct answer.
- Composición
Explanation
La dependencia indica que un elemento utiliza a otro de forma puntual, por ejemplo como parámetro o variable local, sin mantener una referencia persistente. Se dibuja con una línea discontinua y flecha abierta hacia la clase utilizada.
Question 29Ingeniería de software
Un analista debe especificar el comportamiento de un módulo de facturación ante distintas combinaciones de tipo de cliente, moneda y aplicación de descuento. ¿Qué técnica de diseño de casos de prueba cubre sistemáticamente esas combinaciones?
- Análisis de valores límite sobre un solo campo
- Pruebas de regresión selectivas
- Tabla de decisión Correct answer.
- Pruebas de caja blanca basadas en flujo de datos
Explanation
La tabla de decisión enumera condiciones y las acciones esperadas para cada combinación, lo que la hace idónea cuando varias condiciones interactúan. Cada columna de la tabla se convierte en al menos un caso de prueba verificable.
Question 30Ingeniería de software
Un servicio debe exponer una operación de consulta de saldo y otra de transferencia; la segunda requiere idempotencia para tolerar reintentos del cliente. ¿Qué estilo de interfaz describe mejor esta API sobre HTTP?
- GraphQL con una única mutación genérica
- REST con identificadores de recurso y método POST para la transferencia Correct answer.
- RPC binario con nombres de método en la ruta
- Colas de mensajes con consumidores dedicados
Explanation
REST modela los recursos mediante identificadores estables y usa los métodos HTTP según su semántica; para una transferencia se emplea POST con una clave de idempotencia en la cabecera o el cuerpo. Así el reintento puede detectarse y no duplicar la operación.
Question 31Ingeniería de software
En un repositorio compartido, dos ramas modifican las mismas líneas de un archivo y la fusión produce conflictos. ¿Qué práctica de control de versiones reduce la probabilidad de que esto ocurra?
- Reescribir el historial de la rama principal antes de cada fusión
- Deshabilitar la fusión automática y resolver todo manualmente
- Integrar ramas pequeñas con frecuencia y mantenerlas actualizadas con la rama principal Correct answer.
- Trabajar en ramas de larga duración y fusionar solo al final del proyecto
Explanation
Las ramas cortas y sincronizadas con la principal disminuyen el tiempo en que dos líneas de trabajo divergen sobre el mismo código. Integrar pronto expone los cambios ajenos y reduce el volumen de conflictos.
Question 32Ingeniería de software
Un equipo migra una aplicación monolítica a servicios y necesita que cada servicio publique cambios de estado que otros consuman sin acoplarse a su disponibilidad. ¿Qué mecanismo de integración es más adecuado?
- Una base de datos compartida entre los servicios
- Llamadas síncronas encadenadas entre todos los servicios
- Un archivo de configuración común con las direcciones de cada servicio
- Un bus de eventos con publicación y suscripción Correct answer.
Explanation
Un bus de eventos desacopla productores y consumidores en el tiempo: el publicador no necesita que el suscriptor esté disponible en el momento del cambio. Esto reduce el acoplamiento y mejora la tolerancia a fallos.
Question 33Ingeniería de software
Un módulo concentra lógica de cálculo de impuestos, acceso a base de datos y generación de reportes. Al aplicar el principio de responsabilidad única, ¿qué resultado se espera?
- Que el módulo tenga una única clase aunque siga realizando las tres tareas
- Que se eliminen las pruebas del módulo para simplificar su mantenimiento
- Que el módulo tenga una sola razón para cambiar y se separe en componentes con una responsabilidad cada uno Correct answer.
- Que todas las responsabilidades se muevan a la capa de presentación
Explanation
El principio de responsabilidad única establece que un módulo debe tener una sola razón para cambiar, es decir, un único actor interesado en su comportamiento. Al separar cálculo, persistencia y reportes, cada componente evoluciona sin arrastrar a los demás.
Question 34Ingeniería de software
Un equipo detecta que su pipeline tarda mucho porque ejecuta todas las pruebas de integración en cada commit. ¿Qué estrategia mantiene la retroalimentación rápida sin perder cobertura antes de producción?
- Ejecutar pruebas rápidas en cada commit y las de integración en etapas posteriores del pipeline Correct answer.
- Ejecutar solo pruebas unitarias en cada commit y omitir las de integración en todas las etapas
- Eliminar la compuerta de calidad para reducir el tiempo total del pipeline
- Aumentar el número de agentes para ejecutar las mismas pruebas en cada commit
Explanation
Separar las pruebas por velocidad permite dar retroalimentación inmediata con las rápidas y reservar las costosas para etapas previas a la promoción. Así se conserva la cobertura sin penalizar cada commit.
Question 35Bases de datos
En el modelo relacional, ¿qué propiedad debe cumplir una relación (tabla) para que el orden de sus filas sea irrelevante y no existan filas duplicadas?
- Tener al menos un índice agrupado sobre la clave primaria
- Poseer una clave foránea que apunte a sí misma
- Ser un conjunto de tuplas, sin orden definido entre ellas Correct answer.
- Ser una lista ordenada de registros con índice primario
Explanation
Una relación se define matemáticamente como un subconjunto del producto cartesiano de dominios, es decir, un conjunto de tuplas. Por ser conjunto, no hay orden entre filas ni duplicados; los SGBD reales relajan esto con SQL pero el modelo teórico parte de esa base.
Question 36Bases de datos
En SQL, ¿qué cláusula permite filtrar filas individuales antes de que se formen los grupos en una consulta con GROUP BY?
- WHERE Correct answer.
- LIMIT
- HAVING
- ORDER BY
Explanation
WHERE se evalúa sobre cada fila de las tablas de origen antes del agrupamiento, por lo que no puede referirse a funciones de agregado. HAVING actúa después de GROUP BY y sí admite agregados.
Question 37Bases de datos
Una tabla Alumno tiene el atributo correo con la restricción UNIQUE. ¿Qué garantiza esa restricción?
- Que el correo no puede ser nulo en ninguna fila
- Que no puede haber dos filas con el mismo valor de correo no nulo Correct answer.
- Que el correo se indexa automáticamente como agrupado
- Que el correo debe ser la clave primaria de la tabla
Explanation
UNIQUE impide valores repetidos en la columna, pero en la mayoría de los SGBD permite varios nulos porque un nulo no es igual a otro nulo. La obligatoriedad de un valor se declara con NOT NULL, no con UNIQUE.
Question 38Bases de datos
¿Cuál es el propósito principal de la tercera forma normal (3FN) en el diseño de esquemas relacionales?
- Garantizar que toda clave foránea tenga índice
- Dividir cada tabla hasta obtener solo dos columnas
- Eliminar dependencias transitivas entre atributos no clave Correct answer.
- Convertir todas las relaciones en jerarquías de herencia
Explanation
La 3FN exige que la relación esté en 2FN y que ningún atributo no primo dependa transitivamente de la clave. Así se evita duplicar información que depende de otro atributo no clave.
Question 39Bases de datos
En el álgebra relacional, ¿qué operación devuelve las tuplas de R que también aparecen en S, con el mismo esquema en ambas?
- Intersección Correct answer.
- Diferencia
- Proyección
- Producto cartesiano
Explanation
La intersección R ∩ S devuelve las tuplas que pertenecen simultáneamente a R y a S, y requiere que ambas relaciones sean compatibles en esquema. La diferencia devuelve solo las de R que no están en S.
Question 40Bases de datos
Un sistema necesita registrar pedidos y sus líneas. Cada pedido tiene varias líneas y cada línea pertenece a un solo pedido. ¿Qué diseño representa mejor esa cardinalidad?
- Una tabla Pedido con una columna repetida por cada línea
- Una tabla Pedido con clave foránea hacia Linea
- Una única tabla con todos los datos sin separar
- Una tabla Linea con clave foránea hacia Pedido Correct answer.
Explanation
La relación uno a muchos se implementa colocando la clave foránea en el lado muchos, es decir, en Linea, que referencia la clave primaria de Pedido. Esto preserva la atomicidad y evita grupos repetidos.
Question 41Bases de datos
¿Qué instrucción de SQL elimina una tabla junto con su definición y todos sus datos de forma permanente?
- TRUNCATE TABLE tabla
- DELETE FROM tabla
- ALTER TABLE tabla DROP COLUMN
- DROP TABLE tabla Correct answer.
Explanation
DROP TABLE borra la estructura y el contenido de la tabla del catálogo del SGBD. DELETE y TRUNCATE vacían filas pero conservan la tabla y su definición.
Question 42Bases de datos
En un SGBD, ¿qué propiedad ACID garantiza que una transacción se ejecute como una unidad indivisible, sin estados intermedios visibles?
- Atomicidad Correct answer.
- Consistencia
- Aislamiento
- Durabilidad
Explanation
La atomicidad asegura que todas las operaciones de la transacción se confirman o se deshacen en conjunto. Si falla una parte, el SGBD revierte todo mediante el registro de transacciones.
Question 43Bases de datos
Se ejecuta SELECT nombre FROM Empleado WHERE salario > 10000 ORDER BY nombre; y la columna salario tiene un índice B-tree. ¿Qué suele hacer el optimizador con esa consulta?
- Recorrer secuencialmente toda la tabla y luego ordenar en memoria
- Ignorar el índice porque la consulta usa ORDER BY
- Crear automáticamente un índice compuesto sobre nombre y salario
- Usar el índice de salario para localizar filas y luego ordenar por nombre Correct answer.
Explanation
El predicado sobre salario es selectivo y puede resolverse con el índice B-tree para localizar las filas que cumplen la condición. Después el motor ordena el resultado por nombre, a menos que exista un índice que ya lo entregue ordenado.
Question 44Bases de datos
En un esquema con tablas Cliente e Inscripcion, se define Inscripcion.id_cliente como clave foránea con ON DELETE CASCADE. ¿Qué ocurre al eliminar un cliente que tiene inscripciones?
- Se elimina solo la primera inscripción asociada
- Se eliminan también las inscripciones asociadas a ese cliente Correct answer.
- La eliminación se rechaza por violar la integridad referencial
- Las inscripciones quedan con id_cliente en nulo
Explanation
ON DELETE CASCADE propaga la eliminación a las filas dependientes que referencian la clave borrada. Sin esa cláusula, la operación se rechazaría por integridad referencial.
Question 45Bases de datos
¿Cuál de estas consultas calcula correctamente el número de pedidos por cliente, incluyendo clientes sin pedidos?
- SELECT c.id, SUM(p.id) FROM Cliente c LEFT JOIN Pedido p ON p.id_cliente=c.id GROUP BY c.id
- SELECT c.id, COUNT(p.id) FROM Cliente c JOIN Pedido p ON p.id_cliente=c.id GROUP BY c.id
- SELECT c.id, COUNT(p.id) FROM Cliente c LEFT JOIN Pedido p ON p.id_cliente=c.id GROUP BY c.id Correct answer.
- SELECT c.id, COUNT(*) FROM Cliente c JOIN Pedido p ON p.id_cliente=c.id GROUP BY c.id
Explanation
El LEFT JOIN conserva todos los clientes y COUNT(p.id) no cuenta los nulos, devolviendo cero para los que no tienen pedidos. Un INNER JOIN los excluiría del resultado.
Question 46Bases de datos
En un modelo entidad-relación, una entidad débil se caracteriza porque:
- No puede participar en relaciones de uno a muchos
- No tiene atributos propios de ningún tipo
- Su clave primaria depende de la clave de otra entidad Correct answer.
- Debe implementarse siempre como tabla separada sin clave
Explanation
Una entidad débil no posee un identificador propio suficiente y se identifica mediante la clave de la entidad fuerte junto con su clave parcial. En el modelo relacional se traduce con una clave foránea que forma parte de su clave primaria.
Question 47Bases de datos
Una transacción T1 lee un valor, T2 lo modifica y confirma, y T1 vuelve a leerlo obteniendo un valor distinto. ¿Qué anomalía de concurrencia se produjo?
- Actualización perdida
- Lectura fantasma
- Lectura no repetible Correct answer.
- Lectura sucia
Explanation
La lectura no repetible ocurre cuando una misma fila cambia entre dos lecturas de la misma transacción debido a una confirmación ajena. La lectura fantasma se refiere a filas nuevas que aparecen en un rango.
Question 48Bases de datos
¿Qué diferencia a un índice agrupado (clustered) de uno no agrupado en la mayoría de los SGBD relacionales?
- El no agrupado no puede usarse para búsquedas por igualdad
- El agrupado determina el orden físico de las filas de la tabla Correct answer.
- El agrupado solo puede crearse sobre columnas de texto
- El no agrupado impide modificar la tabla mientras existe
Explanation
En un índice agrupado las filas de la tabla se almacenan ordenadas según la clave del índice, por lo que solo puede existir uno por tabla. El índice no agrupado guarda una estructura separada con punteros a las filas.
Question 49Bases de datos
En SQL, ¿qué devuelve una subconsulta escalar utilizada en la cláusula SELECT?
- Una tabla temporal que reemplaza a la original
- Un único valor por cada fila de la consulta externa Correct answer.
- Un booleano que indica si la consulta externa tiene filas
- Un conjunto de filas que se añaden al resultado
Explanation
Una subconsulta escalar devuelve exactamente una fila y una columna, y su resultado se evalúa en el contexto de cada fila externa cuando es correlacionada. Si devuelve más de un valor, el SGBD genera un error.
Question 50Bases de datos
Se quiere que una columna id de una tabla se genere automáticamente de forma creciente y sin intervención del usuario. ¿Qué mecanismo es el más adecuado en SQL estándar?
- Una columna con la cláusula IDENTITY o equivalente de secuencia Correct answer.
- Un disparador que consulte MAX(id) en cada inserción
- Una restricción CHECK sobre el valor de id
- Un índice único sobre la columna id
Explanation
Las columnas de identidad o las secuencias generan valores únicos y crecientes de forma gestionada por el motor, sin riesgo de duplicados por concurrencia. Un cálculo con MAX(id) puede producir colisiones entre transacciones simultáneas.