ODBC vs OLEDB
Tavaliselt on tarkvararakendused kirjutatud kindlas programmeerimiskeeles (nagu Java, C jne), samas kui andmebaasid aktsepteerivad päringuid mõnes muus andmebaasispetsiifilises keeles (nt SQL). Seega, kui tarkvararakendusel on vaja juurdepääsu andmebaasi andmetele, on vaja liidest, mis suudab keeli üksteisele tõlkida (rakendus ja andmebaas). Vastasel juhul peavad rakenduste programmeerijad õppima ja oma rakendustesse lisama andmebaasipõhiseid keeli. ODBC (Open Database Connectivity) ja OLEDB (Object Linking and Embedding, Database) on kaks liidest, mis lahendavad selle konkreetse probleemi. ODBC on platvormist, keelest ja operatsioonisüsteemist sõltumatu liides, mida saab selleks kasutada. OLEDB on ODBC järglane.
Mis on ODBC?
ODBC on andmebaasihaldussüsteemidele (DBMS) juurdepääsu liides. ODBC töötas välja SQL Access Group 1992. aastal, kui andmebaasi ja rakenduse vaheliseks suhtlemiseks polnud standardset andmekandjat. See ei sõltu konkreetsest programmeerimiskeelest ega andmebaasisüsteemist ega operatsioonisüsteemist. Programmeerijad saavad kasutada ODBC-liidest, et kirjutada rakendusi, mis saavad teha päringuid mis tahes andmebaasist, olenemata keskkonnast, milles see töötab, või kasutatavast DBMS-i tüübist.
Kuna ODBC draiver toimib rakenduse ja andmebaasi vahelise tõlkijana, suudab ODBC saavutada keele- ja platvormi sõltumatuse. See tähendab, et rakendus on vabastatud andmebaasipõhise keele tundmisest. Selle asemel teab ja kasutab see ainult ODBS-i süntaksit ning draiver tõlgib päringu andmebaasi keeles, millest see aru saab. Seejärel tagastatakse tulemused rakendusele arusaadavas vormingus. ODBC tarkvara API-d saab kasutada nii relatsiooniliste kui ka mitterelatsiooniliste andmebaasisüsteemidega. Teine suur eelis, kui ODBC on universaalne vahevara rakenduse ja andmebaasi vahel, on see, et iga kord, kui andmebaasi spetsifikatsioon muutub, ei pea tarkvara värskendama. Piisaks ainult ODBC draiveri värskendamisest.
Mis on OLEDB?
OLEDB on Microsofti välja töötatud andmete API. See võimaldab juurdepääsu andmetele paljudest andmeallikatest. Seda rakendatakse Microsofti COM-i (Component Object Mode) abil. OLEDB-d peetakse ODBC järglaseks ja see suudab käsitleda andmeallikaid palju kõrgemal tasemel kui ODBC. Sisuliselt laiendab OLEDB ODBC funktsioone mitterelatsioonilistele andmebaasidele (nt objektide andmebaasidele ja arvutustabelitele). See tähendab, et OLEDB-d saab kasutada andmebaasidega, mis ei kasuta SQL-i. OLEDB töötati välja Microsoft Data Access Componentsi (MDAC) osana.
Mis vahe on ODBC ja OLEDB vahel?
Kui programmeerija ei tunne COM-i, on ODBC parem valik. Kuid ODBC sobib ainult relatsiooniliste andmebaaside jaoks, samas kui OLEDB sobib nii relatsiooniliste kui ka mitterelatsiooniliste andmebaaside jaoks. Kui andmebaas ei toeta OLE-d (mitte-OLE keskkondi), on ODBC parim valik. Kui keskkond ei ole SQL, siis peate kasutama OLEDB-d (kuna ODBC töötab ainult SQL-iga). Samamoodi, kui on vaja koostalitlusvõimelisi andmebaasikomponente, tuleb ODBC asemel kasutada OLEDB-d. 16-bitiste andmete puhul on aga ODBC-le juurdepääs ainus võimalus (OLEDB ei toeta 16-bitist). Lõpuks on OLEDB parim valik mitme andmebaasiga korraga ühenduse loomiseks (ODBC saab korraga ühenduse luua ainult ühe andmebaasiga).