procedimeintos cursores y disparadores
TRANSCRIPT
-
7/21/2019 Procedimeintos Cursores y Disparadores
1/9
Procedimientos del almacenado
Qu son?
Son un conjunto de procedimientos almacenados fsicamente en una base
de datos (de ah su nombre). Estos pueden ser llamados por una
aplicacin eterna! un tri""er u otro procedimiento de almacenado.
#sos
$a implementacin de un SP %ara de un S&' a otro. $a maora lo
soportan de al"una forma. ependiendo del S&'! los SP pueden ser
implementados por %arios len"uajes de pro"ramacin! tales como SQ$!
*a%a! + +,,.
Estructura en ms-l
+E/0EP1+E#Enombre (par2metro)
3caractersticas4 definicin
Ejemplos
mysql> delimiter //
mysql> +E/0EP1+E#Eprocedimiento (IN cod 560)
-> 'E&56
-
7/21/2019 Procedimeintos Cursores y Disparadores
2/9
-> SE$E+0* 718tabla 9:EEcod_t = cod;
-> E6
-> //
1. +E/0EP1+E#Eprocedimiento2 (IN a 560E&E)
2. 'E&56
. E+$/E!ariable +:/(2");
#. I$ a > 1" 0:E6
%. SE0!ariable = &mayor a 1"';
. E$SE
. SE0!ariable = &menor o i+al a 1"';
,. E6I$;
. 56SE05601tabla ;/$#ES(!ariable);
1". E6
;entajasEl f2cil acceso modificacin de tablas utili
-
7/21/2019 Procedimeintos Cursores y Disparadores
3/9
es%entajas
:acen -ue la base de datos sea m2s pesada tanto para la memoria como
para el procesador. En %e< de estar concentrado en almacenar de%ol%er
datos! uno puede estarle pidiendo al S&' -ue realice %arias operacionesl"icas! la cual no es su funcin.
Slo contienen SQ$ declarati%o! as -ue es mu dificultoso escribir
procedimientos complejos para ne"ocios como en otros len"uajes de
pro"ramacin en la capa de aplicacin tales como *a%a! +=!+,,>
/l"unos S&' modernos (notablemente 8icrosoft SQ$ Ser%er @@@ en
adelante) no ofrecen nin"una %entaja de desempeAo usando SPB son
compilados almacenados en cach de la misma forma dnamic SQ$.
+#S1ES
Qu son?
En 8SQ$! los cursores son de solo lectura pueden recorrerse
Cnicamente en una direccin. / pesar de estas limitantes su uso en
procedimientos almacenados puede ser mu Ctil para ejemplificarlo %amos
a crear un procedimiento almacenado -ue nos de%uel%a una lista de correos
separada por punto coma (D). Su uso! claro! nos podra ser%ir para
-
7/21/2019 Procedimeintos Cursores y Disparadores
4/9
a-uellas aplicaciones -ue en%an correos a determinadas listas de
distribucin
#sos
Para implementar un cursor debemos tener en cuenta fases de su
funcionamientoB
eclaracin
/pertura
$ectura
+ierre
Estructura/l i"ual -ue una una %ariable! los c+rsoresse declaran con la
sentencia E+$/E. ebemos declararlos despus de nuestras
%ariables corrientes! de lo contrario 8SQ$! "enerar2 un error.
;eamos la sintaisB
E+$/E nombreFcursor +#S1 71 D
Ejemplos
E+$/E cursorFedad +#S1 71
SE$E+0 E/ 718 +$5E60E
http://www.hermosaprogramacion.com/2014/06/mysql-sql-server-variables.htmlhttp://www.hermosaprogramacion.com/2014/06/mysql-sql-server-variables.html -
7/21/2019 Procedimeintos Cursores y Disparadores
5/9
9:EE 618'E $5GE HaIHD
+E/0E P1+E#E processorders()'E&56
E+$/E ordernumbers +#S1
71
SE$E+0 ordernum 718 ordersD
E6D
;entajas
Es notorio -ue eisten m2s %entajas -ue des%entajas en el uso de
procedimientos.Es ejecutado directamente en el motor de bases de datos!
el cual usualmente corre en un ser%idor separado. +omo tal! posee acceso
directo a los datos -ue necesita manipular slo necesita en%iar sus
resultados de re"reso al usuario! deshacindose de la sobrecar"a
resultante de comunicar "randes cantidades de datos salientes
entrantes.Encapsulamiento de un proceso complejo o -ue podra re-uerir la
ejecucin de %arias consultas SQ$! tales como la manipulacin de un "ran
conjunto de datos para producir un resultado resumido. Esto reduce la
necesidad de codificar l"ica innecesaria en el pro"rama cliente tener unmejor manejo de la capa de ne"ocio de nuestra aplicacin.+entrali
-
7/21/2019 Procedimeintos Cursores y Disparadores
6/9
es%entajas
$a si"uiente informacin puede %ariar dependiendo del sistemas "estores
de bases de datos.ecuperar una fila del cursor puede resultar en un
retraso! conocido en in"ls como netJorK round trip! -ue se debe al
tiempo necesario para en%iar la peticin al S&' esperar los datos. Ello
supone la utili
-
7/21/2019 Procedimeintos Cursores y Disparadores
7/9
isparadores (tri""ers)
#n tri""er(o disparador) en una 'ase de datos! es un procedimiento-ue se
ejecuta cuando se cumple una condicin establecida al reali
-
7/21/2019 Procedimeintos Cursores y Disparadores
8/9
8SQ$M+E/0E 0/'$E account (actinium 560! amount E+58/$ (N@! ))DQuer 1G! @ roJs affected (@.@O sec)
8SQ$M+E/0E 05&&E 56S sum 'E71E 56SE0 16 account
M71 E/+: 19 SE0 sum R sum , 6E9. /mountD
Quer 1G! @ roJs affected (@.@ sec)
;entajas
Se"uridad de los datos mejoradaB
T1frecen che-ueos de se"uridad basada en %alores.5nte"ridad de los datos
mejoradaB
T7uer
-
7/21/2019 Procedimeintos Cursores y Disparadores
9/9
T$os tri""ers no se desarrollan pensando en unsolo re"istro! los mismos deben
funcionar enconjunto con los datos a -ue se disparan por operacin no por
re"istro.
TPor funcionalidad! no ha -ue poner en uno sololas funciones de
56SE0!#P/0E E$E0E.
T#tili