Está en la página 1de 12

DRIVER JDBC ODBC

INGENIERA DE SOFTWARE II

QU ES JDBC ?

JDBCes unAPI(Application programming interface) que


describe o define una librera estndar para acceso a fuentes
de datos, principalmente orientado a Bases de Datos
relacionales que usan SQL (Structured Query Language). JDBC no
slo provee un interfaz para acceso a motores de bases de datos,
sino que tambindefine una arquitectura estndar, para que
los fabricantes puedan crear los drivers que permitan a las
aplicaciones java el acceso a los datos.

FILOSOFA Y OBJETIVOS DE JDBC

API A NIVEL SQL.JDBC es un API de bajo nivel, es decir, que est orientado
a permitir ejecutar comandos SQL directamente, y procesar los resultados
obtenidos. Esto supone que ser tarea del programador crear APIs de ms
alto nivel apoyndose directamente sobre JDBC.

COMPATIBLE CON SQL.Cada motor de Base de Datos implementa una


amplia variedad de comandos SQL, y muchos de ellos no tienen porque ser
compatibles con el resto de motores de Base de Datos. JDBC, para solventar
este problema de incompatibilidad, ha tomado la siguiente posicin

JDBC permite que cualquier comando SQL pueda ser pasado al driver
directamente, con lo que una aplicacin Java puede hacer uso de toda la
funcionalidad que provea el motor de Base de Datos, con el riesgo de que
esto pueda producir errores o no en funcin del motor de Base de Datos.

Con el objetivo de conseguir que un driver sea compatible con SQL (SQL
compliant), se obliga a que al menos, el driver cumpla el Estndar ANSI
SQL 92

TIPOS DE CONECTORES (DRIVERS) JDBC


JDBC-ODBC BRIDGE MS DRIVER ODBC: BRIDGE

Permite el acceso a Base de Datos JDBC mediante un


driver ODBC. Cada mquina cliente que use el puente,
debe tener libreras clientes de ODBC(dll propias del
S.O)

Ventajas: Buena forma de aprender JDBC. Tambin puede


ser buena idea usarlo, en sistemas donde cada mquina
cliente tenga ya instalado los drivers ODBC. Tambin es
posible que sea la nica forma de acceder a ciertos
motores de Bases de Datos.

Inconvenientes: No es buena idea usar esta solucin para


aplicaciones que exijan un gran rendimiento, ya que la
transformacin JDBC-ODBC es costosa. Tampoco es
buena solucin para aplicaciones con alto nivel de
escalabilidad.

DRIVER JAVA PARCIALES: NATIVE

Traducen las llamadas al API de JDBC Java


en llamadas propias del motor de Base de
Datos (Oracle, Informix...). Al igual que el
tipo anterior, exige en las mquinas clientes
cdigo binario propio del cliente de la Base
de datos especfica y del sistema operativo

Ventajas:Mejor rendimiento que el anterior.


Quiz puede ser buena solucin para
entornos
controlados
como
intranets.
Ejemplo OCI oracle.

Inconvenientes:Principalmente
la
escalabilidad, ya que estos drivers exigen
que en la mquina cliente libreras del cliente
de la Base de Datos.

DRIVER JDBC A TRAVS DE MIDDLEWARE:


NETWORK

Traduce las llamadas al API JDBC en llamadas


propias del protocolo especfico del broker.
ste se encargar de traducirlas de nuevo en
sentencias propias del motor de Base de
Datos de cada caso.

Ventajas: Buena solucin cuando necesitamos


acceder a Bases de Datos distintas y se quiere
usar un nico driver JDBC para acceder a las
mismas. Al residir la traduccin en el servidor
del middleware, los clientes no necesitan
libreras especficas, tan solo el driver.

Inconvenientes: La desventaja principal reside


en la configuracin del servidor donde se
encuentra el middleware. Necesitar libreras
especficas para cada motor de base de datos
distinto, etc.

DRIVER JAVA PURO (ACCESO


DIRECTO A BASE DE DATOS):
THIN

Convierte o traduce las llamadas al


API JDBC en llamadas al protocolo
de red usado por el motor de bases
de datos, lo que en realidad es una
invocacin directa al motor de
bases de datos.

