PROYECTO FINAL

  1. Definir el enunciado del problema a sistematizar según las necesidades detectadas. (Debe ser Claro y tener mínimo 12 tablas) (Entrega 1)

Una familia ha decidido formalizar y organizar su negocio de préstamos, el cual actualmente se realiza de manera informal entre amigos, conocidos y clientes cercanos. Para ello, han decidido implementar un sistema de gestión de préstamos que permita llevar un control completo de los préstamos otorgados, los pagos recibidos, las condiciones acordadas con los clientes, el plan de pago que elija el cliente, así como cualquier mora impuesta por incumplimiento de pago. Además, el sistema debe permitir llevar un historial detallado de cada cliente, incluyendo sus referencias personales y la evolución de sus préstamos y pagos.

El objetivo es crear un sistema que además de gestionar préstamos, permita optimizar el proceso de cobro, seguimiento y organización de la información de cada cliente y transacción, asegurando que los datos sean fácilmente accesibles y gestionables.

Requisitos del sistema:

  1. Gestión de clientes: El sistema debe permitir almacenar la información personal de los clientes, incluyendo datos como nombre, dirección, número de teléfono, correo electrónico, referencias personales, y detalles del historial de préstamos previos.

  2. Gestión de préstamos: El sistema debe registrar los préstamos otorgados, incluyendo el monto del préstamo, fecha de otorgamiento, condiciones acordadas, tasa de interés, fecha de vencimiento, y el cliente asociado a cada préstamo.

  3. Gestión de pagos: El sistema debe permitir registrar cada pago recibido, con detalles como la fecha, el monto pagado, y el préstamo asociado al pago.

  4. Planes de pago: El sistema debe permitir a los clientes elegir entre diferentes planes de pago, y el sistema debe almacenar detalles de los plazos acordados y las cuotas de pago que el cliente debe cumplir.

  5. Moras: El sistema debe gestionar las moras impuestas a los clientes que no cumplan con los pagos en los plazos acordados, registrando el monto de la mora, la fecha de la mora, y el préstamo afectado.

  6. Historial de cliente: El sistema debe llevar un historial detallado de todas las interacciones con cada cliente, incluidos los préstamos previos, pagos realizados, moras, y cambios en los planes de pago.

  7. Referencias personales: Cada cliente puede tener varias referencias personales que serán almacenadas en el sistema para poder contactarlas en caso de incumplimiento del pago o para verificar la confiabilidad del clientes

Especificaciones del sistema:

Clientes: El sistema debe almacenar la información básica de cada cliente.

Campos: IDCliente (PK), nombre, apellido, númeroIdentificación, teléfono, dirección.

Préstamos: Cada préstamo otorgado debe registrarse en el sistema, con información sobre el monto prestado, la fecha en la que se solicitó y se aprobó el préstamo, y el estado actual del préstamo.

Campos: CodigoPrestamo (PK), IDCliente (FK que se refiere a la tabla "Clientes"), montoPrestado, fechaSolicitud, fechaAprobación, estado.

Pagos: El sistema debe registrar cada pago realizado por los clientes, incluyendo detalles como el monto pagado, la fecha del pago, el método utilizado y el saldo restante.

Campos: CodigoPago (PK), CodigoPrestamo (FK que se refiere a la tabla "Préstamos"), Codigoplanpago (FK que se refiere a la tabla "Plan de Pago"), montoPagado, fechaPago, metodoPago, saldoRestante.

Condiciones del préstamo: Cada préstamo tiene sus propias condiciones específicas, como la tasa de interés y el plazo en días para la devolución.

Campos: CodigoCondicion (PK), CodigoPrestamo (FK que se refiere a la tabla "Préstamos"), tasaInteres, plazoDias.

Plan de Pago: Algunos préstamos se dividen en planes de pago con cuotas específicas. El sistema debe permitir registrar la cantidad de cuotas y el monto de cada una.

Campos: CodigoPlanpago (PK), CodigoPrestamo (FK que se refiere a la tabla "Préstamos"), montoCuota, cantidadCuotas.

Historial de Préstamos: El sistema debe almacenar un historial de cada préstamo, permitiendo ver el estado actual del préstamo y agregar comentarios si es necesario.

Campos: CodigoHistorial (PK), IDCliente (FK que se refiere a la tabla "Clientes"), CodigoPrestamo (FK que se refiere a la tabla "Préstamos"), estadoActual, comentarios.

Referencias: Los clientes pueden proporcionar referencias personales, que también se registran en el sistema. Cada referencia incluye información de contacto y la relación con el cliente.

Campos: CodigoReferencia (PK), IDCliente (FK que se refiere a la tabla "Clientes"), nombreReferente, IDReferente, relación, telefonoReferente, direccionReferente.

Multas: En caso de incumplimientos, se pueden imponer multas a los clientes. Cada multa debe registrar la razón, el monto, la fecha y el estado de la multa.

Campos: CodigoMulta (PK), CodigoPrestamo (FK que se refiere a la tabla "Préstamos"), IDCiente (FK que se refiere a la tabla "Clientes"), fechaMulta, montoMulta, razón, estadoMulta.

Renegociaciones de préstamo: Llevar control de los cambios o renegociaciones en un préstamo (nuevo plazo, nueva tasa, nuevo plan de pago).

Campos: IdRenegociacion(PK), CodigoPrestamo(FK), fecharenegociacion, nuevaTasaInteres, nuevoPlazo, observaciones

Garantías del préstamo: Registrar las garantías (objetos, propiedades, fiadores) que los clientes ofrecen para respaldar un préstamo.

