Diferencia entre OLEDB y ODBC

ODBC vs OLEDB

Si sabes lo que son, probablemente eres un desarrollador. Si no sabe qué son, pero quiere saber, probablemente sea un futuro desarrollador..

Debido a la naturaleza técnica de esta comparación, he incluido un glosario de términos al final del artículo. Si eres nuevo en este tipo de cosas, es posible que desees echar un vistazo a eso primero.

Echemos un vistazo a estos términos, para qué se usan y cuál recomiendo..

Definiendo terminos

Arquitectura del controlador ODBC

ODBC es la abreviatura de Open Database Connecting. Es un estándar de interfaz, diseñado para la comunicación entre diferentes aplicaciones y sistemas operativos (OS).

Como, por ejemplo, si usaste un programa para Linux, pero querías que yo también trabajara (SO). Tu respuesta sería una API como ODBC..

En días pasados, los programas solían reescribirse completamente para sistemas operativos nuevos o diferentes. El proceso fue ineficiente..

ODBC apareció en 1992 para resolver ese problema.

ODBC se creó originalmente para el lenguaje de consulta estructurado (SQL). Desde entonces se ha expandido para manejar más lenguajes de programación..

OLE BD es la abreviatura de Object Linking and Embedding Database. Este es un grupo de API diseñado para proporcionar acceso a los datos de la aplicación en diferentes formatos de archivo. Esto incluía la capacidad SQL (como ODBC) y muchos otros lenguajes.

OLE BD se configuró para tener éxito ODBC, pero las cosas cambiaron ...

ODBC contra OLEDB

ODBC se centró inicialmente en SQL y, si está utilizando SQL, tiene sentido ir con ODBC. La elección obvia solía ser OLEDB. Pero como verás más adelante en el artículo, la última versión de SQL compatible con OLEDB se lanzó en 2012. Y se está eliminando rápidamente..

Este cambio de estrategia por parte de Microsoft tomó algo por sorpresa. Muchos usuarios obstinados se aferraron a ODBC durante tanto tiempo, por lo que el movimiento tuvo sentido. También estaba el hecho de que ODBC se estaba expandiendo.

En cuanto a la diferencia entre estos dos, es muy difícil de decir sin ser muy técnico.

En el núcleo son diferentes API para diferentes fuentes de datos.

Una opinión es que ODBC es más específico y al punto, donde OLEDB es demasiado genérico y complicado..

Soporte actual

El lanzamiento de SQL en 2012 fue el último en soportar OLEDB. Esto sesga el voto a favor de ODBC.

ODBC ha ampliado su compatibilidad con el uso de controladores, que es un factor importante en el cambio de estrategia de Microsoft..

Los desarrolladores necesitan adaptarse

La mencionada versión de SQL (denali) vino con siete años de soporte para OLEDB. Esto significa que mientras escribo esto, a los desarrolladores les quedan solo dos años para adaptarse..

Todos entienden que puede ser difícil adaptarse, pero los usuarios de OLEDB no tendrán otra opción muy pronto.

Las diferencias entre ODBC y OLEDB

Tengan paciencia, está a punto de ponerse muy técnico. Para facilitar la lectura he contenido la información en una tabla..

Esta tabla se basa en información de un documento técnico técnico de ftp.sas.com

ODBC OLEDB
Originalmente diseñado para bases de datos relacionales. (desde que cambió) Diseñado originalmente para bases de datos no relacionales y relacionales.
Soporte continuo para SQL Soporte de SQL nulo 2019
Basado en componentes Basado en procedimientos
Más difícil de implementar Más fácil de implementar

Eso lo resume todo. Espero que ahora entiendas mejor la diferencia entre ODBC y OLEDB. Si no lo hace, le proporcioné más información a continuación, así como un enlace al documento técnico mencionado anteriormente..

Si tiene experiencia en el uso de estas dos API, ¿por qué no nos lo hace saber en los comentarios? ¿Nos equivocamos en algo? ¿Hay algo que podrías agregar para los novatos??

Nos encantaría saber de usted en los comentarios..

Glosario

ODBC: Conectar la base de datos abierta

OLE DB: Base de datos de vinculación e incrustación de objetos

OS: Sistema operativo (como ventanas)

API: interfaz de programación de aplicaciones

Base de datos relacional: un conjunto de elementos de datos ordenados en tablas. Se puede acceder a los elementos de datos y volver a ensamblarlos sin reorganizar las tablas de la base de datos.

Base de datos no relacional: No sigue el estándar relacional. También conocida como base de datos NoSQL.

Otras lecturas

Enlace a (obsoleto - ver más arriba, OLEDB está perdiendo la funcionalidad de SQL) documento técnico: http://ftp.sas.com/techsup/download/v8papers/odbcdb.pdf

Base de datos relacional frente a no relacional: https://www.mongodb.com/scale/relational-vs-non-relational-database

Opiniones de usuarios sobre ODBC vs. OLEDB: https://community.qlik.com/thread/106540