SISTEMA DE GESTIÓN ACADÉMICA
DISEÑO E IMPLEMENTACIÓN DE BASE DE DATOS
Juan Camilo Nieto Porto
Alejandro González Botache
Fabio Santiago Salamanca Piedrahita
Corporación Unificada Nacional de Educación Superior – CUN
Programa académico: Administración de bases de datos
Asignatura: Administración de Bases de Datos
Docente: Sergio Alexander Mora Novoa
Bogotá, Colombia
15 de marzo de 2026
1
1. Introducción
Las bases de datos relacionales constituyen un componente fundamental en los sistemas
de información modernos, debido a que permiten organizar, almacenar y recuperar datos de
manera estructurada, segura y consistente. En el contexto académico, su aplicación resulta
especialmente relevante porque las instituciones educativas administran grandes volúmenes de
información asociados con estudiantes, programas, docentes, cursos, matrículas y calificaciones.
En este proyecto se desarrolló el diseño e implementación de una base de datos para un
sistema de gestión académica, orientado a apoyar procesos esenciales como el registro de
estudiantes, la asignación de profesores, la creación de cursos, la matrícula y el registro de notas.
El trabajo integra las etapas de análisis de requerimientos, diseño conceptual y lógico,
normalización, implementación técnica y validación mediante consultas SQL en MySQL
Workbench.
2. Objetivos
2.1 Objetivo general
Diseñar e implementar una base de datos relacional para un sistema de gestión académica
que permita administrar información básica de estudiantes, profesores, programas, cursos,
matrículas y calificaciones, garantizando integridad, consistencia y facilidad de consulta.
2.2 Objetivos específicos
• Analizar los requerimientos funcionales y no funcionales del sistema académico propuesto.
• Diseñar el modelo entidad–relación y el modelo relacional de la base de datos.
• Aplicar el proceso de normalización hasta la tercera forma normal para reducir
redundancias.
2
• Implementar la estructura de la base de datos en MySQL Workbench mediante scripts DDL
y DML.
• Validar el funcionamiento del sistema a través de consultas SQL con operaciones SELECT,
JOIN, GROUP BY y subconsultas.
3. Justificación
Las instituciones educativas requieren sistemas confiables que les permitan gestionar
información académica de forma centralizada. Cuando estos procesos se llevan a cabo de manera
manual o mediante herramientas dispersas, pueden presentarse inconsistencias, duplicidad de
registros, dificultades de seguimiento y pérdida de trazabilidad.
La construcción de este sistema de gestión académica resulta pertinente porque permite
aplicar los conceptos teóricos vistos en el curso de Administración de Bases de Datos a un caso
realista y funcional. Asimismo, fortalece competencias en modelado de datos, definición de
relaciones, diseño de tablas, manejo de integridad referencial y construcción de consultas para la
recuperación de información relevante.
4. Análisis de requerimientos y definición del alcance
4.1 Caso de negocio
Las instituciones educativas manejan grandes volúmenes de información relacionada con
estudiantes, docentes, programas académicos, cursos y procesos de matrícula. Muchos de estos
procesos se realizan mediante herramientas dispersas o registros manuales, lo que dificulta el
acceso a la información y puede generar inconsistencias en los datos.
Por esta razón, se propone el desarrollo de un sistema de gestión académica soportado
por una base de datos relacional. Este sistema permite almacenar, organizar y consultar
3
información académica de forma estructurada, facilitando procesos como el registro de
estudiantes, la asignación de profesores a cursos, la matrícula de estudiantes y el registro de
calificaciones.
4.2 Requerimientos funcionales
• El sistema debe permitir registrar estudiantes.
• El sistema debe permitir registrar programas académicos.
• El sistema debe permitir registrar profesores.
• El sistema debe permitir crear cursos asociados a programas académicos.
• El sistema debe permitir matricular estudiantes en cursos.
• El sistema debe permitir registrar las notas de los estudiantes.
4.3 Requerimientos no funcionales
• La base de datos debe garantizar integridad y consistencia de los datos.
• El sistema debe evitar redundancia de información.
• Las consultas deben ejecutarse en tiempos eficientes.
• La estructura de datos debe permitir escalabilidad futura.
4.4 Alcance del proyecto
El proyecto contempla el diseño conceptual y lógico de la base de datos, así como su
implementación en MySQL Workbench. Las entidades principales identificadas son Programa,
Curso, Profesor, Estudiante, Matrícula y Nota. El sistema permite realizar operaciones básicas de
registro, consulta y relación entre estas entidades.
El alcance incluye la creación de la base de datos, la definición de claves primarias y
foráneas, la inserción de datos de prueba, la ejecución de consultas SQL y la validación
4
funcional del modelo. No se incluye el desarrollo de una interfaz gráfica ni procesos avanzados
como control de acceso por roles, auditoría de cambios o reportes automatizados externos a
MySQL Workbench.
5. Diseño del modelo de datos
5.1 Modelo entidad–relación (ER)
El modelo entidad–relación representa la estructura conceptual de la base de datos. En
este modelo se identifican las entidades principales del sistema académico: Programa, Curso,
Profesor, Estudiante, Matrícula y Nota. Cada entidad contiene sus atributos principales y se
relaciona mediante asociaciones que representan la interacción entre los elementos del sistema.
Las cardinalidades definidas permiten establecer cómo se relacionan las entidades entre
sí; por ejemplo, un programa contiene múltiples cursos y estudiantes, un profesor puede impartir
varios cursos, un estudiante puede realizar varias matrículas y cada matrícula genera una nota
asociada.
5
Figura 1
Modelo entidad relacion (ER) implementado en [Link].
Diagrama entidad–relación del sistema de gestión académica.
5.2 Modelo relacional
A partir del modelo entidad–relación se construyó el modelo relacional. En este modelo
cada entidad se transforma en una tabla dentro de la base de datos y se definen las claves
primarias y foráneas que permiten mantener la integridad referencial entre las tablas. La base de
datos fue implementada en MySQL Workbench, donde se crearon las tablas programa, curso,
profesor, estudiante, matricula y nota junto con sus respectivas relaciones.
Figura 2
6
Modelo relacional implementado en MySQL Workbench.
5.3 Normalización
El proceso de normalización consiste en organizar la estructura de una base de datos con
el fin de reducir la redundancia de información y garantizar la integridad de los datos. En este
proyecto, la base de datos fue normalizada hasta la tercera forma normal (3FN) para asegurar una
correcta organización de la información del sistema de registro de estudiantes.
5.3.1 Primera forma normal (1FN)
Una tabla se encuentra en primera forma normal cuando todos sus atributos contienen
valores atómicos y no existen grupos repetitivos dentro de los registros. Además, cada tabla debe
tener una clave primaria que identifique de forma única cada registro. En el sistema desarrollado,
todas las tablas cumplen con esta condición. Por ejemplo, en la tabla estudiante cada campo
almacena un único valor, como nombre, apellido, documento, correo y teléfono.
5.3.2 Segunda forma normal (2FN)
La segunda forma normal establece que una tabla debe estar previamente en primera
forma normal y que todos los atributos deben depender completamente de la clave primaria. En
este sistema, cada tabla posee una clave primaria simple y todos sus atributos dependen
directamente de ella. Por ejemplo, en la tabla curso, los atributos nombre_curso y creditos
dependen completamente de la clave primaria id_curso, evitando dependencias parciales.
5.3.3 Tercera forma normal (3FN)
La tercera forma normal se cumple cuando la tabla se encuentra en segunda forma normal
y no existen dependencias transitivas entre los atributos; es decir, los atributos no dependen de
7
otros atributos que no sean la clave primaria. En este proyecto, la información se encuentra
correctamente separada en diferentes tablas. Por ejemplo, los datos del programa académico se
almacenan únicamente en la tabla programa, mientras que las tablas estudiante y curso hacen
referencia a ella mediante la clave foránea id_programa.
5.3.4 Conclusión de la normalización
Gracias al proceso de normalización hasta la tercera forma normal, la base de datos
permite almacenar la información de manera organizada, evitando redundancias y asegurando la
integridad de los datos. Esto facilita la gestión académica del sistema, así como la realización de
consultas eficientes dentro de la base de datos.
5.4 Diccionario de datos
El diccionario de datos describe la estructura de la base de datos, especificando las tablas,
campos, tipos de datos, descripción de cada atributo y sus restricciones. Esto permite comprender
de manera detallada cómo se organiza la información dentro del sistema de registro de
estudiantes.
Tabla 1
Diccionario de datos de programa
Campo Tipo de dato Descripción Restricción
Identificador único del
id_programa INT PK
programa académico
Nombre del programa
nombre_programa VARCHAR(100) NOT NULL
académico
Facultad a la que
facultad VARCHAR(100) NOT NULL
pertenece el programa
8
Tabla 2
Diccionario de datos de profesor
Campo Tipo de dato Descripción Restricción
Identificador único del
id_profesor INT PK
profesor
Nombre completo del
nombre VARCHAR(100) NOT NULL
profesor
Correo electrónico del
correo VARCHAR(100) NOT NULL
profesor
Área o especialidad del
especialidad VARCHAR(100) NOT NULL
profesor
Estado del profesor dentro
estado ENUM NOT NULL
del sistema
Tabla 3
Diccionario de datos de curso
Campo Tipo de dato Descripción Restricción
Identificador único del
id_curso INT PK
curso
Nombre de la asignatura o
nombre_curso VARCHAR(100) NOT NULL
curso
Número de créditos
creditos INT NOT NULL
académicos del curso
Programa académico al
id_programa INT FK, NOT NULL
que pertenece el curso
Profesor encargado de
id_profesor INT FK, NOT NULL
impartir el curso
9
Tabla 4
Diccionario de datos de estudiante
Campo Tipo de dato Descripción Restricción
Identificador único del
id_estudiante INT PK
estudiante
nombre VARCHAR(100) Nombre del estudiante NOT NULL
apellido VARCHAR(100) Apellido del estudiante NOT NULL
Número de documento
documento VARCHAR(20) NOT NULL
del estudiante
Correo electrónico del
correo VARCHAR(100) NOT NULL
estudiante
Número de teléfono del
telefono VARCHAR(20) NOT NULL
estudiante
Estado del estudiante
estado ENUM NOT NULL
dentro del sistema
Programa académico al
id_programa INT que pertenece el FK, NOT NULL
estudiante
Tabla 5
Diccionario de datos de matrícula
Campo Tipo de dato Descripción Restricción
Identificador único de la
id_matricula INT PK
matrícula
Estudiante asociado a la
id_estudiante INT FK, NOT NULL
matrícula
Curso asociado a la
id_curso INT FK, NOT NULL
matrícula
Fecha en la que se realizó
fecha_matricula DATE NOT NULL
la matrícula
Periodo académico al que
periodo_academico VARCHAR(20) NOT NULL
pertenece la matrícula
Estado actual de la
estado ENUM NOT NULL
matrícula
10
Tabla 6
Diccionario de datos de nota
Campo Tipo de dato Descripción Restricción
Identificador único de la
id_nota INT PK
nota
Matrícula a la cual
id_matricula INT FK, NOT NULL
pertenece la nota
Primera calificación
nota_1 DECIMAL(3,2) NOT NULL
parcial
Segunda calificación
nota_2 DECIMAL(3,2) NOT NULL
parcial
Tercera calificación
nota_3 DECIMAL(3,2) NOT NULL
parcial
Calificación final del
nota_final DECIMAL(3,2) NOT NULL
estudiante
Observación del resultado
observacion VARCHAR(255) NOT NULL
final
6. Implementación técnica
La implementación técnica del sistema se realizó en MySQL Workbench, herramienta en
la cual se creó la base de datos sistema_registro_estudiantes, se definieron las tablas, las claves
primarias y las claves foráneas, y posteriormente se insertaron datos de prueba para validar el
funcionamiento del sistema. La estructura final de la base de datos quedó conformada por las
tablas programa, profesor, curso, estudiante, matricula y nota.
11
6.1 Scripts DDL de creación de la base de datos
A continuación, se presentan los scripts DDL utilizados para la creación de la base de
datos y de sus tablas principales.
CREATE DATABASE sistema_registro_estudiantes;
USE sistema_registro_estudiantes;
CREATE TABLE programa (
id_programa INT PRIMARY KEY,
nombre_programa VARCHAR(100) NOT NULL,
facultad VARCHAR(100) NOT NULL
);
CREATE TABLE profesor (
id_profesor INT PRIMARY KEY,
nombre VARCHAR(100) NOT NULL,
correo VARCHAR(100) NOT NULL,
especialidad VARCHAR(100) NOT NULL,
estado ENUM('Activo', 'Inactivo') NOT NULL
);
CREATE TABLE curso (
id_curso INT PRIMARY KEY,
nombre_curso VARCHAR(100) NOT NULL,
creditos INT NOT NULL,
id_programa INT NOT NULL,
id_profesor INT NOT NULL,
FOREIGN KEY (id_programa) REFERENCES programa(id_programa),
FOREIGN KEY (id_profesor) REFERENCES profesor(id_profesor)
);
CREATE TABLE estudiante (
id_estudiante INT PRIMARY KEY,
nombre VARCHAR(100) NOT NULL,
apellido VARCHAR(100) NOT NULL,
documento VARCHAR(20) NOT NULL,
correo VARCHAR(100) NOT NULL,
telefono VARCHAR(20) NOT NULL,
estado ENUM('Activo', 'Inactivo') NOT NULL,
id_programa INT NOT NULL,
FOREIGN KEY (id_programa) REFERENCES programa(id_programa)
);
CREATE TABLE matricula (
id_matricula INT PRIMARY KEY,
id_estudiante INT NOT NULL,
id_curso INT NOT NULL,
fecha_matricula DATE NOT NULL,
periodo_academico VARCHAR(20) NOT NULL,
estado ENUM('Activa', 'Cancelada', 'Finalizada') NOT NULL,
FOREIGN KEY (id_estudiante) REFERENCES estudiante(id_estudiante),
FOREIGN KEY (id_curso) REFERENCES curso(id_curso)
);
12
CREATE TABLE nota (
id_nota INT PRIMARY KEY,
id_matricula INT NOT NULL,
nota_1 DECIMAL(3,2) NOT NULL,
nota_2 DECIMAL(3,2) NOT NULL,
nota_3 DECIMAL(3,2) NOT NULL,
nota_final DECIMAL(3,2) NOT NULL,
observacion VARCHAR(255) NOT NULL,
FOREIGN KEY (id_matricula) REFERENCES matricula(id_matricula)
);
6.2 Scripts de inserción de datos de prueba
Una vez creada la estructura de la base de datos, se insertaron datos de prueba con el fin
de validar el funcionamiento del sistema y permitir la ejecución de consultas SQL. En los scripts
generales del proyecto se cargaron doce registros en cada tabla principal; a continuación, se
presentan fragmentos representativos de dichas inserciones.
INSERT INTO programa (id_programa, nombre_programa, facultad) VALUES
(1, 'Ingenieria de Sistemas', 'Facultad de Ingenieria'),
(2, 'Administracion de Empresas', 'Facultad de Ciencias Economicas'),
(3, 'Contaduria Publica', 'Facultad de Ciencias Economicas');
INSERT INTO profesor (id_profesor, nombre, correo, especialidad, estado) VALUES
(1, 'Carlos Ramirez', '[Link]@[Link]', 'Bases de Datos', 'Activo'),
(2, 'Laura Gomez', '[Link]@[Link]', 'Programacion', 'Activo'),
(3, 'Andres Martinez', '[Link]@[Link]', 'Matematicas', 'Activo');
INSERT INTO curso (id_curso, nombre_curso, creditos, id_programa, id_profesor)
VALUES
(1, 'Base de Datos I', 3, 1, 1),
(2, 'Programacion I', 4, 1, 2),
(3, 'Calculo I', 3, 1, 3);
INSERT INTO estudiante (id_estudiante, nombre, apellido, documento, correo,
telefono, estado, id_programa) VALUES
(1, 'Juan', 'Perez', '1001001001', '[Link]@[Link]', '3001111111',
'Activo', 1),
(2, 'Maria', 'Lopez', '1001001002', '[Link]@[Link]', '3001111112',
'Activo', 1),
(3, 'Sofia', 'Torres', '1001001003', '[Link]@[Link]', '3001111113',
'Activo', 2);
INSERT INTO matricula (id_matricula, id_estudiante, id_curso, fecha_matricula,
periodo_academico, estado) VALUES
(1, 1, 1, '2026-01-20', '2026-1', 'Activa'),
(2, 2, 2, '2026-01-20', '2026-1', 'Activa'),
(3, 3, 3, '2026-01-21', '2026-1', 'Activa');
INSERT INTO nota (id_nota, id_matricula, nota_1, nota_2, nota_3, nota_final,
observacion) VALUES
(1, 1, 4.0, 4.2, 4.5, 4.23, 'Aprobado'),
(2, 2, 3.5, 3.8, 4.0, 3.77, 'Aprobado'),
(3, 3, 4.5, 4.7, 4.8, 4.67, 'Aprobado');
13
Figura 3
Evidencia de la ejecución de consultas básicas y visualización de datos de prueba en MySQL
Workbench.
6.3 Validación de la implementación
Después de la creación de las tablas y la inserción de datos de prueba, se realizaron
consultas SQL para comprobar que la base de datos funcionara correctamente y que las
relaciones entre tablas se hubieran implementado de manera adecuada. Entre las consultas de
validación se ejecutaron sentencias de consulta general sobre cada tabla, tales como SELECT *
14
FROM programa, SELECT * FROM profesor, SELECT * FROM curso, SELECT * FROM
estudiante, SELECT * FROM matricula y SELECT * FROM nota.
La implementación técnica permitió materializar el diseño conceptual y lógico de la base
de datos en un entorno real de trabajo. Gracias a ello, fue posible validar la estructura del
sistema, comprobar la integridad referencial y verificar que la base de datos se encontraba lista
para ejecutar consultas más avanzadas con JOIN, GROUP BY y subconsultas.
Figura 4
Validación de registros almacenados en la tabla estudiante mediante consulta SELECT.
7. Demostración de funcionalidades
Con el fin de validar el correcto funcionamiento de la base de datos, se ejecutaron
diversas consultas SQL en MySQL Workbench. Estas consultas permiten verificar la relación
15
entre las tablas y demostrar cómo el sistema puede recuperar información académica relevante.
Las consultas realizadas incluyen operaciones SELECT, JOIN, GROUP BY y subconsultas, que
permiten obtener información combinada, generar reportes agregados y realizar análisis sobre los
datos almacenados.
7.1 Consulta con JOIN
Las consultas con JOIN permiten combinar información proveniente de varias tablas
relacionadas mediante claves foráneas. En este caso se consultaron los estudiantes junto con el
curso que están matriculando y su nota final. Esta consulta permite visualizar la relación entre las
tablas estudiante, curso, matricula y nota, mostrando las calificaciones obtenidas por cada
estudiante en los cursos matriculados.
16
Figura 5
Consulta con JOIN para relacionar estudiantes, cursos, matrículas y notas finales.
7.2 Consulta con GROUP BY
Las consultas que utilizan GROUP BY permiten agrupar registros y realizar cálculos
agregados como promedios o conteos. En este ejemplo se calculó el promedio de notas finales
por curso. Esta consulta permite identificar el rendimiento promedio de los estudiantes en cada
asignatura, lo cual puede resultar útil para análisis académicos.
Figura 6
17
Consulta con GROUP BY para calcular el promedio de notas finales por curso.
7.3 Consulta con subconsulta
Las subconsultas permiten ejecutar una consulta dentro de otra para obtener resultados
más específicos. En este caso se identificaron los estudiantes que tienen una nota final superior al
promedio general del sistema. Esta consulta permite reconocer a los estudiantes cuyo desempeño
académico se encuentra por encima del promedio general registrado en la base de datos.
Figura 7
Consulta con subconsulta para identificar estudiantes con nota superior al promedio general.
18
7.4 Validación del sistema
Las consultas ejecutadas demuestran que las relaciones entre las tablas funcionan
correctamente y que la base de datos permite recuperar información académica de manera
eficiente. Gracias a la implementación de claves primarias y foráneas, es posible combinar
información de diferentes tablas, evitar inconsistencias y generar reportes útiles para la gestión
del sistema académico.
8. Video explicativo del proyecto
Como complemento al desarrollo del proyecto, se realizó un video en el que se explica el
diseño de la base de datos, la implementación en MySQL Workbench y la ejecución de consultas
SQL para validar el funcionamiento del sistema.
Video de explicación del proyecto: [Link]
9. Conclusiones
• El diseño de la base de datos permitió estructurar de manera organizada la información
académica de estudiantes, profesores, programas y cursos, favoreciendo su
administración y consulta.
• La aplicación de la normalización hasta la tercera forma normal contribuyó a reducir
redundancias, fortalecer la integridad de los datos y facilitar el mantenimiento del
sistema.
• La implementación en MySQL Workbench demostró que el modelo diseñado es funcional
y que las relaciones entre tablas permiten ejecutar consultas útiles para la gestión
académica.
19
• Las consultas con JOIN, GROUP BY y subconsultas evidenciaron la capacidad del sistema
para generar información relevante a partir de los datos almacenados, lo cual valida el
cumplimiento de los objetivos planteados.
Referencias
Connolly, T., & Begg, C. (2015). Database systems: A practical approach to design,
implementation, and management (6th ed.). Pearson.
Coronel, C., & Morris, S. (2019). Database systems: Design, implementation, and management.
Cengage Learning.
Elmasri, R., & Navathe, S. B. (2016). Fundamentals of database systems (7th ed.). Pearson.
Oracle. (2023). MySQL 8.0 Reference Manual. [Link]
Silberschatz, A., Korth, H. F., & Sudarshan, S. (2019). Database system concepts (7th ed.).
McGraw-Hill Education.
20