SlideShare une entreprise Scribd logo
1  sur  69
Télécharger pour lire hors ligne
SISTEMA DE GESTIÓN DE BASE DE DATOS
SQL UC
Análisis y Diseño de Software II
Programación III: Estructura de Archivos
SISTEMA DE GESTIÓN DE BASE DE DATOS
SQLUC
Autores:
Christian Collaguazo Malla
Daniel Gomez Jaramillo
David Valladarez Muñoz
Asignaturas:
Análisis y Diseño de Software II
Programación III: Estructura de Archivos
2017 Facultad de Ingeniería
SISTEMA DE GESTIÓN DE BASE DE
DATOS
SQLUC
CONTENIDO
PRESENTACIÓN
Parte A Análisis y diseño de SQLuc
Parte B Ejecuciones
Diseño del Sistema
Programación del sistema
Enlaces de interés
Contenido de la presentación
Aspectos generales del sistema
Ejecución de SQLuc
Parte C Conclusiones y recomendaciones
SISTEMA DE GESTIÓN DE BASE DE
DATOS
SQLUC
AVANCE
PRESENTACIÓN
Análisis y diseño de SQLuc
Diseño del Sistema
Programación del sistema
Avance de la presentación
Aspectos generales del sistema
Parte A
ASPECTOS GENERALES DEL SISTEMA
Sistema de gestión de base de datos SQLUC
OBJETIVOS
1. El sistema debe tener una interfaz en la cual el
usuario pueda ingresar los comandos para
realizar una acción específica.
2. Se solicita un sistema que permita la realización
de tres acciones fundamentales para la gestión
de base de datos: mantenimiento de tablas,
registros y consultas.
1. Creación
2. Eliminación
3. Edición
TABLAS
CREAR TABLA nombre_tabla CAMPOS campo1, … , campoN CLAVE campo1 LONGITUD ##
ELIMINAR TABLA nombre_tabla
MODIFICAR TABLA nombre_tabla CAMPO nombre_campo POR nombre_campo
1. Inserción
2. Eliminación
3. Edición
REGISTROS
CREAR REGISTRO nombre_tabla VALOR vCampo1 , vCampo2 ,... , vCampoN
ELIMINAR REGISTRO nombre_tabla CLAVE valorCampoClave
MODIFICAR REGISTRO nombre_tabla CLAVE valorCampoClave CAMPO campo POR valor_campo_nuevo
1. Selección
2. Join(Unión)
CONSULTAS
SELECCIONAR DE nombre_tabla DONDE nombre_campo = “Algo”
UNIR nombre_tabla1, nombre_tabla2 POR nombre_campo
Archivo que sirve para almacenar la información de las tablas registradas en el sistema,
así como el número de registros de dicha tabla, los campos que posee, el campo clave
y la longitud que deberán llevar cada uno de los registros.
Formato del archivo CSV (atributos separados por comas):
ARCHIVO META.BD
nombre_tabla,numero_registros,campo_clave,longitud_campos,campos...
DISEÑO DEL SISTEMA
Sistema de gestión de base de datos SQLUC
PATRÓN PROXY - PROTECCIÓN
¿Qué un Proxy?
1. Patrón de diseño Estructural
2. Intermediario entre un objeto y los
demás que lo utilizan
3. Controla el acceso al objeto original.
PATRÓN PROXY - PROTECCIÓN
¿Por qué hemos utilizado el patrón Proxy?
1. Validar que el cliente haya utilizado la sintaxis correcta para
realizar la acción requerida.
2. Validar que la acción a realizar cumpla con todos los requisitos
necesarios.
3. Acto siguiente empezar el proceso de acción pertinente.
PATRÓN PROXY - PROTECCIÓN
Actores de un Proxy
1. Subject: Define una interfaz común para el
proxy y el objeto real.
2. Proxy: Mantiene una referencia al objeto
real, mientras que proporciona una interfaz
idéntica a la del objeto real y controla el
acceso a este objeto, siendo responsable
de crearlo y borrarlo.
3. RealSubject: Clase del objeto real que el
proxy representa.
PATRÓN PROXY - PROTECCIÓN
Programación
Proxy
SUBJECT (Interface GestionBD)
La interface GestionBD operara como Subject del patrón Proxy y proveerá de los métodos
abstractos para que lo implementen las clases Proxy y RealSubject
Clase Proxy (Clase GestionBDProxy)
La clase GestionBDProxy implementa la interface GestionBD.
El método “Peticion” validará la petición que el usuario registre en la interfaz gráfica.
ValidacióndelTipodeAcción
Después de que se compruebe de que la acción identificada a realizar cumple
todos los requerimientos necesarios, se procede a aceptar la solicitud.
Clase RealSubject (Clase GestionBDReal)
Proveerá el método abstracto “Peticion” que deberán implementar las clases
GestionBDProxy y GestionBDReal
AcciónReal
PATRÓN ABSTRACT FACTORY
¿Qué es Abstract Factory?
Permite trabajar con objetos de distintas familias de
manera que las familias no se mezclen entre sí y
haciendo transparente el tipo de familia concreta
que se esté usando.
Partes del Abstract Factory
AbstractFactory: declara una interfaz para la creación de objetos de productos abstractos.
ConcreteFactory: implementa las operaciones para la creación de objetos de productos
concretos.
AbstractProduct: declara una interfaz para los objetos de un tipo de productos.
ConcreteProduct: define un objeto de producto que la correspondiente factoría concreta se
encargaría de crear, a la vez que implementa la interfaz de producto abstracto.
Cliente: emplea solamente las interfaces declaradas en la factoría y en los productos abstractos.
PATRÓN ABSTRACT FACTORY
PATRÓNABSTRACTFACTORY
PATRÓN ABSTRACT FACTORY
Programación
Abstract
Factory
Abstract Factory (Procesos Factory)
Concrete Factory
Tablas
Concrete Factory
Registros
Abstract Products
Abstract Products
Concrete Product
PATRÓN TEMPLATE METHOD
¿Qué es Template Method?
Define el funcionamiento general de un
algoritmo en una operación de una clase y
permite que subclases redefinan ciertos pasos
del algoritmo sin cambiar su comportamiento
general.
PATRÓN TEMPLATE METHOD
Partes del Patrón Template Method
AbstractTemplate: Implementa un
método plantilla que define el esqueleto
de un algoritmo y define métodos
abstractos que implementan las
subclases concretas.
ConcreteTemplate: Implementa los
métodos abstractos para realizar los
pasos del algoritmo que son específicos
de la subclase.
PATRÓN TEMPLATE METHOD
¿Por qué hemos implementado un Template Method?
Uno de los requerimientos es que en la base de datos se encuentre un archivo
llamado MetaData en el cual se encuentren especificado los atributos de cada tabla.
El usuario al momento de ingresar los comandos para realizar cualquier acción el
sistema llamara a los métodos de identificar la orden, realizar la acción y actualizar el
META.BD.
Por lo tanto, la aplicación del patrón Template nos ayudará a que el sistema con la
llamada a un solo método realice todas estas acciones y que el orden de llamada a
estos métodos no se pueda modificar.
PATRÓN TEMPLATE METHOD
TEMPLATE METHOD (CreacionTemplate)
Programación
Template Method
TEMPLATE METHOD
(CreacionTemplate)
TEMPLATE METHOD
(CreacionTemplate)
TEMPLATE METHOD
(CreacionTemplate)
TEMPLATE METHOD
(CreacionTemplate)
OTROS PROCESOS EXTERNOS
OTROS PROCESOS EXTERNOS
Los procesos SELECCIONAR TABLA y UNIR TABLA, quedaron fuera de proceso del
Abstract Factory y del Template Method ya que son procesos solo de consulta y no
requieren escribir, modificar ni eliminar ninguna tabla ni registro. Este proceso es solo
de busqueda y de lectura de datos.
Programación
Seleccionar
Tabla
Programación
Unir Tablas
Diagrama de clases de SQLuc
PROGRAMACIÓN DEL SISTEMA
Sistema de gestión de base de datos SQLUC
Identificación
de sentencias
En el comando recibido por el cliente, se realizó la
búsqueda de las palabras reservadas en el sistema
para identificar con qué caso se va trabajar
posteriormente. Los casos posibles son:
static final int CREARTABLA = 101;
static final int MODIFICARTABLA = 102;
static final int ELIMINARTABLA = 103;
static final int CREARREGISTRO = 201;
static final int MODIFICARREGISTRO = 202;
static final int ELIMINARREGISTRO = 203;
static final int SELECCIONARTABLAS = 301;
static final int JOIN = 302;
Identificación
de sentencias
La busqueda se la realiza con el método contains() de la clase
String de Java, si no se encuentra ningún caso se lanza una
excepción que es capturada en las sentencias try-catch de
donde se llamó a este método.
if(comando.replace(" ", "").contains("CREARTABLA"))
caso = CREARTABLA;
else if(comando.replace(" ", "").contains("MODIFICART"))
caso = MODIFICARTABLA;
else if(comando.replace(" ", "").contains("ELIMTABLA"))
caso = ELIMINARTABLA;
.
.
.
else
throw new SecurityException("Lo sentimos, no se ha
entendido esa orden.");
Validación de
sentencias
A un atributo de una sentencia, se lo busca segun la
posicion a la que le corresponda dentro de dicha
sentencia, por ejemplo el nombre de una tabla deberá
ir necesariamente después de la palabra reservada
CREAR TABLA:
StringBuffer atributo = new StringBuffer();
for(;i<comando.length();i++){
if(comando.charAt(i)!=' ')
atributo.append(comando.charAt(i));
else
break;
}
nombreTabla = atributo.toString();
Validación de
sentencias
Una validación que comparten casi todos los procesos es
validar si el nombre de la tabla que se escribió en la línea
de comandos existe o no:
private boolean BuscarTabla(String nombreTabla){
...
String fileMETA = "filesBDMETA.bd";
if(!new File(fileMETA).exists())
return false;
try {
CsvReader ar = new CsvReader(fileMETA);
while(ar.readRecord()){
if(ar.get(0).equals(nombreTabla)){
ar.close();
return true;}
}
}
...
}
Validación de
sentencias
Si se llega a producir un error en ejecución o se desea
lanzar un error por algún problema en la validación, se
lanza una excepción para que esta sea capturada y
mostrada en la interfaz gráfica de la aplicación.
Ejemplos:
throw new Error("Lo sentimos, no se ha
entendido esa orden.");
throw new Error("Error, el campo clave no
está dentro de los campos especificados.");
throw new Error("Error, en uno de los campos
se excede la longitud máxima posible");
Paso de
parámetros
Dentro de las clases del proyecto, existen algunos
métodos que varían según el caso el número de
parámetros a recibir, es por ello que en muchos de
estos métodos se pasaron arreglos de argumentos de
tipo Object para así poder cumplir con cada caso.
Ejemplo de ENVÍO:
Object[] arg = {"MODIFICARREGISTRO",nombreTabla,
valorCampoClave,nombreCampo,valorCampo,
posicionCampo};
new GestionBDReal().Peticion(arg);
Paso de
parámetros
Dentro de las clases del proyecto, existen algunos
métodos que varían según el caso el número de
parámetros a recibir, es por ello que en muchos de
estos métodos se pasaron arreglos de argumentos de
tipo Object para así poder cumplir con cada caso.
Ejemplo de RECEPCIÓN:
String caso = (String) args[0]
String nombreTabla = (String) args[1];
ArrayList<String> campos = (ArrayList<String>) (List)
args[2];
String campoClave = (String) args[3];
int longitudCampos = (int) args[4];
Archivo
META.BD
Todo proceso que se realice debera constar en el archivo
META.BD en el que consta toda la informacion con
respecto a una tabla.
Este archivo es de tipo CSV separado por comas, para
que al momento de buscar y/o modificar algun atributo
de una tabla, este se lo realice de forma simple y rapida.
El archivo META.BD lleva el siguiente formato:
nombre_tabla,numero_registros,campo_clave,longitud_
campos,campos...
LIBRERÍAS IMPLEMENTADAS
JAVA CSV
Java CSV es una pequeña biblioteca Java
de código abierto para leer y escribir
archivos de texto CSV y delimitados por
texto. Todos los tipos de archivos CSV
pueden ser manejados, texto calificado,
Excel formateado, etc
SISTEMA DE GESTIÓN DE BASE DE
DATOS
SQLUC
AVANCE
PRESENTACIÓN
Ejecuciones
Avance de la presentación
Parte B
Ejecución de SQLuc
EJECUCIÓN DE SQLuc
Sistema de gestión de base de datos SQLUC
SISTEMA DE GESTIÓN DE BASE DE
DATOS
SQLUC
AVANCE
PRESENTACIÓN
Conclusiones y recomendaciones
Avance de la presentación
Parte C
Conclusiones y recomendaciones
Enlaces de interés
CONCLUSIONES Y RECOMENDACIONES
Sistema de gestión de base de datos SQLUC
CONCLUSIONES
El sistema de gestión de base de datos SQL_UC nos permite ingresar comandos de tal
manera que podremos administrar la información, crear, modificary eliminar tablas las
cuales también nos permiten recuperar los datos.
El usuar patrones de diseño nos ayudó a desarrollar una aplicación robusta y fácil de
mantener, en el hecho de arreglar errores que surgieron a la hora de programar.
Sistema operativo - (Rutas)
Para el desarrollo de la aplicación se empleó el sistema operativo Microsoft
Windows, por este motivo, existe en el lenguaje Java ciertas particularidades de
sintaxis que las diferencian entre otros sistemas operativos como la distribución de
Linux: Ubuntu
Una de las particularidades son la utilización de rutas para almacenar un archivo(.txt,
.csv, entre otros)
CONCLUSIONES
RECOMENDACIONES
Manejo de archivos - (Archivos abiertos)
RECOMENDACIONES
Manejo de archivos - (Caracteres especiales)
Al ingresar caracteres especiales los datos sufren una
adulteracion y por consiguiente los datos de una tabla no
coinciden con los datos del archivo META.BD generando
errores de esta especie:
Error interno, no se han encontrado los datos de la tabla
especificada.
RECOMENDACIONES
Programación simultánea
(Código en tiempo real)
ENLACES DE INTERÉS
Sistema de gestión de base de datos SQLUC
Lenguaje ED
Analizador léxico que transforma el código escrito en un lenguaje de
programación con sentencias en español a Lenguaje C.
Enlace: https://github.com/esdanielgomez/LenguajeED
Sistema de gestión de base de datos - SQL
Código fuente del actual proyecto junto con la libreria CSV para el manejo de
archivos.
Enlace: https://github.com/esdanielgomez/SQLuc
SISTEMA DE GESTIÓN DE BASE DE DATOS
SQL UC
Análisis y Diseño de Software II
Programación III: Estructura de Archivos

Contenu connexe

Tendances

Vistas En Sql Y My Sql
Vistas En Sql Y My SqlVistas En Sql Y My Sql
Vistas En Sql Y My Sql
Ziscko
 
4. sql (autoguardado)
4. sql (autoguardado)4. sql (autoguardado)
4. sql (autoguardado)
felpe33
 
Colegio fiscal tecnico yaruqui
Colegio fiscal tecnico yaruquiColegio fiscal tecnico yaruqui
Colegio fiscal tecnico yaruqui
fitese
 

Tendances (18)

7.1. procedimientos almacenados
7.1.  procedimientos almacenados7.1.  procedimientos almacenados
7.1. procedimientos almacenados
 
Manejo De Sentencias De Definicion
Manejo De Sentencias De DefinicionManejo De Sentencias De Definicion
Manejo De Sentencias De Definicion
 
Introduccion a SQL
Introduccion a SQL Introduccion a SQL
Introduccion a SQL
 
Trabajo de ofimática ll 2º a Neri,Esperanza,Janet,Dulce,Guadalupe
Trabajo de ofimática ll 2º a Neri,Esperanza,Janet,Dulce,GuadalupeTrabajo de ofimática ll 2º a Neri,Esperanza,Janet,Dulce,Guadalupe
Trabajo de ofimática ll 2º a Neri,Esperanza,Janet,Dulce,Guadalupe
 
Vistas En Sql Y My Sql
Vistas En Sql Y My SqlVistas En Sql Y My Sql
Vistas En Sql Y My Sql
 
Lenguaje transact sql
Lenguaje transact sqlLenguaje transact sql
Lenguaje transact sql
 
Sesion06c - Sentencias SQL en PL-SQL (Oracle)
Sesion06c - Sentencias SQL en PL-SQL (Oracle)Sesion06c - Sentencias SQL en PL-SQL (Oracle)
Sesion06c - Sentencias SQL en PL-SQL (Oracle)
 
Sesión02 - Creación de objetos (Oracle)
Sesión02 - Creación de objetos (Oracle)Sesión02 - Creación de objetos (Oracle)
Sesión02 - Creación de objetos (Oracle)
 
Sesión04 - Diccionario de datos (Oracle)
Sesión04 - Diccionario de datos (Oracle)Sesión04 - Diccionario de datos (Oracle)
Sesión04 - Diccionario de datos (Oracle)
 
Lumisaca hector bdii_t7
Lumisaca hector bdii_t7Lumisaca hector bdii_t7
Lumisaca hector bdii_t7
 
Manejo Control De Datos
Manejo Control De DatosManejo Control De Datos
Manejo Control De Datos
 
Sesion07- Estructuras de control (Oracle)
Sesion07- Estructuras de control (Oracle)Sesion07- Estructuras de control (Oracle)
Sesion07- Estructuras de control (Oracle)
 
4. sql (autoguardado)
4. sql (autoguardado)4. sql (autoguardado)
4. sql (autoguardado)
 
Procedimientos almacenados en MySQL
Procedimientos almacenados en MySQLProcedimientos almacenados en MySQL
Procedimientos almacenados en MySQL
 
Objeto Sql Command
Objeto Sql CommandObjeto Sql Command
Objeto Sql Command
 
TRANSACCIONES, TRIGGERS, PROCEDIMIENTOS ALMACENADOS: DB2/IBM
TRANSACCIONES, TRIGGERS, PROCEDIMIENTOS ALMACENADOS: DB2/IBM   TRANSACCIONES, TRIGGERS, PROCEDIMIENTOS ALMACENADOS: DB2/IBM
TRANSACCIONES, TRIGGERS, PROCEDIMIENTOS ALMACENADOS: DB2/IBM
 
Connection
ConnectionConnection
Connection
 
Colegio fiscal tecnico yaruqui
Colegio fiscal tecnico yaruquiColegio fiscal tecnico yaruqui
Colegio fiscal tecnico yaruqui
 

En vedette (8)

SQL - Introducción
SQL - IntroducciónSQL - Introducción
SQL - Introducción
 
Manual instalacion sql_server
Manual instalacion sql_serverManual instalacion sql_server
Manual instalacion sql_server
 
Consultas básicas em SQL
Consultas básicas em SQLConsultas básicas em SQL
Consultas básicas em SQL
 
Sql Server
Sql ServerSql Server
Sql Server
 
Diapositivas sql.
Diapositivas sql.Diapositivas sql.
Diapositivas sql.
 
Planificacion anual educacion fisica 1 basico 2016
Planificacion anual educacion fisica 1 basico 2016Planificacion anual educacion fisica 1 basico 2016
Planificacion anual educacion fisica 1 basico 2016
 
Introducción a Sql
Introducción a SqlIntroducción a Sql
Introducción a Sql
 
Trabajo de diapositivas sql
Trabajo de diapositivas sqlTrabajo de diapositivas sql
Trabajo de diapositivas sql
 

Similaire à Sistema de gestión de base de datos SQL UC

Técnicas avanzadas de consultas con sql server 2014
Técnicas avanzadas de consultas con sql server 2014Técnicas avanzadas de consultas con sql server 2014
Técnicas avanzadas de consultas con sql server 2014
JOSE AHIAS LOPEZ PORTILLO
 
Procedimientos almacenados..mañana
Procedimientos almacenados..mañanaProcedimientos almacenados..mañana
Procedimientos almacenados..mañana
ANilez Solrak
 

Similaire à Sistema de gestión de base de datos SQL UC (20)

Gestor de Base de Datos
Gestor de Base de DatosGestor de Base de Datos
Gestor de Base de Datos
 
Presentacion proyecto
Presentacion proyectoPresentacion proyecto
Presentacion proyecto
 
Database fundamental itprosdc_chapter2
Database fundamental itprosdc_chapter2Database fundamental itprosdc_chapter2
Database fundamental itprosdc_chapter2
 
Semana8 soft ii
Semana8 soft iiSemana8 soft ii
Semana8 soft ii
 
Pres17BDII.ppt
Pres17BDII.pptPres17BDII.ppt
Pres17BDII.ppt
 
Texto Paralelo.pptx
Texto Paralelo.pptxTexto Paralelo.pptx
Texto Paralelo.pptx
 
Yupa cesar bdii_t7
Yupa cesar bdii_t7Yupa cesar bdii_t7
Yupa cesar bdii_t7
 
Guia herramientas de bd
Guia herramientas de bdGuia herramientas de bd
Guia herramientas de bd
 
Pa
PaPa
Pa
 
Persistencia de datos
Persistencia de datosPersistencia de datos
Persistencia de datos
 
ANDROID CON CONEXIÓN A BASE DE DATOS SQLITE
ANDROID CON CONEXIÓN A BASE DE DATOS SQLITEANDROID CON CONEXIÓN A BASE DE DATOS SQLITE
ANDROID CON CONEXIÓN A BASE DE DATOS SQLITE
 
SQL (Structured Query Language): Informe de Lectura Unidad 3
SQL (Structured Query Language): Informe de Lectura Unidad 3SQL (Structured Query Language): Informe de Lectura Unidad 3
SQL (Structured Query Language): Informe de Lectura Unidad 3
 
Lenguaje transact sql
Lenguaje transact sqlLenguaje transact sql
Lenguaje transact sql
 
Técnicas avanzadas de consultas con sql server 2014
Técnicas avanzadas de consultas con sql server 2014Técnicas avanzadas de consultas con sql server 2014
Técnicas avanzadas de consultas con sql server 2014
 
Procedimientos almacenados..mañana
Procedimientos almacenados..mañanaProcedimientos almacenados..mañana
Procedimientos almacenados..mañana
 
Manual Basico De Struts
Manual Basico De StrutsManual Basico De Struts
Manual Basico De Struts
 
Saula ana bdii_t7
Saula ana bdii_t7Saula ana bdii_t7
Saula ana bdii_t7
 
Tutorial de cakePHP itst
Tutorial de cakePHP itstTutorial de cakePHP itst
Tutorial de cakePHP itst
 
Conexion
ConexionConexion
Conexion
 
Lenguaje Transact-SQL
Lenguaje Transact-SQLLenguaje Transact-SQL
Lenguaje Transact-SQL
 

Plus de Daniel Gomez Jaramillo

Plus de Daniel Gomez Jaramillo (16)

DotVVM Fundamentals
DotVVM FundamentalsDotVVM Fundamentals
DotVVM Fundamentals
 
Servicios de base de datos multimodelo NoSQL con Azure CosmosDB y aplicación...
Servicios de base de datos multimodelo  NoSQL con Azure CosmosDB y aplicación...Servicios de base de datos multimodelo  NoSQL con Azure CosmosDB y aplicación...
Servicios de base de datos multimodelo NoSQL con Azure CosmosDB y aplicación...
 
Microsoft Cognitive Services y el lado humano de las aplicaciones inteligentes.
Microsoft Cognitive Services y el lado humano de las aplicaciones inteligentes.Microsoft Cognitive Services y el lado humano de las aplicaciones inteligentes.
Microsoft Cognitive Services y el lado humano de las aplicaciones inteligentes.
 
HTML y Alojamiento en Azure.
HTML y Alojamiento en Azure. HTML y Alojamiento en Azure.
HTML y Alojamiento en Azure.
 
Internet y seguridad en redes
Internet y seguridad en redesInternet y seguridad en redes
Internet y seguridad en redes
 
Colecciones en Scala
Colecciones en ScalaColecciones en Scala
Colecciones en Scala
 
Codificación de Huffman
Codificación de Huffman Codificación de Huffman
Codificación de Huffman
 
Algoritmos de ordenamiento externo sobre archivos
Algoritmos de ordenamiento externo sobre archivosAlgoritmos de ordenamiento externo sobre archivos
Algoritmos de ordenamiento externo sobre archivos
 
Reproductor de música DG Player
Reproductor de música DG PlayerReproductor de música DG Player
Reproductor de música DG Player
 
Colecciones en Python
Colecciones en PythonColecciones en Python
Colecciones en Python
 
Paradigmas de la programación
Paradigmas de la programación Paradigmas de la programación
Paradigmas de la programación
 
Fuerzas de rozamiento
Fuerzas de rozamientoFuerzas de rozamiento
Fuerzas de rozamiento
 
Clases y objetos en Java
Clases y objetos en JavaClases y objetos en Java
Clases y objetos en Java
 
Arboles M-Way, 2-3 y 2-3-4
Arboles M-Way, 2-3 y 2-3-4Arboles M-Way, 2-3 y 2-3-4
Arboles M-Way, 2-3 y 2-3-4
 
Algoritmo de ordenamiento: Heap Sort
Algoritmo de ordenamiento: Heap SortAlgoritmo de ordenamiento: Heap Sort
Algoritmo de ordenamiento: Heap Sort
 
Programación dinámica
Programación dinámicaProgramación dinámica
Programación dinámica
 

Dernier

Tipos de suelo y su clasificación y ejemplos
Tipos de suelo y su clasificación y ejemplosTipos de suelo y su clasificación y ejemplos
Tipos de suelo y su clasificación y ejemplos
andersonsubero28
 
ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZ
ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZ
ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZ
gustavoiashalom
 
SESION 11 SUPERVISOR SSOMA SEGURIDAD Y SALUD OCUPACIONAL
SESION 11 SUPERVISOR SSOMA SEGURIDAD Y SALUD OCUPACIONALSESION 11 SUPERVISOR SSOMA SEGURIDAD Y SALUD OCUPACIONAL
SESION 11 SUPERVISOR SSOMA SEGURIDAD Y SALUD OCUPACIONAL
EdwinC23
 
analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)
analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)
analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)
Ricardo705519
 

Dernier (20)

APORTES A LA ARQUITECTURA DE WALTER GROPIUS Y FRANK LLOYD WRIGHT
APORTES A LA ARQUITECTURA DE WALTER GROPIUS Y FRANK LLOYD WRIGHTAPORTES A LA ARQUITECTURA DE WALTER GROPIUS Y FRANK LLOYD WRIGHT
APORTES A LA ARQUITECTURA DE WALTER GROPIUS Y FRANK LLOYD WRIGHT
 
Tipos de suelo y su clasificación y ejemplos
Tipos de suelo y su clasificación y ejemplosTipos de suelo y su clasificación y ejemplos
Tipos de suelo y su clasificación y ejemplos
 
Presentación de Redes de alcantarillado y agua potable
Presentación de Redes de alcantarillado y agua potablePresentación de Redes de alcantarillado y agua potable
Presentación de Redes de alcantarillado y agua potable
 
CONEXIONES SERIE, PERALELO EN MÓDULOS FOTOVOLTAICOS.pdf
CONEXIONES SERIE, PERALELO EN MÓDULOS FOTOVOLTAICOS.pdfCONEXIONES SERIE, PERALELO EN MÓDULOS FOTOVOLTAICOS.pdf
CONEXIONES SERIE, PERALELO EN MÓDULOS FOTOVOLTAICOS.pdf
 
ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZ
ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZ
ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZ
 
SESION 11 SUPERVISOR SSOMA SEGURIDAD Y SALUD OCUPACIONAL
SESION 11 SUPERVISOR SSOMA SEGURIDAD Y SALUD OCUPACIONALSESION 11 SUPERVISOR SSOMA SEGURIDAD Y SALUD OCUPACIONAL
SESION 11 SUPERVISOR SSOMA SEGURIDAD Y SALUD OCUPACIONAL
 
analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)
analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)
analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)
 
