Composición de un P.A. - Cuerpo. Procedimientos almacenados. Procedimientos almacenados. Composición de un P.A. - Cabecera.

Documentos relacionados
PROCEDIMIENTOS ALMACENADOS

TRIGGER LEONEL CADOSO ROMERO 1

LENGUAJE DE CONSULTA ESTRUCTURADO (SQL)

Tema 2 Introducción a la Programación en C.

Implementación de Procedimientos Almacenados

El Sistema Gestor de Base de Datos (DBMS)

GALA CONCEPTO COMMIT, ROOLBACK SAVEPOINTS (SAVE TRANSACTION) No Consultas. Definiciones Transacciones ( L33 )

Objetivos y Temario CURSO MySQL 5

Oracle Database: Programación con PL/SQL

Las optimizaciones pueden realizarse de diferentes formas. Las optimizaciones se realizan en base al alcance ofrecido por el compilador.

1. Lenguaje de Definición de Datos. 2. Lenguaje de Manipulación de. Datos. M. C. Gustavo Alfonso Gutiérrez Carreón

GUÍA DE TRABAJO GRADO 11. Media Fortalecida - SENA Programación de Software Ing. Néstor Raúl Suarez Perpiñan Página 1 de 6

SUBPROGRAMAS PL/SQL César Martínez C. Profesor Instructor de Base de Datos Sede Puente Alto DUOC

Curso Querying Microsoft SQL Server 2014 (20461)

Bases de Datos Relacionales

Vistas en MS SQL Server. Bases de Datos I Universidad Católica II Cuatrimestre

1

Bases de Datos. Diseño y Programación Avanzada de Aplicaciones. Curso

Gestion y Modelación de Datos Introducción

Implementación de procedimientos almacenados

APUNTADORES. Un apuntador es un objeto que apunta a otro objeto. Es decir, una variable cuyo valor es la dirección de memoria de otra variable.

Afinación y Rendimiento de Bases de Datos

Diseño arquitectónico 1ª edición (2002)

TEMA 2 Introducción a C# ANÁLISIS Y DESARROLLO DE APLICACIONES INFORMÁTICAS Curso 2010/2011

MS_2778 Writing Queries Using Microsoft SQL Server 2008 Transact-SQL

Procedimientos almacenados con parametros de salida

Programación MODULAR: Subalgoritmos - funciones y procedimientos

BASES DE DATOS TEMA 1 PERSPECTIVA DEL ÁREA DE BASES DE DATOS

Microsoft SQL Server 2008 Instalación y Configuración

Métodos que devuelven valor Dado el siguiente triángulo rectángulo:

m047a Curso Programando una Base de Datos SQL Server 2008, 36 h

ÍNDICE CAPÍTULO 1. TIPOS DE ALMACENAMIENTO DE LA INFORMACIÓN... 13

LÓGICA DE PROGRAMACIÓN

La última versión disponible cuando se redactó este manual era la 5 Beta (versión ), y sobre ella versa este manual.

MASTER PROFESIONAL C# 5 Y ASP.NET MVC 5

Sistemas Distribuidos. Bibliografía: Introducción a los Sistemas de Bases de Datos Date, C.J.

Modulo I: Introducción Gestores de Bases De Datos

COMUNICACIÓN ENTRE EL CLIENTE Y SERVIDOR SIN PHP Y CON PHP. INTÉRPRETE PHP Y GESTOR DE BASES DE DATOS (CU00804B)

Tema 3 SUBRUTINAS. Estructura de Computadores OCW_2015 Nekane Azkona Estefanía

Bases de datos. Diseño y gestión

UNIVERSIDAD NACIONAL DE INGENIERIA Dirección de Estudios de Posgrado y Educación Continua UNI-DEPEC

Procedimientos Almacenados

Diseño e Implementación SQL Server

Introducción a las Bases de Datos

