> **📝 SIMULACRO DE EXAMEN: CONTROL 12 + 2 (CONTROL 14 - NIVEL ALTO)**

# Parte I: Régimen Jurídico y Régimen Local

## Pregunta 1 (Tipo Test) - Tema 5 (Ley 39/2015 - Eficacia y Retroactividad)

De acuerdo con el artículo 39 de la Ley 39/2015 del Procedimiento Administrativo Común, los actos de las Administraciones Públicas sujetos al Derecho Administrativo se presumirán válidos y producirán efectos desde la fecha en que se dicten. Sin embargo, ¿en qué condiciones excepcionales prevé la ley que pueda otorgarse **eficacia retroactividad** a un acto administrativo?

- A. Podrá otorgarse eficacia retroactiva de forma discrecional por acuerdo unánime de los portavoces de la Junta de Gobierno Local, siempre que el expediente cuente con una memoria presupuestaria favorable visada por el Interventor municipal.
- B. Dictar actos con eficacia retroactiva está taxativamente prohibido en el ámbito del régimen local, debiendo cualquier subsanación de efectos pasados tramitarse mediante un procedimiento excepcional de revisión de oficio ante el Tribunal Superior de Xustiza de Galicia.
- C. Excepcionalmente, podrá otorgarse eficacia retroactiva a los actos cuando se dicten en sustitución de actos anulados, y también cuando produzcan efectos favorables al interesado, siempre que los supuestos de hecho necesarios ya existieran en la fecha a que se retrotraiga la eficacia y esta no lesione derechos o intereses legítimos de otras personas.
- D. El principio de retroactividad solo es aplicable si el ciudadano demuestra mediante una auditoría técnica que el retraso en la notificación electrónica se debió a una caída crítica de los servidores en la DMZ perimetral del Ayuntamiento.

### Respuesta

Gemini. La Ley 39/2015 sólo me entran el Título I y el Título II. Esto pertenece al Título III, por lo que no lo voy a responder.

## Pregunta 2 (Desarrollo Corto) - Tema 4 (Ley 7/1985 - Bienes de las Entidades Locales)

Explique brevemente la diferencia jurídica y de destino fundamental entre los **Bienes de Dominio Público (Demaniales)** y los **Bienes Patrimoniales** de un Ayuntamiento. Asimismo, enumere cuáles son las **tres notas características e irrenunciables** que la Constitución Española y la Ley de Bases atribuyen de forma estricta a los bienes de dominio público para protegerlos de la especulación.

### Respuesta

Gemini. En esta Ley sólo me entran los Títulos II y el Título X, por lo que tampoco la responderé.

# Parte II: Desarrollo y Estructura de Datos (.NET y SQL)

## Pregunta 3 (Tipo Test) - Tema 11 y 13 (Desarrollo .NET - IEnumerable vs IQueryable)

Al desarrollar aplicaciones web para el Ayuntamiento utilizando Entity Framework Core y LINQ para consultar datos de la base de datos municipal, ¿cuál es la diferencia técnica y crítica en el rendimiento entre devolver una colección tipada como `IEnumerable<T>` frente a devolverla como `IQueryable<T>`?

- A. Ambos tipos compilan de forma idéntica en el código intermedio (IL), pero `IQueryable` se almacena exclusivamente en el montón de ejecución (*heap*) y `IEnumerable` fuerza una recolección inmediata del Garbage Collector.
- B. `IEnumerable<T>` ejecuta la consulta del lado del proveedor de datos (Servidor SQL) traduciendo los filtros dinámicamente, mientras que `IQueryable<T>` realiza un volcado binario completo de la tabla en la memoria RAM del servidor web frontend.
- C. `IEnumerable<T>` es ideal para consultar colecciones de datos en memoria, ya que si aplicamos un filtro (como un `.Where()`), este se ejecuta del lado del cliente tras haber traído todos los registros; mientras que `IQueryable<T>` evalúa los filtros del lado del servidor de base de datos utilizando árboles de expresiones (*Expression Trees*), traduciendo todo el árbol en una única sentencia SQL eficiente antes de viajar por la red.
- D. El uso de `IEnumerable<T>` está prohibido por las directrices de optimización de ITIL si la base de datos de recaudación cuenta con índices agrupados (*Clustered*) modificados por un trigger.

### Respuesta

Pues por lógica diría que la **C** pues ambos tienen las consultas `Linq` pero creo que su diferencia principal como Interfaces cara un significado final es que `IEnumerable` lo gestiona en memoria y `IQueyable` sobre el modor de datos correspondiente.

### Corrección

- **Tu respuesta**: **C**.
- **Feedback del Profesor**: Al mentón. Tu intuición y lógica de persistencia son perfectas.
    - `IEnumerable<T>` es LINQ to Objects: se trae los datos a la memoria de la aplicación y luego los filtra en local.
    - `IQueryable<T>` es LINQ to Entities: no trae nada de primeras; analiza los filtros que le pones, genera un **Árbol de Expresiones** y construye una consulta SQL nativa para que el servidor de base de datos haga todo el trabajo pesado y devuelva solo lo justo por la red.

