Diccionario de datos¶
Este diccionario describe las tablas principales del modelo lógico, sus campos, tipos y propósito. Sirve como referencia para diseño, implementación y auditoría de la base de datos.
Usuario¶
| Campo | Tipo | Descripción |
|---|---|---|
| id_usuario | entero PK | Identificador único. |
| id_persona | entero FK | Referencia a Persona (1FN: datos biográficos separados). |
| nombre | texto | Solo el nombre de pila. |
| apellido1 | texto | Primer apellido. |
| apellido2 | texto | Segundo apellido. |
| correo | texto único | Correo institucional o externo. |
| contrasena_hash | texto cifrado | Credencial protegida con hash (bcrypt/argon2). |
| id_estado_usuario | entero FK | Referencia a CAT_ESTADO_USUARIO (3FN: evita dependencia transitiva). |
| fecha_creacion | fecha/hora | Fecha de alta en el sistema. |
| ultimo_acceso | fecha/hora | Última autenticación exitosa. |
Rol¶
| Campo | Tipo | Descripción |
|---|---|---|
| id_rol | entero PK | Identificador único. |
| nombre | texto único | Nombre del rol (Aspirante, Profesor, etc.). |
| descripcion | texto | Propósito del rol. |
| activo | booleano | Permite desactivar sin eliminar. |
Persona¶
| Campo | Tipo | Descripción |
|---|---|---|
| id_persona | entero PK | Identificador único de la persona. |
| documento_identidad | texto único | Número del documento de identidad. |
| id_tipo_documento | entero FK | Tipo (carnet, pasaporte). |
| fecha_nacimiento | fecha | Fecha de nacimiento. |
| sexo | texto | Sexo biológico. |
| telefono | texto | Teléfono de contacto. |
UsuarioRol¶
| Campo | Tipo | Descripción |
|---|---|---|
| id_usuario | entero PK,FK | Referencia a Usuario. |
| id_rol | entero PK,FK | Referencia a Rol. |
| fecha_asignacion | fecha/hora | Cuándo se asignó el rol (2FN: depende de la PK compuesta). |
| asignado_por | entero FK | Usuario administrador que asignó (2FN). |
Permiso¶
| Campo | Tipo | Descripción |
|---|---|---|
| id_permiso | entero PK | Identificador único. |
| codigo | texto único | Código del permiso (p.ej. solicitud.aprobar). |
| descripcion | texto | Propósito del permiso. |
RolPermiso¶
| Campo | Tipo | Descripción |
|---|---|---|
| id_rol | entero PK,FK | Referencia a Rol. |
| id_permiso | entero PK,FK | Referencia a Permiso. |
Facultad¶
| Campo | Tipo | Descripción |
|---|---|---|
| id_facultad | entero PK | Identificador único. |
| nombre | texto | Nombre completo. |
| codigo | texto único | Código institucional. |
CUM¶
| Campo | Tipo | Descripción |
|---|---|---|
| id_cum | entero PK | Identificador único. |
| nombre | texto | Nombre del CUM. |
| municipio | texto | Municipio al que pertenece. |
| provincia | texto | Provincia. |
ProgramaPosgrado¶
| Campo | Tipo | Descripción |
|---|---|---|
| id_programa | entero PK | Identificador del programa. |
| id_facultad | entero FK | Facultad que ofrece el programa. |
| titulo | texto | Nombre del programa. |
| id_tipo_programa | entero FK | CAT_TIPO_PROGRAMA (3FN: catálogo, no string). |
| id_modalidad_estudio | entero FK | CAT_MODALIDAD_ESTUDIO. |
| id_modalidad_dedicacion | entero FK | CAT_MODALIDAD_DEDICACION. |
| id_coordinador | entero FK | Usuario coordinador. |
| id_estado_programa | entero FK | CAT_ESTADO_PROGRAMA. |
| fecha_aprobacion_inst | fecha | Fecha de aprobación institucional. |
| fecha_resolucion_mes | fecha | Fecha de resolución del MES cuando aplique. |
Atributos derivados eliminados
horas_totales y creditos ya no se almacenan en esta tabla. Se calculan a partir de PROGRAMA_VERSION + PROGRAMA_ASIGNATURA (3FN: evita dependencia transitiva).
ProgramaVersion¶
| Campo | Tipo | Descripción |
|---|---|---|
| id_programa_version | entero PK | Identificador. |
| id_programa | entero FK | Programa al que pertenece. |
| numero_version | entero | Consecutivo por programa (RN-60). |
| fecha_vigencia | fecha | Inicio de vigencia. |
| horas_totales | entero | Suma de horas de las asignaturas (calculado). |
ProgramaAsignatura¶
| Campo | Tipo | Descripción |
|---|---|---|
| id_programa_asignatura | entero PK | Identificador. |
| id_programa_version | entero FK | Versión a la que pertenece. |
| nombre | texto | Nombre de la asignatura/módulo. |
| horas | entero | Horas de la asignatura. |
| creditos | entero | Créditos de la asignatura (calculados como horas/30 o definido). |
EdicionPrograma¶
| Campo | Tipo | Descripción |
|---|---|---|
| id_edicion | entero PK | Identificador de la edición. |
| id_programa | entero FK | Programa al que pertenece. |
| numero_edicion | entero | Numeración consecutiva por programa. |
| fecha_inicio | fecha | Fecha de inicio. |
| fecha_fin | fecha | Fecha de cierre prevista. |
| capacidad | entero | Cupo máximo. |
| lugar | texto | Lugar de impartición. |
| estado | catálogo | Planificada, abierta, en ejecución, cerrada. |
EdicionPrograma¶
| Campo | Tipo | Descripción |
|---|---|---|
| id_edicion | entero PK | Identificador de la edición. |
| id_programa | entero FK | Programa al que pertenece. |
| numero_edicion | entero | Numeración consecutiva por programa (RN-11). |
| fecha_inicio | fecha | Fecha de inicio. |
| fecha_fin | fecha | Fecha de cierre prevista. |
| capacidad | entero | Cupo máximo. |
| lugar | texto | Lugar de impartición. |
| id_estado_edicion | entero FK | CAT_ESTADO_EDICION. |
Convocatoria¶
| Campo | Tipo | Descripción |
|---|---|---|
| id_convocatoria | entero PK | Identificador. |
| id_edicion | entero FK | Edición asociada. |
| fecha_publicacion | fecha | Fecha oficial de publicación. |
| fecha_cierre | fecha | Cierre de recepción de solicitudes. |
| id_estado_convocatoria | entero FK | CAT_ESTADO_CONVOCATORIA. |
Atributos multivaluados normalizados
requisitos y calendario salen a CONVOCATORIA_REQUISITO (1FN) y ACTIVIDAD_ACADEMICA respectivamente.
ConvocatoriaRequisito¶
| Campo | Tipo | Descripción |
|---|---|---|
| id_convocatoria_requisito | entero PK | Identificador. |
| id_convocatoria | entero FK | Convocatoria asociada. |
| id_tipo_documento | entero FK | Tipo de documento exigido. |
| descripcion | texto | Detalle o especificación. |
| obligatorio | booleano | Indica si es de carga obligatoria. |
NecesidadSuperacion¶
| Campo | Tipo | Descripción |
|---|---|---|
| id_necesidad | entero PK | Identificador. |
| descripcion | texto | Descripción de la necesidad. |
| id_origen_necesidad | entero FK | CAT_ORIGEN_NECESIDAD (interna/externa). |
| id_prioridad | entero FK | CAT_PRIORIDAD. |
| id_facultad | entero FK NULL | Facultad solicitante. |
| id_cum | entero FK NULL | CUM solicitante. |
| id_estado_necesidad | entero FK | CAT_ESTADO_NECESIDAD. |
| fecha_registro | fecha | Fecha de registro. |
ComiteAcademico¶
| Campo | Tipo | Descripción |
|---|---|---|
| id_comite | entero PK | Identificador. |
| id_programa | entero FK | Programa al que pertenece (RN-07). |
| fecha_constitucion | fecha | Fecha de creación. |
ComiteMiembro¶
| Campo | Tipo | Descripción |
|---|---|---|
| id_comite | entero PK,FK | ComiteAcademico. |
| id_usuario | entero PK,FK | Usuario miembro. |
| rol | texto | Rol dentro del comité (presidente, vocal, etc.). |
| fecha_ingreso | fecha | Fecha de incorporación. |
Aspirante¶
| Campo | Tipo | Descripción |
|---|---|---|
| id_aspirante | entero PK | Identificador. |
| id_usuario | entero FK | Cuenta de usuario asociada. |
| id_tipo_aspirante | entero FK | CAT_TIPO_ASPIRANTE (nacional/extranjero). |
SolicitudMatricula¶
| Campo | Tipo | Descripción |
|---|---|---|
| id_solicitud | entero PK | Identificador de la solicitud. |
| id_convocatoria | entero FK | Convocatoria asociada. |
| id_usuario | entero FK | Aspirante que realiza la solicitud. |
| id_aspirante | entero FK | Aspirante (1FN: separa datos de persona). |
| fecha_solicitud | fecha/hora | Fecha de envío. |
| id_estado_solicitud | entero FK | CAT_ESTADO_SOLICITUD. |
Trazabilidad de estados
observaciones y fecha_cambio_estado se almacenan en SOLICITUD_HISTORIAL_ESTADO para mantener histórico (RN-51).
SolicitudHistorialEstado¶
| Campo | Tipo | Descripción |
|---|---|---|
| id_historial | entero PK | Identificador. |
| id_solicitud | entero FK | Solicitud. |
| id_estado_solicitud | entero FK | Estado al que cambió. |
| fecha_cambio | fecha/hora | Cuándo se cambió. |
| id_usuario_cambio | entero FK | Quién cambió el estado. |
| motivo | texto | Comentario u observación. |
Documento¶
| Campo | Tipo | Descripción |
|---|---|---|
| id_documento | entero PK | Identificador del documento. |
| id_solicitud | entero FK | Solicitud a la que pertenece. |
| id_tipo_documento | entero FK | CAT_TIPO_DOCUMENTO. |
| ruta_archivo | texto | Ubicación del archivo (gestión documental o local). |
| nombre_archivo | texto | Nombre visible. |
| tamano_bytes | entero | Tamaño para validación. |
| formato | texto | Extensión / MIME. |
| id_estado_validacion | entero FK | CAT_ESTADO_VALIDACION. |
| motivo_rechazo | texto | Justificación si fue rechazado. |
| fecha_carga | fecha/hora | Cuándo fue subido. |
DocumentoValidacion¶
| Campo | Tipo | Descripción |
|---|---|---|
| id_documento_validacion | entero PK | Identificador. |
| id_documento | entero FK | Documento validado. |
| id_usuario_validador | entero FK | Quién validó. |
| id_estado_validacion | entero FK | CAT_ESTADO_VALIDACION. |
| fecha_validacion | fecha/hora | Cuándo se validó. |
| observacion | texto | Comentario de la validación. |
Estudiante¶
| Campo | Tipo | Descripción |
|---|---|---|
| id_estudiante | entero PK | Identificador. |
| id_usuario | entero FK | Cuenta de usuario asociada. |
| id_persona | entero FK | Datos biográficos (3FN). |
| codigo | texto único | Código institucional. |
| id_estado_academico | entero FK | CAT_ESTADO_ACADEMICO. |
Matricula¶
| Campo | Tipo | Descripción |
|---|---|---|
| id_matricula | entero PK | Identificador. |
| id_estudiante | entero FK | Estudiante matriculado. |
| id_edicion | entero FK | Edición del programa. |
| fecha_matricula | fecha | Fecha de registro. |
| id_estado_matricula | entero FK | CAT_ESTADO_MATRICULA. |
RN-45
Existe UNIQUE (id_estudiante, id_edicion) WHERE id_estado_matricula = 'Activa' para evitar dos matrículas activas en la misma edición.
Expediente¶
| Campo | Tipo | Descripción |
|---|---|---|
| id_expediente | entero PK | Identificador. |
| id_estudiante | entero FK | Estudiante titular. |
| id_edicion | entero FK | Edición a la que pertenece (RN-44). |
| fecha_apertura | fecha | Fecha de creación. |
| id_estado_expediente | entero FK | CAT_ESTADO_EXPEDIENTE. |
RN-44
UNIQUE (id_estudiante, id_edicion): un expediente único por estudiante y por edición.
ActividadAcademica¶
| Campo | Tipo | Descripción |
|---|---|---|
| id_actividad | entero PK | Identificador. |
| id_edicion | entero FK | Edición a la que pertenece. |
| nombre | texto | Nombre de la actividad. |
| tipo | texto | Clase, encuentro, evaluación, etc. |
| horas | entero | Duración en horas. |
| fecha | fecha | Fecha de realización. |
Calificacion¶
| Campo | Tipo | Descripción |
|---|---|---|
| id_calificacion | entero PK | Identificador. |
| id_expediente | entero FK | Expediente al que pertenece. |
| id_actividad | entero FK | Actividad evaluada. |
| id_calificacion_valor | entero FK | CAT_CALIFICACION_VALOR (3FN: no string). |
| fecha | fecha | Fecha de registro. |
| observaciones | texto | Comentarios del profesor. |
| registrado_por | entero FK | Profesor que registró. |
Asistencia¶
| Campo | Tipo | Descripción |
|---|---|---|
| id_asistencia | entero PK | Identificador. |
| id_expediente | entero FK | Expediente del estudiante. |
| id_actividad | entero FK | Actividad asociada. |
| fecha | fecha | Fecha de la actividad. |
| presente | booleano | true = asistió, false = no asistió. |
| registrado_por | entero FK | Profesor o sistema (Moodle). |
Unicidad
UNIQUE (id_expediente, id_actividad): un estudiante solo tiene un registro de asistencia por actividad.
MemoriaEscrita¶
| Campo | Tipo | Descripción |
|---|---|---|
| id_memoria | entero PK | Identificador. |
| id_estudiante | entero FK | Estudiante autor. |
| version | entero | Versión de la memoria. |
| fecha_entrega | fecha/hora | Cuándo se entregó. |
| ruta_archivo | texto | Ubicación del archivo. |
| paginas | entero | Cantidad de páginas (validable según RN-26, RN-27). |
| id_estado_memoria | entero FK | CAT_ESTADO_MEMORIA. |
Tribunal¶
| Campo | Tipo | Descripción |
|---|---|---|
| id_tribunal | entero PK | Identificador. |
| id_programa | entero FK | Programa al que pertenece. |
| fecha_constitucion | fecha | Fecha de creación. |
TribunalMiembro¶
| Campo | Tipo | Descripción |
|---|---|---|
| id_tribunal | entero PK,FK | Tribunal. |
| id_usuario | entero PK,FK | Usuario miembro. |
| rol | texto | Presidente, vocal, secretario. |
RN-31
Trigger check_tribunal_impar() que verifica que el número de miembros sea impar.
Tutoria¶
| Campo | Tipo | Descripción |
|---|---|---|
| id_tutoria | entero PK | Identificador. |
| id_usuario | entero FK | Profesor tutor. |
| id_estudiante | entero FK | Estudiante tutorado. |
| id_edicion | entero FK | Edición en la que tutoriza. |
| id_memoria | entero FK NULL | Memoria asociada. |
| fecha_asignacion | fecha | Fecha de asignación. |
RN-25
Un tutor no puede tener más de 5 tutorías activas por edición (controlado por aplicación o vista materializada).
EvaluacionFinal¶
| Campo | Tipo | Descripción |
|---|---|---|
| id_evaluacion | entero PK | Identificador. |
| id_estudiante | entero FK | Estudiante evaluado. |
| id_expediente | entero FK | Expediente al que pertenece. |
| id_tribunal | entero FK | Tribunal asignado. |
| id_tutor | entero FK | Usuario tutor. |
| id_oponente | entero FK | Usuario oponente. |
| id_memoria | entero FK | MemoriaEscrita defendida. |
| id_resultado_defensa | entero FK | CAT_RESULTADO_DEFENSA. |
| convocatoria | entero | 1 = primera, 2 = segunda (RN-32). |
| fecha_defensa | fecha/hora | Fecha programada. |
| acta_url | texto | Ruta del acta generada. |
DocumentoEmitido¶
| Campo | Tipo | Descripción |
|---|---|---|
| id_documento_emitido | entero PK | Identificador. |
| id_estudiante | entero FK | Estudiante receptor. |
| id_programa | entero FK | Programa que origina el documento. |
| id_tipo_documento_emitido | entero FK | CAT_TIPO_DOCUMENTO_EMITIDO. |
| emitido_por | entero FK | Usuario emisor (Secretaría/Dirección). |
| codigo_validacion | texto único | Código único de validación (RN-48). |
| fecha_emision | fecha/hora | Cuándo se emitió. |
| ruta_archivo | texto | Ubicación del archivo. |
| firma_digital | texto | Hash o referencia a la firma digital. |
Certificado¶
| Campo | Tipo | Descripción |
|---|---|---|
| id_documento_emitido | entero PK,FK | DocumentoEmitido (herencia por clave compartida). |
| id_expediente | entero FK | Expediente que ampara. |
| horas | entero | Horas del certificado. |
| creditos | entero | Créditos del certificado. |
TituloAcademico¶
| Campo | Tipo | Descripción |
|---|---|---|
| id_documento_emitido | entero PK,FK | DocumentoEmitido. |
| id_expediente | entero FK | Expediente que ampara. |
| tesis_titulo | texto | Título de la tesis. |
| mencion | texto | Mención obtenida. |
Reporte¶
| Campo | Tipo | Descripción |
|---|---|---|
| id_reporte | entero PK | Identificador. |
| id_usuario_generador | entero FK | Usuario que lo generó. |
| tipo | texto | Tipo de reporte. |
| filtros | texto JSON | Filtros aplicados. |
| fecha_generacion | fecha/hora | Cuándo se generó. |
| formato | texto | Formato de salida (PDF, Excel, XML). |
Auditoria¶
| Campo | Tipo | Descripción |
|---|---|---|
| id_auditoria | entero PK | Identificador. |
| id_usuario | entero FK | Usuario que ejecutó la acción. |
| id_accion | entero FK | CAT_ACCION_AUDITORIA (3FN). |
| entidad | texto | Tipo de entidad afectada. |
| id_entidad | entero | Identificador de la entidad. |
| fecha_hora | fecha/hora | Marca temporal. |
| ip | texto | Dirección IP origen. |
| id_resultado | entero FK | CAT_RESULTADO_AUDITORIA (3FN). |
| detalle | texto JSON | Datos adicionales. |
Tablas catálogo (3FN)¶
Todas las tablas CAT_* tienen la misma estructura base: id_* PK, nombre (UNIQUE), activo (booleano). Mantener los valores en tablas separadas elimina dependencias transitivas y anomalías de actualización.
| Tabla | Valores iniciales |
|---|---|
CAT_ESTADO_USUARIO |
Activo, bloqueado, inactivo. |
CAT_TIPO_PROGRAMA |
Curso, entrenamiento, diplomado, maestría, especialidad. |
CAT_MODALIDAD_ESTUDIO |
Presencial, semipresencial, a distancia. |
CAT_MODALIDAD_DEDICACION |
Tiempo completo, tiempo parcial. |
CAT_ESTADO_PROGRAMA |
En diseño, en revisión, aprobado, en ejecución, cerrado, devuelto. |
CAT_ESTADO_EDICION |
Planificada, abierta, en ejecución, cerrada. |
CAT_ESTADO_CONVOCATORIA |
Borrador, publicada, cerrada. |
CAT_ESTADO_SOLICITUD |
Borrador, enviada, en revisión documental, pendiente corrección, en evaluación, aprobada, rechazada, matriculada. |
CAT_ESTADO_VALIDACION |
Pendiente, válido, rechazado. |
CAT_ESTADO_ACADEMICO |
Matriculado, en curso, alerta, prórroga, baja voluntaria, baja forzosa, graduado, desaprobado. |
CAT_ESTADO_MATRICULA |
Activa, cancelada, finalizada. |
CAT_ESTADO_EXPEDIENTE |
Abierto, bloqueado, cerrado. |
CAT_ESTADO_MEMORIA |
Borrador, entregada, validada, rechazada. |
CAT_RESULTADO_DEFENSA |
Aprobada, desaprobada, pendiente, segunda convocatoria. |
CAT_CALIFICACION_VALOR |
Excelente, Bien, Aprobado, Desaprobado (con orden para ordenamiento). |
CAT_TIPO_DOCUMENTO |
Título, autorización, identidad, memoria, acta, certificado, título. |
CAT_TIPO_DOCUMENTO_EMITIDO |
Certificado, título académico. |
CAT_TIPO_ASPIRANTE |
Nacional, extranjero. |
CAT_ORIGEN_NECESIDAD |
Interno, externo, territorial (CUM). |
CAT_PRIORIDAD |
Alta, media, baja (con nivel numérico). |
CAT_ESTADO_NECESIDAD |
Registrada, priorizada, aprobada, rechazada, vinculada. |
CAT_ACCION_AUDITORIA |
Login, logout, aprobar, rechazar, validar, emitir certificado, emitir título, etc. |
CAT_RESULTADO_AUDITORIA |
Éxito, error, denegado. |