Drivers baseados em DBMS

Os drivers baseados em DBMS são usados com fontes de dados, como Oracle ou SQL Server, que fornecem um mecanismo de banco de dados autônomo para o driver usar. Esses drivers acessam os dados físicos por meio do mecanismo autônomo, ou seja, eles enviam instruções SQL para o mecanismo e recuperam os resultados dele.

Como os drivers baseados em DBMS usam um mecanismo de banco de dados existente, eles geralmente são mais fáceis de escrever do que os drivers baseados em arquivos. Embora um driver baseado em DBMS possa ser facilmente implementado convertendo as chamadas ODBC para chamadas de API nativas, isso resulta em um driver mais lento. Uma maneira melhor de implementar um driver baseado em DBMS é usar o protocolo de fluxo de dados subjacente, que geralmente é o que a API nativa faz. Por exemplo, um driver do SQL Server deve usar o TDS (o protocolo de fluxo de dados do SQL Server) em vez da DB Library (a API nativa do SQL Server). Uma exceção a essa regra é quando o ODBC é a API nativa. Por exemplo, o Watcom SQL é um mecanismo autônomo que reside na mesma máquina que o aplicativo e é carregado diretamente como o driver.

Os drivers baseados em DBMS atuam como o cliente em uma configuração cliente/servidor em que a fonte de dados atua como o servidor. Na maioria dos casos, o cliente (driver) e o servidor (fonte de dados) residem em máquinas diferentes, embora ambos possam residir na mesma máquina que executa um sistema operacional multitarefa. Uma terceira possibilidade é um gateway, que fica entre o driver e a fonte de dados. Um gateway é um software que faz com que um DBMS se pareça com outro. Por exemplo, os aplicativos criados para usar o SQL Server também podem acessar os dados do DB2 por meio do Micro Decisionware DB2 Gateway; esse produto faz com que o DB2 se pareça com o SQL Server.

A ilustração a seguir mostra três configurações diferentes de drivers baseados em DBMS. Na primeira configuração, o driver e a fonte de dados residem no mesmo computador. No segundo, o driver e a fonte de dados residem em máquinas diferentes. No terceiro, o driver e a fonte de dados residem em máquinas diferentes e um gateway fica entre eles, residindo em outra máquina.

Three configurations for DBMS-based drivers