PROYECTO FINAL

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

Una familia ha decidido formalizar y organizar su negocio de préstamos para amigos, conocidos y cliente cercanos. El objetivo es implementar un sistema de gestión de préstamos que permita llevar un control de los préstamos otorgados, los pagos recibidos, condiciones acordadas con los clientes, el plan de pago que elija el cliente e información del cliente, así cómo cualquier mora impuesta por incumplimiento de pago. Además, el sistema debe permitir llevar un historial detallado de cada cliente y sus referencias personales

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éstamosCada 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.

    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

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

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) e insertar 10 registros en cada tabla (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)

Crear una consulta para visualizar los préstamos menores a 300.000

Análisis:

Qué información se desea mostrar o visualizar

Préstamos menores a 300.000

Tabla: Prestamo

Condición: monto prestado < 300.000

¿Qué comando se debe utilizar?

select

Sintaxis: select codigo_prestamo 'Código Préstamo', id_cliente 'ID Cliente', monto_prestado 'Préstamo', fecha_solicitud 'Fecha Solicitud' from prestamo where monto_prestado < 300000;

Crear una consulta para visualizar el estado y el monto de los préstamos cuyo monto sea mayor a 600000

Análisis:

Qué información se desea mostrar o visualizar

Estado y monto de los préstamos

Tabla: Prestamo

Condición: monto prestado > 600.000

¿Qué comando se debe utilizar?

select

Sintaxis: select estado 'Estado', monto_prestado 'Monto prestado' from prestamo where monto_prestado > 600000;

Crear una consulta que visualice los prestamos del cliente con ID 60

Análisis:

Qué información se desea mostrar o visualizar

Préstamos del cliente con ID '60'

Tabla: Prestamo

Condición: Id del cliente = '60'

¿Qué comando se debe utilizar?

select

Sintaxis: select codigo_prestamo 'Código Préstamo', id_cliente 'ID Cliente', monto_prestado 'Monto Prestado', fecha_solicitud 'Fecha Solicitud' from prestamo where id_cliente = '60';

Visualizar los prestamos que se han realizado desde el 16 de julio de 2024

Qué información se desea mostrar o visualizar

Préstamos a partir del 16 de julio del 2024

Tabla: Prestamo

Condición: fecha de solicitud >= '2024-07-16'

¿Qué comando se debe utilizar?

select

Sintaxis: select codigo_prestamo 'Codigo Prestamo', id_cliente 'ID Cliente', monto_prestado 'Prestamo', fecha_solicitud 'Fecha solicitud', estado 'Estado'  from prestamo where fecha_solicitud >= '2024-07-16';

Visualizar la información de los clientes con id 10,30,50

Qué información se desea mostrar o visualizar

Información de los clientes con id 10,30 y 50

Tabla: cliente

Condición: Id_cliente = '10' o id_cliente = '30' o id_cliente = '50'

¿Qué comando se debe utilizar?

select, or

Sintaxis: select id_cliente 'ID Cliente', nombre 'Nombre', apellidos 'Apellidos', telefono 'Telefono', numero_identificacion 'Número de identificación', direccion 'Dirección' from cliente where id_cliente='10' or id_cliente='30' or id_cliente='50';

Visualizar la información de las condiciones de préstamo 212,313,321

Qué información se desea mostrar o visualizar

Condiciones del prestamo

Tabla: condiciones_prestamo

Condición: codigo_condicion ('212', '313', '321')

¿Qué comando se debe utilizar?

select, in

Sintaxis: select codigo_condicion 'Codigo', tasa_interes 'Tasa de interes %', plazo_dias 'Días de Gabela' from condicionesprestamo where codigo_condicion in('212','313','321');

Visualizar las multas que tengan un monto entre 100.000 y 150.000

Qué información se desea mostrar o visualizar

multas entre 100.00 y 150.000

Tabla: multas

Condición: monto de las multas entre 100.000 y 150.000

¿Qué comando se debe utilizar?

select, between

Sintaxis: select codigo_multa 'Código multa', codigo_prestamo 'Código Préstamo', monto_multa 'Multa', razon 'Razón'  from multas where monto_multa between 100000 and 150000;

Visualizar los clientes cuyo nombre comience con la letra S 

Qué información se desea mostrar o visualizar

Clientes, nombre

Tabla: cliente

Condición: El nombre del cliente comience por la letra S

¿Qué comando se debe utilizar?

select, %

Sintaxis: select nombre from cliente where nombre like 'S%'; 

Consultar los clientes con préstamos en mora

Análisis:

¿Qué desea consultar y de qué tablas?

cliente.nombre, cliente.apellidos, cliente.telefono, cliente.id_cliente

prestamo.monto_prestado, prestamo.fecha_solicitud, prestamo.estado, prestamo.id_cliente

¿Qué tablas se ven afectadas o involucradas?

Prestamo

Cliente

Condicion(es)

Prestamos en mora

¿Cómo se relacionan las tablas?

cliente.id_cliente = prestamo.id_cliente

