miércoles, 12 de octubre de 2016

II Proyecto de Bases de Datos I

(1 hora)

Se adjunta la especificación de la II Tarea Programada: Bases de Datos I

ITCR – Escuela de Computación – Bases de Datos – Prof F. Quiros – Octubre 2016
Segunda Tarea Programada
Uno. Objetivo
Realizar el diseño lógico y físico para la solución de un problema. Implementar la solución mediante programación de procedimientos almacenados. Implementar cierta funcionalidad en capa lógica para la consulta de información.
Descripción del problema: Cuentas de ahorro de un banco.
Tipo de cuenta, saldo mínimo y multas por incumplimiento de saldo mínimo. Una cuenta de ahorro se asocia con un tipo de cuenta (empresarial, planilla, oro, etc.), la cual establece el límite del saldo mínimo mensual que la cuenta puede tener, si ese saldo mínimo es irrespetado, se cobra una multa a favor del banco, en fecha de corte para la realización del estado de cuenta.
Compras. Diariamente los comercios envían al banco las transacciones de compra que clientes ha realizado con la tarjeta de débito relacionada con sus cuentas. Indica el comercio, el monto de la compra y una referencia de la compra (un numero de 8 posiciones), el sistema recibe esta información y carga las compras a la cuenta de los clientes, de la suma total aplica un porcentaje de comisión, que se asocia a cada comercio, y la aplica al total de las compras enviadas, y la acredita a la cuenta de ahorro del comercio el monto total de las compras y debita la comisión del banco, pues cada comercio también tiene una cuenta de ahorro con el banco.
Interés diario acumulado. Diariamente, se calcula el interés diario respecto del saldo de cada cuenta y se acumula mensualmente, iniciando el dia después de la fecha de corte. En el dia de fecha de corte, el interés acumulado se acredita a la cuenta del cliente y establece el saldo de interés acumulado en cero, para el siguiente mes. La tasa de interés que se aplica, es un atributo del tipo de cuenta.
Cargos por servicio.  En fecha de día de corte, el sistema cobra (debita) un monto por servicios, este monto puede ser cero, si el saldo mínimo de la cuenta es mayor a cierto límite. Por ejemplo, si el saldo mínimo, para no cobro de cargos por servicio, es mayor a 2 millones, el cargo por servicio es cero. El monto por cargo de servicios, y el límite para el no-cobro, es un atributo del tipo de cuenta.
Retiros en efectivo. El cliente hace retiros en efectivo en ventanillas del banco o en cajeros automáticos, puede hacer un máximo de X retiros en ventanillas por mes, y si supera ese máximo se le cobra una multa, que se establece como parámetro de configuración. Esta multa se cobra en fecha de corte de estado de cuenta.
Depósitos. Estos se realizan ya sea en ventanilla o en cajero automático.
Estado de Cuenta. En fecha de día de corte (atributo de cada cuenta), se generan los estados de cuenta. El cual es un texto generado por el sistema, con la siguiente información: fecha del estado de cuenta, número de cuenta, nombre del cuentaahorrista, y saldo inicial al inicio del período. Para cada movimiento en la cuenta, en orden cronológico, aparece, numero de referencia, descripción de tipo de movimientos (compra y nombre del comercio, retiro, intereses, cargo por servicio, multa por saldo mínimo, multa por máximo cantidad de retiros en ventana, etc.), y luego el saldo al final, que será el saldo al inicio del siguiente estado de cuenta. Para los comercios, además se registran los movimientos que acredita el monto total de las compras y debita la comisión de las compras
Tres. Qué se pide.?
El diseño físico de la base de datos.
Los procedimientos almacenados para el proceso del registro de los movimientos y generación de estado de cuenta.
Script de llenado de datos básicos. (clientes, cuentas de ahorro, comercios, tipos de cuenta, parámetros de configuracióny tipos de movimiento).
Script que realiza la simulación de la operación el sistema durante 5 meses. La entrada de este proceso de simulación es un archivo XML donde diariamente desde fecha inicial a fecha final vendrán nodos que representan todos los tipos de operación sobre una cuenta (compras, retiros, depósitos), el proceso diario debe ser masivo (puede ignorar el procedimiento de registro de movimientos individual) ya sea para el ingreso de movimientos, pago de intereses, etc.. La generación del estado de cuenta puede ser no masiva.
Los procedimientos almacenados para 3 consultas, que se especificarán la próxima semana.
La bitácora.
Fecha de entrega. Domingo 6 de Noviembre.


--
Franco Quiros

sábado, 8 de octubre de 2016

Se termina con la capa logica

