Үшінші аспект класс ҧғымын қайта қарастырумен байланысты.
ОБДҚ контексінде класты осы тҥрдегі объектілер жиынтығы ретінде
қарау, яғни, сонымен бірге объектілердің типі мен кластардың
тҧжырымдамаларын қолдау ыңғайлы.
14.2.
Объектілі-бағытталған деректердің модельдері
Алғашқы нысандандырылған жəне көпшілік мақҧлдаған деректер
моделі Кодд реляциялық моделі болды. Алдыңғы модельдерде
болғандай, бҧл модельде де келесідей ҥш аспект бөлінді: қҧрылымдық,
тҧтас жəне манипуляциялық. Реляциялық модельдегі деректер
қҧрылымдары жазық қалыпқа келтірілген қатынастарға негізделеді,
тҧтастық шектеулер бірінші реттік логиканы қолдану арқылы
анықталады, деректерді өңдеу реляциялық алгебра немесе оған
теңестірілген есептеме негізінде жҥзеге асырылады. Көп жағдайларда
реляциялық деректер моделінің сəтті болуы – оның реляциялық
алгебраның қатаң математикалық аппараттарына жəне теориялар
жиынтығына негізделгендігіне байланысты.
Деректерді объектілі-бағытталған тəсілмен модельдеудің басты
мəселелері жалпы объектілі-бағытталған деректер моделі негізделетін
арнайы математикалық аппараттың жоқ болуымен байланысты.
Объектілердегі деректерді басқару əдістерін əзірлеу, дəстҥрлі емес
міндеттерді бағдарламалау процесі секілді, «бағдарламалау өнері»
болып қала береді.
Әдістер жалпыға ортақ (басқа кластардың объектілерінен
қолжетімді) немесе жеке (тек осы класта ғана қолжетімді) болуы
мҥмкін.
Мəселен, объектілі-бағытталған деректер қорын басқару жҥйесі
дегеніміз – бҧл бағдарламалау жҥйесімен ДҚБЖ-нің бірігуін білдіреді
жəне ол объектілі-бағытталған деректер моделіне негізделген.
ОБДҚ-ның негізгі мақсаты – бірыңғай ақпараттық кеңістікті қҧру
қажеттілігіне байланысты.
Бҧл ортада жобаның қҧрылымдық жəне қылық бөліктері арасында
ешқандай қайшылық болмауы керек жəне сыртқы жадтағы кҥрделі
деректер қҧрылымдарын тиімді басқару керек.
Қосымшаны жасаған кезде дəстҥрлі реляциялық жҥйелерден
айырмашылығы, мҧнда скалярлық мəндермен жҧмыс істеуге
бағытталған процедуралық бағдарламалау тілін жəне жиынтықтармен
жҧмыс істеуге бағытталған декларативті сҧраныс тілін қолдануға
тиіспіз, ОБДҚ тілдік ортасы – табиғи тҥрде қамтылатын объектілі-
бағытталған бағдарламалау жҥйесі, ҧзақ мерзімді объектілермен
жҧмыс істеу қҧралы.
Бағдарламалау тілінде дерекқорлармен жҧмыс істеу қҧралдарын
табиғи тҥрде қосу ҧзақ мерзімді (сыртқы ДҚ-да сақталатын)
объектілермен жасалатын жҧмыс бағдарламада болған уақытша
объектілермен
жҧмыс
істейтін
синтаксистік
қҧрылымдардың
(семантикасы бірдей) негізінде жасалуы керек дегенді білдіреді.
ОБДҚ-ның бҧл аспектісі деректер қорын бағдарламалау тілдеріне
жақын бағыт болып табылады. ОБДҚ жəне ДҚ бағдарламалау тілдері
өздерінің көптеген сипаттары бойынша тек терминология тҧрғысынан
ғана ерекшеленеді; басты айырмашылық – ОБДҚ тілдеріндегі кластық
мҧрагерлік тəсілінің сақталуы.
ОБДҚ тілдік ортасының тағы бір аспектісі интерактивті тҥрде
қолданылуы мҥмкін сҧраныс тілдеріне деген қажеттілік. Егер ОБДҚ
бағдарламалау тілдерінде сыртқы ДҚ объектілеріне қатынасу негізінен
навигациялық тҧрпатта болса, онда сҧраныс тілдері декларативті стиль
ҥшін ыңғайлы болады. Өздеріңіз білетіндей, декларативті сҧраныс
тілдері бағдарламалау тілдеріне қарағанда аз дамыған.
14.3.
Объектілі-бағытталған деректер қорының
бағдарламалау тілдері
Қазіргі таңда, нөлден бастап жаңадан ойластырылған ОБДҚ
бағдарламалау тілі жоқ. Мҧндай тілді қҧрудың нақты тəсілі ретінде
қолданыстағы объектілі-бағытталған тілді қолданылу (қажетті
кеңейтумен) қарастырылды.
Бағдарламалауға объектілі-бағытталған жəне функционалдық
тəсілдерді енгізуді жҥзеге асырған алғашқы тілдердің бірі – Лисп тілі
(Common Lisp) болды.
Неғҧрлым тиімді іске асыру қажеттілігі объектілі-бағытталған
тілдің негізі ретінде BASIC (BASIC) жəне C ++ танымал бағдарламалау
тілдерін қолдануға итермеледі.
Объектілі-бағытталған ДҚБЖ-сінде ОБДҚ бағдарламалау тілін
(немесе тілдер тобын) ғана емес, сонымен қатар дамыған сҧрау тілін
қолдау қажеттілігін қазіргі таңда барлық дерлік əзірлеушілер
мойындап отыр. Жҥйе интерактивті режимде тҥпкі пайдаланушысына
тікелей қол жеткізуге болатын жеңіл оқу интерфейсін қолдауы керек.
Объектілі-бағытталған
дерекқор
жҥйелерімен
интерактивті
интерфейстерді
ҧйымдастырудағы
ең
кең
таралған
тəсіл
аралаушыларды қолдануға негізделеді. Бҧл жағдайда соңғы интерфейс
əдетте графикалық болып табылады. Экран ОБДҚ сҧлбасын (немесе
ішкі сҧлбаны) көрсетеді жəне пайдаланушы навигациялар арқылы
объектілерді көре алады. Кейбір зерттеушілер бҧл жағдайда
объектілерді инкапсуляциялау принципін елемеуге жəне объектілердің
интерьерін пайдаланушыға ҧсынуға болады деп санайды.
Көптеген ОБДҚ жҥйелерінде мҧндай интерфейс бар, бірақ
навигациялық сҧраныстар тілі дегеніміз – тіпті реляциялық жҥйелердің
сҧраныс тілдерімен салыстырғанда, артқа жасалған қадамдай
қабылданатыны анық.
Навигациялық емес сұраныс тілдері. Қазіргі уақытта мҧндай
тілдерді дамытудың ҥш тəсілі бар.
Бірінші тәсіл– бҧл реляциялық жҥйелердің сҧраныс тілдерін
кеңейту. SQL тіліне жақын синтаксиспен ең көп таралған тілдер. Бҧл,
əрине, осы тілдің кеңінен таралуы мен көпшіліктің мақҧлдағанымен
байланысты.
Екінші тәсіл толық логикалық объектілі-бағытталған есептеу тіліне
негізделген.
Үшінші
тәсіл
декларативті
жəне
объектілі-бағытталған
бағдарламалау əдістерін қолдануға негізделген.
Сҧраныс тілін əзірлеу барысында қолданылатын тəсілге
қарамастан, əзірлеушілер объектіліө-бағытталған тəсілдің дəстҥрлі
арнасына сай келмейтін бір тҧжырымдамалық мəселеге тап болады.
ОБДҚ тҧжырымдамасына сҥйенсек, сҧранысты қалыптастырудың
негізін ОБДҚ-да бірдей типтегі объектілер жиынтығын бейнелейтін
класс қҧруы керек. Алайда сҧраныс нəтижесі қандай болуы мҥмкін?
Объектілі-бағытталған тəсілдің басты ҧғымдарының жиынтығы осы
мəселенің мəніне сəйкес келетін тҧжырымдаманы қамтымайды.
Әдетте, бҧл мəселені шешу ҥшін, объектілер жиынтығының базалық
тҧжырымдалар
жиынтығын
кеңейтіп,
сҧраныстың
нəтижесі
объектілердің белгілі бір жиынтығы – класс ҥлгілері болады деген
тҧжырымға келеді. Бҧл өте шектеулі тəсіл, себебі сҧраныс тілінің
қҧрамында реляциялық байланыс операторына ҧқсас қҧралдардың
болу мҥмкіндігі автоматты тҥрде шығарылып қалады.
Сұранысты оңтайландыру мәселелері. ОБДҚ жҥйесінде
сҧранысты оңтайландырудың негізгі мақсаты сыртқы ОБДҚ жадына
қол жеткізу арқылы оңтайлы сҧранысты орындау жоспарын жасау
болып табылады.
Сҧранысты оңтайландыру реляциялық дерекқорлар контексінде
жақсы зерттеліп, əзірленген. Сҧранысты процедуралық емес деңгейде
синтаксистік жəне семантикалық оңтайландырудың белгілі əдістері,
қарапайым реляциялық операцияларды орындау алгоритмдері, сҧраныс
жоспарының қҧнын бағалау əдістері бар.
Әрине, объектілер жазықтық қатынастарынан гөрі əлдеқайда
кҥрделі қҧрылымға ие болуы мҥмкін, бірақ бҧл айырмашылық аса
маңызды емес. ОБДҚ сҧраныстарын оңтайландырудағы негізгі
қиындық, іріктеу шарттары объектілердің (əдістерінің) сыртқы
атрибуттарында пайда болған кезде болады, ал нақты оңтайландыру
(яғни оңтайлы жоспар əзірлеу ҥшін) ҥшін ішкі атрибуттарда
анықталған шарттар (кҥй айнымалылары) қажет.
Достарыңызбен бөлісу: |