Кіріспе

ODBC, деректер базасы жүйелеріне қол жеткізудің стандартты интерфейсі. Компьютерлік технологияларда, Ашық деректер базасы байланысы (ODBC) – деректерді басқару жүйелеріне (DBMS) қол жеткізуге арналған стандартты қолданбалық бағдарламалау интерфейсі (API). ODBC жасаушылары оны деректер базасы жүйелерінен және операциялық жүйелерден тәуелсіз етуді мақсат еткен. ODBC арқылы жазылған бағдарламаны клиенттік және серверлік жағында, деректерге қол жеткізу кодын аз өзгерту арқылы басқа платформаларға көшіруге болады. ODBC, деректер базасы жүйелерінен тәуелсіздікті қолданба мен деректер базасын басқару жүйесі арасындағы аудармалау қабаты ретінде ODBC драйверін пайдалану арқылы қамтамасыз етеді. Бағдарлама ODBC функцияларын ODBC драйвер менеджері арқылы пайдаланады, ол оған байланысты, ал драйвер сауалды деректер базасын басқару жүйесіне жібереді. ODBC драйверін принтер драйвері немесе басқа драйвер сияқты қарастыруға болады, ол бағдарламаның пайдалануы үшін стандартты функциялар жиынтығын ұсынады және деректер базасын басқару жүйесіне тән функционалдықты іске асырады. ODBC-ны пайдалана алатын бағдарлама "ODBC-ға сәйкес" деп аталады. ODBC-ға сәйкес кез келген бағдарлама, драйвері орнатылған кез келген деректер базасын басқару жүйесіне қол жеткізе алады. Драйверлер барлық негізгі деректер базасын басқару жүйелері, көптеген басқа деректер көздері, мысалы, телефондық кітапша жүйелері және Microsoft Excel, тіпті мәтіндік немесе үтірмен бөлінген мәндер (CSV) файлдары үшін де бар. ODBC бастапқыда Microsoft және Simba Technologies компаниялары 1990-шы жылдардың басында әзірлеген, ал Unix және мейнфрейм саласында SQL Access Group стандарттаған Call Level Interface (CLI) үшін негіз болды. ODBC, CLI әзірлеу барысында алынып тасталған бірнеше мүмкіндіктерді сақтап қалды. Толық ODBC кейіннен осы платформаларға қайта көшірілді және CLI-ден әлдеқайда танымал стандартқа айналды. CLI ODBC-ге ұқсас болып қалады және бағдарламаларды аз өзгерістермен бір платформадан екіншісіне көшіруге болады.

ODBC-ден бұрын

