ESTRUCTURA DE BASE DE DATOS: iestpggiedu_db
Fecha: 2025-06-19 03:47:46
================================================================================

RESUMEN: 31 tablas encontradas

TABLA 1: Actividad
------------------------------------------------------------
  - ActividadID: int(11) - NOT NULL [PRIMARY KEY]
  - UsuarioID: int(11) - NOT NULL [FOREIGN KEY]
  - TipoUsuario: enum('ADMIN','PROFESOR','ALUMNO') - NOT NULL
  - Accion: varchar(100) - NOT NULL
  - Descripcion: varchar(255) - NOT NULL
  - Modulo: varchar(50) - NOT NULL
  - DatosAnteriores: text - NULL
  - DatosNuevos: text - NULL
  - FechaRegistro: timestamp - NOT NULL [FOREIGN KEY] DEFAULT: current_timestamp()
  - IP: varchar(45) - NULL

TABLA 2: Administrador
------------------------------------------------------------
  - AdministradorID: int(11) - NOT NULL [PRIMARY KEY]
  - DNI: varchar(8) - NOT NULL [UNIQUE]
  - Nombres: varchar(100) - NOT NULL
  - ApellidoPaterno: varchar(100) - NOT NULL
  - ApellidoMaterno: varchar(100) - NOT NULL
  - Email: varchar(200) - NULL
  - Clave: varchar(250) - NOT NULL
  - RolID: int(11) - NULL [FOREIGN KEY]

TABLA 3: Alumno
------------------------------------------------------------
  - AlumnoID: int(11) - NOT NULL [PRIMARY KEY]
  - DNI: varchar(100) - NOT NULL
  - Nombres: varchar(100) - NOT NULL
  - ApellidoPaterno: varchar(100) - NOT NULL
  - ApellidoMaterno: varchar(100) - NOT NULL
  - FechaNac: date - NOT NULL
  - Sexo: varchar(10) - NULL
  - idUbigeo: varchar(6) - NOT NULL [FOREIGN KEY]
  - Direccion: varchar(100) - NULL
  - Email: varchar(200) - NULL
  - Celular: varchar(12) - NULL
  - Discapacidad: tinyint(1) - NOT NULL
  - DescripcionDiscapacidad: varchar(250) - NULL
  - CarreraID: int(11) - NOT NULL [FOREIGN KEY]
  - ItinerarioID: int(11) - NOT NULL [FOREIGN KEY]
  - Clave: varchar(250) - NOT NULL
  - LugarNacimiento: varchar(100) - NULL
  - EstadoCivil: varchar(12) - NULL
  - SeguroMedico: varchar(100) - NULL
  - Alergia: varchar(100) - NULL
  - GrupoSangineo: varchar(10) - NULL
  - Estado: varchar(10) - NULL
  - ProcedenciaIE: varchar(100) - NULL
  - DocumentosPrecentar: varchar(250) - NULL
  - RolID: int(11) - NULL [FOREIGN KEY]

TABLA 4: Ambiente
------------------------------------------------------------
  - AmbienteID: int(11) - NOT NULL [PRIMARY KEY]
  - Codigo: varchar(20) - NOT NULL
  - Nombre: varchar(100) - NOT NULL
  - Tipo: varchar(50) - NOT NULL
  - Capacidad: int(11) - NOT NULL
  - Activo: tinyint(1) - NULL DEFAULT: 1

TABLA 5: AmbienteSemestre
------------------------------------------------------------
  - AmbienteSemestreID: int(11) - NOT NULL [PRIMARY KEY]
  - PeriodoID: int(11) - NULL [FOREIGN KEY]
  - CarreraID: int(11) - NULL [FOREIGN KEY]
  - ItinerarioID: int(11) - NULL [FOREIGN KEY]
  - Semestre: varchar(3) - NULL
  - AmbienteID: int(11) - NULL [FOREIGN KEY]

TABLA 6: Asistencia
------------------------------------------------------------
  - AsistenciaID: int(11) - NOT NULL [PRIMARY KEY]
  - AlumnoID: int(11) - NOT NULL [FOREIGN KEY]
  - PeriodoUnidadID: int(11) - NOT NULL [FOREIGN KEY]
  - MatriculaID: int(11) - NOT NULL [FOREIGN KEY]
  - Fecha: varchar(10) - NOT NULL
  - Estado: enum('P','T','F') - NOT NULL

