Para comenzar a trabajar con bases de datos en MySQL, una herramienta muy útil que podemos utilizar es MySQL Workbench. Aunque es posible usar la consola de MySQL para ejecutar comandos SQL, Workbench nos ofrece una interfaz gráfica cómoda y multiplataforma, disponible para Ubuntu, Mac y Windows, que facilita la creación y gestión de bases de datos.
Una vez instalado MySQL Workbench, lo primero que hacemos es establecer una conexión con nuestra base de datos. Para ello, registramos una nueva conexión proporcionando un nombre, el usuario, la contraseña y el esquema o base de datos con la que queremos trabajar. En nuestro caso, podemos usar nombres sencillos como ejemplo para todos estos campos, lo que nos permitirá acceder rápidamente a la interfaz donde escribiremos nuestros comandos SQL.
El objetivo es crear una base de datos sencilla para gestionar una escuela. Para ello, diseñaremos varias tablas: una para alumnos, otra para profesores, una tercera para asignaturas y finalmente una tabla para las matrículas, que relacionará a los alumnos con las asignaturas en las que están inscritos.
Empezamos creando la tabla alumnos. Esta tabla tendrá un campo id_alumno de tipo entero, que no puede ser nulo y que se autoincrementa para asignar automáticamente un identificador único a cada alumno. Además, incluimos campos para el nombre y los apellidos del alumno, usando varchar con longitudes adecuadas (por ejemplo, 32 para el nombre y 64 para los apellidos). También añadimos un campo para la fecha de nacimiento, de tipo date. Aunque en este caso creamos un índice único para el id_alumno, no es estrictamente necesario, pero puede ser útil para mantener la integridad de los datos.
CREATE TABLE alumnos (
id_alumno INT NOT NULL AUTO_INCREMENT,
nombre VARCHAR(32),
apellidos VARCHAR(64),
fecha_nacimiento DATE,
PRIMARY KEY (id_alumno),
UNIQUE KEY id_alumno_uq (id_alumno)
);
A continuación, creamos la tabla profesores, que tendrá una estructura similar. Incluye un campo id_profesor como clave primaria autoincremental, y campos para el nombre y los apellidos del profesor. También definimos un índice único para el identificador del profesor.
CREATE TABLE profesores (
id_profesor INT NOT NULL AUTO_INCREMENT,
nombre VARCHAR(32),
apellidos VARCHAR(64),
PRIMARY KEY (id_profesor),
UNIQUE KEY id_profesor_uq (id_profesor)
);
La tabla asignaturas es un poco más compleja porque relaciona cada asignatura con un profesor que la imparte. Por eso, además del id_asignatura y el nombre de la asignatura, incluimos un campo profesor que almacena el identificador del profesor responsable. Este campo es una clave foránea que referencia al campo id_profesor de la tabla profesores, asegurando la integridad referencial.
CREATE TABLE asignaturas (
id_asignatura INT NOT NULL AUTO_INCREMENT,
nombre VARCHAR(64),
profesor INT NOT NULL,
PRIMARY KEY (id_asignatura),
CONSTRAINT profesor_asignatura FOREIGN KEY (profesor) REFERENCES profesores(id_profesor)
);
Finalmente, la tabla matriculas registra qué alumnos están inscritos en qué asignaturas y en qué año. Para ello, contiene los campos alumno y asignatura, que son claves foráneas que referencian a las tablas alumnos y asignaturas respectivamente. También incluye un campo anio para el año de matrícula, de tipo YEAR, y un campo nota para la calificación, que en este caso definimos como un entero que puede ser nulo para representar que el alumno aún no ha terminado o no tiene nota asignada. La clave primaria de esta tabla es compuesta, formada por alumno, asignatura y anio, lo que garantiza que no haya duplicados en las matrículas para un mismo alumno, asignatura y año.
CREATE TABLE matriculas (
alumno INT NOT NULL,
asignatura INT NOT NULL,
anio YEAR NOT NULL,
nota INT,
PRIMARY KEY (alumno, asignatura, anio),
CONSTRAINT alumno_matriculado FOREIGN KEY (alumno) REFERENCES alumnos(id_alumno),
CONSTRAINT asignatura_matriculada FOREIGN KEY (asignatura) REFERENCES asignaturas(id_asignatura)
);
Con estas tablas creadas, ya tenemos una estructura básica para gestionar la información de una escuela, incluyendo los profesores, alumnos, asignaturas y las matrículas que los relacionan. Para facilitar el seguimiento y la reutilización, es recomendable guardar este código SQL y, si queremos, añadir datos de prueba para comenzar a trabajar con la base de datos.
Más adelante, podremos conectar esta base de datos con aplicaciones en Java para manipular y consultar estos datos desde un entorno de programación, lo que nos permitirá construir sistemas más completos y funcionales.