1970-ші жылдары негізгі машинаға (мейнфрейм) негізделген реляциялық деректер базасының енгізілуі деректерге қол жеткізу әдістерінің өркендеуіне алып келді. Жалпы алғанда, бұл жүйелер қарапайым командалық процессормен бірге жұмыс істеді, ол пайдаланушыларға ағылшын тіліндегі командалар сияқты нәрселерді енгізуге және нәтижелерді алуға мүмкіндік берді. Ең белгілі мысалдар – IBM-нің SQL және Ingres жобасының QUEL. Бұл жүйелер басқа қолданбаларға деректерге тікелей қол жеткізуге рұқсат беруі де, бермеуі де мүмкін, ал рұқсат бергендер әртүрлі әдістемелерді пайдаланды. SQL енгізілуі тілдік стандарттау мәселесін шешуді мақсат еткенімен, іске асыруда маңызды айырмашылықтар сақталды. SQL тілінің бағдарламалау мүмкіндіктері шектеулі болғандықтан, пайдаланушылар көбінесе SQL-ді Fortran немесе C сияқты басқа тілде жазылған бағдарламаның ішінде пайдалануды қалады. Бұл Embedded SQL тұжырымын тудырды, ол SQL кодын басқа тілге енгізуге мүмкіндік берді. Мысалы, SELECT * FROM city сияқты SQL операторын C бастапқы кодының ішінде мәтін ретінде қоюға болады, ал компиляция кезінде ол SQL жүйесіне операторды жіберуге тікелей шақыратын кітапханадағы функцияға айналады. Операторлардан алынған нәтижелер ұқсас кітапхана кодын пайдалана отырып, char * сияқты C деректер пішімдеріне қайта түрлендіріледі. Embedded SQL тәсілімен бірнеше мәселе туындады. SQL-дің әртүрлі нұсқалары сияқты, оларды қолданған Embedded SQL-дер де платформадан платформаға және тіпті бір платформадағы тілдер арасында кеңінен өзгеше болды – IBM Db2-ге шақыруды рұқсат ететін жүйе олардың SQL/DS-ге шақыруынан мүлдем басқаша көрінеді. Embedded SQL тұжырымының тағы бір маңызды мәселесі – SQL кодын бағдарламаның бастапқы кодында ғана өзгертуге болатындығы, сондықтан сұранысқа кішкентай өзгерістер енгізу үшін бағдарламашының көп күш жұмсауы қажет болды. SQL нарығы мұны статикалық SQL деп атады, ал динамикалық SQL-ді, оны кез келген уақытта өзгертуге болады, мысалы, барлық SQL жүйелерімен бірге келген командалық жол интерфейстері немесе SQL-ді шақырылғанға дейін жай мәтін ретінде қалдыратын бағдарламалау интерфейсімен салыстырды. 1980-ші жылдары динамикалық SQL жүйелері SQL жеткізушілері үшін басты назарға алынды. Ескі негізгі машиналық деректер базалары және оларға негізделген жаңа микрокомпьютерлік жүйелерде пайдаланушы мен деректер базасы қозғалтқышы арасында SQL сияқты командалық процессор көбінесе болмады. Оның орнына, деректерге бағдарлама тікелей қол жеткізді – ірі негізгі машиналық жүйелер үшін бағдарламалау кітапханасы, ал dBASE және ұқсас қолданбалар үшін командалық жол интерфейсі немесе интерактивті нысандар жүйесі. dBASE деректеріне машинада жұмыс істейтін басқа бағдарламалар тікелей қол жеткізе алмады. Бұл бағдарламаларға осы деректерге қол жеткізудің жолы берілуі мүмкін, көбінесе кітапханалар арқылы, бірақ ол басқа деректер базасы қозғалтқышымен немесе тіпті сол қозғалтқыштағы басқа деректер базасымен жұмыс істемейді. Нәтижесінде, мұндай жүйелердің барлығы статикалық болды, бұл маңызды мәселелер тудырды.

Алғашқы әрекеттері

