Э. В. Фуфаев, Д. Э. Фуфаев



жүктеу 10,13 Mb.
Pdf просмотр
бет56/93
Дата19.11.2018
өлшемі10,13 Mb.
#21568
түріОқулық
1   ...   52   53   54   55   56   57   58   59   ...   93

Стандартта меңзерге байланысты деректерді тҥрлендіру операциялары 
анықталған.    Меңзердің  ағымдағы  көрсеткішіне  байланысты  жолды 
жою операциясының синтаксисі мынадай: 
DELETE FROM <кестенің аты> WHERE CURRENT OF <меңзердің 
аты> 
Егер  операторда  көрсетілген  меңзер  ашық  жəне  кейбір  жолған 
орнатылған  болса  жəне  меңзер  өзгертілетін  кестені  анықтаса,  онда 
меңзердің  ағымдағы  жолы  жойылады,  ал  ол  келесі  жолдың  алдында 
позицияланады.  DELETE  операторының  FROM  бөлімінде  көрсетілген 
кесте  меңзер  сипаттізімінің    FROM  ең  сыртқы  бөлімінде  көрсетілген 
кесте болу керек.   
Егер меңзердің келесі жолын оқу қажет болса, онда FETCH NEXT 
операторын қайтадан орындау керек. 
Меңзер  деректерді  тҥрлендіру  ҥшін  пайдаланылуы  мҥмкін. 
Позициялық тҥрлендіру операциясының синтаксисі мынадай: 
UPDATE  <кестенің_аты>  SET  <бағанның_аты>=  (<мəні>  |  NULL} 
[{,<бағанның_аты>= {<мəні> | NULL}}...] 
WERE CURRENT OF <меңзердің_аты> 
Позициялық  жаңартудың  бір  операторы  меңзердің  ағымдағы 
позициясына сəйкес келетін, кесте жолдарының бағандарының бірнеше 
мəні  ауыстырылуы  мҥмкін.  Тҥрлендіру  операциясын  орындағаннан 
кейін меңзер позициясы өзгермейді.  
Жоюдың  (DELETE)  жəне  тҥрлендірудің  (UPDATE)  позициялық 
операторларын  қолдану  ҥшін  меңзер  SQL1  стандартына  сəйкес  келесі 
талаптарға сəйкес келу керек: 
•  меңзерге  байланысты  сҧраныс  деректерді  бір  бастапқы  кестеден 
оқу  керек,  яғни  (DECLARE  CURSOR)  меңзерді  айқындауға 
байланысты  SELECT  сҧраныстың  FROM  ҧсынысында  тек  бір  кесте 
белгілену керек; 
•  сҧраныста ORDER  BY  ретке  келтіру  параметрі  болмауы  мҥмкін. 
Меңзер жолдары мен бастапқы кестенің өзара сəйкестігі сақталу ҥшін 
меңзер ретке келтірілген деректер жинағын сəйкестендіру керек; 
•  сҧраныста DISTINCT өзекті сөзі болмауы керек; 
•  сҧраныста  топтастыру  операциясы  болмауы  керек,  яғни  онда 
GROUP BY немесе HAVING ҧсынысы болмауы керек; 
•  позициялық  жою  немесе  жаңарту  операцияларын  қолданғысы 
келетін  пайдаланушы  негізгі  кестеде  осы  операцияларды  орындауға 
тиісті қҧқыққа ие болу керек. 
 