TABLA 7: Bloque
------------------------------------------------------------
  - BloqueID: int(11) - NOT NULL [PRIMARY KEY]
  - HoraInicio: time - NOT NULL
  - HoraFin: time - NOT NULL

TABLA 8: CalificacionIndicador
------------------------------------------------------------
  - CalificacionID: int(11) - NOT NULL [PRIMARY KEY]
  - MatriculaID: int(11) - NOT NULL [FOREIGN KEY]
  - IndicadorID: int(11) - NOT NULL [FOREIGN KEY]
  - Nota: decimal(2,0) - NULL

TABLA 9: Carrera
------------------------------------------------------------
  - CarreraID: int(11) - NOT NULL [PRIMARY KEY]
  - Nombre: varchar(200) - NOT NULL [UNIQUE]
  - Descripcion: varchar(100) - NOT NULL

TABLA 10: ConfiguracionHorario
------------------------------------------------------------
  - ConfiguracionID: int(11) - NOT NULL [PRIMARY KEY]
  - MaxHorasContinuas: int(11) - NULL DEFAULT: 3
  - PrioridadAsignacion: enum('AULA','PROFESOR') - NULL DEFAULT: AULA
  - MaxHorasPorDia: int(11) - NULL DEFAULT: 3
  - Activo: tinyint(1) - NULL DEFAULT: 1

TABLA 11: Dia
------------------------------------------------------------
  - DiaID: int(11) - NOT NULL [PRIMARY KEY]
  - Nombre: varchar(20) - NOT NULL

TABLA 12: DisponibilidadProfesor
------------------------------------------------------------
  - DisponibilidadID: int(11) - NOT NULL [PRIMARY KEY]
  - ProfesorID: int(11) - NOT NULL [FOREIGN KEY]
  - DiaID: int(11) - NOT NULL [FOREIGN KEY]
  - BloqueID: int(11) - NOT NULL [FOREIGN KEY]
  - Disponible: tinyint(1) - NOT NULL DEFAULT: 1

TABLA 13: EntregaTarea
------------------------------------------------------------
  - EntregaTareaID: int(11) - NOT NULL [PRIMARY KEY]
  - TareaID: int(11) - NOT NULL [FOREIGN KEY]
  - MatriculaID: int(11) - NOT NULL [FOREIGN KEY]
  - RutaArchivo: varchar(255) - NOT NULL
  - NombreArchivo: varchar(255) - NOT NULL
  - FechaEntrega: datetime - NOT NULL
  - Estado: tinyint(1) - NULL DEFAULT: 1

TABLA 14: Horario
------------------------------------------------------------
  - HorarioID: int(11) - NOT NULL [PRIMARY KEY]
  - PeriodoUnidadID: int(11) - NOT NULL [FOREIGN KEY]
  - DiaID: int(11) - NOT NULL [FOREIGN KEY]
  - BloqueID: int(11) - NOT NULL [FOREIGN KEY]
  - AmbienteID: int(11) - NOT NULL [FOREIGN KEY]
  - FechaGeneracion: timestamp - NULL DEFAULT: current_timestamp()
  - GeneradoPor: int(11) - NULL [FOREIGN KEY]

TABLA 15: IndicadoresDeLogro
------------------------------------------------------------
  - IndicadorID: int(11) - NOT NULL [PRIMARY KEY]
  - PeriodoUnidadID: int(11) - NOT NULL [FOREIGN KEY]
  - Descripcion: varchar(300) - NOT NULL
  - Orden: int(11) - NOT NULL

TABLA 16: Itinerario
------------------------------------------------------------
  - ItinerarioID: int(11) - NOT NULL [PRIMARY KEY]
  - Nombre: varchar(200) - NOT NULL
  - Descripcion: varchar(100) - NULL
  - CarreraID: int(11) - NOT NULL [FOREIGN KEY]

