Sei sulla pagina 1di 15

Informe de Laboratorio Implementacin de bases de datos Tema: Vistas con Procedimientos y Funciones RESUMEN El presente laboratorio consiste en indagar

sobre Vistas con Procedimientos y Funciones desde su generalidad hasta ejemplos especficos, partiendo de una base terica conceptual para afianzar los conocimientos previos que tengan los participantes La investigacin se realizara en dos partes: 1) La primera parte tratara sobre la concepcin, creacin, implementacin y seguridad de procedimientos almacenados 2) Uso prctico de las vistas con procedimientos y funciones para su creacin en sus distintos tipos: Vistas complejas de subconjunto, Agrupadas y Compuestas Con la presente investigacin se espera conocer y afianzar el uso de vistas con procedimientos y funciones en nuestros sistemas. Para ello el equipo encargado del desarrollo del presente laboratorio est conformado por 7 personas cuyos roles se han definidos para mejor desarrollo del laboratorio. Angulo Mndez Angelo Rafael Salvador Levano Castilla Carlos Miguel Quispe Arcos Hans Donayre Chacaltana Robert Pardo Figueroa Herencia Jhonatan Carlos Daniel Pillpe Leon William Ramrez Gamboa Marlon

En el proceso de desarrollo de investigacin y ejecucin del laboratorio se usara como recursos el gestor de base de datos SQL Server 2008, el tiempo recomendado para el desarrollo del laboratorio es de 10 minutos por laboratorio y el tiempo que ud requiera para asimilar bien la teora. Dicho punto es fundamental para poder proseguir con los ejercicios, lea atentamente cada indicacin y teora, no intente avanzar a otro punto sin antes haber asimilado el punto anterior. Con respecto a los recursos financieros y el gasto que implica desarrollar el laboratorio solo ser de que Ud. cuente con la licencia necesaria para ejecutar el SQL Sever. Conocimientos previos requeridos: Manejo de Transact SQL para la implementacin de consultas estructuradas Manejo y conocimientos del gestor de base de datos SQL Server

DEFINICION En SQL, una vista es una tabla virtual en la base de datos cuyos contenidos estn definidos por una consulta. Para el usuario de la base de datos, la vista aparece igual que una tabla real, con un conjunto de columnas designadas y filas de datos. Pero a diferencia de una tabla real, una vista no existe en la base de datos como conjunto almacenado de valores. En su lugar, las filas y columnas de datos visibles a travs de la vista son los resultados producidos por la consulta que define la vista. CREACION DE VISTAS Para crear una vista debemos utilizar la sentencia CREATE VIEW, debiendo proporcionar un nombre a la vista y una sentencia SQL SELECT vlida. La sentencia CREATE VIEW puede asignar opcionalmente un nombre a cada columna en la vista recin creada. Si se especifica una lista de nombres de columnas, debe tener el mismo nmero de elementos que el nmero de columnas producido por la consulta.

CREATE VIEW <nombre_vista> AS (<sentencia_select>); Ejemplo: Crear una vista sobre nuestra tabla alquileres, en la que se nos muestre el nombre y apellidos del cliente en lugar de su cdigo.

CREATE VIEW vAlquileres AS SELECT nombre, apellidos, matricula FROM tAlquileres, tClientes WHERE tAlquileres.codigo_cliente = tClientes.codigo

a) Vistas horizontales Un uso de las vistas es restringir el acceso de un usuario a un conjunto de filas seleccionadas de una tabla. Por ejemplo, podramos querer que un director de ventas vea solamente las filas de la tabla REPVENTAS correspondientes a los vendedores de la regin del director. Para lograr esto, se pueden definir dos vistas, de la siguiente forma, que permiten a cada director ver tan solo los vendedores de su regin:

CREATE VIEW repeste AS SELECT * FROM repventas WHERE oficina_rep IN (11, 12, 13)

CREATE VIEW oficinaeste AS SELECT * FROM oficinas WHERE region = 'Este

b) Vistas verticales Otro uso habitual de las vistas es restringir el acceso de un usuario a slo ciertas columnas de una tabla. Por ejemplo, puede desearse que el departamento de procesamiento de pedidos solo pueda acceder al nmero de empleado, su nombre y la asignacin de oficina de cada vendedor, pues es informacin necesaria para procesar correctamente el pedido, pero no hay necesidad de que acceda al total de venta realizadas o a la cuota. Esta vista selectiva de la tabla REPVENTAS puede construirse con la vista siguiente: CREATE VIEW inforep AS SELECT num_empl, nombre, oficina_rep FROM repventa

CREATE VIEW infooficina AS SELECT oficina,ciudad,region FROM oficina

c) Vistas agrupadas
La consulta especificada en una definicin de una vista puede incluir una clusula GROUP BY. Este tipo de vista se denomina vista agrupada, ya que los datos visibles a travs de ella son el resultado de una consulta agrupada. Las vistas agrupadas efectan la misma funcin que las consultas agrupadas; agrupan filas relacionadas de datos y producen una fila de resultados de consulta para cada grupo, sumarizando los datos de ese grupo. Veamos un ejemplo: CREATE VIEW ped_por_rep(quien,cuantos,total,inf,sup,medio) AS SELECT rep,COUNT(*),SUM(importe),MIN(importe),MAX(importe),AVG(importe) FROM pedidos GROUP BY rep

Una vez que se define una vista agrupada, puede ser utilizada para simplificar consultas. Por ejemplo, la siguiente consulta genera un informe que sumariza los pedidos de cada vendedor: SELECT nombre,cuantos,total,medio FROM repventas,ped_por_rep WHERE Quien = num_empl ORDER BY total DESC