Ventajas: 100 % portable. Buen


rendimiento. El cliente slo necesita
el driver.

Inconvenientes:
Al
ser
independiente de la plataforma, no
aprovecha
las
caractersticas
especficas del S.O

ARQUITECTURAS JDBC

La arquitectura bsica de JDBC (ya la hemos visto) es simple. Una


clase llamada DriverManager provee un mecanismo para controlar
un conjunto de drivers JDBC. Esta clase intenta cargar los drivers
especificados en la propiedad del sistema jdbc.drivers. Tambin
podemos cargar un driver explicitamente usando Class.forName().
Durante la carga, el driver intentar registrarse a si mismo usando
el mtodo clase DriverManager.registerDriver(). Cuando se invoque
al mtodo DriverManager.getConnection(), sta buscar el primer
driver de los registrados que pueda manejar una conexin como la
descrita en la URL y retornar un objeto que implemente el interfaz
java.sql.Connection.

Sin embargo, en funcin de la localizacin de la base de datos, el driver, la


aplicacin y el protocolo de comunicacin usado, nos podemos encontrar distintos
escenarios que accedan a Base de Datos a travs de JDBC:

Aplicaciones standalone

Applets comunicando con un servidor Web

Aplicaciones y applets comunicando con una base de datos a travs de un


puente JDBC/ODBC.

Aplicaciones accediendo a recursos remotos usando mecanismos como Java RMI

etc...

Todos ellos se pueden agrupar en dos tipos distintos de arquitecturas:

Arquitecturas JDBC en dos capas.

La aplicacin que accede a la base de datos reside en el mismo lugar


que el driver de la base de datos. El driver acceder al servidor
donde corra el motor de base de datos.

En este caso, ser el driver el encargado de manejar la comunicacin


a travs de la red.

En el ejemplo, una aplicacin java corriendo en una mquina cliente


que usa el driver tambin local. Toda la comunicacin a travs de la
red con la base de datos ser manejada por el driver de forma
transparente a la aplicacin Java.

Arquitecturas JDBC en tres capas.

Una aplicacin o applet corriendo en una mquina y accediendo a un


driver de base de datos situado en otra mquina. Ejemplos de esta
situacin:

Un applet accediendo al driver a travs de un Web Server

Una aplicacin accediendo a un servidor remoto que comunica


localmente con el driver

Una aplicacin comunicando con un servidor de aplicaciones que


accede a la base de datos por nosotros.

OPEN DATABASE
Es un estndar de acceso a lasbases de datosdesarrollado porSQL Access Group en 1992.
CONNECTIVITY(ODBC)
El objetivo de ODBC es hacer posible el acceder a cualquier dato desde cualquier
aplicacin, sin importar qusistema de gestin de bases de datos(DBMS) almacene los
datos. ODBC logra esto al insertar una capa intermedia (CLI) denominada nivel de Interfaz
de Cliente SQL, entre la aplicacin y el DBMS. El propsito de esta capa es traducir las
consultas de datos de la aplicacin en comandos que el DBMS entienda. Para que esto
funcione tanto la aplicacin como el DBMS deben ser compatibles con ODBC, esto es que la
aplicacin debe ser capaz de producir comandos ODBC y el DBMS debe ser capaz de
responder a ellos. Desde la versin 2.0 el estndar soportaSAGySQL.

El software funciona de dos modos, con un software manejador en el cliente, o una filosofa
cliente-servidor. En el primer modo, el driver interpreta las conexiones y llamadas SQL y las
traduce desde el API ODBC hacia el DBMS. En el segundo modo para conectarse a labase
de datosse crea unaDSNdentro del ODBC que define los parmetros, ruta y
caractersticas de la conexin segn los datos que solicite el creador o fabricante.

Java Database Connectivity(JDBC) es un derivado inspirado en el mismo, unainterfaz de


programacin de aplicacionesque permite la ejecucin de operaciones sobre bases de
datos desde ellenguaje de programacin Javaindependientemente del sistema operativo
donde se ejecute o de la base de datos a la cual se accede utilizando el dialecto SQL del
modelo de base de datos que se utilice.

GRACIA
S