## Pregunta 4 (Desarrollo Corto / Práctico) - Tema 15 y 16 (SQL Server - Tablas Temporales vs Variables de Tabla)

Imagina que estás optimizando un procedimiento almacenado complejo en SQL Server para el Concello. Explique brevemente la diferencia técnica e interna entre hacer uso de una **Tabla Temporal Local** (`#Tabla`) frente a hacer uso de una **Variable de Tabla** (`@Tabla`). Detalle en su respuesta cómo se comporta cada una respecto al mecanismo de transacciones del motor (`ROLLBACK`) y a la generación de estadísticas para el optimizador de consultas.

### Respuesta

Esta la voy a responder a ciegas pues por mi experiencia, las tablas temporales son tablas que puedes generar y existen dentro del marco de la sesión, aunque sea sobre llamadas diferentes, y existe como una tabla dentro de `tempdb`; mientras que una variable de tabla es una variable que mapea unos datos de salida que puedes estructurar en la misma y sólo existe en la ejecución actual, en cuanto se vuelve a llamar ya no existe. Las tablas variables son más complejas en su construcción pero también son más rápidas a la hora de operar con los datos pues trabajan sobre la RAM mientras que las temporales trabajan sobre disco, aunque normalmente se hace una práctica de poner sobre SSD los `tempdb`, pero no es como trabajar en RAM.

### Corrección

- **Tu respuesta**: Dijiste que las variables `@Tabla` trabajan en RAM y las temporales `#Tabla` en disco (`tempdb`).
- **Feedback del Profesor**: Aquí vengo con el mono de Administrador de Bases de Datos (DBA) para romperte un **mito gigantesco** que el 90% de los desarrolladores da por bueno, pero que en los exámenes del Grupo A de informática te suspende al instante.

**⚠️ El gran mito de SQL Server:**

**Falso**: Las variables de tabla (`@Tabla`) no son solo en RAM. **Ambas estructuras (tanto `#Tabla` como `@Tabla`) se crean y residen físicamente en la base de datos `tempdb`**. Si los datos crecen, ambas se escribirán en el disco (o SSD) de `tempdb`. No hay una diferencia de rendimiento por el "soporte físico" de la memoria.

Lo que busca el tribunal son las diferencias reales de comportamiento interno, especialmente las dos que te pedía el enunciado:

| Característica	| Tabla Temporal (`#Tabla`)	| Variable de Tabla (`@Tabla`)
|-------------------|---------------------------|-----------------------------------------------
| Ámbito (Scope)	| Toda la sesión (o procedimiento).	| Solo el lote (*batch*) actual de ejecución.
| Estadísticas	| **SÍ genera estadísticas**. El optimizador sabe cuántas filas hay y elige el mejor plan de ejecución. Ideal para miles de filas.	| **NO genera estadísticas**. El optimizador asume a ciegas que tiene **1 sola fila**. Si le metes 100.000 registros, la consulta irá a pedales.
| Mecanismo de Transacciones	| Se ve afectada por los `ROLLBACK`. Si la transacción falla, los inserts en `#Tabla` se deshacen.	| **IGNORA** los `ROLLBACK`. Es una variable; si la transacción falla y se deshace, los datos que metiste dentro de `@Tabla` se quedan ahí guardados.

Apúntate a fuego este cuadro de diferencias (Ámbito, Estadísticas y Transacciones), porque es una de las preguntas técnicas de bases de datos más repetidas en los segundos ejercicios de desarrollo de sistemas.

# Parte III: Protección de Datos en la Administración Local

## Pregunta 5 (Tipo Test) - Tema 30 (RGPD - Evaluación de Impacto - EIPD)

Según el artículo 35 del Reglamento General de Protección de Datos (RGPD), las organizaciones deben realizar una **Evaluación de Impacto relativa a la Protección de Datos (EIPD)** antes del tratamiento. En el ámbito de un Ayuntamiento como el de Ferrol, ¿en cuál de los siguientes escenarios reales sería **legal y obligatoriamente imperativo realizar dicha EIPD**?

- A. Únicamente cuando el departamento de informática decida renovar las licencias anuales del paquete ofimático o cambiar el software del gestor de correo electrónico de los concejales.
- B. Cuando sea probable que un tipo de tratamiento, en particular si utiliza nuevas tecnologías, por su naturaleza, alcance, contexto o fines, entrañe un alto riesgo para los derechos y libertades de las personas físicas (como la implantación a gran escala de sistemas de reconocimiento facial/biométrico en los accesos de los edificios municipales o videovigilancia inteligente en las vías públicas).
- C. El RGPD exime de forma automática a los Ayuntamientos de realizar evaluaciones de impacto debido al principio de presunción de veracidad y legalidad de las Administraciones Públicas locales.
- D. La EIPD solo es obligatoria si el Ayuntamiento tramita un expediente sancionador urbanístico cuya cuantía económica total supere el 10% del presupuesto consolidado de la entidad.

### Respuesta

Gemini. El tema 30 es de Hardware, no de RGPD. El RGDP entra en el tema 8 y entra sólo los principios y los derechos de las personas.