API серверінің курсорлары серверге әрекет етеді және ODBC, OLE DB, DB_Library үшін қосымшаның программалық интерфейсін жүзеге асырады;
клиент курсорлары клиенттің өзінде жүзеге асырылады.
Негізгі әдебиеттер: 1-5
Қосымша әдебиеттер: 6-17
13 Триггерлер. Триггердің анықтамасы және триггерді құру. Триггер типтері. Триггерді программалау Триггерлер сақталатын процедуралардың бір түрі болып саналады. Олардың орындалуы деректерді манипуляциялау тілінің (DML) қандай да бір операторын кесте үшін орындағанда жүзеге асады. Триггерлер деректердің тұтастығын тексеру үшін және де транзакцияларды шегіндіруге қолданылады.
Триггер – реляциялық деректер қоры ішінде анықталған жағдай болғанда орындалатын компиляцияланған SQL-процедура. Триггерлерді қолдану деректер қорын қолданушыларға қолайлы, бірақ олардың қолдануы енгізу-шығару операцияларына қосымша ресурстар шығындарымен жиі байланысты. Егер осы ресурстарды тиімді пайдалануда сақталатын процедуралар мен қолданбалы бағдарламалар қолданылса, триггерлерді қолданбауға болады. Триггерлер – деректер қорындағы деректер тұтастығын қолдауда қолдайтын ерекше құрал.
Тұтастыққа шектеу, ереже және үнсіз келісім бойынша мәндер көмегімен функционалдықтың керек деңгейіне жету әрдайым бола бермейді. Жиі деректер тексерісінің құрделі алгоритмді жүзеге асыруталап етіледі, олар дұрыс және ақиқатты кепілдік етеді. Керегінше байланысқан деректерді өзгертуге қатысты кейде кесте мәні өзгеруін бақылау қажет болады. Триггерлерді ереже, стандартты мәндер және т.б. сәйкес барлық операциялар орындалғаннан кейн іске қосылатын фильтр ретінде қарастыруға болады.
Триггерлер байланысқан кестедегі деректерді өзгерту әрекетінде сервермен аутоматты қосылатын сақталатын процедураның арнайы типі триггер болып табылады. Әрбір триггер нақты бір кестеге байланады. Онымен туындайтын барлық деректер модификациясы бір транзакция ретінде қарастырылады. Қате табылған жағдайда немесе деректер тұтастығы бұзылғанда осы транзакция шегіндіріледі. Осылайша өзгеріс енгізуге тыйым салынады. Соған қоса триггермен жасалған барлық өзгерістер бұзылады.
Триггерді тек деректер қорының иесі құрады. Бұл шектеу кесте құрылымының онымен басқа объектілердің байланыс тәсілдері және т.б. абайсызда өзгеруінен сақтайды.
Триггер пайдалы және де қауіпті құрал болып табылады. Оның жұмысының дұрыс емес логика кезінде толық деректер қорын оңай жоюға болады, сондықтан триггерлерді мұкияттылықпен құрау керек.
Жай ішкі программадан айырмашылығы, триггер триггерлік жағдайдың тууының әрбір жағдайында айқын емес орындалады, оған қоса ол аргументсіз болады. Оны іске қосу кейде триггер қосылуы дейді. Триггерлер көмегімен келесі мақсаттарға жетеміз:
тұтастық шектеулер көмегімен кесте үшін бекітілгендерді қолдау мүмкін болса, енгізілген деректердің дұрыстығына тексеріс және деректер тұтастығының құрделі шектеулерін орындау;
белгілі бір түрде жүзеге асырылған кесте жаңаруында кейбір әрекеттерді орындау қажеттілігін еске салатын ескертулерді шығару;
орындаған адамдар және енгізілген өзгерістер жайлы мәліметтерді фиксациялау көмегімен жинақтыру;
репликацияны қолдау.
Негізгі CREATE TRIGGER команда форматы төменде көрсетілген:
CREATE TRIGGER триггер_аты
BEFORE | AFTER <триггер_жағдай>
ON <кесте_аты>
[REFERENCING <жаңа_немесе_ескі_алиастар_тізімі> ]
[FOR EACH { ROW | STATEMENT}]
[WHEN (триггер_шарты) ]
<триггер_түрі>