← Volver al Blog

TAI

Bases de Datos TAI 2026: Normalización y SQL, ¡la pareja ganadora para tu éxito!

¡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...

¡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:

¿Por qué este orden? Porque cada concepto se construye sobre el anterior. Si intentáis normalizar sin entender las claves, o escribir 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:

* Cada celda de la tabla debe contener un valor atómico (indivisible). * No deben existir grupos repetidos de columnas. Es decir, cada columna debe tener un nombre único y no deben haber listas de valores dentro de una misma celda para un mismo registro. * Ejemplo práctico para tu estudio: Imagina una tabla de "Pedidos" donde un campo "Productos" contenga una lista de nombres de productos separados por comas. Para cumplir la 1FN, deberíamos crear una tabla separada para los "Detalles del Pedido" donde cada producto de un pedido tenga su propia fila. * Debe estar en 1FN. * Todos los atributos no clave deben depender completamente de la clave primaria. Esto es especialmente relevante en tablas con claves primarias compuestas (formadas por varias columnas). * Ejemplo práctico para tu estudio: Supongamos una tabla 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. * Debe estar en 2FN. * Los atributos no clave no deben depender transitivamente de la clave primaria. Es decir, un atributo no clave no debe depender de otro atributo no clave. * Ejemplo práctico para tu estudio: Considera una tabla 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:

* Ejemplo: "¿Qué forma normal busca eliminar las dependencias transitivas de los atributos no clave?" * a) 1FN * b) 2FN * c) 3FN * d) 4FN * Respuesta correcta: c) 3FN * Ejemplo: Dada la siguiente tabla 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:

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.

(asterisco): Selecciona todas las columnas. SELECT * FROM empleados; * Operadores de comparació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.

* Ejemplo: Si queremos ver los nombres de los empleados y el nombre de su departamento: `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). * Ejemplo: Mostrar todos los empleados, y si tienen departamento asignado, mostrar su nombre. Si no, mostrar 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; `

INSERT, UPDATE, DELETE: Manipulación de Datos

Aunque menos frecuentes en preguntas de examen enfocadas en consulta de datos, es bueno conocerlas conceptualmente.

¿Cómo se traduce esto en preguntas tipo test?

Las preguntas de SQL suelen centrarse en:

* Ejemplo: ¿Cuál de las siguientes consultas selecciona el nombre y el apellido de todos los empleados que trabajan en el departamento "IT" y que ganan más de 50000? `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).

* Ejemplo: Dada la tabla 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).

Estrategia para el estudio de SQL:

Estrategia de Repaso y Tipo Test: