Кіріспе

Қолданбалық бағдарламалау интерфейсі

Деректер қорының абстракциялық қабаты (DBAL немесе DAL) – компьютерлік бағдарлама мен SQL Server, IBM Db2, MySQL, PostgreSQL, Oracle немесе SQLite сияқты деректер қоры арасындағы байланысты біріктіретін қолданбалық бағдарламалау интерфейсі. Дәстүрлі түрде, әрбір деректер қоры жеткізуші өз өнімдеріне бейімделген жеке интерфейсін ұсынады. Бағдарламашы қолданба қолдайтын деректер қоры интерфейстері үшін кодты өзі іске асыруға тиіс. Деректер қорының абстракциялық қабаттары жұмыстың көлемін азайтады, дамытушыға тұрақты API ұсынады және осы интерфейстің артында деректер қорының ерекшеліктерін мүмкіндігінше жасырады. Сан алуан бағдарламалау тілдерінде әртүрлі интерфейстермен көптеген абстракциялық қабаттар бар. Егер қолданбада мұндай қабат болса, ол деректер қорына тәуелсіз деп аталады.

Физикалық деңгей (ең төменгі деңгей)

Ең төменгі деңгей деректер базасына қосылып, пайдаланушыларға қажетті нақты операцияларды жүзеге асырады. Осы деңгейде түсіндірілген командалар деректер базасы түсінетін бірнеше командаға аударылады. Командаларды дұрыс ретпен орындау DAL-ға түсіндірілген команданы орындауға мүмкіндік береді. Физикалық қабатты іске асыру деректер базасына тән API-ларды немесе негізгі тіл стандартының деректер базасына қол жеткізу технологиясын және деректер базасының SQL нұсқасын пайдалана алады. Дерек түрлері мен операцияларды іске асыру осы деңгейде ең көп деректер базасына байланысты болады.

Тұжырымдамалық немесе логикалық деңгей (ортаңғы немесе одан кейінгі ең жоғары деңгей)

Тұжырымдамалық деңгей сыртқы түсініктер мен нұсқауларды физикалық нұсқауларға жіктелетін аралық дерек құрылымына біріктіреді. Бұл қабат ең күрделі, себебі ол сыртқы және физикалық деңгейлердің арасын байланыстырады. Сонымен қатар, ол қолдау көрсетілетін барлық деректер қорын, олардың ерекшеліктерін, API-ларын және туындайтын мәселелерді қамтуы тиіс. Бұл деңгей деректер базалары арасындағы айырмашылықтарды біліп, кез келген жағдайда операциялардың орындалу жолын құра алады. Дегенмен, тұжырымдамалық қабат әрбір жеке операцияны іске асыру үшін физикалық қабатқа жүктеледі.

Сыртқы немесе көру деңгейі

Сыртқы деңгей пайдаланушылар мен әзірлеушілерге ашық болып, деректер базасымен жұмыс істеудің біркелкі үлгісін ұсынады. Деректер базасының операциялары бұл деңгейде SQL немесе тіпті деректерге қол жеткізу ретінде ғана көрінеді. Физикалық дерек түрлері мен операцияларының айырмашылығына қарамастан, барлық деректер базалары бұл деңгейде тең қарастырылуы керек, көзге түсетін ешқандай айырмашылық болмауы тиіс.

API-де деректер қорының абстракциясы

Кітапханалар деректер қорына қол жеткізуді бірыңғайландырады, бағдарламашыға бір ғана төменгі деңгейлі бағдарламалау интерфейсін ұсынады. Олардың басты артықшылықтары – жылдамдық және икемділік, себебі олар нақты сұраныс тіліне (немесе оның бір бөлігіне) тәуелді емес және мақсатқа жету үшін тек қана жұқа қабатты іске асыру қажет. Барлық SQL диалектілері бір-біріне ұқсас болғандықтан, бағдарламашылар тілдің барлық мүмкіндіктерін пайдалана алады, сонымен қатар деректер қорының ерекше жағдайлары үшін, мысалы, пайдаланушы идентификаторлары мен құпия сөздер сияқты конфигурацияланатын элементтерді де қоса алады. Жұқа қабат бірдей сұраныстар мен командаларды әртүрлі деректер қоры өнімдерінде минимал жүктемемен орындауға мүмкіндік береді. Деректер қорының абстракциялық қабаттарын ең көп қолданатындар – объектіге бағытталған бағдарламалау тілдері, олар API деңгейіндегі абстракциялық қабаттарға ұқсас. C++ немесе Java сияқты объектіге бағытталған тілде деректер қоры объект арқылы бейнеленеді, оның әдістері мен мүшелері (немесе басқа бағдарламалау тілдеріндегі эквиваленттері) деректер қорының әртүрлі функционалдықтарын көрсетеді. Олар API деңгейіндегі интерфейстердің артықшылықтарымен және кемшіліктерімен ортақ.

