https://github.com/daniel-ja03/gestion-academica-sqlserver
https://github.com/daniel-ja03/gestion-academica-sqlserver
sql-server
Last synced: 6 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/daniel-ja03/gestion-academica-sqlserver
- Owner: Daniel-JA03
- Created: 2025-07-08T23:39:34.000Z (7 months ago)
- Default Branch: main
- Last Pushed: 2025-07-11T03:07:20.000Z (7 months ago)
- Last Synced: 2025-07-11T05:33:23.007Z (7 months ago)
- Topics: sql-server
- Language: TSQL
- Homepage:
- Size: 27.3 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# 🎓 Proyecto SQL - Gestión Académica
Este proyecto simula un sistema académico básico. Está desarrollado con **SQL Server** e incluye el diseño de base de datos, inserción de datos, procedimientos almacenados, vistas, triggers y transacciones.
---
## 📌 Objetivo del proyecto
Crear una base de datos relacional que permita gestionar de forma organizada la información académica de una institución educativa. Incluye operaciones CRUD, reportes útiles y un mecanismos de control como triggers y transacciones.
---
## 📁 Estructura del Proyecto
```plaintext
.
├── gestion_academica.sql -- Script de creación de tablas y relaciones
├── insert_datos.sql -- Datos de prueba para todas las tablas
├── procedimientos.sql -- Procedimientos almacenados (SP)
├── consultas.sql -- Consultas útiles del sistema
├── vistas.sql -- Vistas creadas a partir de consultas
├── trigger.sql -- Triggers para historial de calificaciones
├── transacciones.sql -- Transacciones para registrar matrícula y calificación del alumno
```
---
## 🗃️ Tablas del Proyecto
El sistema cuenta con las siguientes tablas, relacionadas mediante claves foráneas:
- `facultades`
- `carreras`
- `alumnos`
- `docentes`
- `cursos`
- `matriculas`
- `calificaciones`
- `historial_calificaciones` (usada para el trigger de auditoría)
---
## ⚙️ Procedimientos Almacenados
| Facultades | Carreras | Alumnos | Docente | Cursos | Matriculas | Calificaciones |
|------------|----------|---------|---------|------------|----------------|----------------|
| `sp_agregarFacultad` | `sp_agregarCarrera` | `sp_agregarAlumno` | `sp_agregarDocente` | `sp_agregarCurso` | `sp_agregarMatricula` | `sp_agregarCalificacion` |
| `sp_listarFacultadesBack` | `sp_listarCarrerasBack` | `sp_listarAlumnosBack` | `sp_listarDocentes` | `sp_listarCursosBack` | `sp_listarMatriculaBack` | `sp_listarCalificacionesPorAlumno` |
| `sp_listarFacultadesFrond` | `sp_listarCarrerasFront` | `sp_listarAlumnosFront` | `sp_actualizarDocente` | `sp_listarCursosFrond` | `sp_listarMatriculaFrond` | `sp_calcularPromedioAlumno` |
| `sp_actualizarFacultad` | `sp_actualizarCarreras` | `sp_actualizarAlumno` | `sp_eliminarDocente` | `sp_actualizarCurso` | `sp_eliminarMatricula` | |
| `sp_eliminarFacultad` | `sp_eliminarCarrera` | `sp_eliminarAlumno` | | `sp_eliminarCurso` | | |
---
## 🔍 Consultas Útiles
- ✅ Alumnos aprobados por curso (**nota >= 13**)
- 📊 Promedio general por alumno
- 📈 Cursos con más inscritos
- 🧑🎓 Alumnos de una carrera específica
- 📌 Cantidad de alumnos por carrera
- ❌ Cantidad de Cursos sin matriculados
---
## 🔄 Vistas SQL
- `vista_alumnos_matriculados` -> Alumnos matriculados por curso
- `vista_detalle_calificaciones` -> Detalle de calificaciones
- `vista_promedio_alumno` -> Promedio general por alumno
---
## ⚠️ Triggers
### `TR_Historial_Calificaciones`
Este trigger se activa automáticamente ante **INSERT, UPDATE y DELETE** en la tabla `calificaciones` y guarda un historial completo en la tabla `historial_calificaciones`, registrando:
- Los datos antiguos y nuevos.
- Fecha y hora del cambio.
- Usuario y host desde donde se hizo.
- Tipo de acción: Inserción, Actualización o Eliminación.
Esto permite auditar todos los movimientos sobre las calificaciones.
---
## 💾 Transacciones
Se implementó una transacción que garantiza que tanto la matrícula como la calificación del alumno se registren correctamente. En caso de error, se ejecuta un `ROLLBACK`.