d) Vistas compuestas Una de las razones ms frecuentes para utilizar vistas es simplificar las consultas multitabla. Especificando una consulta de dos o tres tablas en la definicin de la vista, se puede crear una vista compuesta que extrae sus datos de dos o tres tablas diferentes y presenta los resultados de la consulta como una nica tabla virtual. Por ejemplo, supongamos que se efectan con frecuencia consultas sobre la tabla PEDIDOS de la base de datos ejemplo y se desea trabajar con los nombres de los empleados y los clientes en vez de con sus cdigos. La siguiente vista satisface esa demanda: CREATE VIEW info_pedido(num_pedido,empresa,nombre_rep,importe) AS SELECT num_pedido,empresa,nombre,importe FROM pedidos,clientes,repventas WHERE clie = num_clie AND rep = num_empl

Entonces, podemos recurrir a esta vista para generar informes de forma ms sencilla. Por ejemplo: SELECT empresa,importe,nombre_rep FROM info_pedido WHERE importe>20000 ORDER BY importe DESC

La vista hace mucho ms fcil de examinar lo que sucede en la consulta que si fuera expresada como la composicin equivalente de tres tablas.

Alteracion de vistas Si queremos, modificar la definicin de nuestra vista podemos utilizar la sentencia ALTER VIEW, de forma muy parecida a como lo haciamos con las tablas. En este caso queremos aadir los campos fx_alquiler y fx_devolucion a la vista. ALTER VIEW <nombre_vista> AS (<sentencia_select>); Ejemplo: Si deseamos modificar la vista vAlquilieres usamos la sgte sentencia : ALTER VIEW vAlquileres AS SELECT nombre, apellidos, matricula, fx_alquiler, fx_devolucion FROM tAlquileres,tClientes WHERE ( tAlquileres.codigo_cliente = tClientes.codigo )

BENEFICIOS E INCONVENIENTES DE LAS VISTAS Las vistas proporcionan una variedad de beneficios, pudiendo resaltarse los Siguientes: Seguridad: Cada usuario puede obtener permiso para acceder a la base de datos nicamente a travs de un pequeo conjunto de vistas que contienen los datos especficos que el usuario est autorizado a ver. Simplicidad de consulta: Una vista puede extraer datos de varias tablas diferentes y presentarlos como una nica tabla, haciendo que consultas multitabla se formulen como consultas de una sola tabla con respecto a la vista. Simplicidad estructurada: Las vistas pueden dar a un usuario una visin "personalizada" de la estructura que tiene la base de datos presentando est como un conjunto de tablas virtuales que tienen sentido para ese usuario. Aislamiento frente al cambio. Una vista representa una imagen consistente inalterada de la base de datos, incluso si las tablas fuente subyacentes se dividen, reestructuran o cambian de nombre. Integridad de datos. Si los datos se acceden y se introducen a travs de una vista, el gestor de la base de datos puede comprobar automticamente los datos para asegurarse que satisfacen restricciones de integridad especficas. Sin embargo, las vistas presentan tambin una serie de desventajas al utilizarlas en lugar de una tabla real. Estas desventajas son: Rendimiento: Las vistas crean la apariencia de una tabla, pero el gestor de la base de datos debe traducir las consultas con respecto a la vista en consultas con respecto a las tablas fuente subyacentes. Restricciones de actualizacin: Cuando un usuario trata de actualizar filas de una vista, el gestor de la base de datos debe traducir la peticin a una actualizacin sobre las filas de las tablas fuente. Esto es posible para vistas sencillas, pero vistas complejas no pueden ser actualizadas, son "de solo lectura".

LABORATORIO VISTAS HORIZONTALES Crear una vista donde se seleccione todos los campos de la tabla clientes segn el cdigo de cliente sea (00001,00005) CREATE VIEW consulta1 AS SELECT * FROM Cliente WHERE chr_cliecodigo IN (00001,0005) select * from consulta1

Creamos una vista donde se pueda visualizar todos los clientes donde su direccin sea (Lince, la molina)

Nos da como resultado

Creamos una vista mostrando todos los datos del empleado donde su ciudad sea ('ica)

Si queremos modificar la vista anterior

VISTAS VERTICALES Crear una vista donde se muestre el apellido paterno y materno del empleado que realizo un movimiento en la fecha (2008-01-25) y cual fue el monto del movimiento CREATE VIEW consulta2 AS SELECT vch_emplpaterno,vch_emplmaterno,dtt_movifecha,dec_moviimporte FROM Movimiento INNER JOIN Empleado ON Movimiento.chr_emplcodigo = Empleado.chr_emplcodigo WHERE dtt_movifecha = '2008-01-25' SELECT * FROM consulta2

VISTAS AGRUPADAS Se quiere hacer una VISTA AGRUPADA de las cuentas que posea un cliente, considerando cuantas cuentas posea el saldo total, la de menor saldo, la de mayor saldo y el saldo promedio entre cuentas.

VISTAS COMPUESTAS Se quiere hacer una VISTA COMPUESTA de los nombres y apellidos que posea un cliente, considerando cuantas cuentas posea el saldo total, la de menor saldo, la de mayor saldo y el saldo promedio entre cuentas.

Se quiere tener un informe del detalle de movimiento que contengan la fecha , apellidos completes, nombres el tipo de movimiento, el importe y la accion.

Referencias
http://cnx.org/content/m18786/latest/ http://www.devjoker.com/html/Vistas.html http://www.slideshare.net/ZIscko/vistas-en-sql-y-my-sql http://informatica.uv.es/estguia/ATD/apuntes/teoria/documentos/SQL-III.pdf

Potrebbero piacerti anche