ODBC vs OLEDB
Tavaliselt kirjutatakse tarkvararakendused konkreetses programmeerimiskeeles (näiteks Java, C # jne), samas kui andmebaasid võtavad vastu päringuid mõnes muus andmebaasispetsiifilises keeles (näiteks SQL). Seega, kui tarkvararakendusel on vaja andmebaasis olevatele andmetele juurde pääseda, on vaja liidest, mis suudab keeli üksteisele tõlkida (rakendus ja andmebaas). Muidu peavad rakenduste programmeerijad õppima ja oma rakendustesse lisama andmebaasipõhised keeled. ODBC (avatud andmebaasi ühenduvus) ja OLEDB (objektide linkimine ja manustamine, andmebaas) on kaks liidest, mis selle konkreetse probleemi lahendavad. ODBC on platvormist, keelest ja opsüsteemist sõltumatu liides, mida saab sel eesmärgil kasutada. OLEDB on ODBC järeltulija.
Mis on ODBC??
ODBC on andmebaaside haldussüsteemidele (DBMS) juurdepääsu liides. ODBC töötas välja SQL Access Group 1992. aastal. Ajal, kui andmebaasi ja rakenduse vahel suhelda polnud, polnud standardset meediumit. See ei sõltu konkreetsest programmeerimiskeelest, andmebaasisüsteemist ega opsüsteemist. Programmeerijad saavad kasutada ODBC-liidest rakenduste kirjutamiseks, mis saavad päringuid suvalisest andmebaasist, sõltumata töötavast keskkonnast või kasutatava DBMS-i tüübist.
Kuna ODBC draiver toimib tõlkijana rakenduse ja andmebaasi vahel, suudab ODBC saavutada keele ja platvormi sõltumatuse. See tähendab, et rakendus vabastatakse andmebaasispetsiifilise keele tundmise kohustusest. Selle asemel saab ta teada ja kasutada ainult ODBS-i süntaksi ning draiver tõlgib päringu andmebaasi keeles, millest ta aru saab. Seejärel tagastatakse tulemused rakendusele arusaadavas vormingus. ODBC tarkvara API saab kasutada nii relatsiooniliste kui ka mitterelatsiooniliste andmebaasisüsteemidega. ODBC kui rakenduse ja andmebaasi vahelise universaalse vahetarkvara olemasolu teine oluline eelis on see, et iga kord, kui andmebaasi spetsifikatsioon muutub, ei pea tarkvara värskendama. Piisab ainult ODBC draiveri värskendusest.
Mis on OLEDB?
OLEDB on Microsofti välja töötatud andme API. See võimaldab juurdepääsu andmetele paljudest andmeallikatest. Selle rakendamiseks kasutatakse Microsofti COM-i (Component Object Mode). OLEDB-d peetakse ODBC järeltulijaks ja see suudab ODBC-ga võrrelda andmeallikaid palju kõrgemal tasemel. Sisuliselt laiendab OLEDB ODBC funktsioone mitte-relatsioonilistele andmebaasidele (nt objektide andmebaasid ja arvutustabelid). See tähendab, et OLEDB-d saab kasutada andmebaasidega, mis ei kasuta SQL-i. OLEDB töötati välja Microsofti andmejuurdepääsu komponentide (MDAC) osana.
Mis vahe on ODBC ja OLEDB vahel??
Kui programmeerija pole COM-ist tuttav, on parem valik ODBC. 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-keskkonnad), on ODBC parim valik. Kui keskkond pole SQL, peate kasutama OLEDB (kuna ODBC töötab ainult SQL-iga). Samamoodi, kui on vaja koostalitlusvõimelisi andmebaasi komponente, tuleb ODBC asemel kasutada OLEDB-d. Kuid 16-bitisele andmetele on ODBC-le juurdepääs ainus võimalus (OLEDB ei toeta 16-bitist). Lõpuks on OLEDB parim valik korraga mitme andmebaasiga ühenduse loomiseks (ODBC saab korraga luua ühenduse ainult ühe andmebaasiga).