domingo, 6 de mayo de 2018

Procedimientos almacenados



CARRERA PROFESIONAL DE  : Ingeniería de Sistemas y Telemática

ASIGNATURA                                : Laboratorio de programación III

ESTUDIANTE                                :
ü  CHUQUIZUTA RAMOS, Marleni
ü  HERRERA SILVA, Carlos Jhonatan
CICLO                                              : VII

GRUPO                                            : A


      I.        Tema: Procedimientos Almacenados
1.    Contenido

a.    Definición
Los procedimientos almacenados pueden recibir y devolver información; para ello se emplean parámetros, de entrada y salida, respectivamente.
Conjunto de comandos que pueden ser ejecutados directamente en el servidor, es decir, será ejecutado por el servidor de Base de Datos y no por el programa cliente que lo accede, permitiendo la ejecución de una acción o conjunto de acciones específicas.

Elementos de los procedimientos almacenados
Los procedimientos almacenados están compuestos por algunos de estos elementos:
ü  Parámetros de entrada (pueden esperar parámetros)
ü  Parámetros de salida (pueden devolver resultados)
ü  Declaración de variables (puede usarse variables en su cuerpo)
ü  Cuerpo del procedimiento (en su cuerpo se indican las acciones a realizar)
Tanto los parámetros de entrada como los de salida son opcionales. Podemos tener un procedimiento que no tenga parámetros de entrada, pero sí de salida y viceversa. Como todo buen programador sabe, los parámetros de entrada sirven para pasarle datos al procedimiento que necesita para llevar a cabo una acción determinada. Los parámetros de salida devuelven al programa cliente que ejecutó el procedimiento el resultado del mismo.

b.    Sintaxis

CREATE PROCEDURE <nombre_procedure>
[@param1 <tipo>, ...]
 AS

 -- Sentencias del procedure
Para modificar un procedimiento almacenado debemos emplear la sentencia ALTER PROCEDURE.

 ALTER PROCEDURE <nombre_procedure> [@param1 <tipo>, ...]
 AS
 -- Sentencias del procedure
El siguiente ejemplo muestra un procedimiento almacenado, llamado spu_addCliente que añade clientes, o sea, inserta un registro en la tabla ‘Clientes’:

 CREATE PROCEDURE spu_addCliente
@nombre VARCHAR(100),
     @apellidos VARCHAR(100),
     @f_Naciento datetime,
     @email VARCHAR(50)
  AS
  INSERT INTO CLIENTES (nombre, apellidos, f_nacimiento, email)
 VALUES (@nombre, @apellidos, @f_naciento, @email)

c.    Administración de Procedimientos Almacenados

v  CREACION
Para crear una vista ejecute la instrucción siguiente para crear una vista muy sencilla que ejecuta una instrucción SELECT y devuelve los nombres y los precios de nuestros productos al usuario.

CREATE VIEW vw_Names
   AS
   SELECT ProductName, Price FROM Products;
GO

v  MODIFICACION

Si se modifican los datos de una vista, se modifica la tabla base.
Se puede insertar, actualizar o eliminar datos de una tabla a través de una vista, teniendo en cuenta lo siguiente, las modificaciones que se realizan a las vistas:
Ø  no pueden afectar a más de una tabla consultada. Pueden modificarse datos de una vista que combina varias tablas pero la modificación solamente debe afectar a una sola tabla.
Ø  No se pueden cambiar los campos resultados de un cálculo.
Ø  Pueden generar errores si afectan a campos a las que la vista no hace referencia. Por ejemplo, si se ingresa un registro en una vista que consulta una tabla que tiene campos not null que no están incluidos en la vista.
Ø  La opción "with check option" obliga a todas las instrucciones de modificación que se ejecutan en la vista a cumplir ciertos criterios que se especifican al definir la vista.

ALTER VIEW nombrevista
AS
SELECT FirstName, LastName, HireDate
FROM Employee
WHERE FirstName =’Maria’
GO

v  ELIMINACION
Después de crear una vista, puede eliminarla si no la necesita o si desea borrar la definición de la vista y los permisos asociados. Cuando se elimina una vista, las tablas y los datos en los que está basada no se ven afectados.
DROP VIEW [ schema_name . ] view_name [ ...,n ] [ ; ]

