lunes, 2 de octubre de 2017

¿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.

No hay comentarios:

Publicar un comentario