Base de Datos Universitaria: estructura de tablas y descripción del esquema
La base de datos universitaria es una moderna MariaDB 11.7+ base de datos de ejemplo para aprender SQL — diseñada como un reemplazo rico en características para la clásica base de datos Sakila.
Cubre todos los tipos de datos significativos de MariaDB, incluyendo VECTOR(1536) , JSON , SET , y FULLTEXT índices, está completamente normalizada a 3NF, y se entrega con suficientes datos tanto para ejercicios de principiantes como para consultas analíticas complejas.
La base de datos universitaria contiene 16 tablas principales que describen la estructura académica de una universidad — departamentos, facultades, estudiantes, cursos, inscripciones, proyectos de investigación, y más.
Diagrama ER de la base de datos universitaria
La lista de tablas
semesters - tabla de semestres académicos.
semester_id identificador único del registro (PK, TINYINT)
term tipo de término: Otoño, Primavera, o Verano (ENUM)
academic_year año académico (YEAR)
name nombre del semestre (por ejemplo, 'Otoño 2024')
start_date primer día del semestre
end_date último día del semestre
enroll_deadline última fecha para la inscripción de estudiantes
is_active si el semestre está actualmente activo (BOOLEAN)
semester_id
term
academic_year
name
start_date
end_date
enroll_deadline
is_active
1
Otoño
2024
Otoño 2024
2024-09-02
2024-12-20
2024-09-13
1
CLAVE PRIMARIA, btree (semester_id)
CLAVE ÚNICA (term, academic_year)
rooms - aulas y laboratorios del campus.
room_id identificador único del registro (PK, SMALLINT)
building nombre del edificio
room_number número o etiqueta de la sala
capacity número máximo de asientos (SMALLINT)
room_type tipo de sala: conferencia, seminario, laboratorio, laboratorio de computación, o en línea (ENUM)
has_projector si la sala tiene proyector (BOOLEAN)
has_video si la sala tiene equipo de videoconferencia (BOOLEAN)
room_id
building
room_number
capacity
room_type
has_projector
has_video
1
Salón de Ciencias
101
120
conferencia
1
0
CLAVE PRIMARIA, btree (room_id)
CLAVE ÚNICA (building, room_number)
scholarships - becas y subvenciones disponibles.
scholarship_id identificador único del registro (PK, SMALLINT)
name nombre de la beca
amount monto de la beca (DECIMAL)
frequency frecuencia de la beca: única, anual, o por semestre (ENUM)
eligibility criterios de elegibilidad como JSON — por ejemplo, {"min_gpa": 3.5, "need_based": true}
is_active si la beca se ofrece actualmente (BOOLEAN)
scholarship_id
name
amount
frequency
eligibility
is_active
1
Beca de Excelencia del Decano
5000.00
anual
{"min_gpa": 3.8, "need_based": false, "majors": ["CS","Math"]}
1
CLAVE PRIMARIA, btree (scholarship_id)
departments - jerarquía de departamentos de tres niveles (Facultad → Departamento → Subdepartamento).
department_id identificador único del registro (PK, TINYINT)
parent_id identificador del departamento padre — FK autorreferencial (nullable)
code código corto del departamento (CHAR)
name nombre del departamento
level nivel de jerarquía: 1 = Facultad, 2 = Departamento, 3 = Subdepartamento (TINYINT)
head_faculty_id identificador del jefe del departamento (FK, nullable)
established año en que se estableció el departamento (YEAR, nullable)
department_id
parent_id
code
name
level
head_faculty_id
established
1
[null]
ENG
Facultad de Ingeniería
1
1
1965
CLAVE PRIMARIA, btree (department_id)
CLAVE ÚNICA (code)
CLAVE FORÁNEA (parent_id) REFERENCIAS departments(department_id)
CLAVE FORÁNEA (head_faculty_id) REFERENCIAS faculty(faculty_id)
faculty - personal académico y administrativo.
faculty_id identificador único del registro (PK, SMALLINT)
department_id identificador del departamento (FK)
first_name nombre del miembro de la facultad
last_name apellido del miembro de la facultad
email dirección de correo electrónico institucional
phone número de teléfono de la oficina (nullable)
rank rango académico: Instructor, Profesor Asistente, Profesor Asociado, Profesor, o Emérito (ENUM)
hire_date fecha de contratación
office número o ubicación de la oficina (nullable)
office_hours horario de oficina semanal como arreglo JSON — por ejemplo, [{"day":"Lun","start":"10:00","end":"12:00"}]
bio texto biográfico (TEXT, nullable)
is_active si el miembro de la facultad está actualmente activo (BOOLEAN)
faculty_id
department_id
first_name
last_name
email
phone
rank
hire_date
office
office_hours
bio
is_active
1
3
Alice
Carter
a.carter@university.edu
+15550100
Profesor
2010-08-15
ENG-204
[{"day":"Lun","start":"10:00","end":"12:00"}]
Experto en sistemas distribuidos.
1
CLAVE PRIMARIA, btree (faculty_id)
CLAVE ÚNICA (email)
CLAVE FORÁNEA (department_id) REFERENCIAS departments(department_id)
students - estudiantes registrados.
student_id identificador único del registro (PK, INT)
department_id identificador del departamento de origen (FK)
student_number número de identificación único del estudiante (CHAR, por ejemplo, 'S000123')
first_name nombre del estudiante
last_name apellido del estudiante
email dirección de correo electrónico del estudiante
date_of_birth fecha de nacimiento del estudiante
gender género: M, F, NB, Otro, o Prefiero no decir (ENUM, nullable)
enrollment_date fecha en que el estudiante fue inscrito por primera vez
expected_grad año de graduación esperado (YEAR, nullable)
status estado de inscripción: activo, inactivo, graduado, suspendido, o retirado (ENUM)
gpa promedio acumulativo de GPA 0.000–4.000, mantenido por trigger (DECIMAL, nullable)
contacts contacto de emergencia y dirección como JSON — por ejemplo, {"emergency":{"name":"Jane Doe","phone":"+1-555-0100"}}
student_id
department_id
student_number
first_name
last_name
¡Hola! ¿Podríamos habilitar algunos servicios y cookies para mejorar su experiencia y nuestro sitio web?
Política de privacidad y cookies.
No, gracias.
¡Está bien!