schema_name
Es el nombre del esquema al que pertenece la vista.

view_name
Es el nombre de la vista que se va a quitar.

d.    Ejemplos

USE AdventureWorks2012; 
GO 
CREATE PROCEDURE HumanResources.uspGetEmployeesTest2  
    @LastName nvarchar(50),  
    @FirstName nvarchar(50)  
AS  

    SET NOCOUNT ON; 
    SELECT FirstName, LastName, Department 
    FROM HumanResources.vEmployeeDepartmentHistory 
    WHERE FirstName = @FirstName AND LastName = @LastName 
    AND EndDate IS NULL; 
GO

ALTER PROCEDURE [dbo].[Insertar_Inventario]

 --Parámetros de entrada

 @Descripcion CHAR(15) = '',
 @No_inv CHAR(15),
 @Marca CHAR(15),
 @Modelo CHAR(15),
 @No_serie CHAR(15),
 @Puesto CHAR(3),
 @id INT = 0
 AS
 BEGIN
 SET NOCOUNT ON;

 -- Sentencia del procedimiento
 INSERT INTO Inventario (id, Descripcion, No_inventario, Marca, Modelo, No_serie, Puesto)
 VALUES(@id, @Descripcion, @No_inv, @Marca, @Modelo, @No_serie, @Puesto);
 END

El siguiente ejemplo muestra un procedimiento almacenado, llamado spu_addCliente que añade clientes, o sea, inserta un registro en la tabla ‘Clientes’:

 CREATE PROCEDURE spu_addCliente
 @nombre VARCHAR(100),
 @apellidos VARCHAR(100),
 @f_Naciento datetime,
 @email VARCHAR(50)
 AS
 NSERT INTO CLIENTES (nombre, apellidos, f_nacimiento, email)
 VALUES (@nombre, @apellidos, @f_naciento, @email)

Ahora crearemos un procedimiento almacenada para eliminar usuarios.
---se crea el procedimiento para eliminar usuarios
create procedure elminar_usuarios
---se declaran los parametros que usaremos
@nombre varchar(50),@apellido varchar(50)
as
---se hace un delete a la tabla usuarios  con los parametros que declaramos
delete usuarios
where nombre=@nombre and apellido=@apellido

2.    Resumen

Definición
Los procedimientos almacenados pueden recibir y devolver información; para ello se emplean parámetros, de entrada y salida, respectivamente.

Elementos de los procedimientos almacenados
Los procedimientos almacenados están compuestos por algunos de estos elementos:
ü  Parámetros de entrada (pueden esperar parámetros)
ü  Parámetros de salida (pueden devolver resultados)
ü  Declaración de variables (puede usarse variables en su cuerpo)
ü  Cuerpo del procedimiento (en su cuerpo se indican las acciones a realizar)

Sintaxis
Para Crear un procedimiento almacenado debemos emplear la sentencia CREATE PROCEDURE.

CREATE PROCEDURE <nombre_procedure>
[@param1 <tipo>, ...]
 AS

 Para modificar un procedimiento almacenado debemos emplear la sentencia ALTER PROCEDURE.

 ALTER PROCEDURE <nombre_procedure> [@param1 <tipo>, ...]
 AS


Administración de Procedimientos Almacenados

CREACION
Para crear una vista ejecute la instrucción siguiente para crear una vista muy sencilla que ejecuta una instrucción SELECT y devuelve los nombres y los precios de nuestros productos al usuario.

CREATE VIEW vw_Names
   AS
   SELECT ProductName, Price FROM Products;
GO

MODIFICACION

Si se modifican los datos de una vista, se modifica la tabla base.
Se puede insertar, actualizar o eliminar datos de una tabla a través de una vista.

ALTER VIEW nombrevista
AS
SELECT FirstName, LastName, HireDate
FROM Employee
WHERE FirstName =’Maria’
GO

ELIMINACION
Después de crear una vista, puede eliminarla si no la necesita o si desea borrar la definición de la vista y los permisos asociados. DROP VIEW [ schema_name . ] view_name [ ...,n ] [ ; ]

schema_name
Es el nombre del esquema al que pertenece la vista.