Жаңарту операциялары ҥшін меңзерді пайдалану ДҚБЖ тарапынан 
ҧқсас  меңзермен  жҧмысты  айтарлықтай  кҥрделендіреді,  сондықтан 
позициялық  тҥрлендіруге  байланысты  операциялар  тек  оқу  ҥшін 
пайдаланылатын  меңзермен  операцияларға  қарағанда  аса  баяу 
орындалады.  Дəл  сондықтан  меңзерді  анықтау  операторында  егер 
тҥрлендіру  операциясы  ҥшін  осы  меңзерді  пайдаланғыңыз  келмесе, 
READ  ONLY  сөйлемін  көрсету  міндетті.  Егер  бастапқы  дəлдеу 
бойынша 
қосымша 
нҧсқаулар 
болмаса, 
ДҚБЖ 
тҥрлендіру 
мҥмкіндігімен меңзерді жасап шығарады. 
Меңзерлер  —  қосымшалардың  бизнес-логикасын  қалыптастыруға 
арналған  қолайлы  қҧрал,  алайда  тҥрлендіру  мҥмкіндігі  бар  меңзерді 
ашсаңыз, онда ДҚБЖ сіздің меңзеріңізге кірген негізгі кестенің барлық 
жолдарын  бҧғаттайды  жəне  осылай  басқа  пайдаланушылардың  осы 
кестемен жҧмысы бҧғатталады.  
Қажетті  бҧғаттау  санын  азайту  ҥшін,  интерактивті  бағдарламалар 
жҧмыс істеген кезде келесі ережелерді сақтаған жөн: 
•  транзакцияларды барынша қысқа ету керек
•  əрбір  сҧраныстан  кейін  жəне  бағдарлама  жасаған  өзгертулерден 
кейін барынша жылдам COMMIT аяқтау операторын орындау керек
•  пайдаланушымен қарқынды өзара əрекеттесу жҥзеге асырылатын 
немесе  деректердің  жолдары  көп  қаралатын  бағдарламалардан 
қашқақтау керек; 
•  егер  мҥмкін  болса,  онда  айналатын  меңзерлерді  (SCROLL) 
қолданбаған  жөн.  Себебі  олар  ашық  меңзерге  байланысты  барлық 
іріктеу жолдарының бҧғатталуын талап етеді
•  қарапайым  реттік  меңзерді  пайдалану  сізбен  параллельді  жҧмыс 
істейтін жəне сол кестелерді пайдаланатын басқа пайдаланушылардың 
бҧғатталуын  азайтатын,  FETCH  операциясы  орындалғаннан  кейін 
жҥйеге ағымдағы жолды бҧғаттаудан шығару мҥмкіндігін береді; 
•  егер мҥмкін болса, меңзерді READ ONLY деп айқындаңыз. 
Біз  клиент-сервер  модельдерін  қарастырған  кезде,  дерекқор 
серверлерінің  дамыған  модельдерінде  клиенттік  қосымшаның  бизнес-
логикасының  ҥлкен  бөлігі  клиентте  емес,  дəл  осы  серверде 
орындалады.  Ол  ҥшін  сақталатын  рəсімдер  деп  аталатын  жəне  ДҚ-да 
кестелер  мен  өзге  негізгі  объекттер  ретінде  сақталатын,  арнайы 
объекттер пайдаланылады.  
Осыған  орай,  қосымшаларда  пайдаланылуы  мҥмкін  меңзерлер 
əдетте сервер меңзерлері мен клиент меңзерлері деп бөлінеді.  
Сервердің  меңзері  серверде  қҧрылады  жəне  орындалады;  оған 
байланысты 
деректер 
клиенттің 
компьютеріне 
жолданбайды. 
Сервердің меңзерлері əдетте сақталатын рəсімдер немесе триггерлерде 
айқындалады.  


Клиенттің  меңзерлері  —  бҧл  клиентте  орындалатын  қолданбалы 
бағдарламаларда  айқындалатын  меңзерлер.  Осы  меңзерге  байланысты 
жолдар  жинағы  клиенттің  компьютеріне  жіберіліп,  сонда  өңделеді. 
Егер  меңзермен  ҥлкен  деректер  жинағы  байланысты  болса,  онда 
меңзерге  байланысты  жолдар  жинағын  жіберу  операциясы  желі  мен 
клиенттік  компьютердің  айтарлықтай  уақыты  мен  ресурстарын  алуы 
мҥмкін.  
Әрине, сервердің меңзерлері аса ҥнемді жəне жылдам орындалады. 
Сондықтан меңзерлерді пайдалануға байланысты соңғы ҧсыныс клиент 
меңзерінің  орнына  сервер  меңзерін  жиірек  пайдаланатындай, 
қосымшаңыздың жҧмыс істеу логикасын трансформациялау керек.  
 