1980 жылдардың ортасына қарай микрокомпьютерлердің қарқынды жақсаруы, әсіресе графикалық пайдаланушы интерфейсінің және Lotus 1 2 3 сияқты деректерге толы қолданба бағдарламаларының енгізілуі жеке компьютерлерді клиент-сервер есептеуіндегі басты клиенттік платформа ретінде пайдалануға деген қызығушылықты арттырды. Бұл үлгіде үлкен мейнфреймдер мен мини-компьютерлер негізінен жергілікті желілер арқылы деректерді беру үшін қолданылатын болады, ал микрокомпьютерлер сол деректерді интерпретациялап, көрсетіп, өңдейтін еді. Бұл үлгінің жұмыс істеуі үшін деректерге қол жеткізу стандарты қажет болды. Мейнфрейм саласында, әдетте, барлық компьютерлер бір өндірушіден болатын және клиенттер тікелей олармен байланысатын компьютерлік терминалдар болып табылатын. Бірақ микрокомпьютер саласында мұндай стандарттау болған жоқ, кез келген клиент кез келген желілік жүйені пайдаланып, кез келген серверге қол жеткізе алатын. 1980 жылдардың соңында осы мақсатта абстракция қабатын ұсыну бойынша бірнеше жұмыс жүргізілді. Олардың кейбіреулері мейнфреймге байланысты болды, олар сол машиналарда жұмыс істейтін бағдарламаларға SQL-дің әртүрлі нұсқаларын аударуға және басқа мейнфрейм немесе микрокомпьютер бағдарламалары шақыра алатын бірыңғай ортақ интерфейсті қамтамасыз етуге мүмкіндік берді. Бұл шешімдерге IBM-нің үлестірілген реляциялық деректер базасы архитектурасы (DRDA) және Apple Computer-дің деректерге қол жеткізу тілі кірді. Дегенмен, микрокомпьютерлерде толыққанды жұмыс істейтін, сонымен қатар қажетті желілік немесе файл аудармасын қолдайтын толық протокол стегін қамтитын жүйелер көбірек таралды. Мұндай жүйенің алғашқы мысалы Lotus Development компаниясының DataLens болды, ол бастапқыда Blueprint деп аталды. 1 2 3 үшін жасалған Blueprint SQL/DS, DB2, FOCUS және басқа да ұқсас мейнфрейм жүйелерін, сондай-ақ dBase сияқты микрокомпьютер жүйелерін және ақырында Microsoft SQL Server-ге айналатын Microsoft / Ashton Tate-тің алғашқы жұмыстарын қолдады. Кейінгі ODBC-ден айырмашылығы, Blueprint SQL сияқты командалық тілге жақын ештеңесі жоқ, тек кодқа негізделген жүйе болды. Оның орнына бағдарламашылар сұраныс туралы ақпаратты сақтау үшін дерек құрылымдарын пайдаланды, осы құрылымдардың көптегенін байланыстыру арқылы сұраныс құрды. Lotus осы күрделі құрылымдарды сұраныс ағаштары деп атады. Сол кезде Sybase (Том Хаггин), Tandem Computers (Джим Грей және Рао Йендлури) және Microsoft (Кайл Гейгер) компанияларының өкілдерінен құралған салалық команда стандартталған динамикалық SQL тұжырымдамасы бойынша жұмыс істеді. Жүйенің көп бөлігі Sybase-тің DB Library жүйесіне негізделген, Sybase-ге арналған бөлімдер алынып тасталды және басқа платформаларды қолдау үшін бірнеше толықтырулар енгізілді. DB Library-ге индустриядағы белгілі бір тілге тығыз байланысты кітапхана жүйелерінен операциялық жүйемен қамтамасыз етілген және осы платформадағы тілдердің оның стандарттарына сәйкес келуін талап ететін кітапхана жүйелеріне көшу көмектесті. Бұл дегеніміз, бір кітапхананы белгілі бір платформада кез келген бағдарламалау тілімен (потенциалды түрде) пайдалануға болады. Microsoft Data Access API-нің алғашқы нұсқасы 1989 жылдың сәуір айында, Lotus компаниясының Blueprint туралы хабарламасымен бірдей жарияланды. Blueprint-тің үлкен артықшылығына қарамастан, ол MSDA әлі қағаз жобасы болғанда жұмыс істеді, Lotus ақырында MSDA күш-жігеріне қосылды, өйткені SQL дерекқордың де-факто стандарты болатыны анық болды. Саланың кең ауқымды үлесінен кейін 1989 жылдың жазында стандарт SQL Connectivity (SQLC) деп аталды.

SAG және CLI