Concepto de vista. (con ciertas limitaciones). nivel físico) Una vista es una tabla virtual (no tiene una correspondencia a

Todo programa en 'C' consta de una o más funciones, una de las cuales se llama main.

Herramientas Informáticas I Software: Sistemas Operativos

Unidad II: Análisis semántico

FUNCIONES PHP: DECLARACIÓN Y LLAMADAS. PARÁMETROS, RETURN. EJERCICIOS EJEMPLOS RESUELTOS. (CU00827B)

INGENIERÍA DEL SOFTWARE I Práctica 5 Modelado de Diseño

Modificación de datos

Introducción Objetivos Objetivos del Curso

Manejo de Bases de Datos Mysql en Lenguaje C

Oracle Database: Introducción a SQL

Implementación de Procedimientos Almacenados

ORACLE 10g. Descripción A QUIEN VA DIRIGIDO?

Curso Implementing and Maintaining Microsoft SQL Server 2008 Reporting Services (6236)

Manual del Integrador Contable Premium Soft

Oracle PL/SQL. Programa de Estudio.

//Sección de manejo de excepciones. Las rutinas de manejo de errores //aparecen aqui

Construyendo Programas más Complejos

Projecte/Treball Final de Carrera

SERVICIO NACIONAL DE APRENDIZAJE SENA SISTEMA INTEGRADO DE GESTIÓN Procedimiento Ejecución de la Formación Profesional Integral GUÍA DE APRENDIZAJE

DIPLOMADO EN MICROSOFT SQL SERVER 2008

WMS. La Solución SGI WAREHOUSE permite el control de las operaciones del día a día tanto a nivel de Picking, como de Envíos e Inventario.

Desarrollo de aplicaciones de acceso a base de datos con JBuilder 7

Instituto Schneider Electric de Formación

PROCEDIMIENTOS ALMACENADOS. Transact-SQL

Procedimientos almacenados en PL/SQL. Jonathan Medina Gómez Facultad de Ingeniería Universidad de Antioquia

Qué es un programa informático?

Materia requisito: DOMINIOS COGNITIVOS (Objetos de estudio, temas y subtemas) I. INTRODUCCION A LAS BASES DE DATOS

MANUAL BÁSICO DE MYSQL

UNIVERSIDAD NACIONAL DE SAN AGUSTÍN FACULTAD DE PRODUCCIÓN Y SERVICIOS ESCUELA PROFESIONAL DE INGENIERÍA DE SISTEMAS LABORATORIO DE BASES DE DATOS 1

2. Codificar de forma sistemática la secuencia de instrucciones en un lenguaje.

GUIA 2: Repaso sobre uso de C#. Funciones, métodos y arreglos.

Definimos un Sistema Gestor de Bases de Datos o SGBD, también llamado DBMS (Data Base Management System) como una colección de datos relacionados entr

ISC. Taller de Base de Datos. Alumno: D O C E N T E L.I. JOSE HERNANDEZ RODRIGUEZ

Gestor de Consultas Distribuidas Heterogéneas

Guía del Curso Técnico en Mantenimiento de CRM: Recursos Empresariales y de Gestión de Relaciones con Clientes

Métodos para escribir algoritmos: Diagramas de Flujo y pseudocódigo

Desde los programas más simples escritos en un lenguaje de programación suelen realizar tres tareas en forma secuencial.

La sintaxis básica para definir una clase es la que a continuación se muestra:

Aplicaciones web con MVC. Desarrollo de aplicaciones II

TÍTULO: BASES DE DATOS Disponibilidad Objetivos 5 Definicion de una base de datos 9 Datos de nomina (tabla) 9 Esquema de bases de datos (mapa

PA JOSÉ MANUEL BURBANO CARVAJAL

Introducción a Transact-SQL

Tema 2 Conceptos básicos de programación. Fundamentos de Informática

MANUALITO MS-SQL SERVER

TEMA 2: Sistemas Operativos

Sistemas de información Administrativa II

ACCEDER A BITÁCORA DE TRABAJO SQL SERVER

LENGUAJE DE MANIPULACIÓN DE DATOS

Unidad 1. CONCEPTOS DE BASES DE DATOS.

Procedimientos almacenados

índice MÓDULO 1: Introducción a Visual Basic 6.0 MÓDULO 2: Fundamentos de programación TEMA 1. Introducción a Visual Basic 6.0

TEMA 7: Ficheros. TEMA 7: Ficheros Concepto de fichero

MANUAL DE USUARIO PROCESOS ESPECIALES

MICROSOFT ACCESS 2016 Avanzado

Guía práctica de estudio 05: Diagramas de flujo

Bases de Datos 3º Informática de Sistemas

Transcripción:

Procedimientos almacenados (1ª Parte) Composición de un P.A. - Cabecera Una cabecera que define el nombre con el identificaremos a un P.A. Y lo diferenciaremos de otros. Los parámetros de entrada y salida. Opciones de procesamiento del P.A. Procedimientos almacenados Los procedimientos almacenados son objetos de BD que encapsulan colecciones de sentencias SQL transaccionales y que se almacenan para un uso posterior. Podríamos decir que son como las subrutinas y las funciones de otros lenguajes de programación Composición de un P.A. - Cuerpo El siguiente elemento es el cuerpo del P.A. Que contendrá una o mas sentencias SQL que se ejecutarán mas adelante CREATE PROC[EDURE] procedure_name [ {@parameter data_type} [= default] [OUTPUT] ] [,...n] AS sql_statement [...n]

Función de un P.A. Parámetros Uno de los propósitos principales de un procedimiento almacenado es el de devolver una serie de valores de una forma útil. Existen tres formas de devolver un resultado: 1-. Resultset 2-. Parámetros 3-. Valores de retorno Create procedure prgeteqid_2 @Make varchar(50), @Model varchar(50), @EqId int Output as select @EqId = EquipmentId where Make = @Make and Model = @Model Resultset Parámetros Para conseguir una lista de resultados, solo hemos de indicar una sentencia que devuelva una lista de valores (por ejemplo la clausula SELECT) También podemos utilizar la llamada a otro P.A. Que devuelva una lista de valores. Es posible devolver varias listas diferentes de valores. Para ello ejecutamos varios select en este P.A. o llamando a otros P.A. Algunos métodos de acceso a los datos como RDO pueden acceder a todas las listas de resultados que devuelve un P.A. Pero otros solo pueden recibir el primer conjunto o incluso devolver un error Declare @inteqid int Execute prgeteqid_2 'Toshiba', 'Portege 7020CT', @inteqid output Select @inteqid 'Equipment Identifier' Este lote devolverá el parámetro de salidaequipment Identifier -------------------- 1 (1 row(s) affected)

Valores de retorno Create Procedure prgeteqid_3 @Make varchar(50), @Model varchar(50) as Declare @inteqid int Select @inteqid = EquipmentId where Make = @Make and Model = @Model Create Procedure prgeteqid_3 @Make varchar(50), @Model varchar(50) as Return (select EquipmentId where Make = @Make and Model = @Model) Declare @inteqidint Execute@intEqId = prgeteqid_3 'Toshiba', 'Portege7020CT' Select @inteqid'equipment Identifier' Combinación de salidas Declare @inteqid int, @intstatuscode int Execute @intstatuscode = prgeteqid_2 'Toshiba', 'Portege 7020CT', @inteqid output Select @inteqid result, @intstatuscode ErrorCode El resultado de ejecutar este lote de instrucciones seria result ErrorCode ----------- ----------- 1 0 (1 row(s) affected) Combinación de salidas Create Procedure prgeteqid _2 @Make varchar(50), @Model varchar(50), @EqId int output As select @EqId = EquipmentId where Make = @Make and Model = @Model Return @@Error Parámetros opcionales Create Procedure prgeteqid _4 @Make varchar(50) = '%', @Model varchar(50) = '%' as Select * where Make Like @Make and Model Like @Model

Parámetros opcionales Tipos de P.A. Execute prgeteqid_4 'T%', 'Portege% Execute prgeteqid_4 'T%' Paso de parámetros por nombre Definido por el usuario (user-defined) System Extended Temporary Global temporary Remote Execute prgeteqid_4 @Model = 'T%' P.A. Con la opción WITH ENCRYPTION P.A. Definidos por el usuario CREATE PROC[EDURE] procedure_name [; number] [ {@ parameter data_type} [VARYING] [= default] [OUTPUT] ] [,... n] [WITH { RECOMPILE ENCRYPTION RECOMPILE, ENCRYPTION } ] [FOR REPLICATION] AS sql_statement [... n] Los que hemos visto hasta ahora.

P.A. De sistema Son procedimientos almacenados Se almacenan en la B.D. Del sistema (master y msdb) Tienen el prefijo sp_????? (System Procedure) El proceso de compilación y ejecución Parsing El parsing es un proceso durante el cual MS SQL Server comprueba que la sintaxis del comando sea correcta. Si no existe ningún error sistáctico se trocea la sentencia en unidades mas sencillas como las palabras claves, identificadores y operadores Ahora solo queda construir una estructura que describa la serie de pasos necesarios para realizar la operación que el cliente pide. Si el lote contiene una consulta, la estructura interna se llama árbol de consulta y si contiene un procedimiento: árbol de secuencia El proceso de compilación y ejecución Parsing Compilation Execution El proceso de compilación y ejecución Compilación El árbol de secuencia se utiliza para crear un plan de ejecución El módulo de optimización analiza el modo en el que la información puede ser recuperada de las tablas Se busca el modo mas rápido y que menos recursos utiliza. Es dec ir se busca eficiencia en tiempo y recursos. Añade operaciones extras como son la verificación de restricciones, los disparadores, comprobación de la seguridad, etc El resultado es una estructura llamada plan de ejecución TODAVÍA NO HEMOS EJECUTADO NADA

El proceso de compilación y ejecución Ejecución Reutilización de los planes de ejecución El plan de ejecución es almacenado en la cache de procedimiento y AHORA SI, ahora ejecutamos Pueden haber varios pasos en el plan de ejecución que se pueden enviar a diferentes módulos: el gestor de DML, el gestor DDL, el gestor de procedimientos, el gestor de transacciones el gestor de utilidades Los resultados son recogidos en la forma RESULTSET El RESULTSET es enviado al cliente Esta característica es lo que hace de los P.A. la mejor solución que tener almacenadas las consultas de mas uso. La misma consulta ejecutada N veces, requiere del gestor de BD realice los tres pasos de parsing, compilación y ejecución. En los P.A. pasamos directamente al plan de ejecución. Reutilización de los planes de ejecución Autoparametrización Sea la siguiente consulta SELECT FirstName, LastName, Phone, Fax, Email, OrgUnitId, UserName FROM Asset.dbo.Contact where ContactId= 3 Primero el SQL tratará de parametrizar la consulta de la siguiente forma, creando un plan de ejecución SELECT FirstName, LastName, Phone, Fax, Email, OrgUnitId, UserName FROM Asset.dbo.Contact wherecontactid = @P1 Reutilización de los planes de ejecución Los planes de ejecución se dividen en dos partes: El propio código que se ejecutará El contexto El código se puede compartir entre varios usuarios El contexto es propio de cada usuario Las consultas posteriores que coincidan con este plan, reutilizarán el esquema SELECT FirstName, LastName, Phone, Fax, Email, OrgUnitId, UserName FROM Asset.dbo.Contact wherecontactid = 11

Reutilización de los planes de ejecución El plan de ejecución se elimina de la cache por el proceso Lazywriter El P.E. se elimina cuando no ha sido utilizado por un tiempo. ó El P.E. Se elimina cuando ocurre alguna de estas cinco cosas Los datos han cambiado significativamente. Se han creado o eliminado índices. Las restricciones han cambiado o añadido o borrado. La distribución estadística de los índices han cambiado Se llama a sp_recompile Mantenimiento de la integridad de la B.D La tarea más importante de un administrador de base de datos es mantener la integridad de la misma. Si este administrador no es escrupuloso podremos encontrarnos con casos como los siguientes: Canada aparecía con 109 provincias. Una de ellas era Francia La dirección de correo de un cliente era. Hoy hace un día soleado Una misma impresora aparecía escrita de 10 formas distintas LA redundancia, redundancia, redundancia, hay que evitarla. El papel de los P.A. En el desarrollo de aplicaciones de base de datos Mantenimiento de la integridad de la B.D. Reglas complejas Esto es por el uso de aproximaciones procedimientales y no procedimientales Implementación consistentes de reglas de negocio y restricciones, todas ellas, complejas de implementar Diseño modular Mantenimiento Reducción del tráfico de red Ejecución mas rápida Control de la seguridad

Diseño modular Reducción del tráfico de red Los P.A. Permiten a los programadores encapsular las funcionalidades de negocio y facilitan a los usuarios (normalmente otros programas) una interfaz mas fácil. Los P.A. Se comportan como cajas negras. Los usuarios no tienen porque saber como estan implementados, sino qué es lo que hacen, qué parámetros hay que pasarles y qué resultado devuelven. Una de las principales desventajas de una arquitectura de servidor de ficheros o una estructura descentralizada es que existe un gran tráfico de datos entre el servidor y el cliente. Una buena construcción actual de B.D. Implica que el cliente reciba solo aquello que necesita. Los datos intermedios no se pasan. Las personas estan limitadas por la cantidad de información que son capaces de procesar. Los P.A. Facilitan esta labor Mantenimiento Ejecución mas rápida El proceso de diseñar un sistema es cíclico. Los sistemas necesitan ser revisados y mejorados. Ocultando la estructura de la B.D. Los administradores pueden reducir la necesidad de cambiar otros componentes (aplicaciones de clientes, componentes intermedios Los P.A. Tienen varias ventajas de rendimiento respecto a las consultas almacenadas Los P.A. Se almacenan de forma compilada en la cache de P.A. => cuando se necesitan, no tenemos que realizar el parsing y la recompilación. Los P.A. ya estan optimizados

Control de la seguridad Una señal de un sistema de base de datos es que evita que los usuarios accedan directamente a las tablas y fuerzan a utilizar los P.A. Para funciones específicas. Es más fácil gestionar los conjuntos de P.A. Por funcionalidad que gestionar una tabla a nivel de columnas.