ODBC y SQL estandares de hecho. Los problemas son que, ODBC no especifica un protocolo de conexión y no hay controladores ODBC para algunas Bases de Datos. Usted debe usar RPC, TCP/IP, o memoria compartida y se¤ales para pasar la consulta desde el cliente al servidor. Así que usted tiene que usar la biblioteca ODBC específica para su Base de Datos. Y esta biblioteca puede no estar disponible para la CPU o el Sistema Operativo en el que el cliente se está ejecutando.
SQL no está lo suficientemente estandarizado, así que no se asegura la compatibilidad con todas las Bases de Datos. Y SQL no se adapta a otro tipo de servidores (piense por ejemplo en LDAP).
GDA intenta solucionar los problemas del ODBC y ayudarle con los del SQL. Es una especie de capa intermedia para acceder a diferentes fuentes de datos. Ofrece una vista a alto nivel de las fuentes de datos y en algunas partes permite actuar a bajo nivel para aquellas tareas específicas de la base de datos.
GNU Data Access (GDA) se define como un conjunto de interfaces CORBA IDL. El nivel de abstracción que da la GDA hace posible acceder a diferentes tipos de fuentes de datos, mediante el servidor de CORBA implementando estos interfaces IDL y acceder a una fuente de datos dada.
libgda es una implementación de los interfaces GDA CORBA utilizando ORBit como implementación de CORBA. De todas maneras, en teoría, sería posible implementar libgda en otro CORBA ORB o sistema operativo, dando así soporte al CORBA que tenga ese sistema.
Así se ofrece un interfaz sobre las tecnologías de CORBA, que hacen más fácil a los programadores el uso de todo el poder que nos da CORBA sin saber cómo funciona internamente. Viene con varias librerías, tanto para clientes como para servidores, como una implementación en C de este interfaz. Este nivel de abstracción permitiría, en un tiempo record, cambiar todos aquellos componentes internos ( el sistema de gestión de bases de datos) sin necesidad de cambiar las aplicaciones cliente que utilicen estas bibliotecas, y también, lo más importante, mantener a los desarrolladores de la aplicación al margen de los contínuos cambios en las diferentes APIs relacionadas con CORBA que se estén utilizando, como OAF, GConf, etc.
En estas bibliotecas ( y en los ficheros de cabecera y en los enlaces con otros lenguajes que se pueden utilizar para el desarrollo), libgda incluye varias herramientas y utilidades con el fin de ayudarle en la tarea de desarrollar aplicaciones basadas en libgda, así como en la automatización de tareas relacionadas con bases de datos.
libgda se ha implementado para los sistemas operativos del tipo UNIX (incluendo por supuesto Linux), y depende de las bibliotecas: ORBit, GConf, OAF y Glib, que dan un sistema muy ligero, incluso ideal para aquellas aplicaciones que se tienen que ejecutar en sistemas limitados en prestaciones. Es parte también del proyecto GNOME-DB, y todavía se usa como base se él, pero se está separando para eliminar todas aquellas dependencias de GNOME para permitir el desarrollo de aplicaciones basadas en GNOME-DB para otros entornos que no sean GNOME.