Differenza tra OLEDB e ODBC

ODBC vs OLEDB

Se sai cosa sono, probabilmente sei uno sviluppatore. Se non sai cosa sono, ma vuoi sapere - probabilmente sei un futuro sviluppatore.

A causa della natura tecnica di questo confronto, ho incluso un glossario di termini alla fine dell'articolo. Se sei nuovo a questo genere di cose, puoi prima dare un'occhiata a questo.

Diamo un'occhiata a questi termini, per cosa sono utilizzati e quale raccomando.

Definizione dei termini

Architettura driver ODBC

ODBC è l'abbreviazione di Open Database Connecting. È uno standard di interfaccia, progettato per la comunicazione tra diverse app e sistemi operativi (SO).

Come, ad esempio, se hai usato un programma scritto per Linux, ma volevi che io lavorassi anche in (OS). La tua risposta sarebbe una API come ODBC.

In passato, i programmi venivano riscritti interamente per sistemi operativi nuovi o diversi. Il processo era inefficiente.

ODBC è apparso nel 1992 per risolvere questo problema.

ODBC è stato originariamente creato per Structured Query Language (SQL). Da allora si è espanso per gestire più linguaggi di programmazione.

OLE BD è l'abbreviazione di Object Linking and Embedding Database. Questo è un gruppo di API progettato per fornire accesso ai dati delle app in diversi formati di file. Questo includeva funzionalità SQL (come ODBC) e molti altri linguaggi.

OLE BD era impostato per avere successo con ODBC, ma le cose sono cambiate ...

ODBC vs OLEDB

Inizialmente, ODBC si concentrava su SQL e, se stai usando SQL, ha senso andare con ODBC. L'ovvia scelta era OLEDB. Ma come scoprirai più avanti nell'articolo, l'ultima versione SQL a supporto di OLEDB è stata lanciata nel 2012. E sta scomparendo velocemente.

Questo cambio di strategia da parte di Microsoft ha preso un po 'alla sprovvista. Molti utenti testardi si sono aggrappati a ODBC per così tanto tempo, quindi la mossa aveva senso. Inoltre, c'era il fatto che ODBC si stava espandendo.

Per quanto riguarda la differenza tra questi due, è molto difficile dire senza diventare molto tecnici.

Al centro sono diverse API per diverse fonti di dati.

Un parere è che ODBC è più specifico e al punto, dove OLEDB è eccessivamente generico e troppo complicato.

Supporto attuale

Il lancio di SQL nel 2012 è stato l'ultimo a supportare OLEDB. Ciò rende il voto a favore di ODBC.

ODBC ha ampliato la sua compatibilità con l'uso dei driver, che è un importante fattore trainante nel cambio di strategia da parte di Microsoft.

Gli sviluppatori devono adattarsi

La versione SQL summenzionata (denali) è arrivata con sette anni di supporto per OLEDB. Ciò significa che mentre scrivo questo, gli sviluppatori hanno solo due anni per adattarsi.

Tutti capiscono che può essere difficile adattarsi, ma gli utenti OLEDB non avranno scelta molto presto.

Le differenze tra ODBC e OLEDB

Abbi pazienza, sta per diventare molto tecnico. Per facilità di lettura ho contenuto le informazioni in una tabella.

Questa tabella si basa sulle informazioni fornite da un white paper tecnico da ftp.sas.com

ODBC OLE DB
Originariamente progettato per database relazionali. (da quando è cambiato) Originariamente progettato per database non relazionali e relazionali.
Supporto continuo per SQL Supporto SQL vuoto 2019
Component based- Procedurale-based
Più difficile da implementare Più facile da implementare

Questo quasi riassume. Spero che tu abbia una migliore comprensione della differenza tra ODBC e OLEDB ora. Se non lo fai, ho fornito qualche ulteriore lettura qui sotto, oltre a un link al documento tecnico sopra menzionato.

Se hai esperienza nell'uso di queste due API, perché non farcelo sapere nei commenti? Abbiamo sbagliato qualcosa? C'è qualcosa che potresti aggiungere per i neofiti là fuori?

Ci piacerebbe sentirti nei commenti.

Glossario

ODBC: Apri connessione al database

OLE DB: Database di collegamento e incorporamento di oggetti

Sistema operativo: sistema operativo (come Windows)

API: interfaccia di programmazione dell'applicazione

Database relazionale: un set di elementi di dati ordinati in tabelle. Gli elementi di dati sono accessibili e riassemblati senza riorganizzare le tabelle del database.

Database non relazionale: non segue lo standard relazionale. Conosciuto anche come database NoSQL.

Ulteriori letture

Link a (obsoleto - vedi sopra, OLEDB sta perdendo la funzionalità SQL) white paper: http://ftp.sas.com/techsup/download/v8papers/odbcdb.pdf

Database relazionale vs. Non relazionale: https://www.mongodb.com/scale/relational-vs-non-relational-database

Opinioni degli utenti su ODBC vs OLEDB: https://community.qlik.com/thread/106540