martes, 17 de abril de 2018

Vistas en SQL SERVER



UNIVERSIDAD POLITECNICA AMAZONICA




INGENIERÍA DE SISTEMAS Y TELEMÁTICAS


                       Docente         : Marco Aurelio Porro Chulli

                       Asignatura     :BASE DE DATOS II.

                       Ciclo               : VIII  "A"

                       Integrantes     : Yanina Bustamante Jibaja.

                                                  Yenny Isabel Cuello Morón.




VISTAS



1.   Contenido

Ø Definición

Una vista es una tabla virtual cuyo contenido está definido por una consulta. Al igual que una tabla, una vista consta de un conjunto de columnas y filas de datos con un nombre. Sin embargo, a menos que esté indizada, una vista no existe como conjunto de valores de datos almacenados en una base de datos. Las filas y las columnas de datos proceden de tablas a las que se hace referencia en la consulta que define la vista y se producen de forma dinámica cuando se hace referencia a la vista.
Una vista actúa como filtro de las tablas subyacentes a las que se hace referencia en ella. La consulta que define la vista puede provenir de una o de varias tablas, o bien de otras vistas de la base de datos actual u otras bases de datos. Asimismo, es posible utilizar las consultas distribuidas para definir vistas que utilicen datos de orígenes heterogéneos. Esto puede resultar de utilidad, por ejemplo, si desea combinar datos de estructura similar que proceden de distintos servidores, cada uno de los cuales almacena los datos para una región distinta de la organización.
Las vistas suelen usarse para centrar, simplificar y personalizar la percepción de la base de datos para cada usuario. Las vistas pueden emplearse como mecanismos de seguridad, que permiten a los usuarios obtener acceso a los datos por medio de la vista, pero no les conceden el permiso de obtener acceso directo a las tablas base subyacentes de la vista. Las vistas pueden utilizarse para proporcionar una interfaz compatible con versiones anteriores con el fin de emular una tabla que existía, pero cuyo esquema ha cambiado. También pueden usarse para copiar datos entre SQL Server a fin de mejorar el rendimiento y crear particio.

Una vista se caracteriza porque:
ü  Se considera que forma parte del esquema externo.
ü  Una vista es una tabla virtual (no tiene una correspondencia a
nivel físico)
ü  Se puede consultar como cualquier tabla básica.
ü  Las actualizaciones se transfieren a la/s tabla/s original/es
(con ciertas limitaciones)

Ø  SINTAXIS

La sintaxis para la creación de vistas en SQL es la siguiente:

CREATE | REPLACE VIEW vista [(comalista_columna)]
AS expresión_tabla [with Chuck option]

en donde:

v     CREATE VIEW es la orden que permite la creación de la vista.
v     vista es el nombre de la tabla virtual que se va a crear.
v     (comalista_columna) son los nombres de los atributos de la tabla y es opcional.

ü     Si no se especifica, el nombre coincide con el nombre de los atributos
ü     resultantes en expresión_tabla.
ü     Es obligatorio si algún atributo de expresión_tabla es el resultado de una
ü     función de agregación o una operación aritmética.

Ø  ADMINISTRACIÓN DE VISTAS (CREACIÓN, MODIFICACIÓN Y ELIMINACIÓN)
CREACIÓN DE VISTAS.
Para crear una vista se utiliza el comando CREATE VIEW según el siguiente formato genérico.
SINTAXIS
CREATE VIEW nombredevista [(listadecolumnas)] AS consulta;
Donde:
ü  nombredevista es el nombre que tendrá la vista que se va a crear.
ü  listadecolumnas es opcional. Permite especificar un nombre para cada columna de la vista. Si no se especifica, cada columna quedará con el nombre asignado por la consulta.
ü  consulta es la SELECT que define la vista.
    CREATE VIEW view_dept_201
     AS SELECT emp_id, name, hire_date
     FROM gdb.employees
    WHERE department = 201;

Modificación de vistas.
La modificación de una vista no afecta a los objetos dependientes, como pueden ser los procedimientos almacenados o los desencadenadores, a menos que la definición de la vista cambie de tal modo que el objeto dependiente deje de ser válido. Si una vista que está actualmente en uso se modifica mediante ALTER VIEW, el Motor de base de datos impone un bloqueo exclusivo de esquema sobre la vista. Cuando se concede el bloqueo, y no hay usuarios activos de la vista, el Motor de base de datos elimina todas las copias de la vista de la caché de procedimientos.
SINTAXIS
ALTER VIEW [ schema_name . ] view_name [ ( column [ ,...n ] ) ]  
[ WITH <view_attribute> [ ,...n ] ]  
AS select_statement  
[ WITH CHECK OPTION ] [ ; ] 
<view_attribute> ::=  
{  
    [ ENCRYPTION ] 
    [ SCHEMABINDING ] 
    [ VIEW_METADATA ]      
}  

