Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Make your likes visible on Facebook?

Connect your Facebook account to Prezi and let your likes appear on your timeline.
You can change this under Settings & Account at any time.

No, thanks

Copy of Procedimientos Almacenados y Disparadores

No description
by

karen villarroel

on 5 February 2013

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of Copy of Procedimientos Almacenados y Disparadores

TESTLINK Sistema de Gestión de Pruebas INCREMENTA CONSULTORES Revisión de base de datos (BD)
Dato
Información
Base de datos (BD)
Motor de BD
Clasificación de BD
Según la variabilidad de datos
Según el contenido
Modelos de BD
BD jerárquicas
BD de red
BD relacionales
Otros modelos
Sistema de gestión de base de datos (SGBD)
Lenguaje de consulta estructurado (SQL)
Procedimiento almacenado (stored procedure)
Tipos de procedimientos almacenados
Ventajas
Sintaxis en SQL
Disparadores (triggers) Contenido Revisión de base de datos Dato Es una representación simbólica, un atributo o característica de una entidad. Un dato carece de significado por sí mismo pero al ser procesado, constituye información. Información Es un conjunto organizado de datos capaz de cambiar el estado de conocimiento del sujeto o sistema que recibe dicho grupo de datos. Revisión de base de datos Base de datos Es un conjunto de datos pertenecientes a un mismo contexto y almacenados sistemáticamente para su uso posterior.
Una biblioteca es una base de datos compuesta en su mayoría por documentos y textos impresos en papel e indexados para su consulta. Actualmente, y debido al desarrollo tecnológico de campos como la informática y la electrónica, la mayoría de las bases de datos están en formato digital (electrónico), lo que ofrece un amplio rango de soluciones al problema de almacenar datos. Clasificación de las bases de datos Las bases de datos se clasifican de varias maneras, de acuerdo al contexto, su utilidad o las necesidades que satisfagan. Según la variabilidad de datos Revisión de base de datos Bases de datos estáticas: son de sólo lectura, utilizadas primordialmente para almacenar datos históricos. Permiten realizar proyecciones a partir de un conjunto de datos a través del tiempo y tomar decisiones.
Bases de datos dinámicas: la información almacenada se modifica con el tiempo. Permite actualización, borrado y adición de datos, además de consultas. Se emplea en sistemas de información de comercios, tiendas y empresas en general. Según el contenido Bases de datos bibliográficas: un registro típico contiene información sobre el autor, fecha de publicación, editorial, título, edición, de una determinada publicación.
Bases de datos de texto completo: almacenan las fuentes primarias, como por ejemplo, todo el contenido de todas las ediciones de una colección de revistas científicas.
Directorios: un ejemplo son las guías telefónicas en formato electrónico.
Bases de datos o "bibliotecas" de información química o biológica: almacenan diferentes tipos de información proveniente de la química, las ciencias de la vida o médicas. Modelos de bases de datos Revisión de base de datos Un modelo de datos es básicamente una "descripción" de algo conocido como contenedor de datos, así como de los métodos para almacenar y recuperar información de esos contenedores. Los modelos de datos son abstracciones que permiten la implementación de un sistema eficiente de base de datos. Por lo general, se refieren a algoritmos, y conceptos matemáticos. Bases de datos jerárquicas En este modelo los datos se organizan en una estructura de árbol, en donde un nodo padre de información puede tener varios nodos hijos. El nodo que no tiene padres es llamado raíz, y a los nodos que no tienen hijos se los conoce como hojas. Son útiles en aplicaciones que manejan un gran volumen de información y datos muy compartidos. Su principal desventaja es no representar eficientemente la redundancia de datos. Base de datos de red Revisión de base de datos Ligeramente distinto al modelo jerárquico. Se modifica el concepto de nodo, permitiendo que un mismo nodo tenga varios padres. Fue una gran mejora con respecto al modelo jerárquico y ofrece una solución eficiente al problema de redundancia de datos. Su dificultad de administrar la información ha significado que sea un modelo utilizado en su mayoría por programadores y no usuarios finales. Bases de datos relacionales Revisión de base de datos Éste es el modelo utilizado en la actualidad para modelar problemas reales y administrar datos dinámicamente. El lugar y la forma en que se almacenan los datos no tienen relevancia (a diferencia de otros modelos como el jerárquico y el de red). Esto tiene la considerable ventaja de que es más fácil de entender y de utilizar para un usuario esporádico de la base de datos. La información puede ser recuperada o almacenada mediante "consultas" que ofrecen una amplia flexibilidad y poder para administrar la información. El lenguaje más habitual para construir las consultas a bases de datos relacionales es SQL (Structured Query Language) o Lenguaje Estructurado de Consultas. Otros modelos de bases de datos Bases de datos multidimensionales
Bases de datos orientadas a objetos
Bases de datos documentales
Bases de datos deductivas Sistema de gestión de base de datos (SGBD) Revisión de base de datos sdfsdfas Sistema de gestión de base de datos (SGBD) Revisión de base de datos Son un tipo de software muy específico, dedicado a servir de interfaz entre la base de datos, el usuario y las aplicaciones que la utilizan. El propósito general de los sistemas de gestión de bases de datos es el de manejar de manera clara, sencilla y ordenada un conjunto de datos que posteriormente se convertirán en información relevante para una organización. El uso de SGBD reporta las siguientes ventajas:
Simplifican la programación de equipos de consistencia.
Garantizan que los cambios de la base serán siempre consistentes (si se manejan las políticas de respaldo adecuadas).
Organizan los datos con un impacto mínimo en el código de los programas.
Disminuyen drásticamente los tiempos de desarrollo y aumentan la calidad del sistema si son bien explotados por los desarrolladores.
Usualmente, proveen interfaces y lenguajes de consulta que simplifican la recuperación de los datos.