1988 жылы Unix және деректер базасы қауымдастықтарының көптеген өкілдері SQL тілі үшін бірыңғай негізгі стандартты жасау мақсатымен SQL Access Group (SAG) тобын құрды. Алғашқы отырыста, күш-жігер тек SQL тілінде жұмыс істеуге бағытталған жөн бе, әлде SQL тілінің динамикалық енгізу жүйесін де қамтитын кеңейтілген стандарттауға тырысу керек пе деген мәселе бойынша көп пікірталас болды, олар мұны Call Level Interface (CLI) деп атады. Сол кезде MS Data Access деп белгілі болған жобаның алғашқы нұсқасымен бірге Microsoft компаниясының өкілі Кайл Гейгер Digital Equipment Corporation (DEC) компаниясының Джефф Балбони және Ларри Барнс өкілдерін SQLC отырыстарына қатысуға шақырды. SQLC, DEC басшылық еткен CLI талабына потенциалды шешім болатын. Жаңа SQLC "төрттік тобы" – MS, Tandem, DEC және Sybase – 1990 жылдың маусымында SAG-тің келесі отырысына SQLC-нің жаңартылған нұсқасын ұсынды. SAG бұл қадамға стандартты әзірлеуді кез келген бәсекелес ұсынысқа ашу арқылы жауап берді, бірақ көптеген ұсыныстардың ішінде тек Oracle Corp ғана күшті бәсекелес болатын жүйеге ие болды. Ақырында, SQLC дауыс беру нәтижесінде стандарт жобасы ретінде таңдалды, бірақ API-дің үлкен бөлігі алынып тасталғаннан кейін ғана – стандарт құжаты 120 беттен 50 бетке дейін қысқартылды. Осы кезеңде Call Level Interface атауы ресми түрде қабылданды. 1995 жылы SQL/CLI халықаралық SQL стандартының ISO/IEC 9075 3 бөлігіне енді. SAG тобы 1996 жылы X/Open тобының қарамағына өтті, және уақыт өте келе The Open Group-тың Common Application Environment құрамына кірді. MS бастапқы SQLC стандартымен жұмысын жалғастырды, CLI нұсқасынан алынып тасталған көптеген жетілдірілген мүмкіндіктерді сақтап қалды. Бұған, мысалы, жылжымалы курсорлар және метадеректер туралы ақпараттар кірді. API-дегі командалар топтарға бөлінді: Core тобы CLI-мен толық сәйкес болды, 1-деңгейлі кеңейтулер драйверлерде оңай іске асырылатын командаларды қамтыды, ал 2-деңгейлі командаларда курсорлар сияқты озық мүмкіндіктер болды. 1991 жылдың желтоқсан айында ұсынылған стандарт жарияланды, және 1992 жылға дейін өнеркәсіптік пікірлер жиналып, жүйеге енгізілді, нәтижесінде атау тағы да өзгеріп, ODBC болды.

JET және ODBC

Осы кезеңде Microsoft өзінің Jet деректер базасын жасап жатты. Jet үш негізгі ішкі жүйені біріктірді: ISAM негізіндегі деректер базасы ядросы (әлдебір қызықсыздық тудыратын, Jet деп те аталады), деректерге қол жеткізуге мүмкіндік беретін C негізіндегі интерфейс және сол C интерфейсін басқа ISAM негізіндегі деректер базаларына, мысалы Paradox және xBase-қа кіріс және шығысты қайта бағыттауға мүмкіндік беретін драйверлік динамикалық кітапханалар (DLL) жиынтығы. Jet, Blueprint сияқты, жалпы микрокомпьютерлік деректер базасына бір жиын шақыруларды пайдалану арқылы қол жеткізуге мүмкіндік берді, кейін ол DataLens деп аталды. Алайда, Jet SQL-ді қолданбады; DataLens сияқты, интерфейс C тілінде болды және деректер құрылымдары мен функция шақыруларынан тұрды. SAG стандарттау жұмыстары Microsoft-қа өздерінің Jet жүйесін жаңа CLI стандартына бейімдеуге мүмкіндік берді. Бұл Windows-ты CLI әзірлеу үшін басты платформаға айналдырып қана қоймай, сонымен қатар пайдаланушыларға Jet және басқа деректер базаларына кіру үшін SQL-ді пайдалануға мүмкіндік берді. Бірақ, шақыруларды мәтін түрінен Jet-те қолданылатын C интерфейсіне түрлендіретін SQL талдаушысы болмады. Бұл мәселені шешу үшін MS компаниясы PageAhead Software компаниясымен серіктестік құрып, олардың SIMBA сұраныс процессорын пайдаланды. SIMBA Jet-тің C кітапханасының үстінде талдаушы ретінде қолданылып, Jet-ті SQL деректер базасына айналдырды. Және Jet осы C негізіндегі шақыруларды басқа деректер базаларына жібере алатындықтан, SIMBA басқа жүйелерге де сұрау салуға мүмкіндік берді. Microsoft Excel үшін драйверлерді қосты, олар электрондық кесте құжаттарын SQL-ге қолжетімді деректер базасы кестелеріне айналдырды.

Шығару және одан әрі дамыту

