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 futuro desenvolvedor.

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



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

Termos de Definição

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).

Como, por exemplo, se você escreveu um programa para Linux, mas queria que eu trabalhasse em (SO) também. Sua resposta seria uma API como ODBC.

No passado, os programas costumavam ser totalmente reescritos para sistemas operacionais novos ou diferentes. O processo foi ineficiente.

ODBC surgiu em 1992 para resolver esse problema.

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

OLE BD é a abreviação de Object Linking and Embedding Database. Este é um grupo de APIs projetados para fornecer acesso ao aplicativodadosem diferentes formatos de arquivo. Isso incluía capacidade SQL (como ODBC) e muitas outras linguagens.

OLE BD foi configurado para suceder ODBC, mas as coisas mudaram ...

ODBC vs. OLEDB

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

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

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

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

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

Suporte Atual

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

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

Os desenvolvedores precisam se adaptar

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

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

As diferenças entre ODBC e OLEDB

Tenha paciência, está prestes apeguemuito técnico. Para facilitar a leitura, incluí as informações em uma tabela.

Esta tabela é baseada nas informações de um white paper técnico daftp.sas.com

ODBC OLEDB
Projetado originalmente para bancos de dados relacionais. (desde mudou) Projetado originalmente para bancos de dados relacionais e não relacionais.
Suporte contínuo para SQL Suporte a SQL nulo 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, fornecemos 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 avisa nos comentários? Nós entendemos algo errado? Existe algo que você poderia adicionar para os novatos lá fora?

Gostaríamos muito de ouvir de você nos comentários.

Glossário

ODBC: conexão de banco de dados aberto

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

SO: sistema operacional (como o Windows)

API: interface de programação de aplicativo

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 (desatualizado - veja acima, OLEDB está perdendo a funcionalidade SQL) white paper: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 do usuário sobre ODBC vs. OLEDB:https://community.qlik.com/thread/106540