Sie sind auf Seite 1von 12

TECNOLOGICO NACIONAL DE MEXICO

CAMPUS TUXTEPEC

ASIGNATURA:
Taller de Base de Datos
CARRERA:
Ingeniera en Sistemas Computacionales
SEMESTRE: 5to.

GRUPO: A

CATEDRATICO:
M.S.C Mara Luisa Acosta Sanjun
TRABAJO:
SQl Procedural
UNIDAD:
VI
PRESENTA:
Castellanos Rodrguez Oscar
No. de control:
12350180

29 de Noviembre del 2014, San Juan Bautista Tuxtepec, Oaxaca

ndice General.
Introduccin..3
6.1 Procedimientos almacenados....4
6.1.1 Modificacin de procedimientos almacenados..5
6.1.2 Eliminacin de procedimientos almacenados5
6.2 Disparadores..7
6.2 .1Eliminar disparadores.8
6.2.2 Activar/Desactivar disparadores9
6.2.3 Temporalidad de evento After/Before..9
6.2.4 Registros Old/New.10
Conclusin.11
Bibliografa.12

ndice de Tablas
Tabla 1: Pseudoregistros...10

INTRODUCCION
SQL es un lenguaje de programacin de propsito especial diseado para la gestin
de datos llev a cabo en un sistema de gestin de bases de datos
relacionales(RDBMS), o para procesamiento de flujo en un sistema de gestin de
flujo de datos relacional (RDSMS).
Originalmente basado en el lgebra relacional y el clculo relacional de tuplas , SQL
consiste en un lenguaje de definicin de datos y un lenguaje de manipulacin de
datos . El alcance de SQL incluye insercin de datos, consultar, actualizar y
borrar, esquema de creacin y modificacin, y el control de acceso a datos. Aunque
SQL se describe a menudo como, y en gran medida es, un lenguaje declarativo,
tambin incluye procesales elementos.
SQL fue uno de los primeros lenguajes comerciales para Edgar F. Codd 's modelo
relacional , como se describe en su influyente artculo 1970, "un modelo relacional
de datos para grandes bancos de datos compartidos. A pesar de no totalmente
adherido al modelo relacional como se describe por Codd , se convirti en el
lenguaje de base de datos ms ampliamente utilizado.

6.1 PROCEDIMIENTOS ALMACENADOS.


Los procedimientos almacenados son programas SQL que fueron compilados a
primera vez que se ejecutaron y luego se almacenaron para su uso posterior (Los
cuales se pueden almacenar y ejecutar con la instruccin Call (Silberschatz &
Sudarshan.)). Ofrecen una serie de ventajas sobre los programas que se escriben,

se ejecutan inmediatamente y luego nunca ms se usan.(Hasen)


Los procedimientos ya compilados se ejecutan muy rpidamente, estos pueden
recibir y retornar parmetros (Variables utilizadas para pasar datos hacia dentro y
hacia afuera de su procedimiento almacenado), que hace posible usar mdulos
utilitarios o dividir en mdulos programas grandes y complejos.(Hasen)
Los procedimientos almacenados son tiles en las siguientes circunstancias:
Si varias aplicaciones necesitan un mismo programa de bases de base de
datos, este ltimo se puede almacenar en el servidor e invocarlo desde esas
aplicaciones. Esto reduce la duplicidad del esfuerzo y mejora la modularidad
del software. (Elmasri & Navathe)
La ejecucin de un programa en el servidor puede reducir el coste derivado
de la transferencia y la comunicacin de datos entre el cliente y el servidor
en ciertas situaciones. (Elmasri & Navathe)
Estos procedimientos pueden mejorar la potencia de modelado de las vistas
al permitir que los usuarios de bases de datos cuenten con tipos ms
complejos de datos derivados. Adems, se pueden utilizar esos tipos para
comprobar restricciones ms complejas que quedan fuera de la
especificacin de aserciones y triggers. (Elmasri & Navathe)
La sintaxis MySQL de un procedimiento almacenado es la siguiente:

CREATE
PROCEDURE <nombre_procedure> [(<param1> [IN|OUT|IN OUT] <type>,
<param2> [IN|OUT|IN OUT] <type>, ...)]
BEGIN
-- Sentencias
END ; (Silberschatz & Sudarshan.)

6.1.1 Modificacin de procedimientos almacenados.