TABLA 17: Matricula
------------------------------------------------------------
  - MatriculaID: int(11) - NOT NULL [PRIMARY KEY]
  - AlumnoID: int(11) - NOT NULL [FOREIGN KEY]
  - CarreraID: int(11) - NOT NULL [FOREIGN KEY]
  - ItinerarioID: int(11) - NOT NULL [FOREIGN KEY]
  - ModuloID: int(11) - NOT NULL [FOREIGN KEY]
  - UnidadDidacticaID: int(11) - NOT NULL [FOREIGN KEY]
  - PeriodoID: int(11) - NOT NULL [FOREIGN KEY]
  - TurnoID: int(11) - NOT NULL [FOREIGN KEY]
  - PeriodoUnidadID: int(11) - NOT NULL [FOREIGN KEY]
  - Promedio: decimal(2,0) - NULL
  - EvaluacionRecuperacion: decimal(2,0) - NULL
  - NotaFinal: decimal(2,0) - NULL
  - Condicion: varchar(50) - NULL
  - Activo: tinyint(1) - NULL

TABLA 18: Modulo
------------------------------------------------------------
  - ModuloID: int(11) - NOT NULL [PRIMARY KEY]
  - Modulo: varchar(100) - NOT NULL
  - Tipo: tinyint(1) - NOT NULL
  - DescripcionTipo: varchar(100) - NOT NULL
  - CarreraID: int(11) - NULL [FOREIGN KEY]
  - ItinerarioID: int(11) - NOT NULL [FOREIGN KEY]

TABLA 19: Periodo
------------------------------------------------------------
  - PeriodoID: int(11) - NOT NULL [PRIMARY KEY]
  - Año: varchar(4) - NOT NULL [FOREIGN KEY]
  - Numero: varchar(3) - NOT NULL
  - Activo: tinyint(1) - NOT NULL
  - FechaInicio: date - NOT NULL
  - FechaFin: date - NOT NULL

TABLA 20: PeriodoUnidad
------------------------------------------------------------
  - PeriodoUnidadID: int(11) - NOT NULL [PRIMARY KEY]
  - PeriodoID: int(11) - NOT NULL [FOREIGN KEY]
  - CarreraID: int(11) - NOT NULL [FOREIGN KEY]
  - ItinerarioID: int(11) - NOT NULL [FOREIGN KEY]
  - ModuloID: int(11) - NOT NULL [FOREIGN KEY]
  - UnidadDidacticaID: int(11) - NOT NULL [FOREIGN KEY]
  - ProfesorID: int(11) - NOT NULL [FOREIGN KEY]
  - TurnoID: int(11) - NOT NULL [FOREIGN KEY]
  - Activo: tinyint(1) - NOT NULL

TABLA 21: Profesor
------------------------------------------------------------
  - ProfesorID: int(11) - NOT NULL [PRIMARY KEY]
  - DNI: varchar(8) - NOT NULL [UNIQUE]
  - Nombres: varchar(100) - NOT NULL
  - ApellidoPaterno: varchar(100) - NOT NULL
  - ApellidoMaterno: varchar(100) - NOT NULL
  - FechaNac: date - NOT NULL
  - Sexo: varchar(10) - NOT NULL
  - idUbigeo: varchar(6) - NULL [FOREIGN KEY]
  - Direccion: varchar(100) - NULL
  - Email: varchar(200) - NULL
  - Celular: varchar(12) - NULL
  - Especialidad: varchar(100) - NOT NULL
  - Clave: varchar(250) - NOT NULL
  - EstadoCivil: varchar(12) - NULL
  - LugarDeNacimiento: varchar(100) - NULL
  - GradoDeInstruccion: varchar(100) - NULL
  - EstudiosRealizados: varchar(500) - NULL
  - IEDeEstudio: varchar(100) - NULL
  - AñoEstudios: varchar(4) - NULL
  - IEAnterior: varchar(100) - NULL
  - AñoEnseñanza: varchar(4) - NULL
  - SeguroMedico: varchar(100) - NULL
  - Alergia: varchar(100) - NULL
  - GrupoSangineo: varchar(10) - NULL
  - RolID: int(11) - NULL [FOREIGN KEY]

TABLA 22: RestriccionAmbiente
------------------------------------------------------------
  - RestriccionID: int(11) - NOT NULL [PRIMARY KEY]
  - AmbienteID: int(11) - NOT NULL [FOREIGN KEY]
  - DiaID: int(11) - NOT NULL [FOREIGN KEY]
  - BloqueID: int(11) - NOT NULL [FOREIGN KEY]
  - Disponible: tinyint(1) - NOT NULL DEFAULT: 1
  - Motivo: varchar(200) - NULL

