UNIVERSIDAD DE CUENCA
FACULTAD DE INGENIERÍA
ESCUELA INGENIERÍA DE SISTEMAS
MATERIA: PROGRAMACIÓN 3
AUTORES: DAVID BUÑAY, MATEO QUIZHPI, EDISSON SIGUA
UCSQL es una aplicación que simula un gestor de base de datos.
Link del código de la aplicación:
https://github.com/EdissonSigua/UCSQL
2. CONTENIDO
• Objetivos.
• Introducción.
• Descripción del producto.
• Estructuras de Datos.
• Estructuras de Archivos.
• Estructuración del Proyecto
• Capa Lógica de Negocio.
• Capa Interfaz Gráfica.
• Capa Base de Datos.
3. CONTENIDO
• Datos del proyecto.
• Inconvenientes.
• Restricciones.
• Resultados de la aplicación.
4. OBJETIVOS
• Creación, eliminación, edición y unión de tablas.
• Creación, eliminación , selección y edición de registros.
• Almacenar cada una de las tablas en memoria externa
para su posterior recuperación cuando el cliente lo
necesite.
• Comprender como funciona internamente una Base de
Datos.
5. DESCRIPCIÓN
• UCSQL es una aplicación de escritorio destinada para la
gestión de tablas.
• Las tablas están conformadas por un número ilimitado
de registros y a su vez cada registro contiene un número
ilimitado de campos.
• UCSQL trabaja con la creación de archivos (tablas) que
se almacenan en memoria externa para su posterior
recuperació.
6. SENTENCIAS
• TABLAS:
• Sentencia crear Tabla:
• CREAR TABLA nombre_tabla CAMPOS campo1, … , campoN CLAVE campo1 LONGITUD 5.
• Sentencia Modificar Tabla:
MODIFICAR TABLA nombre_tabla CAMPO nombre_campo_anterior POR nombre_campo_nuevo
• Sentencia Eliminar Tabla:
ELIMINAR TABLA nombre_tabla
• Sentencia Selecciona tabla:
SELECCIONAR DE nombre_tabla DONDE nombre_campo = “Algo”
• Sentencia Unir tabla:
UNIR nombre_tabla1, nombre_tabla2 POR nombre_campo
• REGISTROS:
• Sentencia Crear Registro:
CREAR REGISTRO nombre_tabla VALOR vCampo1,vCampo2 ,... , vCampoN
• Sentencia Eliminar Registro:
ELIMINAR REGISTRO nombre_tabla CLAVE valorCampoClave
• Sentencia Modificar Registro:
MODIFICAR REGISTRO nombre_tabla CLAVE valorCampoClave CAMPO campo_anterior POR valor_campo_nuevo
7. ESTRUCTURA DE
DATOS
• La estructura de datos utilizada en la aplicación es ArrayList()
ya que en ella vamos a almacenar las palabras de cada
sentencia. Por ejemplo:
ELIMINAR REGISTRO tabla1 CLAVE 500
• Entonces se almacena en tokens las 5 palabras de la
sentencia del ejemplo anterior para posteriormente realizar
las validaciones correspondientes.
8. ESTRUCTURA DE
ARCHIVOS
• Utilizamos la librería CSV para poder escribir y leer los
archivos necesarios.
• Para poder leer un archivo usamos :
• Para poder escribir un archivo usamos:
• Al momento de crear una tabla usamos un archivo
metaBD el cual contiene el nombre,campos, campo
clave,longitud de campos, variable borrado lógico y
número de campos.
9. ESTRUCTURA DE
ARCHIVOS
• Para poder eliminar un archivo lo hacemos de manera
lógica mediante la asignación del valor 1 al campo de
borrado_logico en el archivo metaBD.
• Al momento de crear una tabla buscamos el valor 1 en
el campo borrado_logico y si lo encontramos nos
ayudamos de un archivo metaBDaux para poder copiar
los demás registros y nuevamente volverlos a escribir
en el archivo metaBD , de esa manera conseguimos
crear una tabla o archivo .
10. ESTRUCTURACIÓN DEL
PROYECTO
Para la realización de UCSQL se realizó la programación
en Capas. El numero de Capas utilizadas es 3:
• Capa Lógica de Negocio.
• Capa Interfaz Gráfica.
• Capa Bases de Datos.
11. CAPA LÓGICA DE
NEGOCIO
• En esta capa realizamos el proceso de validaciones de
sentencias mediante un patrón de diseño llamado Chain
of Responsability, también en esta capa llamamos a
cada uno de los comandos mediante el patrón de
diseño llamado Command y por último en la capa lógica
realizamos tres procesos: poner sucesor ,obtener
sucesor , ejecutar proceso mediante el patrón de
diseño llamado TemplateMethod.
•
13. CAPA DE BASE DE
DATOS
• En esta capa vamos a abrir los flujos necesarios ya sean de lectura o
escritura tanto del archivo metaBD como de cada una de las tablas que han
sido creadas por el usuario.
• La capa de base de datos es llamada constantemente por la capa lógica
para obtener la información necesaria de los archivos almacenados en
memoria externa.
14. CAPA INTERFAZ
GRÁFICA
• Desde esta capa se va a llamar a la capa de lógica de
negocios y por ende a la capa de base de datos es decir
desde esta capa se va a iniciar la aplicación.
•
16. INCONVENIENTES
• Al momento de agregar una tabla en el archivo metaBD
cuando una tabla ha sido anteriormente eliminada de
manera lógica se hizo necesario un archivo metaBDaux.
17. RESTRICCIONES
• Para poder modificar los campos de una tabla se
requiere que dicha tabla no tenga registros.
• Para poder unir 2 tablas se requiere que las 2 tengan al
menos un registro y que tengan el mismo campo.
• El número de registros de cada tabla es limitado por la
capacidad de la memoria externa es decir es muy
grande la cantidad de registros que posee cada tabla.
18. CONCLUSIONES
• El uso de patrones de diseño nos facilita el desarrollo
del código ya que si ocurre un problema en
determinada clase no afectará en las demás clases.
• Mediante la librería CSV se puede manejar de mejor
manera la manipulación del archivo metaBD como de
cada una de las tablas con sus respectivos campos y
registros.
• El estilo de programación por capas nos ayuda a
separar los procesos y hacer mas legible la
diagramación.
•