view_name
Es el nombre de la vista que se va a quitar.

3.    Summary

Definition

Stored procedures can receive and return information; For this, parameters, input and output, respectively, are used.
Elements of stored procedures
The stored procedures are composed of some of these elements:
ü  Input parameters (parameters can be expected)
ü  Output parameters (can return results)
ü  Declaration of variables (variables can be used in your body)
ü  Body of the procedure (the actions to be performed are indicated on your body)

Syntax
To create a stored procedure we must use the statement CREATE PROCEDURE.

CREATE PROCEDURE <procedure_name>
[@ param1 <type>, ...]
 ACE

 To modify a stored procedure we must use the ALTER PROCEDURE statement.

 ALTER PROCEDURE <procedure_name> [@ param1 <type>, ...]
 ACE


Administration of Stored Procedures

CREATION

To create a view, execute the following instruction to create a very simple view that executes a SELECT statement and returns the names and prices of our products to the user.

CREATE VIEW vw_Names
   ACE
   SELECT ProductName, Price FROM Products;
GO

MODIFICATION

If the data of a view is modified, the base table is modified.
You can insert, update or delete data from a table through a view.

ALTER VIEW nameview
ACE
SELECT FirstName, LastName, HireDate
FROM Employee
WHERE FirstName = 'Maria'
GO

ELIMINATION

After creating a view, you can delete it if you do not need it, or if you want to delete the view definition and associated permissions. DROP VIEW [schema_name. ] view_name [..., n] [; ]

schema_name
It is the name of the scheme to which the view belongs.

view_name
It is the name of the view that is to be removed.

4.    Recomendaciones

Ø  Los procedimientos almacenados son muy útiles sobre todo en arquitecturas cliente/servidor donde hay un servidor muy potente el cual se puede aprovechar para ejecutar procesos, consultas y actualizaciones complejas en la base de datos.

Ø  La cláusula ORDER BY solo se usa para determinar las filas devueltas por la cláusula TOP u OFFSET en la definición de la vista. Esta cláusula no garantiza resultados ordenados cuando se consulte la vista, a menos que también se especifique ORDER BY en la propia consulta.

5.    Conclusiones

Ø  Cuando se crea una vista, la información sobre ella se almacena en estas vistas de catálogo: sys.views, sys.columns y sys.sql_expression_dependencies. El texto de la instrucción CREATE VIEW se almacena en la vista de catálogo sys.sql_modules.

Ø  El resultado de una consulta que utiliza un índice de una vista definido con expresiones numeric o float podría diferir del resultado de una consulta similar que no utiliza el índice de la vista. Esta diferencia se podría deber a errores de redondeo durante las acciones INSERT, DELETE o UPDATE en las tablas subyacentes.

6.    Apreciación del Equipo

Ø  Las vistas te permiten un nivel de abstracción mayor, ya que podrías evitar que los usuarios accedieran directamente a las tablas.

Ø  Si estás preocupado por el rendimiento, asegúrate que las consultas que ejecutas tienen índices adecuados para resolverlas y que las llamadas las haces parametrizadas o a través de procedimientos almacenados.

7.    Glosario de Términos

Ø  ALTER VIEW: Su funcionalidad es la de modificar las vistas existentes en una base de datos.
Ø  CREATE VIEW: Crea una vista con un nombre de la vista.
Ø  DINAMICA: Es un conjunto de datos que se transforma a partir de un grupo de filas separadas para un grupo de columnas
Ø  DROP VIEW: permite eliminar la definición de una vista.
Ø  FILTROS SQL: son series de texto que se utilizan para especificar un subconjunto de elementos de datos en un tipo de datos interno o de base de datos SQL.
Ø  INSERT: Inserta filas en una tabla. Se corresponde con la “C” de CRUD.
Ø  SELECT: muestra información sobre los datos almacenados en la base de datos. Dicha información puede pertenecer a una o varias tablas. Es la “R”.
Ø  UPDATE: Actualiza información de una tabla. Es, obviamente, la “U”.
Ø  DELETE: Borra filas de una tabla. Se corresponde con la “D”.

8.    Bibliografía o Linkografía

9.    Linografía de slideshare









No hay comentarios:

Publicar un comentario