TABLA 23: Rol
------------------------------------------------------------
  - RolID: int(11) - NOT NULL [PRIMARY KEY]
  - Nombre: varchar(50) - NOT NULL
  - Descripcion: varchar(100) - NULL

TABLA 24: Silabus
------------------------------------------------------------
  - SilabusID: int(11) - NOT NULL [PRIMARY KEY]
  - PeriodoUnidadID: int(11) - NOT NULL [UNIQUE]
  - NombreArchivo: varchar(255) - NOT NULL
  - RutaArchivo: varchar(255) - NOT NULL
  - FechaSubida: datetime - NOT NULL
  - Estado: tinyint(1) - NOT NULL DEFAULT: 1
  - Observaciones: text - NULL

TABLA 25: Tarea
------------------------------------------------------------
  - TareaID: int(11) - NOT NULL [PRIMARY KEY]
  - PeriodoUnidadID: int(11) - NOT NULL [FOREIGN KEY]
  - IndicadorID: int(11) - NOT NULL [FOREIGN KEY]
  - Titulo: varchar(200) - NOT NULL
  - Descripcion: text - NULL
  - FechaCreacion: datetime - NOT NULL
  - FechaEntrega: datetime - NOT NULL
  - Estado: tinyint(1) - NULL DEFAULT: 1

TABLA 26: Turno
------------------------------------------------------------
  - TurnoID: int(11) - NOT NULL [PRIMARY KEY]
  - Turno: varchar(10) - NULL

TABLA 27: Ubigeo
------------------------------------------------------------
  - idUbigeo: varchar(6) - NOT NULL [PRIMARY KEY]
  - Departamento: varchar(50) - NULL
  - Provincia: varchar(50) - NULL
  - Distrito: varchar(50) - NULL

TABLA 28: UnidadDidactica
------------------------------------------------------------
  - UnidadDidacticaID: int(11) - NOT NULL [PRIMARY KEY]
  - Nombre: varchar(200) - NOT NULL
  - Semestre: varchar(3) - NOT NULL
  - Horas: int(11) - NOT NULL
  - Creditos: decimal(3,1) - NOT NULL
  - ItinerarioID: int(11) - NOT NULL [FOREIGN KEY]
  - ModuloID: int(11) - NOT NULL [FOREIGN KEY]
  - Orden: varchar(1) - NOT NULL

TABLA 29: v_disponibilidad_ambientes
------------------------------------------------------------
  - AmbienteID: int(11) - NOT NULL
  - Codigo: varchar(20) - NOT NULL
  - Ambiente: varchar(100) - NOT NULL
  - Capacidad: int(11) - NOT NULL
  - DiaID: int(11) - NOT NULL
  - Dia: varchar(20) - NOT NULL
  - BloqueID: int(11) - NOT NULL
  - HoraInicio: time - NOT NULL
  - HoraFin: time - NOT NULL
  - Disponible: int(1) - NOT NULL

TABLA 30: v_disponibilidad_profesores
------------------------------------------------------------
  - ProfesorID: int(11) - NOT NULL
  - Profesor: varchar(201) - NULL
  - DiaID: int(11) - NOT NULL
  - Dia: varchar(20) - NOT NULL
  - BloqueID: int(11) - NOT NULL
  - HoraInicio: time - NOT NULL
  - HoraFin: time - NOT NULL
  - Disponible: int(1) - NULL

TABLA 31: v_grupos_horario
------------------------------------------------------------
  - PeriodoUnidadID: int(11) - NOT NULL
  - PeriodoID: int(11) - NOT NULL
  - Año: varchar(4) - NOT NULL
  - Periodo: varchar(3) - NOT NULL
  - CarreraID: int(11) - NOT NULL
  - Carrera: varchar(200) - NOT NULL
  - ItinerarioID: int(11) - NOT NULL
  - Itinerario: varchar(200) - NOT NULL
  - ModuloID: int(11) - NOT NULL
  - Modulo: varchar(100) - NOT NULL
  - UnidadDidacticaID: int(11) - NOT NULL
  - UnidadDidactica: varchar(200) - NOT NULL
  - HorasSemanales: int(11) - NOT NULL
  - TurnoID: int(11) - NOT NULL
  - Turno: varchar(10) - NULL
  - ProfesorID: int(11) - NOT NULL
  - Profesor: varchar(302) - NULL
  - NumeroAlumnos: bigint(21) - NOT NULL

