Skip to content

3 Protocolos de Acceso a Bases de Datos

Introducción

En tecnologías de base de datos podemos encontrarnos con dos normas de conexión a una base de datos SQL:

  • ODBC (Open Database Connectivity) define una API (Application Program Interface) que pueden usar las aplicaciones para abrir una conexión con una base de datos, enviar consultas, actualizaciones y obtener los resultados. Las aplicaciones pueden usar esta API para conectarse a cualquier servidor de base de datos compatible con ODBC. Está escrito en C.
  • JDBC (Java Database Connectivity) define una API que pueden usar los programas Java para conectarse a los servidores de bases de datos relacionales.

Acceso a Datos mediante JDBC

JDBC proporciona una librería estándar para acceder a fuentes de datos principalmente orientados a bases de datos relacionales que usan SQL. No solo provee una interfaz sino que también define una arquitectura estándar, para que los fabricantes puedan crear los drivers que permitan a los aplicaciones Java el acceso a los datos. JDBC dispone de una interfaz distinta para cada base de datos, es lo que llamamos driver (controlador o conector). Esto permite que las llamadas a los métodos Java de las clases JDBC se correspondan con el API de la base de datos.

JDBC consta de un conjunto de clases e interfaces que nos permite escribir aplicaciones Java para gestionar las siguientes tareas con una base de datos relacional:

  • Conectarse a la base de datos
  • Enviar consultas e instrucciones de actualización a la base de datos
  • Recuperar y procesar los resultados recibidos de la base de datos en respuesta a las consultas

Dos modelos de acceso a bases de datos

La API JDBC es compatible con los modelos tanto de dos como de tres capas para el acceso a la base de datos.

En el modelo de dos capas, un applet o aplicación Java hablan directamente con la base de datos, esto requiere un driver JDBC residiendo en el mismo lugar que la aplicación. Desde el programa Java se envían las sentencias SQL al sistema gestor de Base de datos para que las procese y los resultados se envían de vuelta al programa. La base de datos puede encontrarse en otra máquina diferente a la de la aplicación y las solicitudes se hacen a través de la red. El driver será encargado de manejar la comunicación a través de la red de forma transparente al programa.

Modelo de dos capas

Figura 3 - Modelo de dos capas

En el modelo de tres capas, los comandos se envían a una capa intermedia que se encargará de enviar los comandos SQL a la base de datos y de recoger los resultados de la ejecución de las sentencias. En este caso los drivers no tienen que residir en la máquina cliente.

Modelo de tres capas

Figura 4 - Modelo de tres capas

Un servidor de aplicaciones es una implementación de la especificación J2EE (Java 2 Platform Enterprise Edition). J2EE es un entorno centrado en Java para desarrollar, construir y desplegar aplicaciones empresariales multicapa basadas en la Web. Existen diversas implementaciones, cada una con sus propias características. Algunas de ellas son las siguientes: BEA WebLogic, IBM WebSphere, Oracle IAS, Borland AppServer, etc

Tipos de drivers

Existen 4 tipos de drivers JDBC:

  • Tipo 1. JDBC-ODBC Bridge Permite el acceso a bases de datos JDBC mediante un driver ODBC. Convierte las llamadas al API de JDBC en llamadas ODBC. Exige la instalación y configuración de ODBC en la máquina cliente.
  • Tipo 2. Native Controlador escrito parcialmente en Java y en código nativo de la base de datos. Traduce las llamadas al API de JDBC Java en llamadas propias del motor de base de datos. Exige instalar en la máquina cliente código binario propio del cliente de base de datos y del sistema operativo.
  • Tipo 3. Network Controlador de Java puro que utiliza un protocolo de red (HTTP) para comunicarse con el servidor de base de datos. Traduce las llamadas al API de JDBC Java en llamadas propias del protocolo de red independiente de la base de datos y a continuación son traducidas por un software intermedio (Middleware) al protocolo usado por el motor de base de datos. El driver JDBC no comunica directamente con la base de datos, comunica con el software intermedio, que a su vez comunica con la base de datos. Son útiles para aplicaciones que necesitan interactuar con diferentes formatos de bases de datos, ya que usan el mismo driver JDBC sin importar la base de datos específica. No exige la instalación en cliente.
  • Tipo 4. Thin Controlador de Java puro con protocolo nativa. Traduce las llamadas al API de JDBC Java en llamadas propias del protocolo de red usado por el motor de base de datos. No exige instalación en el cliente

Warning

Los tipos 3 y 4 son la mejor forma para acceder a bases de datos JDBC. Los tipos 1 y 2 se usan normalmente cuando no queda otro remedio, porque el único sistema de acceso final al gestor de bases de datos es ODBC. En la mayoría de los casos la opción más adecuada será el tipo 4.