Algunos sistemas libres: PostgreSQL, MySQL, Firebird, SQLite, DB2 Express-C, Apache Derby, MariaDB, Drizzle.
Sistemas no libres: Advantage Database, dBase, FileMaker, Fox Pro, gsBase, IBM DB2, IBM Informix, Interbase, Microsoft Access, Microsoft SQL Server, NexusDB, Oracle, otros. Un procedimiento almacenado es un programa (o subrutina) que se almacena físicamente en una base de datos. Se ejecuta directamente en el motor de la base de datos, en respuesta a una petición de usuario. Como el servidor posee acceso directo a los datos que necesita manipular, sólo necesita enviar sus resultados de regreso al usuario, deshaciéndose de la sobrecarga resultante de comunicar grandes cantidades de datos salientes y entrantes. La implementación de un procedimiento almacenado varía de un gestor de bases de datos a otro. Procedimiento Almacenado Resultan útiles cuando una base de datos es manipulada desde muchos programas externos. Al incluir la lógica de la aplicación en la base de datos, la necesidad de incorporar la misma lógica en todos los programas que acceden a los datos es reducida. Esto puede simplificar la creación y, particularmente, el mantenimiento de los programas involucrados. Un uso típico de los procedimientos almacenados incluye la validación de datos que son integrados a la estructura de base de datos (los procedimientos almacenados utilizados para este propósito se les denomina disparadores; triggers en inglés), así como encapsular un proceso grande y complejo. Procedimiento Almacenado Tipos de procedimientos almacenados Procedimiento Almacenado Procedimientos almacenados definidos por el usuario: son procedimientos definidos por el usuario que se deben llamar explícitamente.
Disparadores (triggers): son procedimientos definidos por el usuario que se ejecutan automáticamente cuando se modifica un dato en una tabla.
Procedimientos del sistema: procedimientos suministrados por el sistema.
Procedimientos extendidos: son procedimientos que hacen llamadas al sistema operativo y ejecutan tareas a ese nivel. SQL (por sus siglas en inglés Structured Query Language) es un lenguaje declarativo de acceso a bases de datos relacionales que permite especificar diversos tipos de operaciones sobre éstas. Surgió como parte de un proyecto de investigación de IBM y actualmente se ha convertido en un estándar de lenguaje de bases de datos. La mayoría de los sistemas de bases de datos lo soportan, desde sistemas para computadoras personales, hasta computadoras de alto rendimiento.

Por supuesto, a partir del estándar cada sistema ha desarrollado su propio SQL que puede variar de un sistema a otro, pero con cambios que no suponen ninguna complicación para alguien que conozca un SQL concreto.

SQL realiza funciones de definición, control y gestión de la base de datos. Las sentencias SQL se clasifican según su finalidad dando origen a tres ‘lenguajes’ o sub-lenguajes:

Lenguaje de Definición de Datos.
Lenguaje de Manipulación de Datos.
Lenguaje de Control de Datos. Lenguaje de Consulta Estructurado Lenguaje de definición de datos (DDL) El lenguaje de definición de datos (en inglés Data Definition Language, o DDL), es el que se encarga de la modificación de la estructura de los objetos de la base de datos. Incluye órdenes para modificar, borrar o definir las tablas en las que se almacenan los datos de la base de datos. Existen cuatro operaciones básicas: CREATE, ALTER, DROP y TRUNCATE.