ODBC 1.0 1992 жылдың қыркүйегінде жарық көрді. Ол кезде SQL дерекқорына тікелей қолдау шектеулі болды (ISAM-мен салыстырғанда), ал алғашқы драйверлердің өнімділігі нашар болды. Бұның бір бөлігі шақырулардың Jet негізіндегі стек арқылы өту жолына байланысты болды: SQL дерекқорына жасалған ODBC шақырулары алдымен Simba Technologies-тің SQL диалектісінен Jet-тің ішкі C негізіндегі форматына аударылып, содан кейін дерекқорына SQL шақыруларын қайта түрлендіру үшін драйверге жіберілді. Digital Equipment және Oracle екеуі де Simba Technologies компаниясымен өздерінің дерекқорлары үшін драйверлерді әзірлеу жөнінде келісім шарт жасасты. 1993 жылы OpenLink Software PROGRESS DBMS үшін алғашқы тәуелсіз әзірленген үшінші тарап ODBC драйверлерін шығарды, одан кейін UDBC (ODBC және SAG/CLI-ге балама кросс-платформалық API) SDK және PROGRESS, Sybase, Oracle және басқа да DBMS үшін Unix сияқты операциялық жүйелерде (AIX, HP UX, Solaris, Linux және т.б.), VMS, Windows NT, OS/2 және басқа да операциялық жүйелерде пайдалануға арналған драйверлерді ұсынды. Осы уақытта CLI стандартын әзірлеу жұмысы баяу жүрді және 1995 жылдың наурызында ғана түпкілікті нұсқасы аяқталды. Ол кезде Microsoft Visigenic Software компаниясына Windows емес платформаларда ODBC әзірлеу үшін бастапқы код лицензиясын берген еді. Visigenic ODBC-ді классикалық Mac OS және көптеген Unix платформаларына көшірді, онда ODBC тез арада де-факто стандартына айналды. "Нағыз" CLI бүгінде сирек кездеседі. Екі жүйе де ұқсас күйде қалды және көптеген қосымшаларды ODBC-ден CLI-ге аз немесе ешқандай өзгеріссіз көшіруге болады. Уақыт өте келе дерекқор жеткізушілері драйвер интерфейстерін өздеріне алды және өнімдеріне тікелей сілтемелер ұсынды. Jet немесе ұқсас орамдар арқылы аралық түрлендірулерді өткізіп тастау көбінесе өнімділікті арттырды. Алайда, сол кезде Microsoft өзінің OLE DB тұжырымдамасына (жақында қайта жаңартылды) көшті, ол адрестік кітаптардан мәтіндік файлдарға дейінгі әртүрлі деректер көздеріне тікелей қол жеткізуді қамтамасыз етті. Кейіннен бірнеше жаңа жүйелер пайда болды, олар өз назарын ODBC-ден аударды, соның ішінде ActiveX Data Objects (ADO) және ADO.NET, олар өмірлік циклдарында ODBC-мен белгілі бір деңгейде өзара әрекеттесті. Microsoft өзінің назарын тікелей ODBC-ге жұмыстан аударған кезде Unix саласы оны көбірек қабылдады. Бұл нарықтағы екі өзгерістің нәтижесінде болды: GNOME сияқты графикалық пайдаланушы интерфейстерінің (GUI) енгізілуі, бұл дереккөздерге мәтіндік емес түрде қол жеткізу қажеттілігін тудырды, және бастапқыда Unix жүйелерінде пайда болған PostgreSQL және MySQL сияқты ашық бағдарламалық қамтамасыз ету дерекқорларының пайда болуы. Кейіннен Apple компаниясы ODBC-ді стандартты Unix жағындағы iODBC пакетін Mac OS X 10.2 (Jaguar) (OpenLink Software 2001 жылдан бері Mac OS X 10.0 және тіпті Mac OS 9 үшін тәуелсіз ұсынып келді) пайдалану үшін қабылдауы ODBC-ді платформааралық деректерге қол жеткізу стандарты ретінде бекітті. Sun Microsystems ODBC жүйесін Java Database Connectivity (JDBC) деген ашық стандарттың негізі ретінде пайдаланды. Көп жағдайда JDBC-ді Java бағдарламалау тіліне арналған ODBC нұсқасы деп санауға болады. JDBC-ден ODBC көпірлері Java негізіндегі бағдарламаларға ODBC драйверлері жоқ платформаларда ODBC драйверлері арқылы дерек көздеріне қол жеткізуге мүмкіндік береді, бірақ қазір олар сирек кездеседі. Керісінше, ODBC-ден JDBC көпірлері C негізіндегі бағдарламаларға платформалардағы JDBC драйверлері арқылы немесе ODBC драйверлері жоқ дерекқорлардан дерек көздеріне қол жеткізуге мүмкіндік береді.

