Mostrando entradas con la etiqueta Base de Datos. Mostrar todas las entradas
Mostrando entradas con la etiqueta Base de Datos. Mostrar todas las entradas

sábado, 25 de agosto de 2012

Los 4 tipos de Drivers JDBC

Los drivers que son susceptibles de clasificarse en una de estas cuatro categorías:


  1. Puente JDBC-ODBC más driver ODBC: El producto de JavaSoft suministra acceso vía drivers ODBC. Nótese que el código binario ODBC, y en muchos casos el código cliente de base de datos, debe cargarse en cada máquina cliente que use este driver. Como resultado, este tipo de driver es el más apropiado en un red corporativa donde las instalaciones clientes no son un problema mayor, o para una aplicación en el servidor escrito en Java en una arquitectura en tres-niveles.
  2. Driver Java parcialmente Nativo. Este tipo de driver convierte llamadas JDBC en llamadas del API cliente para Oracle, Sybase, Informix, DB2 y otros DBMS. Nótese que como el driver puente, este estilo de driver requiere que cierto código binario sea cargado en cada máquina cliente.
  3. Driver Java nativo JDBC-Net. Este driver traduce llamadas JDBC al protocolo de red independiente del DBMS que después es traducido en el protocolo DBMS por el servidor. Este middleware en el servidor de red es capaz de conectar a los clientes puros Java a muchas bases de datos diferentes. El protocolo específico usado dependerá del vendedor. En general esta es la alternativa más flexible.
  4. Driver puro Java y nativo-protocolo.. Este tipo de driver convierte llamadas JDBC en el protocolo de la red usado por DBMS directamente. Esto permite llamadas directas desde la máquina cliente al servidor DBMS y es la solución más práctica para accesos en intranets. Dado que muchos de estos protocolos son propietarios,los fabricantes de bases de datos serán los principales suministradores.

Esperamos que las alternativas 3 y 4 sean las formas preferidas de acceder a las bases de datos desde JDBC. Las categorías 1 y 2 son soluciones interinas cuando no están disponibles drivers directos puros Java.
 



Fuentes: http://es.scribd.com/doc/51578374/9/Tipos-de-drivers-JDBC
http://www.datadirect.com/resources/jdbc/faqs/types-of-jdbc-drivers.html
http://ejbvn.wordpress.com/category/week-2-entity-beans-and-message-driven-beans/day-09-using-jdbc-to-connect-to-a-database/

domingo, 5 de agosto de 2012

Operaciones CRUD en el Sistema con BD

Estructura de Paquetes del Proyecto

Para el desarrollo del sistema he adoptado usar la estructura de paquetes sugerida.
Esta estructura está organizando mediante paquetes con el nombre principal de ags, Algoritmo Genético Simple. A continuación enlisto los paquetes que tengo hasta el momento:
  1. ags.core: Contiene las clases pertenecientes al propio algoritmo genético.
  2. ags.dao: Incluye las clases que proporcionan la interface con la base de datos, como su nombre lo indica, Objetos de Acceso a Datos.
  3. ags.gui: En este paquete se tienen todas las clases que proporcionan la interface gráfica de usuario usando Swing.
  4. ags.service: Aquí se especifican las clases que son las encargadas de brindar servicios a otras capas del sistema, por ejemplo a la gui.
  5. ags.util: Las clases que sirven como utilerías son almacenadas en este paquete.


Implementación de las operaciones CRUD (Create Read Update Delete) en el Sistema

La operación Create está implementada en la creación nuevas Funciones Objetivo, los datos de una función se deben guardar en 2 tablas distintas, FuncionObjetivo y Elemento. Para acceder a este servicio tengo la interface FuncionObjetivoService que en su implementación utiliza a la implementación de la interface FuncionObjetivoDao para acceder a los datos de la Base de Datos de MySQL mediante el JDBC.

Las 4 operaciones mencionadas, están incluidas en la clase FuncionObjetivoService; el método recordFuncionObjetivo() se encarga de insertar una nueva función objetivo al la BD, para ello se realiza con una Transacción que incluye la inserción de los diferentes términos de la función objetivo en la tabla Elemento, para después, con los id’s generados de estas inserciones y los otros datos de la función objetivo guardar en la tabla FuncionObjetivo un nuevo registro.

Para que el usuario aceda a esta operación se tiene la opción de Nueva Función Objetivo dentro de Menú -> Función Objetivo. En la ventana correspondiente se pueden ingresar los datos de los coeficientes de A y B de cada uno de los 4 elementos o términos de la función objetivo, así como la variable de la cual dependen y la función base  asociada.
Del mismo modo se puede generar la vista preliminar de la función que se está configurando, oprimiendo el botón “Vista Preliminar”.


La operación Delete esta implementada en el método deleteFuncionObjetivo() de la clase FuncionObjetivoServiceImpl, y el usuario puede acceder a ella mediante: Menú -> Función Objetivo -> Eliminar Función Objetivo, en esta ventana se en listan las funciones que se encuentran en ese momento en la BD del sistema (aquí se implementa la operación Read), al oprimir el botón “Eliminar”, se eliminará la función objetivo que se encuentre seleccionada en el JComboBox. La ventana se presenta abajo:




La operación  Update también esta implementada como las anteriores, en la interface de FuncionObjetivoService,  y es accesible al usuario mediante el menú:
Menú -> Función Objetivo -> Editar Función Objetivo. Es esa pantalla aparece la lista de funciones que se encuentran en la BD, al seleccionar una y oprimir el botón Actualizar abre otra ventana donde aparecen todos los valores de la función seleccionada para poder modificarlos.
Para aplicar los cambios se debe oprimir el botón Actualizar sí todo va bien, se mostrara el aviso correspondiente. Dicho proceso se muestra en imágenes como sigue:





jueves, 19 de julio de 2012

Diseño de base de datos para el sistema.

El diseño de la base de datos para almacenar las funciones matemáticas y los resultados, así como llevar un  sencillo control de acceso al sistema tiene 6 tablas, de las cuales una es catalogo; Funciones Matemáticas, las demás son de transacciones, aquí muestro el diagrama ER.
Descripción de cada una de las tablas:
  • Función Matemática: Catalogo con las funciones matemáticas que se pueden usar para definir los elementos de la función objetivo a optimizar.
  • Elemento: Define las constantes de una función matemáticas que son parte de la función objetivo.
  • Función Objetivo: Define los parámetros, elementos constitutivos y el espacio de búsqueda de las variables de la función objetivo.
  • Parámetros AGS: Almacena los parámetros de configuración del Algoritmo Genético.
  • Resultados: Tabla destinada a guardar los resultados obtenidos al optimizar  la función objetivo definida.
  • Usuario: contiene los datos de acceso de los  usuarios de la aplicación.