MySQL no proporciona la habilidad de modificar el contenido de un procedimiento
almacenados. Dado que el comando ALTER PROCEDURE, solo puede modificar
algunas caracteristicas del procedimiento. Si es necesario cambiar el cdigo SQL,
La mejor alternativa es borra dicho procedimiento. ; (Silberschatz &

Sudarshan.)

6.1.2 Eliminacin de procedimientos almacenados.


Para eliminar un procedimiento almacenado se usa el comando DROP
PROCEDURE.
Sintaxis
CREATE FUNCTION nombre (parmetro)
RETURNS tipo
[caractersticas] definicin
Puede haber ms de un parmetro (separados por comas) o puede no haber
ninguno. Los parmetros tienen la siguiente estructura: nombre tipo ;
(Silberschatz & Sudarshan.)
Donde:
nombre: es el nombre del parmetro.
tipo: es cualquier tipo de dato de los provistos por MySQL.
definicin: es el cuerpo del procedimiento y est compuesto por el
procedimiento en s: aqu se define qu hace, cmo lo hace y cundo lo
hace. ; (Silberschatz & Sudarshan.)
Un procedimiento se invoca usando un comando CALL, y slo puede pasar valores
usando variables de salida. Una funcin puede llamarse desde dentro de un
comando como cualquier otra funcin (esto es, invocando el nombre de la funcin),

y puede retornar un valor escalar. Las rutinas almacenadas pueden llamar otras
rutinas almacenadas. .(Hasen)

Ejemplo: Mostrar los municipios que pertenecen a un estado

DELIMITER //
CREATE PROCEDURE pMunicipio(IN id INTEGER)
BEGIN
SELECT * FROM nunicipios
WHERE idEstado = id
ORDER BY municipio LIMIT 20;
END //
DELIMITER ;

6.2 DISPARADORES
Un disparador (trigger) es un programa que se ejecuta automticamente cuando
se intenta hacer unas actualizacin determinada sobre un tabla especifica
(Hasen).
Se pueden definir 3 tipos de disparadores para cada tabla:
De insercin
De actualizacin
De borrado(Hasen)
Los disparadores (triggers) pueden usarse para implementar ciertas restricciones
en el modelo relacional. El esquema global debe ser capaz de lidiar con los
potenciales conflictos que aparezcan entre las restricciones. (Elmasri & Navathe)
Otra definicin para los disparadores
Un disparador es una orden que el sistema ejecuta de manera automtica como
efecto secundario de la modificacin de la base de datos, el cual puede cumplir con
operaciones bsicas (INSERT, DELETE o UPDATE). Para disear un mecanismo
disparador hay que cumplir dos requisitos: (Silberschatz & Sudarshan.)
Especificar las condiciones en las que se va a ejecutar el disparador. Esto se
descompone en un evento que causa la comprobacin del disparador y una
condicin que se debe cumplir para ejecutar el disparador. (Silberschatz &
Sudarshan.)
Especificar las acciones que se van a realizar cuando se ejecute el
disparador. (Silberschatz & Sudarshan.)

La base de datos almacena disparadores como si fuesen datos normales, por lo que
son persistentes y accesibles para todas las operaciones de la base de datos. Una
vez se almacena un disparador en la base de datos, el sistema de base de datos
asume la responsabilidad de ejecutarlo cada vez que ocurra el evento especificado
y se satisfaga la condicin correspondiente. (Silberschatz & Sudarshan.)

Los triggers constituyen una potente herramienta para mantener la integridad de la


base de datos, ya que pueden llevar a cabo cualquier accin que sea necesaria
para el mantenimiento de dicha integridad.Los triggers pueden llamar a otros
procedimientos y disparar otros triggers, pero no admiten parmetros y no pueden
ser invocados desde otros procedimientos. (Silberschatz & Sudarshan.)
Sintaxis para la creacin de un Trigger
CREATE TRIGGER NombreTrigger
AFTER Insert ON NombreTabla

Sintaxis de un disparador
DELIMITER
CREATE TRIGGER nombre
{BEFORE | AFTER } // Temporalidad del Evento
{INSERT | DELETE | UPDATE} ON <tabla>
[FOR EACH ROW] //Granularidad
BEGIN
cuerpo del trigger
END;
DELIMITER ; (Silberschatz & Sudarshan.)
Nota: Si queremos indicar que se deben dar secuencias de pasos ms largas, deberemos tener en cuenta dos cosas:
cuando sean varias rdenes, debern encerrarse entre BEGIN y END; adems, como cada una de ellas terminar
en punto y coma, deberemos cambiar momentneamente el "delimitador" (DELIMITER) de MySQL, para que no
piense que hemos terminado en cuanto aparezca el primer punto y coma :