================================================================================
RELACIONES (FOREIGN KEYS)
================================================================================
Administrador.RolID -> Rol.RolID
Alumno.idUbigeo -> Ubigeo.idUbigeo
Alumno.RolID -> Rol.RolID
Alumno.ItinerarioID -> Itinerario.ItinerarioID
Alumno.CarreraID -> Carrera.CarreraID
AmbienteSemestre.AmbienteID -> Ambiente.AmbienteID
AmbienteSemestre.ItinerarioID -> Itinerario.ItinerarioID
AmbienteSemestre.CarreraID -> Carrera.CarreraID
AmbienteSemestre.PeriodoID -> Periodo.PeriodoID
Asistencia.MatriculaID -> Matricula.MatriculaID
Asistencia.PeriodoUnidadID -> PeriodoUnidad.PeriodoUnidadID
Asistencia.AlumnoID -> Alumno.AlumnoID
CalificacionIndicador.IndicadorID -> IndicadoresDeLogro.IndicadorID
CalificacionIndicador.MatriculaID -> Matricula.MatriculaID
DisponibilidadProfesor.DiaID -> Dia.DiaID
DisponibilidadProfesor.ProfesorID -> Profesor.ProfesorID
DisponibilidadProfesor.BloqueID -> Bloque.BloqueID
EntregaTarea.TareaID -> Tarea.TareaID
EntregaTarea.MatriculaID -> Matricula.MatriculaID
Horario.PeriodoUnidadID -> PeriodoUnidad.PeriodoUnidadID
Horario.GeneradoPor -> Profesor.ProfesorID
Horario.AmbienteID -> Ambiente.AmbienteID
Horario.BloqueID -> Bloque.BloqueID
Horario.DiaID -> Dia.DiaID
IndicadoresDeLogro.PeriodoUnidadID -> PeriodoUnidad.PeriodoUnidadID
Itinerario.CarreraID -> Carrera.CarreraID
Matricula.UnidadDidacticaID -> UnidadDidactica.UnidadDidacticaID
Matricula.ModuloID -> Modulo.ModuloID
Matricula.PeriodoUnidadID -> PeriodoUnidad.PeriodoUnidadID
Matricula.ItinerarioID -> Itinerario.ItinerarioID
Matricula.TurnoID -> Turno.TurnoID
Matricula.CarreraID -> Carrera.CarreraID
Matricula.PeriodoID -> Periodo.PeriodoID
Matricula.AlumnoID -> Alumno.AlumnoID
Modulo.ItinerarioID -> Itinerario.ItinerarioID
Modulo.CarreraID -> Carrera.CarreraID
PeriodoUnidad.CarreraID -> Carrera.CarreraID
PeriodoUnidad.ProfesorID -> Profesor.ProfesorID
PeriodoUnidad.PeriodoID -> Periodo.PeriodoID
PeriodoUnidad.UnidadDidacticaID -> UnidadDidactica.UnidadDidacticaID
PeriodoUnidad.ModuloID -> Modulo.ModuloID
PeriodoUnidad.ItinerarioID -> Itinerario.ItinerarioID
PeriodoUnidad.TurnoID -> Turno.TurnoID
Profesor.RolID -> Rol.RolID
Profesor.idUbigeo -> Ubigeo.idUbigeo
RestriccionAmbiente.DiaID -> Dia.DiaID
RestriccionAmbiente.AmbienteID -> Ambiente.AmbienteID
RestriccionAmbiente.BloqueID -> Bloque.BloqueID
Silabus.PeriodoUnidadID -> PeriodoUnidad.PeriodoUnidadID
Tarea.PeriodoUnidadID -> PeriodoUnidad.PeriodoUnidadID
Tarea.IndicadorID -> IndicadoresDeLogro.IndicadorID
UnidadDidactica.ModuloID -> Modulo.ModuloID
UnidadDidactica.ItinerarioID -> Itinerario.ItinerarioID
