ODBC vs OLEDB
Om du vet vad de är, är du förmodligen en utvecklare. Om du inte vet vad de är, men vill veta, är du förmodligen en framtida utvecklare.
På grund av den tekniska karaktären av denna jämförelse har jag tagit med en ordlistor i slutet av artikeln. Om du är ny på denna typ av sak kanske du vill ta en titt på det först.
Låt oss ta en titt på dessa villkor, vad de är vana vid och vilken jag rekommenderar.
Definiera villkor
ODBC Driver Architecture
ODBC är kort för Open Database Connecting. Det är en gränssnittsstandard, avsedd för kommunikation mellan olika appar och operativsystem (OS).
Som till exempel, om du använde skrivet ett program för Linux, men du ville att jag skulle jobba i (OS). Ditt svar skulle vara ett API som ODBC.
Idag har programmen blivit omskrivna helt för nya eller olika operativsystem. Processen var ineffektiv.
ODBC dök upp i 1992 för att lösa det problemet.
ODBC skapades ursprungligen för Structured Query Language (SQL). Sedan dess har den utvidgats för att hantera flera programmeringsspråk.
OLE BD är kort för Object Linking och Embedding Database. Det här är en grupp API som är utformad för att ge tillgång till appdata i olika filformat. Detta inkluderade SQL-kapacitet (som ODBC) och många andra språk.
OLE BD sattes för att lyckas ODBC, men saker ändrade ...
ODBC vs OLEDB
ODBC var inledningsvis inriktad på SQL och, om du använder SQL, är det meningsfullt att gå med ODBC. Det uppenbara valet var OLEDB. Men som du får reda på senare i artikeln lanserades den senaste SQL-utgåvan för att stödja OLEDB under 2012. Och det avvecklas snabbt.
Denna förändring av strategin från Microsoft tog lite av vakt. Många envisa användare klungde till ODBC så länge, så rörelsen var förnuftig. Det fanns också det faktum att ODBC expanderades.
När det gäller skillnaden mellan dessa två är det mycket svårt att säga utan att bli mycket teknisk.
Kärnan är de olika API-skivor för olika datakällor.
En uppfattning är att ODBC är mer specifik och till den punkt där OLEDB är alltför generisk och överkomplicerad.
Nuvarande support
SQL: s lansering för 2012 var den sista som stödde OLEDB. Detta skingrar omröstningen till ODBC.
ODBC har utökat sin kompatibilitet med användningen av drivrutiner, vilket är en viktig drivkraft i förändringen av strategin från Microsoft.
Utvecklare behöver anpassa sig
Ovan nämnda SQL-release (denali) kom med sju års stöd till OLEDB. Det betyder att när jag skriver detta har utvecklare bara två år kvar att anpassa sig.
Alla förstår att det kan vara svårt att anpassa sig, men OLEDB-användare kommer snart inte ha något val.
Skillnaderna mellan ODBC och OLEDB
Bär med mig, det är på väg att bli väldigt tekniskt. För att underlätta läsningen har jag inneburit informationen i en tabell.
Denna tabell är baserad på information från ett tekniskt vitt papper från ftp.sas.com
ODBC | OLEDB |
Ursprungligen designad för relationsdatabaser. (sedan ändrat) | Ursprungligen utformad för icke-relationella och relationella databaser. |
Ständigt stöd för SQL | SQL-stöd tomt 2019 |
Komponentbaserad | Procedurbaserad |
Svårare att distribuera | Lättare att distribuera |
Det summerar bara det. Jag hoppas att du förstår skillnaden mellan ODBC och OLEDB nu. Om du inte har det, har jag lagt fram ytterligare läsning nedan, samt en länk till det ovannämnda tekniska dokumentet.
Om du har erfarenhet av att använda dessa två API: er, varför inte meddela oss i kommentarerna? Fick vi något fel? Finns det något du kan lägga till för nybörjare där ute?
Vi skulle gärna höra från dig i kommentarerna.
Ordlista
ODBC: Öppna databasanslutning
OLE DB: Objektlänkning och inbäddad databas
OS: Operativsystem (som Windows)
API: Application Programming Interface
Relationsdatabas: En uppsättning dataobjekt sorterade i tabeller. Datapunkterna kan nås och återmonteras utan att omorganisera databastabellerna.
Icke-relationell databas: följer inte relationsstandarden. Även känd som NoSQL-databas.
Vidare läsning
Länk till (föråldrad - se ovan, OLEDB förlorar SQL-funktionalitet) vitt papper: http://ftp.sas.com/techsup/download/v8papers/odbcdb.pdf
Relativ vs icke-relationell databas: https://www.mongodb.com/scale/relational-vs-non-relational-database
Användarnas åsikter på ODBC vs OLEDB: https://community.qlik.com/thread/106540