6.2.1 Eliminar un disparador


Para eliminar un disparador utulizamos la siguientes sintaxis .( Raghu & Gehrke)
DROP TRIGGER nombre_disparador;

6.2.2 ACTIVAR/ DESACTIVAR DISPADORES


Existen dos opciones.
ALTER TRIGGER nombre_disparador {DISABLE | ENABLE};
ALTER TABLE nombre_tabla {ENABLE | DISABLE} ALL TRIGGERS; .(
Raghu & Gehrke)
La ejecucin del disparador puede ser antes (before) o despus (after) de llevar a
cabo la sentencia disparadora. Es posible especificar condiciones adicionales para
la ejecucin del disparador (restrictores).
Dado que una sentencia disparadora puede afectar una o ms filas de una tabla,
es necesario especificar si se quiere que el disparador se ejecute para cada una
de las filas afectadas o para el bloque en general. (Silberschatz & Sudarshan.)

Para disear un disparador hay que cumplir 2 requisitos:


Especificar las condiciones en las que se va a ejecutar el disparador. Esto
se descompone en un evento que causa la comprobacin del disparador
y una condicin que se debe cumplir para ejecutar el disparador.
Especificar las acciones que se van a realizar cuando se ejecute el
disparador.

(Silberschatz & Sudarshan.)

6.2.3 Temporalidad del Evento: AFTER / BEFORE


BEFORE: Ejecutan la accin asociada antes de que la sentencia sea ejecutada
Decidir si la accin debe realizarse o no
Utilizar valores alternativos para la sentencia (Silberschatz & Sudarshan.)

Sintaxis
CREATE TRIGGER NombreTrigger
BEFORE Insert ON NombreTabla .

AFTER: Ejecutan la accin asociada despus de que se haya ejecutado la


sentencia.( Raghu & Gehrke)

6.2.3 Registros old y new.


Estas variables se utilizan del mismo modo que cualquier otra variable, con la
salvedad de que no es necesario declararlas, son de tipo %ROWTYPE y
contienen una copia del registro antes (OLD) y despus (NEW) de la accin SQL
(INSERT, UPDATE, DELETE) que ha ejecutado el trigger. Utilizando esta
variable podemos acceder a los datos que se estn insertando, actualizando o
borrando. (Silberschatz & Sudarshan.)
De uso exclusivo en los disparadores de nivel de fila, si se intenta hacer referencia
a cualquiera de los dos dentro de otro tipo de disparador, se obtendr un error de
compilacin. (Silberschatz & Sudarshan.)

La siguiente tabla resume los valores regresados por estos pseudoregistros en


diferentes eventos

Tabla 1.- Pseudoregistros

10

CONCLUSIN
En esta unidad vimos y tocamos lo temas de disparadores y procedimientos
almacenados, los cuales estn mutuamente ligados, porque?, porque un
procedimiento almacenado como vimos es aquel que se compilaron y se guardaron
para posteriormente usarlo y los disparadores diremos que son un tipo de
almacenador en el cual podemos invocar a un procedimiento almacenado para que
lo ejecute dependiendo lo que se quiera hacer.
Y al igual dentro de los disparadores existen un buen nmero de operaciones aparte
de la bsicas y por las cuales recomendamos utilizar disparadores en bases de
datos.

11

BIBLIOGRAFIA
Raghu Ramakrishnan, Johanes Gehrke. (2007) Sistemas de gestin de
bases de datos. 3er. edicin. Mc. Graw-Hill
Silberschatz, Korth & Sudarshan. (2002). Fundamentos de Base de Datos.
Mc Graw Hil. Cuarta Edicin. Espaa.
Hasen W. Gary & Hasen V. James() Diseo y administracin de bases de
datos 2da. Edicin. Madrid, Espaa.
Ramez Elmasr. (2007). Fundamentos de Bases de Datos. Addison Wesley.
5ta Edicin. Madrid, Espaa

12

Das könnte Ihnen auch gefallen