ODBC бүгінгі күні

ODBC бүгінде де кеңінен қолданылып келеді, көптеген платформалар мен дерекқоры үшін драйверлер қолжетімді. SQLite сияқты енбектік дерекқоры жүйелері үшін де ODBC драйверлерін кездестіру жиі кездеседі, бұл қолданыстағы құралдарға осы жүйелерді сынау және түзету үшін интерфейс ретінде пайдалануға мүмкіндік береді.

ODBC-нің ерекшеліктері

1.0: 1992 жылдың қыркүйегінде шығарылды
2.0: 1994
2.5
3.0: 1995 жылы, Intersolv компаниясының Джон Гудсон және IBM компаниясының Фрэнк Пеллоу мен Пол Коттон ODBC 3.0-ға маңызды үлес қосты.
3.5: 1997
3.8: 2009 жылы, Windows 7 жүйесімен бірге
4.0: 2016 жылдың маусым айында дамытыла бастады, ал алғашқы іске асырылуы SQL Server 2017 бағдарламасымен 2017 жылдың қыркүйегінде, ал қосымша десктоп драйверлері 2018 жылдың соңында Github-та жарияланды.

Үстел деректер қорының драйверлері

1.0 (1993–08): PageAhead Software компаниясы жасаған SIMBA сұраныс процессорын пайдаланды. 2.0 (1994–12): ODBC 2.0-пен бірге қолданылды. 3.0 (1995–10): Windows 95 және Windows NT жұмыс станциясы немесе NT Server 3.51 жүйелерін қолдайды. Бұл нұсқада тек 32 биттік драйверлер ғана қосылған. 3.5 (1996–10): Екі байттық таңба жиынтығын (DBCS) қолдайды және файл дерек көзі атауларын (DSN) пайдалануға мүмкіндік береді. Microsoft Access драйвері Windows 95/98 және Windows NT 3.51 және одан кейінгі операциялық жүйелерде Alpha платформаларында пайдалану үшін RISC нұсқасында шығарылды. 4.0 (1998 жылдың соңы): Microsoft Jet Engine Unicode форматын қолдайды, сондай-ақ бұрынғы нұсқалардың ANSI форматымен үйлесімді.

Жүргізушілер