NTC 3883 análisis sensorial. metodología. prueba duo-trio.pdf
NTC 3883 análisis sensorial. metodología. prueba duo-trio.pdfNTC 3883 análisis sensorial. metodología. prueba duo-trio.pdf
NTC 3883 análisis sensorial. metodología. prueba duo-trio.pdf
 
Estadística Anual y Multianual del Sector Eléctrico Ecuatoriano
Estadística Anual y Multianual del Sector Eléctrico EcuatorianoEstadística Anual y Multianual del Sector Eléctrico Ecuatoriano
Estadística Anual y Multianual del Sector Eléctrico Ecuatoriano
 
Propuesta para la creación de un Centro de Innovación para la Refundación ...
Propuesta para la creación de un Centro de Innovación para la Refundación ...Propuesta para la creación de un Centro de Innovación para la Refundación ...
Propuesta para la creación de un Centro de Innovación para la Refundación ...
 
PRESENTACION DE LAS PLAGAS Y ENFERMEDADES DEL PALTO
PRESENTACION DE LAS PLAGAS Y ENFERMEDADES DEL PALTOPRESENTACION DE LAS PLAGAS Y ENFERMEDADES DEL PALTO
PRESENTACION DE LAS PLAGAS Y ENFERMEDADES DEL PALTO
 
