¿Qué es ODBC?

Existen muchos conceptos erróneos sobre ODBC en el mundo informático. Para el usuario final, es un icono en el Panel de control de Microsoft Windows. Para el programador de aplicaciones, es una biblioteca que contiene rutinas de acceso a datos. Para muchos otros, es la respuesta a todos los problemas de acceso a la base de datos jamás imaginados.

Principalmente, ODBC es una especificación para una API de base de datos. Esta API es independiente de cualquier DBMS o sistema operativo; aunque este manual usa C, la API ODBC es independiente del lenguaje. La API ODBC se basa en las especificaciones de la CLI de Open Group e ISO/IEC. ODBC 3.x implementa completamente estas especificaciones: las versiones anteriores de ODBC se basaban en versiones preliminares de estas especificaciones, pero no las implementaban completamente, y agrega características que normalmente necesitaban los desarrolladores de aplicaciones de base de datos basadas en pantalla, como cursores desplazables.

Los desarrolladores de controladores específicos de DBMS implementan las funciones de la API ODBC. Las aplicaciones llaman a las funciones de estos controladores para acceder a los datos de forma independiente de DBMS. Un Administrador de controladores administra la comunicación entre aplicaciones y controladores.

Aunque Microsoft proporciona un administrador de controladores para equipos que ejecutan Microsoft Windows 95 y versiones posteriores, ha escrito varios controladores ODBC y llama a funciones ODBC desde algunas de sus aplicaciones, cualquier persona puede escribir aplicaciones y controladores ODBC. De hecho, la gran mayoría de las aplicaciones y controladores ODBC disponibles actualmente están escritos por empresas distintas de Microsoft. Además, existen controladores y aplicaciones ODBC en MacOS y en una variedad de plataformas UNIX.

Para ayudar a los desarrolladores de aplicaciones y controladores, Microsoft ofrece un Kit de desarrollo de software ODBC (SDK) para equipos que ejecutan Windows 95 y versiones posteriores que proporciona el administrador de controladores, el archivo DLL del instalador, las herramientas de prueba y las aplicaciones de ejemplo. Microsoft se ha asociado con Visigenic Software para migrar estos SDK a Macintosh y una variedad de plataformas UNIX.

Es importante comprender que ODBC está diseñado para exponer funcionalidades de base de datos, no complementarlas. Por lo tanto, los escritores de aplicaciones no deben esperar que el uso de ODBC transforme repentinamente una base de datos simple en un motor de base de datos relacional completo. Tampoco se espera que los escritores de controladores implementen la funcionalidad que no se encuentra en la base de datos subyacente. Una excepción es que los desarrolladores que escriben controladores que acceden directamente a los datos de archivo (como los datos de un archivo Xbase) deben escribir un motor de base de datos que admita al menos una funcionalidad mínima de SQL. Otra excepción es que el componente ODBC del SDK de Windows, anteriormente incluido en el SDK de Componentes de Microsoft Data Access (MDAC), proporciona una biblioteca de cursores que simula cursores desplazables para controladores que implementan un determinado nivel de funcionalidad.

Las aplicaciones que usan ODBC son responsables de cualquier funcionalidad entre bases de datos. Por ejemplo, ODBC no es un motor de combinación heterogénea ni es un procesador de transacciones distribuidas. Sin embargo, dado que es independiente de DBMS, se puede usar para crear estas herramientas entre bases de datos.