ODBC құрылғы драйвері моделіне негізделген, онда драйвер стандартты командалар мен функцияларды негізгі жүйеге қажетті нақты шақыруларға түрлендіру үшін қажетті логиканы қамтиды. Мысалы, принтер драйвері баспа жүйесін пайдаланатын бағдарламаларға стандартты баспа командалары жиынтығын, API-ды ұсынады. Осы API-ға жасалған шақырулар драйвер арқылы нақты аппараттық құрылғыда қолданылатын форматқа, мысалы PostScript немесе PCL форматына аударылады. ODBC жағдайында драйверлер көптеген функцияларды қамтиды, оларды бірнеше кең санатқа бөлуге болады. Функциялардың бір жиынтығы негізінен драйвер байланыс жасайтын ДБЖС-ны (DBMS) табуға, қосылуға және ажыратуға қатысты. Екінші жиынтық ODBC жүйесінен ДБЖС-қа SQL командаларын жіберу үшін қолданылады, ішкі қолдау таппаған командаларды түрлендіреді немесе түсіндіреді. Мысалы, курсорларды қолдамайтын ДБЖС драйверде осы функционалдылықты эмуляциялай алады. Соңында, көбінесе ішкі қолданысқа арналған басқа командалар жиынтығы ДБЖС-тің ішкі форматтарынан C тілі форматтарына негізделген стандартталған ODBC форматтарына деректерді түрлендіру үшін қолданылады. ODBC драйвері ODBC талаптарына сәйкес келетін бағдарламаға деректер көзін, әдетте ДБЖС-ты пайдалануға мүмкіндік береді. Драйвердің өзінде шағын ДБЖС іске асырылуы арқылы CSV файлдары сияқты деректер көздері үшін ДБЖС емес драйверлер де бар. ODBC драйверлері көптеген ДБЖС үшін бар, соның ішінде Oracle, PostgreSQL, MySQL, Microsoft SQL Server (бірақ Compact, яғни CE нұсқасы үшін емес), Mimer SQL, Sybase ASE, SAP HANA және IBM Db2. Әр түрлі технологиялардың әр түрлі мүмкіндіктері болғандықтан, көптеген ODBC драйверлері ODBC стандартында анықталған барлық функционалдылықты іске асырмайды. Кейбір драйверлер стандартта көрсетілмеген қосымша функционалдылықты ұсынады.

Жүргізуші менеджері

Құрылғы драйверлері әдетте қосымша функционалдықтарды қамтамасыз ететін жеке Менеджер қабаты арқылы тізімделеді, орнатылады және басқарылады. Мысалы, баспа жүйелері көбінесе драйверлердің үстіне қосымша катушкалау мүмкіндігін беру үшін функционалдықтарды қамтиды, бұл қолдау көрсетілетін кез келген принтер үшін баспа катушкасын қамтамасыз етеді. ODBC-де осы мүмкіндіктерді Драйвер Менеджері (DM) қамтамасыз етеді. DM орнатылған драйверлерді тізімдеп, оларды тізім түрінде, көбінесе графикалық интерфейс (GUI) негізінде көрсете алады. Бірақ ODBC жүйесінің жұмыс істеуі үшін маңыздырақ нәрсе – DM-нің Дереккөз Атауы (DSN) тұжырымдамасы. DSN деректерге қосылу үшін қажетті қосымша ақпаратты жинақтайды, DBMS-нің өзі емес. Мысалы, бір MySQL драйверін кез келген MySQL серверіне қосылу үшін пайдалануға болады, бірақ жергілікті жеке серверге қосылу үшін қажетті ақпарат, интернетте орналасқан қоғамдық серверге қосылу үшін қажетті ақпараттан өзгеше болады. DSN бұл ақпаратты стандартталған форматта сақтайды және DM оны қосылу сұраныстары кезінде драйверге жібереді. DM сондай-ақ, DSN тізімін адам оқи алатын атаулармен көрсету және оларды әртүрлі ресурстарға қосылу үшін жұмыс істеу кезінде таңдау мүмкіндігін де қамтиды. DM толыққанды емес DSN-ді сақтау мүмкіндігін де қамтиды, сондай-ақ, жұмыс істеу кезінде жоқ ақпаратты пайдаланушыдан сұрау үшін код пен логика да бар. Мысалы, DSN қажетті парольсіз құрылуы мүмкін. ODBC қолданбасы осы DSN арқылы DBMS-ке қосылуға тырысқанда, жүйе тоқтап, жалғастыру алдында пайдаланушыдан парольді енгізуді сұрайды. Бұл қолданба жасаушыны осы сияқты кодты жасаудан және қандай сұрақтар қою керектігін білуден босатады. Мұның бәрі драйверге және DSN-ге кіреді.

Көпір конфигурациялары

Көпір – бұл өзге драйвер технологиясын пайдаланатын ерекше драйвер.

ODBC-JDBC (ODBC-JDBC) көпірлері

ODBC JDBC көпірі – дерекқорға қосылу үшін JDBC драйверінің қызметтерін пайдаланатын ODBC драйверінен тұрады. Бұл драйвер ODBC функциялық шақыруларын JDBC әдіс шақыруларына аударады. Бағдарламашылар мұндай көпірді әдетте, егер қандай да бір дерекқор үшін ODBC драйвері болмаса, бірақ JDBC драйверіне қол жеткізе алатын болса қолданады. Мысалдар: OpenLink ODBC JDBC Bridge, SequeLink ODBC JDBC Bridge.