CREATE: este comando crea un objeto dentro de la base de datos. Puede ser una tabla.
Ejemplo (crear una tabla): CREATE TABLE Empleado
(
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
Nombre VARCHAR(50),
Apellido VARCHAR(50),
Direccion VARCHAR(255),
Ciudad VARCHAR(60),
Telefono VARCHAR(15),
idCargo INT
) ALTER: este comando permite modificar la estructura de un objeto. Se pueden agregar/quitar campos a una tabla, modificar el tipo de un campo, agregar/quitar índices a una tabla, etc.
Ejemplo (agregar columna a una tabla): Lenguaje de Consulta Estructurado DROP: Este comando elimina un objeto de la base de datos. Puede ser una tabla, vista, índice, disparador, función, procedimiento o cualquier otro objeto que el motor de la base de datos soporte. Se puede combinar con la sentencia ALTER.
Ejemplo: ALTER TABLE 'NOMBRE_TABLA' ADD NUEVO_CAMPO INT UNSIGNED; DROP TABLE 'NOMBRE_TABLA'; TRUNCATE: Este comando trunca todo el contenido de una tabla. La ventaja respecto al comando DROP, es que si se quiere borrar todo el contenido de la tabla, es mucho más rápido.
Ejemplo: TRUNCATE TABLE 'NOMBRE_TABLA'; Lenguaje de Manipulación de Datos (DML) Lenguaje de Consulta Estructurado Un lenguaje de manipulación de datos (en inglés Data Manipulation Language, o DML) es un lenguaje proporcionado por el sistema de gestión de base de datos que permite a los usuarios llevar a cabo las tareas de consulta o manipulación de los datos, organizados por el modelo de datos adecuado.

INSERT: la sentencia INSERT de SQL agrega uno o más registros a una (y sólo una) tabla en una base de datos relacional.
Ejemplo: INSERT INTO agenda_telefonica (nombre, numero) VALUES ('Luis Vásquez', 04141234567); UPDATE: una sentencia UPDATE de SQL es utilizada para modificar los valores de un conjunto de registros existentes en una tabla.
Ejemplo: UPDATE My_table SET field1 = 'updated value asd' WHERE field2 = 'N'; Lenguaje de Consulta Estructurado DELETE: una sentencia DELETE de SQL borra uno o más registros existentes en una tabla.
Ejemplo: DELETE FROM My_table WHERE field2 = 'N'; Los disparadores (triggers en inglés) son definidos sobre la tabla en la que opera la sentencia INSERT y son evaluados en el contexto de la operación. Los disparadores BEFORE INSERT permiten la modificación de los valores que se insertará en la tabla, mientras que disparadores AFTER INSERT no pueden modificar los datos de ahora en adelante, pero se pueden utilizar para iniciar acciones en otras tablas, por ejemplo para aplicar mecanismos de auditoría. Más adelante se tratarán estos aspectos con más detalle. Ventajas Entre las ventajas de los procedimientos almacenados, destacan las siguientes:
Simplifican la ejecución de tareas repetitivas
Su ejecución es más rápida que las mismas instrucciones ejecutadas en forma interactiva
Reducen el tráfico a través de la red
Permiten validar los datos antes de entrar en la BD
Permiten el desarrollo modular de aplicaciones
Ayudan a proveer seguridad Sintaxis en SQL Procedimiento Almacenado Sintaxis simplificada para CREATE: create proc NombreProcAlm
as
instrucciones
return Ejemplo: create proc proc_update_titles
as
update titles
set price = price * $0.95
where total_sales < 3000
return Sintaxis simplificada para DROP: drop proc NombreProcAlm Ejemplo: drop proc proc_update_titles Sintaxis simplificada para ejecutar: [exec | execute] NombreProcAlm Ejemplo: execute proc_update_titles Variables Procedimiento Almacenado Los procedimientos almacenados pueden crear y usar variables locales
Las variables sólo existen mientras exista el procedimiento
Las variables no las puede usar otro procedimiento
Ejemplo: create proc proc_update_under_half_titles
as
declare @max_sales int, @half_max real
select @max_sales = max(total_sales)
from titles
select @half_max = @max_sales / 2
select title, total_sales from titles
where total_sales < @half_max
update titles
set price = price * $0.95
where total_sales < @half_max
return Procedimiento Almacenado Sentencias válidas e inválidas Un procedimiento almacenado puede:
Seleccionar y modificar datos
Crear tablas temporales y permanentes
Llamar otros procedimientos almacenados
Referenciar objetos de bases de datos