¿Qué comando se debe utilizar?

select, join on

Sintaxis: select cliente.nombre 'Nombres', cliente.apellidos 'Apellidos', cliente.telefono 'Teléfono', prestamo.monto_prestado 'Monto Prestado', prestamo.fecha_solicitud 'Fecha Solicitud', prestamo.estado 'Estado' from cliente join prestamo on cliente.id_cliente = prestamo.id_cliente where prestamo.estado = 'En mora';

Sumar el monto total de todos los prestamos

Análisis:

¿Qué desea consultar y de qué tablas?

prestamo.monto_prestado

¿Qué tablas se ven afectadas o involucradas?

Prestamo

¿Cómo se relacionan las tablas?

N/A

¿Qué comando se debe utilizar?

select, sum

Sintaxis: select sum(prestamo.monto_prestado) 'TOTAL PRESTAMOS' from prestamo;

Consultar el préstamo más alto

Análisis:

¿Qué desea consultar y de qué tablas?

prestamo.monto_prestado

¿Qué tablas se ven afectadas o involucradas?

Prestamo

¿Cómo se relacionan las tablas?

N/A

¿Qué comando se debe utilizar?

select, max

Sintaxis: select max(prestamo.monto_prestado) 'PRESTAMO MAS ALTO' from prestamo;

Consultar el préstamo más bajo

Análisis:

¿Qué desea consultar y de qué tablas?

prestamo.monto_prestado

¿Qué tablas se ven afectadas o involucradas?

Prestamo

¿Cómo se relacionan las tablas?

N/A

¿Qué comando se debe utilizar?

select, min

Sintaxis: select min (prestamo.monto_prestado) 'PRESTAMO MAS BAJO' from prestamo;

Consultar el monto promedio de las multas

Análisis:

¿Qué desea consultar y de qué tablas?

multas.monto_multa

¿Qué tablas se ven afectadas o involucradas?

Multa

¿Cómo se relacionan las tablas?

N/A

¿Qué comando se debe utilizar?

select, AVG

Sintaxis: select AVG(multas.monto_multa) 'PROMEDIO DE MULTAS' from multas;

Actualizar el estado del pago con codigo pago '5'

Análisis:

¿Qué desea actualizar y de qué tablas?

El estado del pago con código '5'

¿Qué tablas se ven afectadas o involucradas?

Pago

¿Cómo se relacionan las tablas?

N/A

¿Qué comando se debe utilizar?

update, set

Sintaxis: update Pago set metodo_pago = 'Transferencia' where codigo_pago = '5';

Cambiar el tipo de dato de telefono a varchar(15) en la tabla cliente

Análisis:

¿Qué desea actualizar y de qué tablas?

Tipo de dato del telefono en la tabla cliente

¿Qué tablas se ven afectadas o involucradas?

Cliente

¿Cómo se relacionan las tablas?

N/A

¿Qué comando se debe utilizar?

alter, modify

Sintaxis: alter table Cliente modify column telefono varchar(15);

Eliminar el referente con nombre 'Alejandra Ruiz' de la tabla referencias

Análisis:

¿Qué desea eliminar y de qué tablas?

eliminar a 'Alejandra Ruíz' de la tabla referencias

¿Qué tablas se ven afectadas o involucradas?

referencias

¿Cómo se relacionan las tablas?

N/A

¿Qué comando se debe utilizar?

Delete

Sintaxis: Delete from referencias where nombre_referente='Alejandra Ruiz';

Ordenar clientes por apellido

Análisis:

¿Qué desea ordenar y de qué tablas?

Ordenar de forma ascendente los apellidos de la tabla cliente

¿Qué tablas se ven afectadas o involucradas?

Cliente

¿Cómo se relacionan las tablas?

N/A

¿Qué comando se debe utilizar?

select, order by, asc

Sintaxis: select * from Cliente order by apellido ASC;

Consultar clientes por cuotas restantes

Análisis:

¿Qué desea consultar y de qué tablas?

Clientes por cuotas restantes

¿Qué tablas se ven afectadas o involucradas?

Pago

¿Cómo se relacionan las tablas?

N/A

¿Qué comando se debe utilizar?

select, count, group by, order by

Sintaxis: select cuotas_restantes, count(*) 'cantidad_clientes' from pago group by cuotas_restantes order by cuotas_restantes; 

Visualizar el monto de prestamo por cliente mayores a 1000000

Análisis:

¿Qué desea consultar y de qué tablas?

prestamos mayores a 1.000.000 por cliente

¿Qué tablas se ven afectadas o involucradas?

Prestamo

¿Cómo se relacionan las tablas?

N/A

¿Qué comando se debe utilizar?

select, sum, group by, having

Sintaxis: select id_cliente, SUM(monto_prestado) 'monto total' from prestamo group by id_cliente having SUM(monto_prestado) > 1000000

Listar prestamos

sintaxis: delimiter //

create procedure listar_prestamos()

begin

select * from prestamo;

end //

delimiter ; 

   5. Sustentación

© 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