ODBC versus OLEDB
Als je weet wat ze zijn, ben je waarschijnlijk een ontwikkelaar. Als je niet weet wat ze zijn, maar het wilt weten, ben je waarschijnlijk een toekomstige ontwikkelaar.
Vanwege de technische aard van deze vergelijking heb ik aan het eind van het artikel een verklarende woordenlijst toegevoegd. Als je zoiets nieuws bent, wil je daar misschien eerst eens naar kijken.
Laten we eens kijken naar deze voorwaarden, waar ze voor zijn gebruikt en welke ik aanbeveel.
Voorwaarden definiëren
ODBC-stuurprogrammaarchitectuur
ODBC is een afkorting voor Open Database Connecting. Het is een interfacestandaard die is ontworpen voor communicatie tussen verschillende apps en besturingssystemen (OS).
Bijvoorbeeld, als je een programma voor Linux hebt geschreven, maar je wilde dat ik ook in (OS) werkte. Uw antwoord zou een API zoals ODBC zijn.
Vroeger werden programma's opnieuw volledig herschreven voor nieuwe of andere besturingssystemen. Het proces was inefficiënt.
ODBC verscheen in 1992 om dat probleem op te lossen.
ODBC is oorspronkelijk gemaakt voor Structured Query Language (SQL). Het is sindsdien uitgebreid om meer programmeertalen aan te kunnen.
OLE BD is een afkorting voor Object Linking and Embedding Database. Dit is een groep API's die is ontworpen om toegang te bieden tot app-gegevens in verschillende bestandsindelingen. Dit omvatte SQL-mogelijkheden (zoals ODBC) en vele andere talen.
OLE BD is ingesteld om te slagen in ODBC, maar er is iets veranderd ...
ODBC versus OLEDB
ODBC was aanvankelijk gericht op SQL en als u SQL gebruikt, is het logisch om met ODBC te werken. De voor de hand liggende keuze was OLEDB. Maar zoals u later in het artikel zult lezen, is de laatste SQL-release ter ondersteuning van de OLEDB in 2012 gelanceerd. En hij wordt snel afgebouwd.
Deze wijziging in de strategie van Microsoft heeft er een beetje tegen opgekeken. Veel koppige gebruikers klampten zich zo lang aan ODBC vast, dus de zet was logisch. Ook was er het feit dat ODBC aan het uitbreiden was.
Wat het verschil tussen deze twee betreft, het is heel moeilijk om te zeggen zonder erg technisch te worden.
In de kern zijn het verschillende API's voor verschillende gegevensbronnen.
Een mening is dat ODBC specifieker is en to the point, waar OLEDB overdreven generiek en te gecompliceerd is.
Huidige ondersteuning
De lancering van SQL in 2012 was de laatste om OLEDB te ondersteunen. Dit verlaagt de stemming ten gunste van ODBC.
ODBC heeft de compatibiliteit met het gebruik van stuurprogramma's uitgebreid, wat een belangrijke drijvende factor is in de verandering van strategie door Microsoft.
Ontwikkelaars moeten aanpassen
De bovengenoemde SQL-release (denali) kwam met zeven jaar ondersteuning voor OLEDB. Dit betekent dat als ik dit schrijf, ontwikkelaars nog maar twee jaar over hebben om zich aan te passen.
Iedereen begrijpt dat het moeilijk kan zijn om aan te passen, maar OLEDB-gebruikers zullen niet snel kunnen kiezen.
De verschillen tussen ODBC en OLEDB
Houd het bij mij, het gaat heel technisch worden. Om het lezen te vergemakkelijken, heb ik de informatie in een tabel opgenomen.
Deze tabel is gebaseerd op informatie door een technisch whitepaper van ftp.sas.com
ODBC | OLEDB |
Oorspronkelijk ontworpen voor relationele databases. (sinds gewijzigd) | Oorspronkelijk ontworpen voor niet-relationele en relationele databases. |
Doorlopende ondersteuning voor SQL | SQL-ondersteuning ongeldig 2019 |
Component-based | Procedurele-gebaseerde |
Moeilijker in gebruik | Gemakkelijker in te zetten |
Dat zowat vat het samen. Ik hoop dat je het verschil tussen ODBC en OLEDB nu beter begrijpt. Als u dat niet doet, heb ik hieronder enkele verdere informatie verstrekt, evenals een link naar het bovengenoemde technische artikel.
Als u ervaring hebt met het gebruik van deze twee API's, kunt u ons dit laten weten in de opmerkingen. Hebben we iets fout gedaan? Is er iets dat je zou kunnen toevoegen voor de nieuwkomers die er zijn?
We horen graag van je in de reacties.
Woordenlijst
ODBC: Database verbinden openen
OLE DB: database voor objectkoppeling en -intekening
OS: Besturingssysteem (zoals Windows)
API: Application Programming Interface
Relationele database: een set gegevensitems gesorteerd in tabellen. De gegevensitems kunnen worden geopend en opnieuw worden samengesteld zonder de databasetabellen te reorganiseren.
Niet-relationele database: volgt de relationele standaard niet. Ook bekend als NoSQL-database.
Verder lezen
Link naar (verouderd - zie hierboven, OLEDB verliest SQL-functionaliteit) white paper: http://ftp.sas.com/techsup/download/v8papers/odbcdb.pdf
Relationele versus niet-relationele database: https://www.mongodb.com/scale/relational-vs-non-relational-database
Beoordelingen door gebruikers op ODBC versus OLEDB: https://community.qlik.com/thread/106540