¿QUE ES ODBC?
Open Data Base Conectivity o lo que es lo mismo,
conectividad abierta de bases de datos “es un intermediario entre bases de
datos y aplicaciones, cuya tarea es sostener una conversación de preguntas y
respuestas entre dos “sujetos” que no hablan el mismo idioma y que gestionan
sus recursos de forma diferente”. ODBC es entonces un armatoste que alberga
controladores. El armatoste sirve para gestionar los controladores, y los
controladores son los que saben “hablar” con las bases de datos.
En ODBC no se tiene que hacer gran cosa, es una simple
tarea, se llama crear un origen de datos, otros le denominan fuente en vez de
origen. Un origen o fuente de datos consiste en el nombre, el controlador y la
base de datos. Por ejemplo, si un usuario quiere tener acceso a una base de
datos de Access, digamos que se llama Negocio.mdb, desde una hoja de
cálculo de Excel para consultar su volumen de ventas por país, este usuario
crea un nuevo origen de datos en ODBC llamado Volumen_Ventas (este es, pues, el
nombre), después selecciona un controlador para Microsoft Access e indica el
archivo de base de datos está en “c:\LaEmpresa\Administración\Negocio.mdb”. Eso
es básicamente de lo que se trata.
ODBC asegura una conexión continua desde un cliente,
servidor o aplicaciones Web.
ODBC provee una solución completa e independiente para el
acceso a datos, porque define estándares para el proceso y acceso físico a las
bases de datos. ODBC permite a las aplicaciones cliente desarrollar en una única
y común API.
Casi todas las DB actuales tienen un ODBC. Debido a que este
elemento impone ciertas limitaciones, ya que no todo lo que la DB sabe hacer es
compatible con la aplicación, como velocidad de proceso, tiempos de espera,
máxima longitud de registro, número máximo de registros, versión de SQL, etc.,
está cayendo en desuso a cambio de otras técnicas de programación, pero aún le
quedan muchos años de buen servicio.
La tecnología ODBC es utilizada en múltiples plataformas,
incluyendo Windows 3.1, Windows NT, OS/2, Macintosh y UNIX, y DBMS´s como DB2,
Oracle, SYBASE, INFORMIX, Microsoft SQL Server, DEC, Apple DAL, dBase, Excel,
etc.
CARACTERISTICAS
La conectividad de datos para aplicaciones Web y
aplicaciones server críticas más escalable y confiable. Connect ODBC 3.5
soporta Microsoft Transaction Server para Oracle 8, SQL Server 7, y los
sistemas de bases de datos Sybase Adaptive Server 12.
Es el primer y único ODBC driver para conectividad directa
desde aplicaciones UNIX hacia Microsoft SQL Server – Este nuevo soporte permite
a las organizaciones desarrollar o desplegar sus datos SQL Server para
cliente/servidor y aplicaciones basadas en el Web residiendo sobre UNIX. Cursor
scrollable es soportado para todas las bases de datos. Del mismo modo muchas
bases de datos y ODBC drivers no soportan cursores de éste tipo. Con Connect
ODBC 3.5 usted obtiene soporte para todas sus aplicaciones de ODBC.
DataDirect Connect ODBC libera el ODBC driver para
aplicaciones en plataforma Irix y bases de datos como Informix y Sybase.
EN RECURSOS ODBC
A partir de este momento, trabajaremos con nuevos objetos,
los cuales nos permiten establecer la comunicación entre el cliente y servidor
de bases de datos.
El primero es el Objeto Connection, el cual nos permitirá
conectarnos a la base de datos, este objeto tiene una serie de colecciones,
propiedad y métodos propios que nos permiten manipular las operaciones con la
bases de datos.
Luego tenemos el Objeto Recorset (Conjunto de registros),
mediante el cual realizaremos las operaciones sobre las tablas de la base de
datos. Además se encuentra el Objeto Error, con el cual podremos controlar los
eventos no deseados que ocurran sobre un recordset o una conexión.
CAMPO DE APLICACIÓN Y
ALCANCE
“La tecnología ODBC proporciona una interfaz común para
acceder a bases de datos SQL heterogéneas”(18). ODBC se basa en SQL como
estándar de acceso a los datos. Esta interfaz proporciona una interesante
interoperabilidad, ya que gracias a ella una misma aplicación puede acceder a
diferentes SGBDs SQL (Sistema de Gestión de Base de Datos) a través de un
conjunto común de instrucciones. Esto permite a los desarrolladores construir y
distribuir aplicaciones cliente/servidor no ligadas específicamente a una base
de datos determinada. Cada usuario añade luego el ‘driver’ correspondiente, el
cual se encarga de enlazar la aplicación con el SGBD de su elección. Los
drivers aíslan a la aplicación de llamadas específicas para una base de datos
determinada, de la misma manera que los drivers de impresora evitan que los
procesadores de texto tengan que incorporar comandos específicos de impresión
para cada tipo de máquina.
Así pues, ODBC es la especificación de una API para bases de
datos, independiente del SGBD y del sistema operativo y, aunque Microsoft
presenta la especificación en C, también del lenguaje de programación. ODBC se
basa en las especificaciones CLI (Call Level Interface) de ISO y X/Open. ODBC
3.0 implementa completamente estas dos especificaciones públicas (las versiones
anteriores de ODBC estaban basadas en versiones preliminares de estas
especificaciones pero no las implementaban completamente) y añade algunas
prestaciones que normalmente necesitan los desarrolladores como cursores de
‘scroll’ en pantalla.
Las funciones en la API ODBC son implementadas por los
desarrolladores de drivers específicos para un SGBD. Las aplicaciones llaman a
las funciones contenidas en estos drivers para acceder a la información de una
manera no dependiente de la naturaleza específica de la base de datos.
JDBC vs. ODBC
“ODBC(Open DataBase Connectivity:Conectividad abierta de BD)
es la interface para conectarse con BD relacionales mas usada por los
programadores de aplicaciones”(19).Nos preguntaremos que significado tiene
entonces JDBC si ya existe una interficie popular que supuestamente hace lo
mismo. La respuesta es que usaremos JDBC por diferentes razones:
ODBC usa una interface escrita con el lenguaje de programación
C.Por lo tanto como que C no es un lenguaje portable las aplicaciones JAVA
perderían también automáticamente su portabilidad.
ODBC se ha de instalar manualmente en cada máquina, en
cambio los drivers de JDBC como están escritos en JAVA son automáticamente
instalables, portables y seguros.
Hay que decir también, que existen drivers puente entre
JDBC-ODBC. Estos drivers traducen las llamadas de JDBC a ODBC permitiendo
comunicarse con BD propietarias que no tienen ni idea de que existe JAVA. De
esta manera por ejemplo podemos trabajar con una BD Access de Microsoft que usa
ODBC, con el lenguaje JAVA.
PUENTE JDBC/OBDC
JDBC es la API estándar de acceso a Bases de Datos con Java,
y se incluye con el Kit de Desarrollo de Java (JDK) a partir de la versión 1.1.
Sun optó por crear una nueva API, en lugar de utilizar APIs ya existentes, como
ODBC, con la intención de obviar los problemas que presenta el uso desde Java
de estas APIs, que suelen ser de muy bajo nivel y utilizar características no
soportadas directamente por Java, como punteros, etc. Aunque el nivel de
abstracción al que trabaja JDBC es alto en comparación, por ejemplo, con ODBC,
la intención de Sun es que sea la base de partida para crear librerías de más
alto nivel, en las que incluso el hecho de que se use SQL para acceder a la
información sea invisible.
Para trabajar con JDBC es necesario tener controladores
(drivers) que permitan acceder a las distintas Bases de Datos: cada vez hay más
controladores nativos JDBC. Sin embargo, ODBC es hoy en día la API más popular
para acceso a Bases de Datos: Sun admite este hecho, por lo que, en
colaboración con Intersolv (uno de principales proveedores de drivers ODBC) ha
diseñado un puente que permite utilizar la API de JDBC en combinación con
controladores ODBC. Un último detalle: algunos fabricantes, como Microsoft,
ofrecen sus propias APIs, en lugar de JDBC, como RDO, etc. Aunque estas APIs
pueden ser muy eficientes, y perfectamente utilizables con Java, su uso
requiere tener muy claras las consecuencias, sobre todo la pérdida de
portabilidad.
JDBC-ODBC bridge plus ODBC driver (tipo 1): este driver fue
desarrollado entre Sun e Intersolv y permite al programador acceder a fuentes
de datos ODBC existentes mediante JDBC. El JDBC-ODBC Bridge (puente JDBC-ODBC) implementa
operaciones JDBC traduciéndolas a operaciones ODBC, se encuentra dentro del
paquete sun.jdbc.odbc (que se encuentra incluido dentro del JDK a
partir de la versión 1.1) y contiene librerías nativas para acceder a ODBC. Se
debe señalar que en cada máquina cliente que utilice el driver es necesaria una
configuración previa, es decir, deberemos definir la fuente de datos utilizando
para ello el gestor de drivers ODBC que los podemos encontrar dentro del Panel
de Control de Windows. Debido a esta configuración en las máquinas clientes,
este tipo de driver no es adecuado para utilizarlo dentro de applets, su
utilización está más encaminada a aplicaciones Java dentro de pequeñas
intranets en las que la instalaciones en los clientes no sean un gran problema
o para aplicaciones Java que pueden actuar de capa intermedia dentro de un
modelo de tres capas, como se veía anteriormente. Además debido a que el puente
JDBC-ODBC contiene parte de código nativo, no es posible utilizarlos dentro de
applets, debido a las restricciones de seguridad de éstos. Desde Javasoft (una
división de Sun) nos sugieren que el uso del puente JDBC-ODBC se limite al
tiempo que tarden en aparecer drivers JDBC de otro tipo para la base de datos a
la que queremos acceder, esta advertencia es debida a que muchos drivers ODBC
no están programados teniendo en cuanta la programación multiproceso
(multithreading), por lo que se pueden producir problemas a la hora de utilizar
el puente JDBC-ODBC.