ELIMINACIÓN DE VISTAS.
SINTAXIS
DROP VIEW nombredevista ;
El siguiente ejemplo borrará la vista emple_dep30:
SQL> drop view emple_dep30 cascade constraints;

EJEMPLOS
1.- Crear una vista que muestre el subtotal de los pedidos
create view v_subtotal
as
select IdPedido,SUM(d.PrecioUnidad  * Cantidad * (1-d.Descuento ))as Subtotal
from DetallesDepedidos d
inner join Productos p
on d.IdProducto=p.IdProducto
group by IdPedido
go
select * from v_subtotal
go

2.-Crear una vista que liste NombreProducto, Nombre Categoría, Precio Unidad, Suspendido .
create view v_productos
as
select NombreProducto,NombreCategoría,PrecioUnidad,Suspendido from Productos p
inner join Categorías c on p.IdCategoría  =c.IdCategoría
go
select * from v_productos
order by NombreCategoría,NombreProducto
go
3.-Crear una vista que presente el total de pedido que tiene cada compañía de envió.
create view v_totalpedidos
as
select NombreCompañía,COUNT(*)as Total_Pedidos from v_compañia
group by NombreCompañía
go
select * from v_totalpedidos


2.   Resumen
Una vista es una tabla virtual cuyo contenido está definido por una consulta. Al igual que una tabla real, una vista consta de un conjunto de columnas y filas de datos con un nombre. Sin embargo, a menos que esté indexada, una vista no existe como conjunto de valores de datos almacenados en una base de datos. Las filas y las columnas de datos proceden de tablas a las que se hace referencia en la consulta que define la vista y se producen de forma dinámica cuando se hace referencia a la vista. Una vista actúa como filtro de las tablas a las que se hace referencia en ella. La consulta que define la vista puede provenir de una o de varias tablas, o bien de otras vistas de la base de datos actual u otras bases de datos. No existe ninguna restricción a la hora de consultar vistas y muy pocas restricciones a la hora de modificar los datos.
3.   Sumary
A view is a virtual table whose content is defined by a query. Like a real table, a view consists of a set of columns and rows of data with a name. However, unless it is indexed, a view does not exist as a set of data values ​​stored in a database. Rows and columns of data come from tables that are referenced in the query that defines the view and occur dynamically when the view is referenced. A view acts as a filter on the tables referenced in it. The query that defines the view can come from one or several tables, or from other views of the current database or other databases. There is no restriction when consulting views and very few restrictions when modifying data.
4.   Recomendaciones
ü  No se puede usar la cláusula ORDER BY en la creación de una vista ya que las filas de una tabla no están ordenadas (la vista es una tabla virtual). No obstante, si se puede utilizar dicha cláusula a la hora de recuperar datos de la vista.
ü  Es obligatorio especificar la lista de nombres de columnas cuando la consulta devuelve funciones de agrupamiento como SUM, COUNT, etcétera.
ü  No se pueden utilizar funciones de agrupación sobre columnas de vistas que se basan a su vez en funciones de agrupación ya que en la práctica supondría un doble agrupamiento que no está permitido por el estándar.

5.   Conclusiones
Las vistas son creadas para realizar consultas, son similares a las tablas, se formar referenciando a una o a varias tablas de las bases de datos, que se puede crear, también se puede modificar, eliminar y realizar procedimientos almacenados. Una vista es una tabla virtual (no tiene una correspondencia a Nivel físico).
6.   Apreciación del Equipo
Es fundamental trabajar con vistas porque tienes ventajas
Seguridad y confidencialidad: ya que la vista ocultará los datos confidenciales aquellos para los que el usuario no tenga permiso.
Comodidad: ya que solamente muestra los datos relevantes, permitiendo, incluso trabajar con agrupaciones de filas como si se tratase de una única fila o con composiciones de varias tablas como si se tratase de una única tabla.
Independencia respecto a posibles cambios en los nombres de las columnas, de las tablas, etcétera. 
7.   Glosario de Términos
ALTER VIEW: Su funcionalidad es la de modificar las vistas existentes en una base de datos.
VISTA: Una vista es una consulta que se presenta como una tabla (virtual) a partir de un conjunto de tablas en una base de datos relacional.
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.


8.   Linkografías
Linkografia de las Diapositivas





No hay comentarios:

Publicar un comentario