Тіл деңгейіндегі абстракция

Тіл деңгейіндегі деректер базасының абстракциялық қабатының мысалы – ODBC, ол деректер базасының абстракциялық қабатының платформадан тәуелсіз іске асырылуы болып табылады. Пайдаланушы ODBC-нің деректер қорымен немесе деректер қоры жиынтығымен байланысуына мүмкіндік беретін арнайы драйвер бағдарламасын орнатады. Содан кейін пайдаланушы бағдарламаларды ODBC-мен байланыстыра алады, ол деректер қоры мен пайдаланушы бағдарламалары арасында нәтижелерді алға-кейілі жібереді. Бұл абстракция деңгейінің кемшілігі – операторларды мақсатты деректер қоры түсінетін құрылымдарға түрлендіруге кететін қосымша шығын. Балама ретінде, OpenDBX және libzdb сияқты жеңіл абстракциялық қабаттар ретінде сипатталатын жұқа қабаттар бар. Соңында, ірі жобалар өз кітапханаларын, мысалы, GNOME үшін libgda сияқты, әзірлей алады.

Жақсы деп

Даму кезеңі: Бағдарламалық жасақтаманы әзірлеушілерге қолданбасы қолдауы тиіс деректер қорының барлық API-лерін білудің орнына, деректер қорының абстракциялық қабатының API-сін ғана білу жеткілікті. Қолдау көрсетілетін деректер қорының саны артаған сайын, үнемделетін уақыт көбейеді. Кеңейтілген орнату базасы: Деректер қорының абстракциялық қабатын пайдалану жаңа орнатулардың нақты деректер қорын пайдалануын міндетті етпейді, яғни деректер қорын ауыстыруға ниеті немесе мүмкіндігі жоқ жаңа пайдаланушылар өздерінің қазіргі инфрақұрылымында қолданбаны орната алады. Болашаққа бағдарлану: Жаңа деректер қоры технологиялары пайда болғанда, бағдарламалық жасақтаманы әзірлеушілерге жаңа интерфейстерге бейімделу қажеттілігі тумайды. Әзірлеушілердің сынақтары: Өндірістік деректер қоры әзірлеушілердің бірлік сынақтары үшін деректердің жұмыс үстелі деңгейіндегі нұсқасымен алмастырылуы мүмкін. Деректер қорының қосымша мүмкіндіктері: Деректер қорына және DAL-ға байланысты, DAL деректер қорына қосымша мүмкіндіктерді қосуға мүмкіндік береді. DAL стандартты, бірақ қолдау көрсетілмейтін немесе мүлдем жаңа мүмкіндіктерді құру үшін деректер қорының бағдарламалау құралдарын немесе басқа әдістерді пайдалана алады. Мысалы, DBvolution DAL стандартты қателік функциясын оны қолдамайтын бірнеше деректер қоры үшін іске асырады.

қарсы

Жылдамдық: Кез келген абстракция қабаты орындалуға тиіс қосымша кодтың көлеміне байланысты жалпы жылдамдықты орташа деңгейде немесе одан да көп азайтуы мүмкін. Деректер қоры қабаты неғұрлым түпнұсқа деректер қоры интерфейсінен абстракцияланса және барлық деректер қоры серверлерінде қолдау табалмаған мүмкіндіктерді эмуляциялауға тырысса, жалпы өнімділік соғұрлым төмендейді. Бұл, әсіресе, ODBC сияқты сұраныс тілін біріктіруге ұмтылатын деректер қоры абстракциялық қабаттары үшін ерекше дұрыс. Тәуелділік: Деректер қоры абстракциялық қабаты бағдарламалық жүйеге тағы бір функционалдық тәуелділікті қосады, яғни берілген деректер қоры абстракциялық қабаты, кез келген нәрсе сияқты, уақыт өте келе ескіріп, қолдаусыз қалғанға ұшырауы мүмкін. Жасырылған операциялар: Деректер қоры абстракциялық қабаттары қолдау көрсетілетін деректер қоры серверлерінде қол жетімді операциялардың ішінен операциялардың шектеулі жиынтығын ғана ұсынуы мүмкін. Атап айтқанда, деректер қоры абстракциялық қабаттары деректер қоры серверлеріне тән нақты оңтайландырулар мен қателерді жою мүмкіндіктерін толыққанды қолдамауы мүмкін. Бұл мәселелер деректер қорының көлемі, масштабы және күрделілігі артаған сайын едәуір күшейеді.