Tiggerek vs kurzorok
Egy adatbázisban a trigger egy eljárás (kódszegmens), amely automatikusan végrehajtódik, amikor bizonyos események előfordulnak egy táblában/nézetben. Egyéb felhasználási területei mellett a triggereket főként az adatbázis integritásának megőrzésére használják. A kurzor egy olyan vezérlőstruktúra, amelyet az adatbázisokban használnak az adatbázisrekordok áthaladására. Nagyon hasonlít a sok programozási nyelv által biztosított iterátorhoz.
Mik azok a triggerek?
A trigger egy eljárás (kódszegmens), amely automatikusan végrehajtásra kerül, amikor bizonyos események előfordulnak egy adatbázis táblájában/nézetében. Egyéb felhasználási területei mellett a triggereket főként az adatbázis integritásának megőrzésére használják. A triggereket az üzleti szabályok betartatására, az adatbázis változásainak auditálására és az adatok replikálására is használják. A leggyakoribb triggerek a Data Manipulation Language (DML) triggerek, amelyek az adatok manipulálásakor aktiválódnak. Egyes adatbázisrendszerek támogatják a nem adatalapú triggereket, amelyek az adatdefiníciós nyelv (DDL) eseményei esetén aktiválódnak. Néhány példa a triggerekre, amelyek táblák létrehozásakor, véglegesítési vagy visszaállítási műveletek során stb. indulnak el. Ezek a triggerek különösen auditálásra használhatók. Az Oracle adatbázisrendszer támogatja a sémaszintű triggereket (azaz az adatbázissémák módosításakor aktiválódó triggereket), mint például a létrehozás után, a módosítás előtt, a módosítás után, a ledobás előtt, az eldobás után stb. Az Oracle által támogatott négy fő triggertípus a sorszintű triggerek, Oszlopszintű triggerek, minden sortípus aktiválási szabály és az egyes nyilatkozattípushoz tartozó triggerek.
Mik azok a kurzorok?
A kurzor egy vezérlőstruktúra, amelyet az adatbázisokban használnak az adatbázisrekordok áthaladására. Nagyon hasonlít a sok programozási nyelv által biztosított iterátorhoz. Az adatbázisban lévő rekordok bejárásán túl a kurzorok az adatok visszakeresését, a rekordok hozzáadását és törlését is megkönnyítik. A helyes út meghatározásával a kurzorok visszafelé is használhatók. Amikor egy SQL-lekérdezés egy sor sorkészletet ad vissza, akkor azokat ténylegesen kurzorok segítségével dolgozzák fel. A kurzort deklarálni kell, és nevet kell rendelni ahhoz, hogy használni lehessen. Ezután a kurzort meg kell nyitni az OPEN paranccsal. Ez a művelet a kurzort közvetlenül a rekordok eredményhalmazának első sora elé helyezi. Ezután a kurzornak végre kell hajtania a FETCH műveletet, hogy ténylegesen egy adatsor kerüljön az alkalmazásba. Végül a kurzort be kell zárni a CLOSE művelettel. A bezárt kurzorok újra megnyithatók.
Mi a különbség a triggerek és a kurzorok között?
A trigger egy eljárás (kódszegmens), amely automatikusan végrehajtásra kerül, amikor bizonyos események fordulnak elő egy adatbázis táblájában/nézetében, míg a kurzor egy vezérlőstruktúra, amelyet az adatbázisokban használnak az adatbázisrekordokon való áthaladásra. A kurzor deklarálható és használható egy triggerben. Ilyen helyzetben a deklarációs utasítás a triggerben lenne. Ekkor a kurzor hatóköre erre a triggerre korlátozódik. Egy triggeren belül, ha egy kurzor deklarálva van egy beszúrt vagy törölt táblán, az ilyen kurzor nem érhető el beágyazott triggerből. Amint egy trigger befejeződött, az eseményindítón belül létrehozott összes kurzor kiosztásra kerül.