(18 horas, no seguidas)(palmada extrema)
Se Termina  de trabajar con el sitio de usuario (inserciones, borrados, actualizar). Y se hicieron las consultas de la parte del usuario, junto con el botón de pagar.

Cargar datos XML y publicaciones en el blog

(14 horas)

Durante el día de hoy se averiguó como cargar datos XML en la base de datos, para lo cual se siguieron diversos tutoriales que ayudaron al entendimiento y facilitaron el proseso de digitado de código.

El siguiente link muestra el uso de OPENROWSET
https://www.mssqltips.com/sqlservertip/2899/importing-and-processing-data-from-xml-files-into-sql-server-tables/

El siguiente tutorial de Microsoft muestra una implementación un poco mas detallada y compleja al mismo tiempo que da ejemplos de sus usos
https://msdn.microsoft.com/en-us/library/ms191184.aspx

 Depues de ese arduo proceso se logra continuar con algunos procedimientos sencillos de programar pero tediosos de escribir debido a su poca complejidad y la canitdad de tiempo que llevan para escribirse. Cuando hablo de esto me refiero a los SP de insertar, modificar, consultar y borrar datos de las tablas. Son los SP mas sencillos y más aburridos de programar.

Al final del día se continua editando las entradas del blog, para así tener el mismo preparado para el Domingo día de la entrega del proyecto y revisión del mismo

Este es el enlace final del blog: http://proyectosbases.blogspot.com/

viernes, 7 de octubre de 2016

Se trabaja en el código de borrado

(6 horas)
Se trabaja en el código para llamar los SP de borrar y aunque parecía mas fácil se debieron cambiar ciertas cosas. En el fondo era fácil era solo hacer un where en el gridview para que solo muestre los que están activos. Y luego se empezó a trabajar en el código de editar en las entidades que pensamos lo necesitaban.

Consultando como agregar XML y probando SP desde la interfaz

(5 horas)

Este día se estuvo consultanto en internet y con los compañeros cual es la mejor forma para cargar los datos de un XML a la base de datos. Al final del día se concluyó que no era tan facil como se pensaba. Para lograr cargar los datos existen varias maneras:

  • Programas un Query en SQL usando o no los SP ya programados anteriormente
  • Programar junto a un conection string una funcion en C# que lea XML y los envie a la base de datos
Además de ese trabajo, se estuvieron comprobando junto con el compañero de equipo, algunos SP que solo podrán ser ejecuados desde el lado de la interfaz

jueves, 6 de octubre de 2016

Se crea el código para insertar

(6 horas)
Se trabaja con el código para ejecutar Stored Procedures. Se dieron muchos problemas con el connection String pero se soluciono usando el connection String del sqlDataSourse.

Cambio de Base de Datos - Diagrama

(7 horas)

Durante estos últimos días el Chino ha estado agregando nuevos datos de prueba con nueva información y atributos en las tablas, esto debido a las conversaciones que hemos estado teniendo en las clases con el profesor.

Para este día se estuvo adaptando todas las tablas y procedimientos que eran necesarios para que los datos del Chino sean compatibles con nuestra base de datos, y de esta manera no tener problemas a la hora de revisar con el profesor.

De manera que el diagrama final quedo de la siguiente forma:


miércoles, 5 de octubre de 2016

Hoy trabajé en montar la interfaz de usuario para la página de administrador en lo cual duré un total de 2 horas ya que se me presentaron problemas en mostrar datos en el gridview.

lunes, 3 de octubre de 2016

Inner Join

(4 horas)

Se busca la manera de implementar INNER JOINS de manera que los SP que se van a programar para conusltar sean de la manera mas efectiva.

La primera vez que que se tuvo que programar fue en la tabla que hay que crear para generar los recibos para el consumo de agua. En este caso se busco en este enlace:

http://www.campusmvp.es/recursos/post/Fundamentos-de-SQL-Consultas-SELECT-multi-tabla-Tipos-de-JOIN.aspx

De esta manera se consigue programar efectivamente el SP que cobra el consumo de agua a las propiedades.

domingo, 2 de octubre de 2016

Se crea la interfaz de usuario

(3 horas)
Se crea la interfaz de la parte de usuario(que es mas sencilla) primero para obtener practica en el ambiente de visual.

sábado, 1 de octubre de 2016

Se elige lenguaje y empezamos a tratar de crear lo mas posible.

(5 horas)
Se escoge c# como lenguaje y visual studio como ambiente de programación ya que al ser herramientas de windows se facilita la manipulación de la base de datos(esto según tutoriales de youtube y consultas)