JDBC-ODBC (JDBC-ODBC) көпірлері

JDBC ODBC көпірі JDBC драйверінен тұрады, ол мақсатты деректер базасына қосылу үшін ODBC драйверін пайдаланады. Бұл драйвер JDBC әдіс шақыруларын ODBC функция шақыруларына аударады. Бағдарламашылар мұндай көпірді әдетте белгілі бір деректер базасында JDBC драйвері болмағанда, бірақ ODBC драйвері арқылы қолжетімді болғанда қолданады. Sun Microsystems JVM-ге мұндай көпірді қосты, бірақ оны JDBC драйверлерінің аз болған кезде уақытша шешім ретінде қарастырды (Java 8-де құрастырылған JDBC ODBC көпірі JVM-нен алынып тасталды). Sun ешқашан өз көпірін өндірістік ортада пайдалануға арналмаған және оны пайдалануға кеңес бермеген. 2008 жылдан бері тәуелсіз деректерге қол жеткізу әзірлеушілері екі механизмнің де қазіргі стандарттарын қолдайтын және құрастырылған JVM-нен әлдеқайда артық өнімділік көрсететін JDBC ODBC көпірлерін ұсынады. Мысалдар: OpenLink JDBC ODBC көпірі, SequeLink JDBC ODBC көпірі.

OLE DB-ден ODBC-ге көпірлері

OLE DB ODBC көпірі – мақсатты деректер базасына қосылу үшін ODBC драйверінің қызметтерін пайдаланатын OLE DB провайдерінен тұрады. Бұл провайдер OLE DB әдіс шақыруларын ODBC функция шақыруларына аударады. Бағдарламашылар әдетте мұндай көпірді белгілі бір деректер базасы үшін OLE DB провайдері болмаған жағдайда, бірақ ODBC драйвері арқылы қолжетімді болғанда қолданады. Microsoft осы мақсатта MSDASQL.DLL файлын MDAC жүйелік компоненттері жиынтығымен бірге, басқа деректер базасы драйверлерімен қоса, COM-ды қолдайтын тілдерде (мысалы, Visual Basic) әзірлеуді жеңілдету үшін шығарады. Сондай-ақ, үшінші тараптар да мұндай көпірлерді жасады, олардың ішінде OpenLink Software компаниясының ODBC дерек көздері үшін 64-бит OLE DB провайдері ерекше аталады. Бұл провайдер Microsoft компаниясы бастапқыда 64-бит опералық жүйелер үшін бұл көпірді қолдауды тоқтатқан кезде туындаған олқылықты жойды. (Бірақ Microsoft кейіннен өз шешімінен қайтып, Windows Server 2008 және Windows Vista SP1 нұсқаларынан бастап 64-бит MSDASQL нұсқасын шығара бастады.) Мысалдар: OpenLink OLEDB ODBC көпірі, SequeLink OLEDB ODBC көпірі.

ADO.NET-ODBC көпірлері

АДО. NET ODBC көпірі – ADO. NET провайдерінен тұрады, ол мақсатты деректер базасына қосылу үшін ODBC драйверінің қызметтерін пайдаланады. Бұл провайдер ADO. NET әдіс шақыруларын ODBC функциялық шақыруларына аударады. Бағдарламашылар мұндай көпірді әдетте белгілі бір деректер базасы үшін ADO. NET провайдері болмаған жағдайда, бірақ ODBC драйвері арқылы қолжетімді болса қолданады. Microsoft оны C# тіліндегі әзірлеуді жеңілдету үшін MDAC жүйелік компоненттері жиынтығының бір бөлігі ретінде, басқа деректер базасы драйверлерімен бірге шығарады. Үшінші тараптар да мұндай көпірлерді әзірлеген. Мысалдар: OpenLink ADO. NET ODBC көпірі, SequeLink ADO. NET ODBC көпірі.