Осыған ҧқсас жағдай реляциялық ДҚБЖ-лерінде де ДҚ
көрінісіндегі сҧранысты оңтайландыру кезінде кездеседі. Бҧл
жағдайда, шарттар тағы да сыртқы атрибуттар (көрініс атрибуттары)
терминдерінде қҧрылады жəне сҧранысты оңтайландыру ҥшін бҧл
шарттар сақталған қарым-қатынас атрибуттарында анықталған
шарттарға айналуы керек. Осындай алдын-ала оңтайландырудың кең
тараған тəсілі – қажетті тҥрлендірулерді қамтамасыз ететін (SQL тілін
қолданған жағдайдың бəрінде болмаса да) көріністерді алмастыру
болып табылады.
ОБДҚ жҥйелерінде бҧл жағдай екі тҥрлі жайттың əсерінен
қиындайды.
Біріншіден, əдістер əдетте кейбір процедуралық бағдарламалау
тілдерінде бағдарламаланады да, олардың параметрлері болуы мҥмкін,
яғни жалпы жағдайда көрініс атрибуттарын анықтау кезіндегідей əдіс
денесі тек арифметикалық өрнектен бөлек, сонымен қатар, басқа
объектілердің тармақтарын, функционалдық шақыруларын жəне
əдістерін қамтитын параметрленген бағдарламаны қамтиды.
Екіншіден, əдісті нақты іске асыру, тіпті объектінің қҧрылымы
сҧранысты компиляциялау уақытында белгісіз болуы мҥмкін.
Мəселені жеңілдетудің бір жолы – объектілердің ішкі
атрибуттарының кейбірін (оңтайландыру ҥшін ең маңыздыларын) көру
мҥмкіндігін ашу. Бҧл тҧрғыда көру мҥмкіндігін тек сҧраныс
компиляторы ҥшін ғана ашу да жеткілікті болатын еді, яғни мҧндай
айнымалыларды класс тармақтарында қайта анықтауға тыйым
салынатын еді. Пайдаланушы тҧрғысынан, мҧндай атрибуттар сəйкес
тҥрдің мəнін қайтаратын параметрлер жоқ əдістерге ҧқсайды.
Дегенмен, бҧл сҧранысты оңтайландырудың қажеттіліктерін ескере
отырып, объектілерді қатаң инкапсуляциялауды (қосымшаны іске
асыруға сыни тəуелділіктен сақтау ҥшін) жəне ОБДҚ сҧлбасын мҧқият
жобалау мҥмкіндігін қамтамасыз еткен абзал болар еді.
Объектілердің бір класына сынамаларды іріктеу шарттарын алдын-
ала оңтайландыру тəсілі төмендегідей болуы мҥмкін.
1. Шарттың логикалық формуласын конъюнктивті қалыпты
формаға айналдыру. Біз нақты бір КҚФ-ны таңдау əдісіне
тоқталмаймыз, бірақ, əрине, жақсы ҚҚФ таңдалуы керек (мысалы,
атомарлық конъюнкттер саны ең көп).
2. Денені компиляциялау уақытында белгілі əдістерді қамтитын
кез-келген
конъюнкт
ҥшін,
əдістер
шақыруларын
олардың
параметрлері қойылған денелерімен ауыстыру. (Бҧл параметрлерде
басқа объектілердің функцияларына немесе əдістеріне шақырулар жоқ
деп
а
болжайық.)
3. Осындай кез-келген конъюнкт ҥшін барлық жеңілдетулерді
жасау, яғни, статикалық есептелуі мҥмкін барлық деректерді есептеу.
Жалпы алғанда, бҧл тапсырма өте қиын болса да, ОБДҚ-ны дҧрыс
ойластыратын болса, əдістер қатарына оңай жҥзеге асырылатын
қарапайым əдістер қосылуы мҥмкін, оларда шарттарды орнату өте
қарапайым
тҥрде
жҥреді.
Мҧндай
шарттар
өте
тиімді
оңтайландырылатын болады.
4. Егер де айнымалы мəндер мен тҧрақты мəндерге негізделген
қарапайым салыстыру предикаттары конъюнкттар пайда болса, осы
конъюнкттарды оңтайлы сҧранысты оңтайлы орындау жоспарын жасау
ҥшін пайдалану. Егер мҧндай конъюнкттарды алу мҥмкіндігі болмаса,
объектілер класын «фильтрлеудің» жалғыз əдісі – əр объектінің
логикалық өрнегін толықтай есептел шығару арқылы (мҥмкін
жеңілдетілген) ретімен тексеріп шығу болып табылады.
Оңтайландыру мҥмкіндіктері бағдарламалау əдістеріне, белгілі бір
сҧраныс тілінің ерекшелігіне жəне ОБДҚ сҧлбасының қаншалықты
жақсы
жобаланғанына
байланысты
бағдарламалау
тілінің
ерекшеліктеріне байланысты болады. Атап айтқанда, қолданылатын
бағдарлама тілі объектілерді бағдарламалау əдістерінің ең тəртіпті
бағдарламалау стилін ынталандыруы керек. Сҧраныс тілі
қолданушылардың
мҥмкіндіктерін
(атап
айтқанда,
сҧраныс
шарттарында қолданылатын əдістердің параметрлері бойынша)
шектеуі керек. ОБДҚ сҧлбалары кластарда қарапайым əдістерді
қамтуы керек, олар класс тармақтарында кездеспейді жəне олар
қолжетімділік əдістерін ҧйымдастырудың негізін қҧрайтын кҥй
айнымалыларына негізделген.
Бҧл шектеулер қолданбалы бағдарламаның ОБДҚ-ны жҥзеге
асыру ерекшеліктеріне тəуелді болып қалуына əкелмейді, себебі
объектілер толығымен инкапсуланған кҥйде қалады. Сҧраныс
шарттарында қарапайым əдістерді қолдану іске асыру талаптары
бойынша емес, объектілердің семантикасы арқылы ынталандырылуы
керек.
Бақылау сұрақтары
1. Объектілі-бағытталған тəсілдің деректер қорын қҧрудағы
принциптерін атаңыз.
2. Объектілі-бағытталған деректердің қандай модельдерін білесіз?
3. Объектілі-бағытталған деректер қорын əзірлеу ҥшін қандай
бағдарламалау тілдері қолданылады?
15 тарау
ОБЪЕКТІЛІ-БАҒЫТТАЛҒАН ДҚБЖ CACHE
15.1.
ДҚБЖқҧрылымы
Cache ДҚБЖ постреляциялық объектілі-бағытталған ДҚБЖ-ға
жатады. «Постреляциялық ДҚЖБ» термині жаңа буынның ДҚБЖ-сіне
жатады дегенді білдіреді. Бҧл жерде деректердің біркелкі
архитектурасы мен объектілі-бағытталған технологияны толықтай
қорғау сияқты технологиялық жаңалықтардың қанша қатары болса,
соншалықты уақыттың бірнеше аспектілері айтылып тҧр (ДҚБЖ өзінің
негізгі реляциялық бəсекелестерінен кейін барып пайда болды).
Аталып өткен объектілі-бағытталған деректер қорының жобалау
принциптеріне сəйкес Cache жҥйесінің келесі мҥмкіндіктері бар:
• тек деректер ғана емес, оларды өңдейтін əдістері де сақталатын
ДҚ объект-элементтерінің болуы;
• бҧл жҥйеде мультимедиалық деректерді өңдеуге болады жəне
қолданушыларға кез-келген кҥрделілік дəрежесіндегі өздерінің
деректер қҧрылымын жасауға мҥмкіндік береді;
• ОБДҚ абстракцияның жоғары деңгейіндегі жҧмыстарды
жібереді.
ДҚБЖ жҥйесінің басты ерекшелігі деректердің бірыңғай
архитектурасы арқылы жҥзеге асатын деректерді сақтау қабілетінің
əдеттегі көрсеткішіне тəуелді болмауы. Аталған архитектураның
шеңберінде транзакцияның өңдеуіне бағытталған деректер қорының
көп өлшемді қҧрылымында ҥздіксіз байқалып отыратын объект пен
кестелердің біркелкі сипаттамалары бар. Объектілердің класы
анықталғаннан кейін автоматты тҥрде осы класстың SQL
форматындағы реляциялық сипаттамасы туындайды. Дəл осындай
жолмен деректер Сөздігіне деректерді анықтайтын тіл (ДАТ) яғни
реляциялық деректер қоры форматындағы сипаттамасы тҥскеннен
кейін автоматты тҥрде деректердің реляциялық жəне объектік
сипаттамасы туындайды жəне сол арқылы объект форматындағы жол
қалыптасады. Осы тҧста барлық сипаттамалар келісілген тҥрде жҥзеге
асады жəне барлық операциялар тҥзетулер бойынша тек бір ғана
деректің сипаттамасымен өткізіледі. Бҧл өңдеудің уақытын
қысқартуға жəне есептелген ресурстарды ҥнемдеуге мҥмкіндік береді.
Қосымшалар айтарлықтай тез жҧмыс істейді. 15.1 кестесінде ДҚБЖ
архитектурасының негізгі элементтері көрсетілген:
• жҥйе жҧмыс істейтін платформалар;
Достарыңызбен бөлісу: |