422382393-Curso-de-Tableros-Electricos.pptx
422382393-Curso-de-Tableros-Electricos.pptx422382393-Curso-de-Tableros-Electricos.pptx
422382393-Curso-de-Tableros-Electricos.pptx
 
Presentacion de la ganaderia en la región
Presentacion de la ganaderia en la regiónPresentacion de la ganaderia en la región
Presentacion de la ganaderia en la región
 
DIAPOSITIVAS DE SEGURIDAD Y SALUD EN EL TRABAJO
DIAPOSITIVAS DE SEGURIDAD Y SALUD EN EL TRABAJODIAPOSITIVAS DE SEGURIDAD Y SALUD EN EL TRABAJO
DIAPOSITIVAS DE SEGURIDAD Y SALUD EN EL TRABAJO
 
“Análisis comparativo de viscosidad entre los fluidos de yogurt natural, acei...
“Análisis comparativo de viscosidad entre los fluidos de yogurt natural, acei...“Análisis comparativo de viscosidad entre los fluidos de yogurt natural, acei...
“Análisis comparativo de viscosidad entre los fluidos de yogurt natural, acei...
 
2e38892c-fc5d-490e-b751-ce772cf4756f.pdf
2e38892c-fc5d-490e-b751-ce772cf4756f.pdf2e38892c-fc5d-490e-b751-ce772cf4756f.pdf
2e38892c-fc5d-490e-b751-ce772cf4756f.pdf
 