Campos: IDGarantia(PK), CodigoPrestamo(FK) tipoGarantia, descripcion, valorEstimado, estadoGarantia

Cobradores: Registrar los datos de los cobradores asignados a gestionar los cobros de ciertos préstamos.

Campos: IDCobrador (PK), CodigoPrestamo(FK), nombre1, nombre2, apellido1, apellido2, telefono, IDZona(FK)

Zonas: Asociar a cada cliente una zona para poder tener a la mano las agrupaciones, rutas de cobro o realizar diferentes análisis por sector.

Campos: IDZona(PK), IdMunicipio(FK), IDCliente(FK), CodigoPrestamo(FK)

Municipio: Asociar cada municipio a una zona

Campos: IdMunicipio(PK), nombre

2. REALIZAR LO SIGUIENTE:

2.1. Darle un nombre a la base de datos.

Préstamos amigos

2.2. Listado de tablas que llevara la BD. (Cuales son referenciales y cuales son de movimiento)

Tablas referenciales: Clientes, condiciones de préstamo, referencias, Cobradores, zonas, Garantías, plan de pago, municipio

Tablas de movimiento: Préstamos, pagos, historial de prestamos, multas, Renegociaciones

2.3. Diseñar el diccionario de datos de cada tabla (campo, nombre el campo, tipo, tamaño y descripción).

2.4. Montar o diseñar el modelo entidad relación.

2.5. Dibujar el Diagrama relacional.

3. Crear la BD y las tablas respectivas en MySQL (guardar evidencias del código MySQL con el que resuelva dicha actividad) (Entrega 2)

4. Diseñar ejercicios en los que se apliquen los diferentes comandos que se utilizaron durante el semestre con su respectivo análisis y resultados. (Entrega 3)

5. Sustentación

1) Insertar registros con fechas recientes 

Análisis

Nombre de la tabla: prestamo

Campos que contiene: codigo_prestamo, id_cliente, monto_prestado, fecha_solicitud, estado

Comandos: insert, curdate

Sintáxis: insert into prestamo (codigo_prestamo, id_cliente, monto_prestado, fecha_solicitud, estado) values(8881, 10, 800000, '2025-04-05', 'Aprobado'), (8882, 20, 500000, '2025-04-20', 'En proceso'), (8883, 30, 600000, curdate(), 'Activo');


2) Buscar todos los clientes cuyo nombre contengan 'an'

Análisis

Nombre de la tabla: cliente

Campos que contiene: nombre

Comandos: select, where, like

Sintáxis:select * from cliente where nombre like '%an%';

3) Agregar una columna con ENUM a la tabla garantías

Análisis

Nombre de la tabla: garantias

Campos que contiene: nivel_riesgo

Comandos: alter, add, enum, default

Sintáxis: alter table garantias add nivel_riesgo enum ('Alto', 'Medio','Bajo') default 'Medio';

Modificacion de un nivel de riesgo para comprobar el comando

4) Realizar una consulta utilizando INNER JOIN

Análisis

Nombre de la tabla: cliente, prestamo

Campos que contiene: nombre, monto_prestado, id_cliente

Comandos: select, inner join 

Sintáxis: select c.nombre, p.monto_prestado from cliente c inner join prestamo p on c.id_cliente = p.id_cliente;

5) Realizar una consulta utilizando LEFT JOIN

Análisis

Nombre de la tabla: cliente, referencias

Campos que contiene: nombre, nombre_referentes, id_cliente

Comandos: select, left join

Sintáxis: select c.nombre, r.nombre_referente from cliente c left join referencias r on c.id_cliente = r.id_cliente;

6) Realizar una consulta utilizando RIGHT JOIN

Análisis

Nombre de la tabla: cliente, historialprestamo

Campos que contiene: nombre, estado_actual, id_cliente

Comandos: select, right join

Sintáxis: select c.nombre, h.estado_actual from historialprestamo h right join cliente c on h.id_cliente = c.id_cliente;

7) Realizar una consulta utilizando JOIN con varias tablas

Análisis

Nombre de la tabla: cliente, prestamo, garantias

Campos que contiene: nombre, fecha_soliticud, tipo_garantia, id_cliente, codigo_prestamo

Comandos: select, join

Sintáxis: select c.nombre, p.fecha_solicitud, g.tipo_garantia from cliente c join prestamo p on c.id_cliente = p.id_cliente join garantias g on p.codigo_prestamo = g.codigo_prestamo;

8) Numerar las multas por cliente 

Análisis

Nombre de la tabla: multas

Campos que contiene: id_cliente, monto_multa

Comandos: select, @

Sintáxis: select @n := @n + 1 as numero, id_cliente, monto_multa from multas;

9) Crear una auditoría para la tabla pago

Análisis

Nombre de la tabla: auditoria_pago

Campos que contiene: id, codigo_pago, accion, fecha

Comandos: create

Sintáxis: create table auditoria_pago

-> (id int auto_increment not null primary key,

-> codigo_pago int not null,

-> accion varchar(10) not null,

-> fecha timestamp default current_timestamp);

Creación del trigger para la tabla auditoria_pago

Prueba de la auditoria

10) Crear un usuario y otorgar permisos

Creación de los usuarios:

Prueba con el usuario:

Cómo el usuario tiene permiso únicamente de lectura permite ver los datos de la base de datos 

Pero no permite modificar algo dentro de la base de datos por los permisos que tiene

© 2024 Luisa Arcila | Todos los derechos reservados
Creado con Webnode Cookies
¡Crea tu página web gratis! Esta página web fue creada con Webnode. Crea tu propia web gratis hoy mismo! Comenzar