116 lines
8.1 KiB
JSON
116 lines
8.1 KiB
JSON
[{
|
|
"origin": "Gemini 3 Flash",
|
|
"sources": [
|
|
"https://www.boe.es/buscar/act.php?id=BOE-A-1985-5392",
|
|
"https://learn.microsoft.com/es-es/dotnet/csharp/programming-guide/concepts/collections",
|
|
"https://www.ccn-cert.cni.es/ens.html"
|
|
],
|
|
"title": "Especialización TIC - Refactorizado KyMAN",
|
|
"group": "especializacion_tic_014",
|
|
"queries": [{
|
|
"question": "¿Qué {rand:garantiza|asegura} la propiedad {rand:A (Atomicidad)|de Atomicidad} en las transacciones de {rand:SQL|una base de datos}?",
|
|
"rights": [
|
|
"Que si la transacción tiene {rand:varias operaciones|múltiples pasos}, se ejecutan {rand:todos con éxito o ninguno|completamente o nada}."
|
|
],
|
|
"wrongs": [
|
|
"Que los datos se {rand:guarden físicamente|almacenen} en unidades {rand:atómicas de 4KB|indivisibles de sector} en el disco duro.",
|
|
"La capacidad de {rand:atender a miles de usuarios|gestionar la concurrencia} de forma simultánea sin generar {rand:bloqueos|deadlocks}.",
|
|
"Que los datos {rand:perduren en el tiempo|sean persistentes} incluso ante un fallo {rand:catastrófico de energía|de hardware} tras el commit."
|
|
],
|
|
"wrong_explanations": [
|
|
"La atomicidad es un concepto lógico de ejecución, no una medida física de almacenamiento en el hardware.",
|
|
"Esa descripción se acerca más al concepto de Aislamiento (Isolation) o a la gestión de concurrencia del motor.",
|
|
"Eso es la Durabilidad (D), que garantiza que el commit sea permanente."
|
|
]
|
|
}, {
|
|
"question": "¿Cuál es el {rand:primer paso|comienzo} en la jerarquía externa de {rand:resolución DNS|consulta de nombres} si el registro no está en caché?",
|
|
"rights": [
|
|
"Consultar a los {rand:servidores Raíz|Root Servers}, representados por un punto {rand:'.'|final}."
|
|
],
|
|
"wrongs": [
|
|
"Preguntar al servidor de {rand:Nombres Autoritativo|Autoridad} del dominio específico {rand:ferrol.es|gob.es}.",
|
|
"Consultar al servidor {rand:TLD (Top Level Domain)|de Dominio de Nivel Superior} encargado de los {rand:extensión .es|.gal}.",
|
|
"Contactar con el {rand:servidor DNS de Google|8.8.8.8} por ser el {rand:estándar mundial|resolutor primario} de internet."
|
|
],
|
|
"wrong_explanations": [
|
|
"El autoritativo es el último paso de la cadena, no el primero.",
|
|
"El TLD es el segundo paso; antes se debe saber qué TLD es el correcto mediante los Root Servers.",
|
|
"El 8.8.8.8 es un resolutor recursivo (un intermediario), pero la jerarquía externa de la red empieza en la raíz."
|
|
]
|
|
}, {
|
|
"question": "En municipios de {rand:régimen común|población > 5.000}, ¿cuál es el {rand:límite máximo|tope} de concejales en la {rand:Junta de Gobierno Local|JGL}?",
|
|
"rights": [
|
|
"Un número no superior al {rand:tercio|33% aproximadamente} del número legal de miembros del Pleno."
|
|
],
|
|
"wrongs": [
|
|
"No existe {rand:límite legal|restricción}, el Alcalde puede {rand:nombrar a todos|incluir a todo el grupo}.",
|
|
"Exactamente la {rand:mitad más uno|mayoría absoluta} de los miembros que componen el Pleno municipal.",
|
|
"Un {rand:máximo fijo de 5|tope de cinco} concejales, {rand:independientemente|sin importar} el tamaño de la corporación."
|
|
],
|
|
"wrong_explanations": [
|
|
"La LRBRL impone límites claros para mantener la separación de funciones y el control político.",
|
|
"La mitad más uno es el quórum de mayoría absoluta, no el límite de miembros de la Junta de Gobierno.",
|
|
"El límite es proporcional al tamaño del Pleno (un tercio), no un número fijo de 5."
|
|
]
|
|
}, {
|
|
"question": "Para {rand:iterar|recorrer} una colección en C# {rand:sin modificarla|solo lectura}, ¿qué interfaz es la {rand:más eficiente|recomendada}?",
|
|
"rights": [
|
|
"{rand:IEnumerable<T>|la interfaz IEnumerable}."
|
|
],
|
|
"wrongs": [
|
|
"IList<T>, que permite {rand:acceso indexado|manipulación completa} y modificación de elementos.",
|
|
"ICollection<T>, que incluye métodos para {rand:añadir o eliminar|gestionar el conteo} de objetos.",
|
|
"ArrayList, por ser el {rand:estándar de colecciones|modelo original} de las primeras versiones de .NET."
|
|
],
|
|
"wrong_explanations": [
|
|
"IList es demasiado \"pesada\" si solo vas a leer, ya que obliga a implementar gestión de índices.",
|
|
"ICollection es útil para saber el tamaño (Count), pero si solo vas a iterar, IEnumerable es más abstracta y flexible.",
|
|
"ArrayList no es genérica y está obsoleta (deprecated) frente a las colecciones tipadas de System.Collections.Generic."
|
|
]
|
|
}, {
|
|
"question": "¿Qué {rand:criterio principal|método} define la {rand:Categoría de seguridad|clase del sistema} (Básica, Media, Alta) en el ENS?",
|
|
"rights": [
|
|
"El {rand:nivel más alto|valor máximo} alcanzado en cualquiera de las {rand:5 dimensiones|dimensiones de seguridad}."
|
|
],
|
|
"wrongs": [
|
|
"La {rand:decisión discrecional|voluntad} del Alcalde tras consultar con el {rand:Responsable de Seguridad|CISO}.",
|
|
"El {rand:volumen de datos|tamaño de la base de datos} medido en {rand:Gigabytes|número de registros}.",
|
|
"La {rand:antigüedad del hardware|obsolescencia tecnológica} de los servidores que alojan el {rand:Padrón|servicio}."
|
|
],
|
|
"wrong_explanations": [
|
|
"La categoría no es política ni discrecional, emana de un análisis técnico de riesgos y dimensiones.",
|
|
"Un sistema con pocos datos pero muy sensibles (ej: testigos protegidos) puede ser Categoría Alta independientemente de su tamaño.",
|
|
"El ENS evalúa la información y el servicio; el hardware es un activo, pero no determina la categoría por sí solo."
|
|
]
|
|
}, {
|
|
"question": "¿Qué {rand:sucede|hace el motor} de SQL Server cuando {rand:detecta un Deadlock|se produce un interbloqueo}?",
|
|
"rights": [
|
|
"El {rand:Lock Monitor|monitor de bloqueos} elige una 'víctima' y le aplica un {rand:Rollback|deshacer}."
|
|
],
|
|
"wrongs": [
|
|
"Se {rand:detienen todos los servicios|apaga la instancia} para evitar la {rand:corrupción de datos|pérdida de integridad}.",
|
|
"Envía una {rand:alerta al administrador|notificación al DBA} para que resuelva el {rand:bloqueo manualmente|conflicto}.",
|
|
"Ejecuta un {rand:COMMIT forzoso|confirmación} de ambas transacciones {rand:al mismo tiempo|en paralelo}."
|
|
],
|
|
"wrong_explanations": [
|
|
"Un deadlock es un error lógico común; apagar el servidor sería una medida desproporcionada y fatal para la disponibilidad.",
|
|
"SQL Server lo resuelve automáticamente en milisegundos; si tuviera que esperar a un humano, el sistema se colapsaría.",
|
|
"No se pueden confirmar ambas porque están bloqueadas mutuamente; una debe morir para que la otra viva."
|
|
]
|
|
}, {
|
|
"question": "En Linux, si un script {rand:bloquea la terminal|está en primer plano}, ¿cómo se {rand:pasa a background|envía a segundo plano}?",
|
|
"rights": [
|
|
"Pulsando {rand:Ctrl + Z|la pausa de proceso} y ejecutando luego el comando {rand:bg|background}."
|
|
],
|
|
"wrongs": [
|
|
"Pulsando {rand:Ctrl + C|interrupción} y escribiendo {rand:fg|foreground} para recuperar la sesión.",
|
|
"Cerrando la {rand:terminal|consola} y volviendo a {rand:loguearse|entrar} por SSH.",
|
|
"Escribiendo {rand:kill -9|la señal de muerte} seguida del {rand:PID|identificador de proceso}."
|
|
],
|
|
"wrong_explanations": [
|
|
"Ctrl + C mata el proceso (SIGINT); no lo pausa ni lo mueve al fondo.",
|
|
"Cerrar la terminal mataría el proceso (SIGHUP) a menos que uses herramientas como 'screen' o 'nohup'.",
|
|
"Kill -9 es una parada forzosa; el objetivo es que el script siga trabajando, no eliminarlo."
|
|
]
|
|
}]
|
|
}] |