ODBC срещу OLEDB
Обикновено софтуерните приложения са написани на определен език за програмиране (като Java, C # и т.н.), докато базите данни приемат заявки на някои други специфични езици на базата данни (като SQL). Следователно, когато софтуерното приложение трябва да има достъп до данни в база данни, е необходим интерфейс, който може да превежда езици помежду си (приложение и база данни). В противен случай програмните програмисти трябва да научат и да включат специфични езици за базата данни в своите приложения. ODBC (Open Database Connectivity) и OLEDB (свързване и вграждане на обекти, база данни) са два интерфейса, които решават този специфичен проблем. ODBC е независим от платформа, език и операционна система интерфейс, който може да се използва за тази цел. OLEDB е наследник на ODBC.
Какво е ODBC?
ODBC е интерфейс за достъп до системи за управление на бази данни (СУБД). ODBC е разработен от SQL Access Group през 1992 г. по време, когато нямаше стандартен носител за комуникация между база данни и приложение. Не зависи от конкретен език за програмиране или система от бази данни или операционна система. Програмистите могат да използват ODBC интерфейс за писане на приложения, които могат да заявяват данни от всяка база данни, независимо от средата, в която се работи или от типа на СУБД, който използва.
Тъй като ODBC драйверът действа като преводач между приложението и базата данни, ODBC е в състояние да постигне езикова и платформана независимост. Това означава, че приложението се освобождава от тежестта на познаването на специфичния език на базата данни. Вместо това той ще знае и използва само синтаксиса на ODBS и драйверът ще преведе заявката в базата данни на език, който може да разбере. След това резултатите се връщат във формат, който може да бъде разбран от приложението. ODBC софтуерният API може да се използва както с релационни, така и с нерелационни системи от бази данни. Друго основно предимство на наличието на ODBC като универсален междинен софтуер между приложение и база данни е, че всеки път, когато спецификацията на базата данни се промени, софтуерът не е необходимо да се актуализира. Само актуализация на драйвера за ODBC би била достатъчна.
Какво е OLEDB?
OLEDB е API за данни, разработен от Microsoft. Тя позволява достъп до данни от голям набор от източници на данни. Той се реализира с помощта на COM на Microsoft (Component Object Mode). OLEDB се счита за наследник на ODBC и може да обработва източници на данни на много по-високо ниво в сравнение с ODBC. По същество, OLEDB разширява функциите на ODBC до нерелационни бази данни (например бази данни и електронни таблици на обекти). Това означава, че OLEDB може да се използва с бази данни, които не използват SQL. OLEDB е разработен като част от компонентите на Microsoft за достъп до данни (MDAC).
Каква е разликата между ODBC и OLEDB?
Ако програмистът не е запознат с COM, тогава ODBC е по-добрият вариант. Но ODBC е добър само за релационни бази данни, докато OLEDB е подходящ както за релационни, така и за нерелационни бази данни. Ако базата данни не поддържа OLE (извън OLE среди), тогава ODBC е най-добрият избор. Ако средата не е SQL, тогава трябва да използвате OLEDB (защото ODBC работи само със SQL). По същия начин, ако се изискват оперативно съвместими компоненти на базата данни, тогава трябва да се използва OLEDB вместо ODBC. За 16-битови данни обаче достъпът до ODBC е единствената опция (OLEDB не поддържа 16-битов). И накрая, OLEDB е най-добрият избор за свързване към няколко бази данни наведнъж (ODBC може да се свързва само с една база данни наведнъж).