триггерлер. Sql тілі мліметтер орыны осымша объектілерін ру
Скачать 0.55 Mb.
|
SQL тілі: мәліметтер қорының қосымша объектілерін құру Дәріс 10 Сақталатын процедуралар, оларды құру, орындау және жою Сақталатын процедуралар (Stored Procedure)- олар байланысқан SQL-операторларының топтары. Сақталатын процедураларды пайдалану мәліметтер қорымен жұмыстың қосымша икемділігін қамтамасыз етеді, өйткені сақталатын процедураларды орындау SQL жеке операторлар тізбегінен әлдеқайда қарапайымдау : Сақталатын процедуралар логика бөлігін мәліметтер қорының серверіне шығаруға мүмкіндік береді. Ол ақпараттық жүйенің мәліметтер қорының клиенттік бөлігінен тәуелділігін әлсіретеді; Сақталатьын процедуралар жобаның модульдігін қамтамасыз етеді. Олар бір мәліметтер қорына хабарланатын клиенттік қосымшалар үшін жалпы болады, ол кодтың қайталануын болдырмайды және қосымша өлшемін кішірейтеді; Сақталатын процедуралар қосымшалардың бәрге жүруін оңайлатады:процедуралар жаңартқан кезде өзгерулер автоматты түрде барлық қосымшаларда бейнеленеді; Сақталатын процедуралар ақпараттық жүйенің жұмысының тиімділігін арттырады:олар клиентпен емес, желілік трафикті төмендететін сервермен орындалады; Сақталатын процедуралардың орындалу жылдамдығы жеке SQL операторлар тізбегінен жоғары. Сақталатын процедураларды пайдаланудың негізгі артықшылықтары Таңдау процедуралары қосымшалар оларды мәліметтерді таңдау операторында кесте немесе ұсыныстар орнына пайдалануы мүмкін Орындалатын процедуралар олар арнайы операторлар пайдаланылып шақырылады. Орындалатын процедура шақырылатын программаның нәтижелерін қайтармауы мүмкін Сақталатын процедуралар түрлері
Сақталатын процедуралар Курсор сұраныстардың нәтижелі кестенің әр жолын циклда қараструға мүмкіндік береді. Курсормен жұмыс істеуі файлмен жұмыс істеуіне ұқсас – алдмен курсорды ашу, ары қарай оқу және жабу Курсорлар 1 DECLARE курсор CURSOR FOR инструкция көмегімен курсор аты байланысадысұраныспен 2 OPEN операторы курсормен байланысқан сұранысты орындайды және нәтижелі кестенің бірінші жазбаның басына курсорды орнатады 3 FETCH операторы курсорды нәтижелі кестенің бірінші жазбаға әкеледі де жазбалардан деректерді таңдап сақтау процедураның локальды орналастырады. fetch оператордың қайта пайдалануы курсорды келесі жазбаға орналастырады және нәтижелі кестедегі жазбалар таусылып болғанша осылай орындала береді. Бұл операцияның циклде жүзеге асырылуы ыңғайлы 4. CLOSE операторы нәтижелелі кестеге қатынауды тоқтатады және курсор мен нәтижелі кесте арасындағы байланысты жояды Курсормен жұмыс істеу алгоритмі Триггер Триггерлер сақталатын процедуралардың бір түрі. Бірақ сақталатын процедуралардан айырмашылығы триггерлердің орындалуы SQL операторын шақыру нәтижесінде емес, мәліметтер қорына өзгерістер енгізетін мәліметтерді басқару операторларының бірінің орындалуы кезінде орындалады. Мұнда триггерлер мәліметтерді басқару операторларының орындалуына дейін де орындалады. Триггерлер қорыда деректердің сілтемелік тұтастығын қамтамасыз ету үшін пайдаланылады. Триггерлерді құру
Триггерлерді құру үшін CREATE TABLE операторы пайдаланылады: CREATE TRIGGER trigger_name trigger_time trigger_event ON tbl_name FOR EACH ROW trigger_stmt ; Оператор tbl_name кестемен байланысты trigger_name атты триггер құрады. Триггерді уақытша кестемен немесе ұсыныспен байланысуға болмайды. trigger_time конструкциясы триггердің орындалу уақытысын көрсетеді және екі мәнді қабылдай алады: Триггерлерді құру
before – триггердің әрекеттері кестені өзгерту операциясына дейін орындалады; after – триггердің әрекеттері кестені өзгерту операциясынан кейін орындалады. trigger_event конструкциясы қандай оқиғаға триггер әрекет жасайтынын, және үш мән қабылдай алады: insert – триггер кестеге жаңа жазба қосу оқиғасына байланысты; update – триггер кесте жазбаларын жаңарту оқиғасына байланысты; delete – триггер кесте жазбаларын жою оқиғасына байланысты Триггерлерді жоюТриггерлерді жоюСинтаксисі: DROP TRIGGER имя_триггера ТранзакцияТранзакцияТранзакция - басқа клиенттер тоқтата алмайтын бір операция ретінде орындалатын SQL операторлардың тізбегі. Кесте жазбаларымен жұмыс істеуі (жаңарту немесе жою) орындалғанша, басқа ешкім бұл деректерге қатынау жасауға мүмкіндігі жоқ, себебі MySQL автоматты түрде оларға қатынауға тиім салады. Транзакциялар операторларды топқа біріктіруге және топтың барлық операторлар жұмысының нәтижелісін қамтамасыз етеді. Егер транзакцияның бөлігі нәтижелі болмаса, транзакцияның барлық операторлардың орындалу нәтижелері жойылады да ДҚ транзакция орындалмас бұрын болатын түрге келтіріледі.
Бақылау сұрақтары: |