Un procedimiento almacenado no puede ejecutar:
use database
create view
create default
create rule
create procedure
create trigger Motor de la base de datos El motor de una base de datos es el conjunto de algoritmos que permite la gestión y optimización de la base de datos. Utiliza instrucciones específicas para almacenar, procesar y proteger los datos. Además, proporciona acceso controlado y procesamiento de transacciones para cumplir con los requisitos de las aplicaciones consumidoras de datos. Lenguaje de Consulta Estructurado Un disparador (o trigger) es un tipo particular de procedimiento almacenado que se ejecuta en forma autónoma cuando se cumple una condición establecida al realizar una operación. Dependiendo de la base de datos, los disparadores pueden ser de inserción (INSERT), actualización (UPDATE) o borrado (DELETE). Algunas bases de datos pueden ejecutar disparadores al crear, borrar o editar usuarios, tablas, bases de datos u otros objetos. Disparador Aplicaciones típicas Disparador Son usados para mejorar la administración de la Base de datos, sin necesidad de contar con que el usuario ejecute la sentencia de SQL.
Deshacer los cambios que afectan la integridad de los datos.
Permiten sincronizar tablas y mantener la consistencia de los datos.
Permite implementar programas basados en paradigma lógico (sistemas expertos, deducción).
Realizar ajustes sobre los registros.
Llevar un registro de todos los eventos asociados al manejo de la base de datos. Tipos de disparadores Disparador Estructura Llamada de activación: es la sentencia que permite "disparar" el código a ejecutar.
Restricción: es la condición necesaria para ejecutar el código. Esta restricción puede ser de tipo condicional o de tipo nulidad.
Acción a ejecutar: es la secuencia de instrucciones a ejecutar una vez que se han cumplido las condiciones iniciales. Según la cantidad de ejecuciones a realizar:

Disparadores de fila (o Row Triggers): son aquellos que se ejecutarán n-veces si se llama n-veces desde la tabla asociada al disparador.
Disparadores de secuencia (o Statement Triggers): son aquellos que sin importar la cantidad de veces que se cumpla con la condición, su ejecución es única. Restricciones vs Disparadores Ventajas de las restricciones:
Las restricciones (y reglas) se evalúan más rápido que los disparadores.
Las restricciones son de codificación simple.
Funcionan mejor para comprobar los datos antes de ingresarlos a la BD.
Ventajas de los disparadores:
Muy flexible.
Los disparadores pueden realizar cualquier tarea que se pueda programar.
Resultan apropiados en las reglas complejas que no se pueden expresar como restricciones referenciales (actualizaciones o borrados en cascada). Sintaxis en SQL Disparador Sintaxis simplificada para CREATE: create trigger NombreDisparador
on NombreTabla
for {insert | update | delete} [, {insert | update | delete} ...]
as
instrucciones Ejemplo: create trigger trg_i_sales
on sales
for insert
as
if datename (dd,getdate()) = "Sun"
begin
raiserror 40070, "Sales cannot be
processed on Sunday."
rollback trigger
end Sintaxis simplificada para DROP: drop trigger NombreDisparador Ejemplo: drop trigger trg_i_sales Lenguaje de Consulta Estructurado Lenguaje de Control de Datos (DCL) Un Lenguaje de Control de Datos (en inglés Data Control Language, o DCL) es un lenguaje proporcionado por el sistema de gestión de base de datos que incluye una serie de comandos SQL que permiten al administrador controlar el acceso a los datos contenidos en la base de datos. Contiene elementos útiles para trabajar en un entorno multiusuario y garantiza la protección de los datos, la seguridad de las tablas y el establecimiento de restricciones en el acceso, así como elementos para coordinar la compartición de datos por parte de usuarios concurrentes, asegurando que no interfieren unos con otros. Algunos ejemplos de comandos incluidos en el DCL son los siguientes:

GRANT: Permite dar permisos a uno o varios usuarios o roles para realizar tareas determinadas.
REVOKE: Permite eliminar permisos que previamente se han concedido con GRANT.

Las tareas sobre las que se pueden conceder o denegar permisos son las siguientes: CONNECT, SELECT, INSERT, UPDATE, DELETE, USAGE. Gracias por su atención
Full transcript