Sistema de Renta de Vehículos – RentAutos
Este examen consiste en aplicar ingeniería inversa a partir de una interfaz web de registro de reservas y un dashboard gerencial. El objetivo es que diseñes y construyas una base de datos que respalde completamente la lógica visual del sistema, aplicando procedimientos almacenados, vistas, generación de datos y control de accesos.
- Modelar correctamente entidades y relaciones desde el sistema visual.
- Automatizar operaciones con procedimientos almacenados.
- Consolidar información para reportes mediante vistas.
- Generar datos de prueba usando funciones nativas.
- Aplicar seguridad mediante roles y permisos.
- Documentar y estructurar adecuadamente la entrega.
Puedes clonar este repositorio en tu máquina local con:
git clone https://github.com/usuario/proyecto-rentautos-db.git
cd proyecto-rentautos-dbAsegúrate de contar con las siguientes herramientas instaladas: • PostgreSQL 13+ • pgAdmin, DBeaver o consola psql • (Opcional) Visual Studio Code o cualquier editor SQL
• Todo tu desarrollo debe ejecutarse sobre PostgreSQL, sin dependencias externas.
• Si usas herramientas gráficas como pgAdmin o DBeaver, asegúrate de entregar solo el script SQL.
• Tu script debe correr de inicio a fin sin errores.
Las siguientes capturas representan el sistema sobre el cual debes desarrollar la base de datos.
A partir de estas imágenes deberás identificar las entidades, relaciones, lógica de negocio y reportes requeridos para modelar y construir tu base de datos.
- Mínimo 5 entidades.
- Incluir atributos, tipos de datos, PK/FK, restricciones y relaciones 1:N / N:M, etc.
- CRUD completo con validaciones para al menos 2 entidades.
- Usar parámetros, validar existencia, dependencias y retornar mensajes.
- Mínimo 1000 registros totales.
- Usar
generate_series(),random(), ciclosFOR, etc.
Crear vistas o consultas que representen los siguientes reportes:
| Gráfico | Requerimientos técnicos |
|---|---|
| Rentas por categoría | GROUP BY, JOIN |
| Ingresos por mes | SUM(), DATE_TRUNC() |
| Reservas activas vs finalizadas | COUNT(), GROUP BY |
| Clientes con más reservas | ORDER BY, LIMIT |
- Crear dos roles:
rol_lectura: acceso solo a vistas.rol_escritura: acceso a tablas y SPs.
- Usar
GRANT,REVOKE,ALTER DEFAULT PRIVILEGES.
-
Script SQL único con:
- Creación de tablas, relaciones y restricciones
- Procedimientos almacenados
- Vistas y generación de datos
- Creación de roles y permisos
-
Archivo PDF o Markdown con:
- Diagrama ER (puede ser digital o escaneado)
- Justificación de vistas
- Consultas utilizadas en reportes
| Criterio | Ponderación |
|---|---|
| Modelo relacional y restricciones | 25% |
| CRUD completo con SPs y validaciones | 20% |
| Generación masiva de datos | 10% |
| Consultas para reportes + vistas | 20% |
| Seguridad y roles | 15% |
| Documentación y organización | 10% |
- Trabajo individual.
- No se permite reutilizar proyectos de exámenes anteriores.
- Puedes consultar documentación oficial, pero debes entender y justificar tu solución.
- Se valorará la claridad, lógica y profundidad del trabajo.
Duración estimada: 2 sesiones (2h c/u) + presentación final