9.5. 
Сақталатын рәсімдер 
ДҚ-мен  жҧмыс  істейтін  қосымшалар  тҧрғысынан  сақталатын 
рəсімдер  (Stored  Procedure)  —  бҧл  серверде  орындалатын  қосалқы 
бағдарламалар. ДҚ-ға қатысты - бҧл ДҚ-да жасалатын жəне сақталатын 
объекттер.  Олар  клиенттік  қосымшалардан  шақырылуы  мҥмкін.  Бҧл 
ретте  бір  рəсім  клиенттік  қосымшаның  кез-келген  мөлшерінде 
пайдаланылуы  мҥмкін,  бҧл  қолданбалы  бағдарламалық  жасақтаманы 
жасап  шығаруға  еңбек  шығынын  айтарлықтай  ҥнемдеу  жəне  кодты 
қайтадан  пайдалану  стратегиясын  тиімді  қолдану  мҥмкіндігін  береді. 
Кез-келген  рəсімдер  сияқты  бағдарламалаудың  стандартты  тілдерінде 
сақталатын рəсімдер кіреберіс жəне шығаберіс параметрлерге ие болуы 
мҥмкін немесе мҥлде болмауы мҥмкін.  
Сақталатын  рəсімдер  пайдаланушы  қосымшаларымен  ғана  емес, 
сондай-ақ триггерлермен белсендірілуі мҥмкін.  
Сақталатын  рəсімдер  бағдарламалаудың  арнайы  кіріктірілген 
тілінде  жазылады.  Олар  кез-келген  SQL  операторын  қҧрауы  мҥмкін, 
сонымен  қатар  бағдарламалаудың  рəсімге  бағдарланған  тілдерінің 
баламалы  операторларына  ҧқсас,  бағдарламаларды  орындау  барысын 
басқаратын  операторлар  жинағын  қҧрайды.  Коммерциялық  ДҚБЖ-де 
сақталатын  рəсімдердің  мəтіндерін  жазу  ҥшін  бағдарламалаудың 
меншік  тілдері  пайдаланылады.  Сонымен,  ДҚБЖ  Oracle-да  ол  ҥшін 
PL/SQL  тілі,  ал  MS  SQL  Server-де  Transact  SQL  тілі  пайдаланылады. 
Oracle-дің  соңғы  нҧсқаларында  сақталатын  рəсімдерді  жазу  ҥшін  Java 
тілін пайдалану жарияланған.   
Сақталатын  рəсімдер  ДҚ  объекттері  болып  табылады.  Әрбір 
сақталатын  рəсім  алғаш  орындау  кезінде  компиляцияланады. 
Компиляция  барысында  рəсімдерді  орындаудың  оңтайлы  жоспары 
қҧрылады.  Рəсімнің  сипаттамасы  оны  орындау  жоспарымен  бірге  ДҚ 
жҥйелік кестелерінде сақталады.  
Сақталатын  рəсімді  қҧру  ҥшін  SQL  CREATE  PROCEDURE 
операторы қолданылады. 


жүктеу 10,13 Mb.

Достарыңызбен бөлісу:
1   ...   52   53   54   55   56   57   58   59   ...   93




©g.engime.org 2024
әкімшілігінің қараңыз

    Басты бет
рсетілетін қызмет
халықаралық қаржы
Астана халықаралық
қызмет регламенті
бекіту туралы
туралы ережені
орталығы туралы
субсидиялау мемлекеттік
кеңес туралы
ніндегі кеңес
орталығын басқару
қаржы орталығын
қаржы орталығы
құрамын бекіту
неркәсіптік кешен
міндетті құпия
болуына ерікті
тексерілу мемлекеттік
медициналық тексерілу
құпия медициналық
ерікті анонимді
Бастауыш тәлім
қатысуға жолдамалар
қызметшілері арасындағы
академиялық демалыс
алушыларға академиялық
білім алушыларға
ұйымдарында білім
туралы хабарландыру
конкурс туралы
мемлекеттік қызметшілері
мемлекеттік әкімшілік
органдардың мемлекеттік
мемлекеттік органдардың
барлық мемлекеттік
арналған барлық
орналасуға арналған
лауазымына орналасуға
әкімшілік лауазымына
инфекцияның болуына
жәрдемдесудің белсенді
шараларына қатысуға
саласындағы дайындаушы
ленген қосылған
шегінде бюджетке
салығы шегінде
есептелген қосылған
ұйымдарға есептелген
дайындаушы ұйымдарға
кешен саласындағы
сомасын субсидиялау