¡Opositores y opositoras de Técnico Auxiliar de Informática del Estado (TAI)! Desde TesIA, sabemos que vuestro objetivo es claro: superar el examen y asegurar esa plaza. Y para conseguirlo, no basta con memorizar. Necesitamos estrategia, eficiencia y un profundo entendimiento de los bloques que marcan la diferencia. Hoy, nos sumergimos en un tema crucial, uno que aparece sí o sí en vuestras pruebas: las Bases de Datos Relacionales.
No os asustéis con la terminología. Vamos a desgranar la normalización y el lenguaje SQL desde una perspectiva totalmente práctica, enfocada en vuestro estudio y en cómo abordar las preguntas de tipo test. Queremos que dominéis estos conceptos no solo para aprobar, sino para que os sintáis seguros y preparados. ¿Por dónde empezar? ¿Qué es lo más importante? ¿Cómo conectar la teoría con las preguntas reales? ¡Vamos a ello!
¿Por qué las Bases de Datos Relacionales son tu Plataforma de Lanzamiento en TAI?
El temario de TAI, como bien sabéis, es amplio. Sin embargo, hay bloques que, por su naturaleza transversal y su impacto en la administración pública, tienen un peso específico. Las bases de datos relacionales entran de lleno en este grupo. Piensa en la cantidad de información que gestiona cualquier organismo estatal: expedientes, datos de ciudadanos, recursos, etc. Todo ello, en gran medida, reside y se organiza en bases de datos.
El examen tipo test de TAI a menudo evalúa vuestra capacidad para comprender cómo se estructura, se consulta y se mantiene esta información. Ignorar las bases de datos relacionales es como intentar construir una casa sin cimientos. Por eso, os recomendamos enfocaros en este bloque desde el principio, pero con una estrategia clara.
¿Qué estudiar primero y por qué?
Nuestra recomendación desde TesIA es la siguiente:
- Conceptos Fundamentales (Entidad, Atributo, Relación): Antes de lanzaros a la normalización o al SQL, aseguraos de tener clarísimos los pilares. ¿Qué es una entidad? ¿Qué es un atributo? ¿Cómo se relacionan las entidades? Un buen entendimiento de estos conceptos os permitirá visualizar la estructura de cualquier base de datos.
- El Modelo Relacional: Comprender qué es una tabla, una fila (tupla) y una columna (campo). Entender la clave primaria y la clave foránea es ABSOLUTAMENTE ESENCIAL. La clave foránea es el pegamento que une las tablas, y entender su función es vital para la normalización y para escribir consultas SQL correctas.
- Normalización (Primeras Formas Normales): Una vez que tengáis una base sólida en el modelo relacional, abordad la normalización. Empezad por la 1FN (Primera Forma Normal) y la 2FN (Segunda Forma Normal). Estas son las más intuitivas y las que más se suelen preguntar de forma conceptual en los test. La 3FN (Tercera Forma Normal) es el siguiente paso lógico y os dará una visión más completa.
- SQL (Consultas Básicas): Paralelamente a la normalización, empezad con las sentencias SQL más comunes:
SELECT,FROM,WHERE. Entender cómo seleccionar datos, filtrar registros y unir tablas (conceptos que se refuerzan con la normalización) es el siguiente paso lógico.
JOINs sin comprender las relaciones, os crearéis una confusión que luego será difícil de deshacer. Este enfoque progresivo os permitirá asimilar el conocimiento de forma sólida y os dará confianza para abordar las preguntas más complejas.
Normalización: El Arte de Organizar Datos sin Redundancias
La normalización es el proceso de organizar las columnas y tablas de una base de datos relacional para minimizar la redundancia de datos y mejorar la integridad de los datos. En términos prácticos para TAI, esto se traduce en evitar datos duplicados innecesariamente y asegurar que la información sea consistente y fácil de actualizar.
Las formas normales (FN) son un conjunto de reglas que definen diferentes niveles de normalización. Las más comunes y relevantes para vuestro examen son:
- Primera Forma Normal (1FN):
- Segunda Forma Normal (2FN):
Pedidos_Productos con ID_Pedido y ID_Producto como clave primaria compuesta, y campos NombreProducto y PrecioProducto. Si el NombreProducto y PrecioProducto solo dependen del ID_Producto (y no de la combinación ID_Pedido+ID_Producto), entonces NombreProducto y PrecioProducto no están completamente determinados por la clave primaria. La solución sería mover NombreProducto y PrecioProducto a una tabla Productos separada, donde ID_Producto sea su clave primaria.
- Tercera Forma Normal (3FN):
Empleados con ID_Empleado (clave primaria), NombreEmpleado, ID_Departamento, NombreDepartamento, UbicacionDepartamento. Si NombreDepartamento y UbicacionDepartamento solo dependen de ID_Departamento, y ID_Departamento depende de ID_Empleado, entonces hay una dependencia transitiva. La solución es crear una tabla Departamentos con ID_Departamento como clave primaria y campos NombreDepartamento y UbicacionDepartamento, y dejar en Empleados solo ID_Empleado, NombreEmpleado y ID_Departamento (clave foránea).
¿Cómo se traduce esto en preguntas tipo test?
Las preguntas de normalización suelen presentarse de dos maneras:
- Conceptuales: Te preguntan por la definición de una forma normal, qué problema resuelve o qué criterio se aplica.
- Prácticas (con ejemplos de tablas): Te presentan una tabla y te preguntan si cumple una determinada forma normal, o cómo la normalizarías para alcanzarla.
Estudiantes_Cursos:
| ID_Estudiante | Nombre_Estudiante | ID_Curso | Nombre_Curso | Profesor_Curso |
| :------------ | :---------------- | :------- | :----------- | :------------- |
| 101 | Ana López | 201 | Matemáticas | Dr. García |
| 101 | Ana López | 202 | Física | Dra. Martín |
| 102 | Juan Pérez | 201 | Matemáticas | Dr. García |
* ¿Esta tabla cumple la 1FN? * a) Sí, todos los valores son atómicos. * b) No, hay grupos repetidos en las filas. * c) No, las columnas Nombre_Estudiante y Profesor_Curso se repiten. * d) Sí, pero no es eficiente. * Respuesta correcta: a) Sí, todos los valores son atómicos.
* ¿Esta tabla cumple la 2FN? * a) Sí, porque ID_Estudiante y ID_Curso forman la clave primaria. * b) No, porque Nombre_Estudiante depende solo de ID_Estudiante, y Nombre_Curso y Profesor_Curso dependen solo de ID_Curso. * c) Sí, ya que cada registro es único. * d) No, porque hay datos duplicados. * Respuesta correcta: b) No, porque Nombre_Estudiante depende solo de ID_Estudiante, y Nombre_Curso y Profesor_Curso dependen solo de ID_Curso.
Estrategia para el estudio de la Normalización:
- Domina los conceptos clave: Entidad, atributo, clave primaria, clave foránea.
- Dibuja las tablas: Cuando te presenten un ejemplo, dibújalo. Visualizar las dependencias es mucho más fácil.
- Identifica la clave primaria: Siempre empieza por ahí.
- Analiza las dependencias: Pregúntate: ¿este campo depende de toda la clave primaria o solo de una parte? ¿Este campo depende de otro campo que no es clave primaria?
- Practica con ejercicios: En TesIA, encontrarás multitud de ejercicios resueltos y propuestos. Hazlos. No te limites a leer la solución, entiende el porqué.
SQL: El Lenguaje Universal para Hablar con las Bases de Datos
SQL (Structured Query Language) es el lenguaje estándar para gestionar y manipular bases de datos relacionales. En TAI, no se espera que seáis desarrolladores de bases de datos, pero sí que sepáis realizar consultas básicas para extraer información. Dominar SQL es una habilidad potentísima y muy valorada.
Los comandos SQL que debéis dominar se dividen principalmente en DML (Data Manipulation Language) y DQL (Data Query Language, que es un subconjunto de DML). Los más importantes para vuestro examen son:
SELECT: El Corazón de las Consultas
Permite recuperar datos de una o más tablas.
- Sintaxis básica:
SELECT columna1, columna2 FROM tabla WHERE condicion;
(asterisco): Selecciona todas las columnas. SELECT * FROM empleados;
-
DISTINCT: Elimina duplicados en los resultados.SELECT DISTINCT departamento FROM empleados; -
WHERE: Filtra los registros según una condición.
=, !=, >, <, >=, <=.
* Operadores lógicos: AND, OR, NOT.
Operadores de patrón: LIKE (con % para cualquier cadena y _ para un solo carácter). SELECT FROM clientes WHERE nombre LIKE 'A%';
Operadores de rango: BETWEEN. SELECT FROM productos WHERE precio BETWEEN 10 AND 50;
Operadores de pertenencia: IN. SELECT FROM empleados WHERE departamento IN ('Ventas', 'Marketing');
Operadores de nulos: IS NULL, IS NOT NULL. SELECT FROM pedidos WHERE fecha_entrega IS NULL;
JOIN: Uniendo Tablas
Es fundamental para combinar filas de dos o más tablas basándose en una columna relacionada entre ellas. Las normalización os ayuda a entender cuándo y cómo usar JOIN.
-
INNER JOIN(oJOIN): Devuelve solo las filas cuando hay una coincidencia en ambas tablas.
`sql
SELECT e.nombre_empleado, d.nombre_departamento
FROM empleados e
INNER JOIN departamentos d ON e.id_departamento = d.id_departamento;
`
(Nota: e y d son alias para las tablas, facilitan la lectura).
-
LEFT JOIN(oLEFT OUTER JOIN): Devuelve todas las filas de la tabla izquierda, y las filas coincidentes de la tabla derecha. Si no hay coincidencia, el resultado esNULLpara las columnas de la derecha.
NULL en el nombre del departamento.
`sql
SELECT e.nombre_empleado, d.nombre_departamento
FROM empleados e
LEFT JOIN departamentos d ON e.id_departamento = d.id_departamento;
`
-
RIGHT JOIN(oRIGHT OUTER JOIN): Similar alLEFT JOIN, pero devuelve todas las filas de la tabla derecha.
-
FULL JOIN(oFULL OUTER JOIN): Devuelve todas las filas cuando hay una coincidencia en una de las tablas. Es la combinación deLEFT JOINyRIGHT JOIN.
INSERT, UPDATE, DELETE: Manipulación de Datos
Aunque menos frecuentes en preguntas de examen enfocadas en consulta de datos, es bueno conocerlas conceptualmente.
-
INSERT INTO: Añade nuevas filas. -
UPDATE: Modifica registros existentes. -
DELETE FROM: Elimina registros.
Las preguntas de SQL suelen centrarse en:
- Identificar la consulta correcta: Te dan una descripción de lo que se quiere obtener de la base de datos y te presentan varias sentencias SQL, debiendo elegir la correcta.
`sql
-- Opción A
SELECT nombre, apellido
FROM empleados
WHERE departamento = 'IT' AND salario > 50000;
-- Opción B SELECT nombre, apellido FROM empleados WHERE departamento = 'IT' OR salario > 50000;
-- Opción C SELECT nombre, apellido FROM empleados WHERE departamento LIKE 'IT%' AND salario > 50000;
-- Opción D SELECT nombre, apellido FROM empleados WHERE departamento = 'IT' AND salario >= 50000; ` * Respuesta correcta: A (Asumiendo que departamento y salario son las columnas correspondientes).
- Predecir el resultado de una consulta: Te dan el esquema de una o varias tablas y una consulta SQL, y te preguntan qué resultado producirá.
Productos:
| ID_Producto | Nombre_Producto | Precio |
| :---------- | :-------------- | :----- |
| 1 | Camiseta | 15 |
| 2 | Pantalón | 30 |
| 3 | Zapatos | 60 |
¿Qué resultado produce la siguiente consulta? `sql SELECT Nombre_Producto FROM Productos WHERE Precio < 40 OR Precio > 50; ` * a) Camiseta, Pantalón, Zapatos * b) Camiseta, Zapatos * c) Camiseta, Pantalón * d) Pantalón, Zapatos * Respuesta correcta: c) Camiseta, Pantalón (Porque 15 < 40 es TRUE, y 60 > 50 es TRUE. La tabla muestra Camiseta (15) y Pantalón (30) que cumplen la primera condición, y Zapatos (60) que cumple la segunda. Al ser OR, se incluyen todos los que cumplen alguna de las dos. Ah, ¡cuidado! El resultado correcto sería "Camiseta", "Pantalón", "Zapatos". Mi error al interpretar. Revisemos: 15 < 40 es VERDADERO. 30 < 40 es VERDADERO. 60 < 40 es FALSO. 15 > 50 es FALSO. 30 > 50 es FALSO. 60 > 50 es VERDADERO. Por lo tanto, se seleccionan los que cumplen la primera (Camiseta, Pantalón) O la segunda (Zapatos). La respuesta correcta es: a) Camiseta, Pantalón, Zapatos).
- Identificar errores en una consulta: Te presentan una consulta con un error lógico o sintáctico.
- Empieza por lo básico:
SELECT,FROM,WHERE. - Practica la lógica de las condiciones: Entiende bien
AND,OR,LIKE. - Domina
JOIN: Es la parte más desafiante pero más importante. Practica con ejemplos de tablas normalizadas. - Usa un entorno de pruebas: Si puedes, instala un gestor de bases de datos sencillo (como SQLite) y crea tus propias tablas para probar las sentencias. TesIA también te proporciona herramientas y entornos virtuales para que practiques.
- Revisa preguntas tipo test: Son tu mejor termómetro. Te indican qué tipo de preguntas suelen hacer y qué nivel de profundidad se espera.