Diferença entre OLEDB e ODBC

ODBC vs OLEDB

Se você sabe o que são, provavelmente é um desenvolvedor. Se você não sabe o que são, mas quer saber - você provavelmente é um desenvolvedor futuro.

Devido à natureza técnica dessa comparação, incluí um glossário de termos no final do artigo. Se você é novo nesse tipo de coisa, dê uma olhada nesse primeiro.

Vamos dar uma olhada nesses termos, para que são usados ​​e qual eu recomendo.

Definindo termos

Arquitetura do driver ODBC

ODBC é a abreviação de Open Database Connecting. É um padrão de interface, projetado para comunicação entre diferentes aplicativos e sistemas operacionais (SO).

Por exemplo, se você costumava escrever um programa para Linux, mas também queria que eu trabalhasse no (OS). Sua resposta seria uma API como ODBC.

Nos dias passados, os programas costumavam ser reescritos inteiramente para sistemas operacionais novos ou diferentes. O processo foi ineficiente.

ODBC apareceu em 1992 para resolver esse problema.

O ODBC foi originalmente criado para o Structured Query Language (SQL). Desde então, foi expandido para lidar com mais linguagens de programação.

OLE BD é a abreviação de Vincular e Incorporar Banco de Dados a Objetos. Este é um grupo de APIs projetadas para fornecer acesso aos dados do aplicativo em diferentes formatos de arquivo. Isso incluía capacidade SQL (como ODBC) e muitas outras linguagens.

OLE BD foi definido para suceder ODBC, mas as coisas mudaram…

ODBC vs. OLEDB

O ODBC foi inicialmente focado no SQL e, se você estiver usando o SQL, faz sentido usar o ODBC. A escolha óbvia costumava ser OLEDB. Mas, como você descobrirá mais adiante neste artigo, a última versão do SQL para suportar o OLEDB foi lançada em 2012. E está saindo rapidamente.

Essa mudança de estratégia da Microsoft pegou de surpresa. Muitos usuários teimosos se apegaram ao ODBC por tanto tempo, então a mudança fez sentido. Também havia o fato de o ODBC estar expandindo.

Quanto à diferença entre esses dois, é muito difícil dizer sem ser muito técnico.

No núcleo, são APIs diferentes para diferentes fontes de dados.

Uma opinião é que o ODBC é mais específico e direto ao ponto, onde o OLEDB é excessivamente genérico e complicado demais.

Suporte atual

O lançamento do SQL em 2012 foi o último a oferecer suporte ao OLEDB. Isso distorce o voto a favor do ODBC.

O ODBC expandiu sua compatibilidade com o uso de drivers, que é um fator importante na mudança de estratégia da Microsoft.

Os desenvolvedores precisam se adaptar

A versão SQL acima mencionada (denali) veio com sete anos de suporte ao OLEDB. Isso significa que, enquanto escrevo isso, os desenvolvedores têm apenas dois anos para se adaptar.

Todo mundo entende que pode ser difícil de se adaptar, mas os usuários de OLEDB não terão escolha em breve.

As diferenças entre ODBC e OLEDB

Fique comigo, está prestes a ficar muito técnico. Para facilitar a leitura, eu conti as informações em uma tabela.

Esta tabela é baseada em informações de um informe técnico de ftp.sas.com

ODBC OLEDB
Originalmente projetado para bancos de dados relacionais. (desde que alterado) Originalmente projetado para bancos de dados não relacionais e relacionais.
Suporte contínuo para SQL Suporte SQL void 2019
Baseado em componentes Baseado em procedimentos
Mais difícil de implantar Mais fácil de implantar

Isso resume tudo. Espero que você tenha uma melhor compreensão da diferença entre ODBC e OLEDB agora. Caso contrário, forneci algumas leituras adicionais abaixo, bem como um link para o artigo técnico mencionado acima.

Se você tem experiência no uso dessas duas APIs, por que não nos informar nos comentários? Nós entendemos algo errado? Existe algo que você poderia adicionar para os novatos por aí?

Gostaríamos muito de ouvir sua opinião nos comentários.

Glossário

ODBC: Conexão de banco de dados aberto

Banco de dados OLE: banco de dados de vinculação e incorporação de objetos

SO: Sistema operacional (como o Windows)

API: Interface de programação de aplicativos

Banco de dados relacional: um conjunto de itens de dados classificados em tabelas. Os itens de dados podem ser acessados ​​e remontados sem reorganizar as tabelas do banco de dados.

Banco de dados não relacional: não segue o padrão relacional. Também conhecido como banco de dados NoSQL.

Leitura adicional

Link para o white paper (desatualizado - veja acima, o OLEDB está perdendo a funcionalidade SQL): http://ftp.sas.com/techsup/download/v8papers/odbcdb.pdf

Banco de dados relacional vs. não relacional: https://www.mongodb.com/scale/relational-vs-non-relational-database

Opiniões de usuários sobre ODBC vs. OLEDB: https://community.qlik.com/thread/106540