Vistas Con Procedimientos y Funciones
-
Upload
levano-castilla-carlos -
Category
Documents
-
view
239 -
download
0
Transcript of Vistas Con Procedimientos y Funciones
-
8/3/2019 Vistas Con Procedimientos y Funciones
1/15
Informe de LaboratorioImplementacin de bases de datos
Tema: Vistas con Procedimientos y Funciones
RESUMEN
El presente laboratorio consiste en indagar sobre Vistas con Procedimientos yFunciones desde su generalidad hasta ejemplos especficos, partiendo de unabase terica conceptual para afianzar los conocimientos previos que tengan losparticipantesLa investigacin se realizara en dos partes:1) La primera parte tratara sobre la concepcin, creacin, implementacin yseguridad de procedimientos almacenados2) Uso prctico de las vistas con procedimientos y funciones para su creacin ensus distintos tipos: Vistas complejas de subconjunto, Agrupadas y Compuestas
Con la presente investigacin se espera conocer y afianzar el uso de vistas conprocedimientos y funciones en nuestros sistemas.Para ello el equipo encargado del desarrollo del presente laboratorio estconformado por 7 personas cuyos roles se han definidos para mejor desarrollo dellaboratorio.
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 usaracomo recursos el gestor de base de datos SQL Server 2008, el tiemporecomendado para el desarrollo del laboratorio es de 10 minutos por laboratorio yel tiempo que ud requiera para asimilar bien la teora. Dicho punto es fundamentalpara 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 ellaboratorio solo ser de que Ud. cuente con la licencia necesaria para ejecutar elSQL 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
-
8/3/2019 Vistas Con Procedimientos y Funciones
2/15
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 columnaen 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 VIEWAS();
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 vAlquileresASSELECTnombre,
apellidos,matricula
FROMtAlquileres, tClientesWHERE tAlquileres.codigo_cliente = tClientes.codigo
-
8/3/2019 Vistas Con Procedimientos y Funciones
3/15
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 dosvistas, 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
-
8/3/2019 Vistas Con Procedimientos y Funciones
4/15
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 paraprocesar 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
-
8/3/2019 Vistas Con Procedimientos y Funciones
5/15
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. Porejemplo, 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
-
8/3/2019 Vistas Con Procedimientos y Funciones
6/15
d) Vistas compuestas
Una de las razones ms frecuentes para utilizar vistas es simplificar las consultasmultitabla. Especificando una consulta de dos o tres tablas en la definicin de lavista, 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 nicatabla virtual. Por ejemplo, supongamos que se efectan con frecuencia consultassobre la tabla PEDIDOS de la base de datos ejemplo y se desea trabajar con losnombres de los empleados y los clientes en vez de con sus cdigos. La siguientevista satisface esa demanda:
CREATE VIEWinfo_pedido(num_pedido,empresa,nombre_rep,importe)ASSELECT num_pedido,empresa,nombre,importe
FROM pedidos,clientes,repventasWHERE clie = num_clie AND rep = num_empl
-
8/3/2019 Vistas Con Procedimientos y Funciones
7/15
Entonces, podemos recurrir a esta vista para generar informes de forma ms
sencilla. Por ejemplo:
SELECT empresa,importe,nombre_rep FROM info_pedido WHEREimporte>20000ORDER 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 lasentencia ALTER VIEW, de forma muy parecida a como lo haciamos con lastablas. En este caso queremos aadir los campos fx_alquiler y fx_devolucion a lavista.
ALTER VIEW AS();
Ejemplo: Si deseamos modificar la vista vAlquilieres usamos la sgte sentencia :
ALTER VIEW vAlquileresASSELECT nombre,
apellidos,matricula,
fx_alquiler,fx_devolucion
FROM tAlquileres,tClientesWHERE ( tAlquileres.codigo_cliente = tClientes.codigo )
-
8/3/2019 Vistas Con Procedimientos y Funciones
8/15
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 dedatos 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 automticamentelos 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".
-
8/3/2019 Vistas Con Procedimientos y Funciones
9/15
LABORATORIO
VISTAS HORIZONTALES
Crear una vista donde se seleccione todos los campos de la tabla clientes
segn el cdigo de cliente sea (00001,00005)
CREATEVIEW consulta1ASSELECT*FROM ClienteWHERE 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)
-
8/3/2019 Vistas Con Procedimientos y Funciones
10/15
Nos da como resultado
Creamos una vista mostrando todos los datos del empleado donde su ciudad sea ('ica)
-
8/3/2019 Vistas Con Procedimientos y Funciones
11/15
Si queremos modificar la vista anterior
VISTAS VERTICALES
Crear una vista donde se muestre el apellido paterno y materno delempleado que realizo un movimiento en la fecha (2008-01-25) y cual fue elmonto del movimiento
CREATEVIEW consulta2AS
SELECTvch_emplpaterno,vch_emplmaterno,dtt_movifecha,dec_moviimporteFROM Movimiento INNERJOIN Empleado ONMovimiento.chr_emplcodigo = Empleado.chr_emplcodigoWHERE dtt_movifecha ='2008-01-25'
SELECT*FROM consulta2
-
8/3/2019 Vistas Con Procedimientos y Funciones
12/15
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.
-
8/3/2019 Vistas Con Procedimientos y Funciones
13/15
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.
-
8/3/2019 Vistas Con Procedimientos y Funciones
14/15
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.
-
8/3/2019 Vistas Con Procedimientos y Funciones
15/15
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
http://cnx.org/content/m18786/latest/http://cnx.org/content/m18786/latest/http://www.devjoker.com/html/Vistas.htmlhttp://www.slideshare.net/ZIscko/vistas-en-sql-y-my-sqlhttp://www.slideshare.net/ZIscko/vistas-en-sql-y-my-sqlhttp://informatica.uv.es/estguia/ATD/apuntes/teoria/documentos/SQL-III.pdfhttp://informatica.uv.es/estguia/ATD/apuntes/teoria/documentos/SQL-III.pdfhttp://informatica.uv.es/estguia/ATD/apuntes/teoria/documentos/SQL-III.pdfhttp://www.slideshare.net/ZIscko/vistas-en-sql-y-my-sqlhttp://www.devjoker.com/html/Vistas.htmlhttp://cnx.org/content/m18786/latest/