Chapter 1. Introdução

ODBC e SQL são padrões estabelecidos. O problema é que ODBC não especifica o protocolo de comunicação e não existem drivers para alguns bancos de dados. Você pode usar RPC, TCP/IP, ou memória compartilhada e 'signals' para fazer os pedidos ao cliente ao servidor. Então você tem que usar uma biblioteca ODBC específica a certo banco de cados. Esta biblioteca pode não estar disponível para a CPU ou sistema operacional na qual o cliente está rodando.

SQL não é padronizado suficientemente, de maneira que compatibilidade de código não pode ser garantida para todos os servidores de banco de dados. E para alguns tipos de servidores, SQL não é nem mesmo cogitável (pense em LDAP).

GDA tenta atavar o problema do ODBC e ajudá-lo com o problema do SQL. É um tipo de middleware (ou pode ser expadido para ser uma camada middleware) para acessar diferentes fontes de dados. GDA oferece uma visão bastante abstrata (high level) das fontes de dados e possui locais onde você pode encaixar componentes específicos a certa tarefa (low level) para acessar estes dados.

GNU Data Access (GDA) é definido em um conjunto de interfaces CORBA IDL. O nível de abstração provido pelo GDA torna possível o acesso a qualquer tipo de fonte de dados, desde que um servidor CORBA que implemente estas interfaces IDL e acesse esta fonte de dados seja escrito.

é uma implementação das interfaces CORBA GDA, usando ORBit como implementação CORBA. Isso significa que, em teoria, seria possível implementar para um outro CORBA ORB ou sistema operacional, desde que suporte a COBRA esteja presente nesse sistema.

Este trás uma camada acima das rotinas internas CORBA, trazendo todo o poder nativo da arquitetura CORBA a programadores que não precisam ter conhecimento do mesmo. Este vem com diversas bibliotecas, para ambos clientes e servidores, implementadas em C. Este nível de abstração torna possível a posterior mudança do funcionamento interno sem a necessidade de alteração nas aplicações que utilizam estas bibliotecas, como também mas importantemente, manter desenvolvedores de aplicações longe das contínuas mudanças nas APIs relacionadas a CORBA em uso, como por exemplo OAF, GConf...

Junto com estas bibliotecas (e 'header files' e 'language bindings' para desenvolvimento), traz várias ferramentas e utilitários para ajudá-lo na tarefa de desenvolver aplicações baseadas em , bem como automatizar algumas tarefas relacionadas ao banco de dados.

é implementada para sistemas operacionais tipo Unix (incluindo Linux), e não depende de outras bibliotecas exceto por ORBit, GConf, OAF e Glib, o que o faz um sistema bastante leve, ideal para aplicações que rodarão em sistemas com recursos de hardware limitados. já foi parte do projeto GNOME-DB, na verdade ainda é, mas tem sido separado para que aplicações "não GNOMificadas" sejam desenvolvidas baseadas na mesma.