FUNCION DE ESTADO EN LA TERMODINAMICA.pdf
FUNCION DE ESTADO EN LA TERMODINAMICA.pdfFUNCION DE ESTADO EN LA TERMODINAMICA.pdf
FUNCION DE ESTADO EN LA TERMODINAMICA.pdf
 
ESPECIFICACIONES TECNICAS COMPLEJO DEPORTIVO
ESPECIFICACIONES TECNICAS COMPLEJO DEPORTIVOESPECIFICACIONES TECNICAS COMPLEJO DEPORTIVO
ESPECIFICACIONES TECNICAS COMPLEJO DEPORTIVO
 
Mecatronica Automotriz .pdf
Mecatronica Automotriz              .pdfMecatronica Automotriz              .pdf
Mecatronica Automotriz .pdf
 
metodos de fitomejoramiento en la aolicacion de plantas
metodos de fitomejoramiento en la aolicacion de plantasmetodos de fitomejoramiento en la aolicacion de plantas
metodos de fitomejoramiento en la aolicacion de plantas
 

Sistema de gestión de base de datos SQL UC

  • 1. SISTEMA DE GESTIÓN DE BASE DE DATOS SQL UC Análisis y Diseño de Software II Programación III: Estructura de Archivos
  • 2. SISTEMA DE GESTIÓN DE BASE DE DATOS SQLUC Autores: Christian Collaguazo Malla Daniel Gomez Jaramillo David Valladarez Muñoz Asignaturas: Análisis y Diseño de Software II Programación III: Estructura de Archivos 2017 Facultad de Ingeniería
  • 3. SISTEMA DE GESTIÓN DE BASE DE DATOS SQLUC CONTENIDO PRESENTACIÓN Parte A Análisis y diseño de SQLuc Parte B Ejecuciones Diseño del Sistema Programación del sistema Enlaces de interés Contenido de la presentación Aspectos generales del sistema Ejecución de SQLuc Parte C Conclusiones y recomendaciones
  • 4. SISTEMA DE GESTIÓN DE BASE DE DATOS SQLUC AVANCE PRESENTACIÓN Análisis y diseño de SQLuc Diseño del Sistema Programación del sistema Avance de la presentación Aspectos generales del sistema Parte A
  • 5. ASPECTOS GENERALES DEL SISTEMA Sistema de gestión de base de datos SQLUC
  • 6. OBJETIVOS 1. El sistema debe tener una interfaz en la cual el usuario pueda ingresar los comandos para realizar una acción específica. 2. Se solicita un sistema que permita la realización de tres acciones fundamentales para la gestión de base de datos: mantenimiento de tablas, registros y consultas.
  • 7. 1. Creación 2. Eliminación 3. Edición TABLAS CREAR TABLA nombre_tabla CAMPOS campo1, … , campoN CLAVE campo1 LONGITUD ## ELIMINAR TABLA nombre_tabla MODIFICAR TABLA nombre_tabla CAMPO nombre_campo POR nombre_campo
  • 8. 1. Inserción 2. Eliminación 3. Edición REGISTROS CREAR REGISTRO nombre_tabla VALOR vCampo1 , vCampo2 ,... , vCampoN ELIMINAR REGISTRO nombre_tabla CLAVE valorCampoClave MODIFICAR REGISTRO nombre_tabla CLAVE valorCampoClave CAMPO campo POR valor_campo_nuevo
  • 9. 1. Selección 2. Join(Unión) CONSULTAS SELECCIONAR DE nombre_tabla DONDE nombre_campo = “Algo” UNIR nombre_tabla1, nombre_tabla2 POR nombre_campo
  • 10. Archivo que sirve para almacenar la información de las tablas registradas en el sistema, así como el número de registros de dicha tabla, los campos que posee, el campo clave y la longitud que deberán llevar cada uno de los registros. Formato del archivo CSV (atributos separados por comas): ARCHIVO META.BD nombre_tabla,numero_registros,campo_clave,longitud_campos,campos...
  • 11. DISEÑO DEL SISTEMA Sistema de gestión de base de datos SQLUC
  • 12. PATRÓN PROXY - PROTECCIÓN ¿Qué un Proxy? 1. Patrón de diseño Estructural 2. Intermediario entre un objeto y los demás que lo utilizan 3. Controla el acceso al objeto original.
  • 13. PATRÓN PROXY - PROTECCIÓN ¿Por qué hemos utilizado el patrón Proxy? 1. Validar que el cliente haya utilizado la sintaxis correcta para realizar la acción requerida. 2. Validar que la acción a realizar cumpla con todos los requisitos necesarios. 3. Acto siguiente empezar el proceso de acción pertinente.
  • 14. PATRÓN PROXY - PROTECCIÓN Actores de un Proxy 1. Subject: Define una interfaz común para el proxy y el objeto real. 2. Proxy: Mantiene una referencia al objeto real, mientras que proporciona una interfaz idéntica a la del objeto real y controla el acceso a este objeto, siendo responsable de crearlo y borrarlo. 3. RealSubject: Clase del objeto real que el proxy representa.
  • 15. PATRÓN PROXY - PROTECCIÓN
  • 17. SUBJECT (Interface GestionBD) La interface GestionBD operara como Subject del patrón Proxy y proveerá de los métodos abstractos para que lo implementen las clases Proxy y RealSubject
  • 18. Clase Proxy (Clase GestionBDProxy) La clase GestionBDProxy implementa la interface GestionBD. El método “Peticion” validará la petición que el usuario registre en la interfaz gráfica.
  • 20. Después de que se compruebe de que la acción identificada a realizar cumple todos los requerimientos necesarios, se procede a aceptar la solicitud.
  • 21. Clase RealSubject (Clase GestionBDReal) Proveerá el método abstracto “Peticion” que deberán implementar las clases GestionBDProxy y GestionBDReal
  • 23. PATRÓN ABSTRACT FACTORY ¿Qué es Abstract Factory? Permite trabajar con objetos de distintas familias de manera que las familias no se mezclen entre sí y haciendo transparente el tipo de familia concreta que se esté usando.
  • 24. Partes del Abstract Factory AbstractFactory: declara una interfaz para la creación de objetos de productos abstractos. ConcreteFactory: implementa las operaciones para la creación de objetos de productos concretos. AbstractProduct: declara una interfaz para los objetos de un tipo de productos. ConcreteProduct: define un objeto de producto que la correspondiente factoría concreta se encargaría de crear, a la vez que implementa la interfaz de producto abstracto. Cliente: emplea solamente las interfaces declaradas en la factoría y en los productos abstractos. PATRÓN ABSTRACT FACTORY
  • 34. PATRÓN TEMPLATE METHOD ¿Qué es Template Method? Define el funcionamiento general de un algoritmo en una operación de una clase y permite que subclases redefinan ciertos pasos del algoritmo sin cambiar su comportamiento general.
  • 35. PATRÓN TEMPLATE METHOD Partes del Patrón Template Method AbstractTemplate: Implementa un método plantilla que define el esqueleto de un algoritmo y define métodos abstractos que implementan las subclases concretas. ConcreteTemplate: Implementa los métodos abstractos para realizar los pasos del algoritmo que son específicos de la subclase.
  • 36. PATRÓN TEMPLATE METHOD ¿Por qué hemos implementado un Template Method? Uno de los requerimientos es que en la base de datos se encuentre un archivo llamado MetaData en el cual se encuentren especificado los atributos de cada tabla. El usuario al momento de ingresar los comandos para realizar cualquier acción el sistema llamara a los métodos de identificar la orden, realizar la acción y actualizar el META.BD. Por lo tanto, la aplicación del patrón Template nos ayudará a que el sistema con la llamada a un solo método realice todas estas acciones y que el orden de llamada a estos métodos no se pueda modificar.
  • 45. OTROS PROCESOS EXTERNOS Los procesos SELECCIONAR TABLA y UNIR TABLA, quedaron fuera de proceso del Abstract Factory y del Template Method ya que son procesos solo de consulta y no requieren escribir, modificar ni eliminar ninguna tabla ni registro. Este proceso es solo de busqueda y de lectura de datos.
  • 48. Diagrama de clases de SQLuc
  • 49. PROGRAMACIÓN DEL SISTEMA Sistema de gestión de base de datos SQLUC
  • 50. Identificación de sentencias En el comando recibido por el cliente, se realizó la búsqueda de las palabras reservadas en el sistema para identificar con qué caso se va trabajar posteriormente. Los casos posibles son: static final int CREARTABLA = 101; static final int MODIFICARTABLA = 102; static final int ELIMINARTABLA = 103; static final int CREARREGISTRO = 201; static final int MODIFICARREGISTRO = 202; static final int ELIMINARREGISTRO = 203; static final int SELECCIONARTABLAS = 301; static final int JOIN = 302;
  • 51. Identificación de sentencias La busqueda se la realiza con el método contains() de la clase String de Java, si no se encuentra ningún caso se lanza una excepción que es capturada en las sentencias try-catch de donde se llamó a este método. if(comando.replace(" ", "").contains("CREARTABLA")) caso = CREARTABLA; else if(comando.replace(" ", "").contains("MODIFICART")) caso = MODIFICARTABLA; else if(comando.replace(" ", "").contains("ELIMTABLA")) caso = ELIMINARTABLA; . . . else throw new SecurityException("Lo sentimos, no se ha entendido esa orden.");
  • 52. Validación de sentencias A un atributo de una sentencia, se lo busca segun la posicion a la que le corresponda dentro de dicha sentencia, por ejemplo el nombre de una tabla deberá ir necesariamente después de la palabra reservada CREAR TABLA: StringBuffer atributo = new StringBuffer(); for(;i<comando.length();i++){ if(comando.charAt(i)!=' ') atributo.append(comando.charAt(i)); else break; } nombreTabla = atributo.toString();
  • 53. Validación de sentencias Una validación que comparten casi todos los procesos es validar si el nombre de la tabla que se escribió en la línea de comandos existe o no: private boolean BuscarTabla(String nombreTabla){ ... String fileMETA = "filesBDMETA.bd"; if(!new File(fileMETA).exists()) return false; try { CsvReader ar = new CsvReader(fileMETA); while(ar.readRecord()){ if(ar.get(0).equals(nombreTabla)){ ar.close(); return true;} } } ... }
  • 54. Validación de sentencias Si se llega a producir un error en ejecución o se desea lanzar un error por algún problema en la validación, se lanza una excepción para que esta sea capturada y mostrada en la interfaz gráfica de la aplicación. Ejemplos: throw new Error("Lo sentimos, no se ha entendido esa orden."); throw new Error("Error, el campo clave no está dentro de los campos especificados."); throw new Error("Error, en uno de los campos se excede la longitud máxima posible");
  • 55. Paso de parámetros Dentro de las clases del proyecto, existen algunos métodos que varían según el caso el número de parámetros a recibir, es por ello que en muchos de estos métodos se pasaron arreglos de argumentos de tipo Object para así poder cumplir con cada caso. Ejemplo de ENVÍO: Object[] arg = {"MODIFICARREGISTRO",nombreTabla, valorCampoClave,nombreCampo,valorCampo, posicionCampo}; new GestionBDReal().Peticion(arg);
  • 56. Paso de parámetros Dentro de las clases del proyecto, existen algunos métodos que varían según el caso el número de parámetros a recibir, es por ello que en muchos de estos métodos se pasaron arreglos de argumentos de tipo Object para así poder cumplir con cada caso. Ejemplo de RECEPCIÓN: String caso = (String) args[0] String nombreTabla = (String) args[1]; ArrayList<String> campos = (ArrayList<String>) (List) args[2]; String campoClave = (String) args[3]; int longitudCampos = (int) args[4];
  • 57. Archivo META.BD Todo proceso que se realice debera constar en el archivo META.BD en el que consta toda la informacion con respecto a una tabla. Este archivo es de tipo CSV separado por comas, para que al momento de buscar y/o modificar algun atributo de una tabla, este se lo realice de forma simple y rapida. El archivo META.BD lleva el siguiente formato: nombre_tabla,numero_registros,campo_clave,longitud_ campos,campos...
  • 58. LIBRERÍAS IMPLEMENTADAS JAVA CSV Java CSV es una pequeña biblioteca Java de código abierto para leer y escribir archivos de texto CSV y delimitados por texto. Todos los tipos de archivos CSV pueden ser manejados, texto calificado, Excel formateado, etc
  • 59. SISTEMA DE GESTIÓN DE BASE DE DATOS SQLUC AVANCE PRESENTACIÓN Ejecuciones Avance de la presentación Parte B Ejecución de SQLuc
  • 60. EJECUCIÓN DE SQLuc Sistema de gestión de base de datos SQLUC
  • 61. SISTEMA DE GESTIÓN DE BASE DE DATOS SQLUC AVANCE PRESENTACIÓN Conclusiones y recomendaciones Avance de la presentación Parte C Conclusiones y recomendaciones Enlaces de interés
  • 62. CONCLUSIONES Y RECOMENDACIONES Sistema de gestión de base de datos SQLUC
  • 63. CONCLUSIONES El sistema de gestión de base de datos SQL_UC nos permite ingresar comandos de tal manera que podremos administrar la información, crear, modificary eliminar tablas las cuales también nos permiten recuperar los datos. El usuar patrones de diseño nos ayudó a desarrollar una aplicación robusta y fácil de mantener, en el hecho de arreglar errores que surgieron a la hora de programar.
  • 64. Sistema operativo - (Rutas) Para el desarrollo de la aplicación se empleó el sistema operativo Microsoft Windows, por este motivo, existe en el lenguaje Java ciertas particularidades de sintaxis que las diferencian entre otros sistemas operativos como la distribución de Linux: Ubuntu Una de las particularidades son la utilización de rutas para almacenar un archivo(.txt, .csv, entre otros) CONCLUSIONES
  • 65. RECOMENDACIONES Manejo de archivos - (Archivos abiertos)
  • 66. RECOMENDACIONES Manejo de archivos - (Caracteres especiales) Al ingresar caracteres especiales los datos sufren una adulteracion y por consiguiente los datos de una tabla no coinciden con los datos del archivo META.BD generando errores de esta especie: Error interno, no se han encontrado los datos de la tabla especificada.
  • 68. ENLACES DE INTERÉS Sistema de gestión de base de datos SQLUC Lenguaje ED Analizador léxico que transforma el código escrito en un lenguaje de programación con sentencias en español a Lenguaje C. Enlace: https://github.com/esdanielgomez/LenguajeED Sistema de gestión de base de datos - SQL Código fuente del actual proyecto junto con la libreria CSV para el manejo de archivos. Enlace: https://github.com/esdanielgomez/SQLuc
  • 69. SISTEMA DE GESTIÓN DE BASE DE DATOS SQL UC Análisis y Diseño de Software II Programación III: Estructura de Archivos