procedimeintos cursores y disparadores

Upload: ingtrespalacios

Post on 04-Feb-2018

224 views

Category:

Documents


0 download

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