Por que o ODBC foi criado?

Historicamente, as empresas usavam um único DBMS. Todo o acesso ao banco de dados era feito por meio do front-end desse sistema ou por meio de aplicativos escritos para funcionar exclusivamente com o sistema. No entanto, à medida que o uso de computadores cresceu e mais hardware e software se tornaram disponíveis, as empresas começaram a adquirir diferentes DBMSs. Os motivos eram muitos: as pessoas compravam o que era mais barato, o que era mais rápido, o que já conheciam, o que havia de mais recente no mercado e o que funcionava melhor para um único aplicativo. Outros motivos foram reorganizações e fusões, em que departamentos que antes tinham um único DBMS passaram a ter vários.

A questão tornou-se ainda mais complexa com o advento dos computadores pessoais. Esses computadores trouxeram uma série de ferramentas para consultar, analisar e exibir dados, juntamente com uma série de bancos de dados baratos e fáceis de usar. Desde então, uma única empresa muitas vezes tinha dados espalhados por uma infinidade de desktops, servidores e minicomputadores, armazenados em uma variedade de bancos de dados incompatíveis e acessados por grande número de ferramentas diferentes, poucas das quais conseguiam obter todos os dados.

O desafio final veio com o advento da computação cliente/servidor, que busca fazer o uso mais eficiente dos recursos do computador. Computadores pessoais baratos (os clientes) ficam na área de trabalho e fornecem um front-end gráfico para os dados e uma série de ferramentas baratas, como planilhas, programas de gráficos e construtores de relatórios. Minicomputadores e computadores mainframe (os servidores) hospedam os DBMSs, em que podem usar seu poder computacional e localização central para fornecer acesso rápido e coordenado aos dados. Como então o software front-end seria conectado aos bancos de dados back-end?

Um problema semelhante foi enfrentado pelos ISVs (fornecedores independentes de software). Os fornecedores que escreviam software de banco de dados para minicomputadores e mainframes geralmente eram forçados a escrever uma versão de um aplicativo para cada DBMS ou escrever código específico do DBMS para cada DBMS que desejassem acessar. Os fornecedores que escreviam software para computadores pessoais tinham que escrever rotinas de acesso a dados para cada DBMS diferente com o qual queriam trabalhar. Isso muitas vezes significava que enorme quantidade de recursos era gasta escrevendo e mantendo rotinas de acesso a dados, em vez de aplicativos, e os aplicativos muitas vezes eram vendidos não por sua qualidade, mas pela capacidade de acessar dados em determinado DBMS.

Ambos os grupos de desenvolvedores precisavam de uma forma de acessar dados em diferentes DBMSs. O grupo de mainframes e minicomputadores precisava de uma maneira de mesclar dados de diferentes DBMSs em um único aplicativo, enquanto o grupo de computadores pessoais precisava dessa capacidade, bem como de uma maneira de escrever um único aplicativo que fosse independente de qualquer DBMS. Em suma, ambos os grupos precisavam de uma forma interoperável de aceder aos dados; eles precisavam de conectividade de banco de dados aberta.