Partilhar via


DBMS-Based Controladores

Os drivers baseados em SGBD são usados com fontes de dados como Oracle ou SQL Server, que fornecem um motor de base de dados autónomo para o driver utilizar. Estes drivers acedem aos dados físicos através do motor autónomo; ou seja, submetem instruções SQL e recuperam resultados do motor.

Como os drivers baseados em SGBD utilizam um motor de base de dados já existente, normalmente são mais fáceis de escrever do que os drivers baseados em ficheiros. Embora um driver baseado em SGBD possa ser facilmente implementado ao traduzir chamadas ODBC para chamadas API nativas, isso resulta num driver mais lento. Uma forma melhor de implementar um driver baseado em SGBD é usar o protocolo de fluxo de dados subjacente, que é normalmente o que a API nativa faz. Por exemplo, um driver do SQL Server deveria usar TDS (o protocolo de fluxo de dados para SQL Server) em vez da Biblioteca de Base de Dados (a API nativa do SQL Server). Uma exceção a esta regra é quando o ODBC é a API nativa. Por exemplo, o Watcom SQL é um motor autónomo que reside na mesma máquina que a aplicação e é carregado diretamente como driver.

Os drivers baseados em SGBD atuam como cliente numa configuração cliente/servidor, onde a fonte de dados atua como servidor. Na maioria dos casos, o cliente (driver) e o servidor (fonte de dados) residem em máquinas diferentes, embora ambos possam estar na mesma máquina a executar um sistema operativo multitarefa. Uma terceira possibilidade é um gateway, que se situa entre o driver e a fonte de dados. Um gateway é um software que faz com que um SGBD pareça outro. Por exemplo, aplicações escritas para usar SQL Server também podem aceder a dados DB2 através do Micro Decisionware DB2 Gateway; este produto faz com que o DB2 pareça um SQL Server.

A ilustração seguinte mostra três configurações diferentes de drivers baseados em DBMS. Na primeira configuração, o driver e a fonte de dados residem na mesma máquina. No segundo, o driver e a fonte de dados residem em máquinas diferentes. No terceiro, o driver e a fonte de dados localizam-se em máquinas distintas, e um gateway situa-se entre eles numa outra máquina.

Três configurações para drivers baseados em SGBD