Vistas Con Procedimientos y Funciones

download Vistas Con Procedimientos y Funciones

of 15

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/