Триггерлер мен курсорлар
Дерекқорда триггер кестеде/көріністе кейбір нақты оқиғалар орын алған кезде автоматты түрде орындалатын процедура (код сегменті) болып табылады. Басқа қолданулардың арасында триггерлер негізінен дерекқордағы тұтастықты сақтау үшін қолданылады. Курсор – дерекқор жазбалары арқылы өту үшін дерекқорларда қолданылатын басқару құрылымы. Ол көптеген бағдарламалау тілдерімен қамтамасыз етілген итераторға өте ұқсас.
Триггерлер дегеніміз не?
Триггер дерекқордың кестесінде/көрінісінде кейбір нақты оқиғалар орын алған кезде автоматты түрде орындалатын процедура (код сегменті). Басқа қолданулардың арасында триггерлер негізінен дерекқордағы тұтастықты сақтау үшін қолданылады. Триггерлер сонымен қатар бизнес ережелерін орындау, дерекқордағы өзгерістерді тексеру және деректерді көшіру үшін қолданылады. Ең көп таралған триггерлер деректерді өңдеу кезінде іске қосылатын Деректерді өңдеу тілі (DML) триггерлері болып табылады. Кейбір дерекқор жүйелері Data Definition Language (DDL) оқиғалары орын алған кезде іске қосылатын деректер емес триггерлерді қолдайды. Кейбір мысалдар кестелер жасалғанда, орындау немесе кері қайтару операциялары орын алғанда және т.б. кезінде іске қосылатын триггерлер болып табылады. Бұл триггерлер әсіресе аудит үшін пайдаланылуы мүмкін. Oracle дерекқор жүйесі схема деңгейіндегі триггерлерді (яғни, дерекқор схемалары өзгертілген кезде іске қосылатын триггерлерді) қолдайды, мысалы, Жасалғаннан кейін, Өзгертуге дейін, Өзгертуден кейін, Түсіруден бұрын, Түсіруден кейін және т.б. Oracle қолдайтын триггерлердің төрт негізгі түрі: Жол деңгейі триггерлері, Баған деңгейінің триггерлері, әрбір жол түрі триггерлері және әрбір мәлімдеме түрі үшін триггерлер.
Меңзер дегеніміз не?
Меңзер – дерекқор жазбалары арқылы өту үшін дерекқорларда қолданылатын басқару құрылымы. Ол көптеген бағдарламалау тілдерімен қамтамасыз етілген итераторға өте ұқсас. Дерекқордағы жазбалар арқылы өтуден басқа, курсорлар деректерді іздеуді, жазбаларды қосуды және жоюды жеңілдетеді. Дұрыс жолды анықтау арқылы курсорларды артқа жылжу үшін де пайдалануға болады. SQL сұрауы жолдар жинағын қайтарғанда, олар шын мәнінде курсорлар арқылы өңделеді. Меңзерді пайдалану үшін оны жариялау және оған атау беру керек. Содан кейін курсорды OPEN командасы арқылы ашу керек. Бұл әрекет курсорды жазбалардың нәтиже жинағының бірінші жолының дәл алдына қояды. Содан кейін курсор қолданбаға деректер жолын нақты алу үшін FETCH әрекетін орындауы керек. Соңында, CLOSE операциясы арқылы курсорды жабу керек. Жабық курсорларды қайта ашуға болады.
Триггерлер мен курсорлардың айырмашылығы неде?
Триггер дерекқордың кестесінде/көрінісінде кейбір нақты оқиғалар орын алған кезде автоматты түрде орындалатын процедура (код сегменті), ал курсор дерекқор жазбалары арқылы өту үшін дерекқорларда қолданылатын басқару құрылымы болып табылады. Курсорды триггер ішінде жариялауға және пайдалануға болады. Мұндай жағдайда декларация мәлімдемесі триггердің ішінде болады. Сонда курсордың ауқымы сол триггермен шектеледі. Триггер ішінде курсор енгізілген немесе жойылған кестеде жарияланған болса, мұндай курсор кірістірілген триггерден қол жетімді болмайды. Триггер аяқталғаннан кейін триггер ішінде жасалған барлық курсорлар бөлінбейді.