ODBC vs OLEDB
Hvis du vet hva de er, er du sannsynligvis en utvikler. Hvis du ikke vet hva de er, men vil vite - er du sannsynligvis en fremtidig utvikler.
På grunn av den tekniske karakteren av denne sammenligningen har jeg tatt med en ordliste i slutten av artikkelen. Hvis du er ny på denne typen ting, vil du kanskje ta et blikk på det først.
La oss ta en titt på disse vilkårene, hva de er vant til og hvilken jeg anbefaler.
Definere vilkår
ODBC Driver Architecture
ODBC er kort for Open Database Connecting. Det er en grensesnittstandard, designet for kommunikasjon mellom forskjellige applikasjoner og operativsystemer (OS).
Som for eksempel, hvis du brukte skrev et program for Linux, men du ville at jeg skulle jobbe i (OS) også. Ditt svar vil være en API som ODBC.
I løpet av dagene pleide programmer å bli re-skrevet helt for nytt eller annet OS. Prosessen var ineffektiv.
ODBC dukket opp i 1992 for å løse det problemet.
ODBC ble opprinnelig opprettet for Structured Query Language (SQL). Den har siden utvidet seg til å håndtere flere programmeringsspråk.
OLE BD er kort for Object Linking og Embedding Database. Dette er en gruppe API'er som er utformet for å gi tilgang til appdata i forskjellige filformater. Dette inkluderte SQL-funksjonalitet (som ODBC), og mange andre språk.
OLE BD ble satt til å lykkes ODBC, men ting endret seg ...
ODBC vs OLEDB
ODBC var i utgangspunktet fokusert på SQL, og hvis du bruker SQL, er det fornuftig å gå med ODBC. Det åpenbare valget pleide å være OLEDB. Men som du vil finne ut senere i artikkelen, ble den siste SQL-utgivelsen for å støtte OLEDB lansert i 2012. Og det faser ut raskt.
Denne endringen i strategi fra Microsoft tok litt av vakt. Mange stædige brukere klamret seg til ODBC i så lang tid, så bevegelsen var fornuftig. Også det var det faktum at ODBC ekspanderte.
Når det gjelder forskjellen mellom disse to, er det veldig vanskelig å si uten å bli veldig teknisk.
Kjernen er de forskjellige API-er for ulike datakilder.
En mening er at ODBC er mer spesifikk og til det punktet, hvor OLEDB er altfor generisk og overkomplisert.
Nåværende støtte
SQLs lansering for 2012 var den siste til å støtte OLEDB. Dette skiller avstemningen til fordel for ODBC.
ODBC har utvidet sin kompatibilitet med bruk av drivere, noe som er en viktig drivende faktor i Microsoft's bytte av strategi.
Utviklere trenger å tilpasse seg
Ovennevnte SQL-utgivelse (denali) kom med syv års støtte til OLEDB. Dette betyr at når jeg skriver dette, har utviklere bare to år igjen for å tilpasse seg.
Alle forstår at det kan være vanskelig å tilpasse seg, men OLEDB-brukere har ikke noe valg veldig snart.
Forskjellene mellom ODBC og OLEDB
Bær med meg, det skal bli veldig teknisk. For enkel lesing har jeg tatt med informasjonen i et bord.
Denne tabellen er basert på informasjon fra et teknisk hvitt papir fra ftp.sas.com
ODBC | OLEDB |
Opprinnelig designet for relasjonsdatabaser. (siden endret) | Opprinnelig designet for ikke-relasjonelle og relasjonsdatabaser. |
Løpende støtte til SQL | SQL-støtte ugyldig 2019 |
Komponentbasert | Prosedyrebaserte |
Sværere å distribuere | Lettere å distribuere |
Det summere oppsummerer det. Jeg håper du får en bedre forståelse av forskjellen mellom ODBC og OLEDB nå. Hvis du ikke har det, har jeg gitt litt videre lesning under, samt en lenke til det ovennevnte tekniske papiret.
Hvis du har erfaring med å bruke disse to API-ene, hvorfor ikke gi oss beskjed i kommentarene? Fikk vi noe galt? Er det noe du kan legge til for nybegynnere der ute?
Vi vil gjerne høre fra deg i kommentarene.
Ordliste
ODBC: Open Database Connecting
OLE DB: Objektkobling og innebygd database
OS: Operativsystem (som Windows)
API: Programmeringsgrensesnitt
Relasjonsdatabase: Et sett med dataelementer sortert i tabeller. Dataelementene kan nås og reassembles uten omorganisering av databasetabellene.
Ikke-relasjonsdatabase: Følger ikke relasjonsstandarden. Også kjent som NoSQL database.
Videre lesning
Link til (utdatert - se ovenfor, OLEDB mister SQL-funksjonalitet) hvitt papir: http://ftp.sas.com/techsup/download/v8papers/odbcdb.pdf
Relasjons vs ikke-relasjonell database: https://www.mongodb.com/scale/relational-vs-non-relational-database
Bruker meninger på ODBC vs OLEDB: https://community.qlik.com/thread/106540