Aktivizētāji vs kursori
Datu bāzē sprūda ir procedūra (koda segments), kas tiek automātiski izpildīta, kad tabulā / skatā notiek daži specifiski notikumi. Starp citiem lietojumiem trigeri galvenokārt tiek izmantoti, lai saglabātu integritāti datu bāzē. Kursors ir vadības struktūra, ko izmanto datu bāzēs, lai izietu cauri datu bāzes ierakstiem. Tas ir ļoti līdzīgs iteratoram, ko nodrošina daudzas programmēšanas valodas.
Kas ir trigeri?
Sprūda ir procedūra (koda segments), kas tiek automātiski izpildīta, kad datu bāzes tabulā / skatā notiek kādi īpaši notikumi. Starp citiem lietojumiem trigeri galvenokārt tiek izmantoti, lai saglabātu integritāti datu bāzē. Aktivizētājus izmanto arī biznesa noteikumu ieviešanai, datu bāzes izmaiņu pārbaudei un datu atkārtošanai. Visizplatītākie aktivizētāji ir datu manipulācijas valodas (DML) aktivizētāji, kas tiek aktivizēti, manipulējot ar datiem. Dažas datu bāzu sistēmas atbalsta ne-datu aktivizētājus, kas tiek aktivizēti, kad notiek datu definīcijas valodas (DDL) notikumi. Daži piemēri ir sprūda, kas tiek atlaisti, kad tiek izveidotas tabulas, notiek saistību veikšanas vai atcelšanas operācijas utt. Šos aktivizētājus var īpaši izmantot auditam. Oracle datu bāzes sistēma atbalsta shēmas līmeņa trigerus (ti, aktivizētājus, kas tiek aktivizēti, mainot datu bāzes shēmas), piemēram, After Creation, Before Alter, After Alter, Before Drop, After Drop, utt. Četri galvenie aktivizētāju veidi, kurus atbalsta Oracle, ir rindas līmeņa trigeri, Kolonnu līmeņa trigeri, katra rindas veida trigeri un katram paziņojuma veida trigeri.
Kas ir kursori?
Kursors ir vadības struktūra, ko izmanto datu bāzēs, lai izietu cauri datu bāzes ierakstiem. Tas ir ļoti līdzīgs iteratoram, ko nodrošina daudzas programmēšanas valodas. Papildus pārlūkošanai caur ierakstiem datu bāzē, kursori arī atvieglo datu izguvi, pievienošanu un dzēšanu. Nosakot pareizo ceļu, kursorus var izmantot arī, lai virzītos atpakaļ. Kad SQL vaicājums atgriež rindu kopu, tās faktiski tiek apstrādātas, izmantojot kursorus. Kursors ir jādeklarē un jāpiešķir nosaukums, pirms to varētu izmantot. Tad kursors ir jāatver, izmantojot komandu OPEN. Šī darbība novietotu kursoru tieši pirms rezultātu ierakstu pirmās rindas. Pēc tam kursoram ir jāveic FETCH operācija, lai faktiski iegūtu datu rindu lietojumprogrammā. Visbeidzot, izmantojot kursoru CLOSE, kursors ir jāaizver. Slēgtos kursorus var atkal atvērt.
Kāda ir atšķirība starp trigeri un kursoru?
Aktivizētājs ir procedūra (koda segments), kas tiek automātiski izpildīta, kad datu bāzes tabulā / skatā notiek kādi īpaši notikumi, savukārt kursors ir vadības struktūra, ko izmanto datu bāzēs, lai izietu cauri datu bāzes ierakstiem. Kursoru var deklarēt un izmantot sprūda ietvaros. Šādā situācijā deklarēšanas paziņojums būtu sprūda iekšpusē. Tad kursora darbības joma būtu ierobežota ar šo sprūdu. Trigera ietvaros, ja kursors tiek deklarēts ievietotā vai svītrotā tabulā, šāds kursors nebūtu pieejams no ligzdota sprūda. Kad sprūda ir pabeigta, visi kursori, kas izveidoti sprūda ietvaros, tiks atdalīti.