Diferencia entre OLEDB y ODBC
ODBC frente a OLEDB
Si sabe cuáles son, probablemente sea un desarrollador. Si no sabe qué son, pero quiere averiguarlo, 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, tal vez quieras echarle un vistazo primero.
Veamos estos términos, dónde se usan y cuál recomiendo.
Definición de términos
ODBC es la abreviatura de Conectividad abierta de bases de datos. Es un estándar de interfaz, diseñado para la comunicación entre diferentes aplicaciones y sistemas operativos (SO).
Como, por ejemplo, si solías escribir un programa para Linux, pero querías que yo (SO) trabajara también. Su respuesta sería una API como ODBC.
En el pasado, los programas solían reescribirse por completo para un sistema operativo nuevo o diferente. El proceso fue ineficaz.
ODBC surgió en 1992 para resolver ese problema.
ODBC se creó originalmente para el lenguaje de consulta estructurado (SQL). Desde entonces, se ha ampliado para manejar más lenguajes de programación.
OLE BD es la abreviatura de Object Linked and Embedded Database. Este es un grupo de API diseñadas para brindar acceso a los datos de la aplicación en varios formatos de archivo. Esto incluía la capacidad de SQL (como ODBC) y muchos otros lenguajes.
OLE BD estaba configurado para suceder a ODBC, pero las cosas cambiaron…
ODBC frente a OLEDB
ODBC originalmente estaba destinado a SQL y, si usa SQL, tiene sentido optar por ODBC. La elección obvia utilizada fue OLEDB. Pero como descubrirá 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 de Microsoft tomó a algunos desprevenidos. Muchos usuarios testarudos se quedaron con ODBC durante tanto tiempo, por lo que el movimiento tenía sentido. También estaba el hecho de que ODBC se estaba expandiendo.
En cuanto a la diferencia entre los dos, es muy difícil de decir sin ser demasiado técnico.
En esencia, son diferentes API para diferentes fuentes de datos.
Una opinión es que ODBC es más específico y va al grano, donde OLEDB es demasiado genérico y demasiado complejo.
Soporte actual
SQL 2012 fue la última versión compatible con OLEDB. Esto sesga el voto a favor de ODBC.
ODBC ha ampliado su compatibilidad con el uso de controladores, que es un factor clave en el cambio de estrategia de Microsoft.
Los desarrolladores deben adaptarse
La versión de SQL antes mencionada (denali) vino con siete años de soporte para OLEDB. Esto significa que, mientras escribo esto, a los desarrolladores solo les quedan dos años para adaptarse.
Todos entienden que puede ser difícil adaptarse, pero los usuarios de OLEDB pronto no tendrán otra opción.
Las diferencias entre ODBC y OLEDB
Ten paciencia conmigo, está a punto de volverse muy técnico. Para leerlo tengo la información en una tabla.
Esta tabla se basa en la información de un informe técnico de ftp.sas.com
ODBC | OLE DB |
Originalmente fue diseñado para bases de datos relacionales. (desde que cambió) | Originalmente fue diseñado para bases de datos relacionales y no 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 equivale a un resumen. Espero que ahora comprenda mejor la diferencia entre ODBC y OLEDB. Si no es así, he proporcionado 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 dice en los comentarios? ¿Nos equivocamos en algo? ¿Hay algo que podrías agregar para los novatos?
Nos encantaría saber de ti en los comentarios.
Glosario
ODBC: conexión de base de datos abierta
OLE DB: vinculación de bases de datos e incrustación de objetos
SO: Sistema operativo (como Windows)
API: interfaz de programación de aplicaciones
Base de datos relacional: una serie de elementos de datos organizados 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 al documento técnico (obsoleto; consulte más arriba, OLEDB está perdiendo la funcionalidad de SQL): http://ftp.sas.com/techsup/download/v8papers/odbcdb.pdf
Base de datos relacional vs. https://www.mongodb.com/scale/relational-vs-non-relational-database
Opiniones de usuarios sobre ODBC vs. OLE DB: https://community.qlik.com/thread/106540