1. INGENIERÍA DE SISTEMAS Y TELEMÁTICA
Tema :VISTAS
Curso : Base de datos II
Docente : Ing. Marco Aurelio Porro Chulli
Integrantes :
Ana Leydi Linares Serrano.
Delsi Yakelin Huamán Villanueva
3. *Definición
*Una vista es una alternativa para mostrar datos de varias tablas. Una vista
es como una tabla virtual que almacena una consulta. Los datos accesibles
a través de la vista no están almacenados en la base de datos como un
objeto.
*Entonces, una vista almacena una consulta como un objeto para utilizarse
posteriormente. Las tablas consultadas en una vista se llaman tablas base.
En general, se puede dar un nombre a cualquier consulta y almacenarla
como una vista.
4. *Las vistas permiten:
* ocultar información: permitiendo el acceso a algunos datos y manteniendo oculto el resto de la información que no se incluye
en la vista. El usuario opera con los datos de una vista como si se tratara de una tabla, pudiendo modificar tales datos.
* simplificar la administración de los permisos de usuario: se pueden dar al usuario permisos para que solamente pueda acceder
a los datos a través de vistas, en lugar de concederle permisos para acceder a ciertos campos, así se protegen las tablas base de
cambios en su estructura.
* mejorar el rendimiento: se puede evitar tipear instrucciones repetidamente almacenando en una vista el resultado de una
consulta compleja que incluya información de varias tablas.
* Podemos crear vistas con: un subconjunto de registros y campos de una tabla; una unión de varias tablas; una combinación de
varias tablas; un resumen estadístico de una tabla; un subconjunto de otra vista, combinación de vistas y tablas.
* Una vista se define usando un "select".
5. *Sintaxis
create view NOMBREVISTA as
SENTENCIAS SELECT
from TABLA;
*La sintaxis básica parcial para crear una vista es la siguiente:
*El contenido de una vista se muestra con un "select":
*select * from NOMBREVISTA;
6. * Administración de Vistas (Creación, Modificación y Eliminación)
*Creación de vistas
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
7. *Modificación de vistas
*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
8. *Eliminación de vistas
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.
9. *Ejemplos
CREATE VIEW infoArtesM AS
SELECT *
FROM ACTIVIDADES
WHERE codigo_actividad LIKE ‘AM%’;
CREATE VIEW activMayor6 AS
SELECT *
FROM ACTIVIDADES
WHERE cuota > 1000
10. *Resumen
Una vista es una alternativa para mostrar datos de varias tablas. Una vista es como una tabla
virtual que almacena una consulta. Los datos accesibles a través de la vista no están almacenados
en la base de datos como un objeto.
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.
11. *Recomendaciones
*En lo posible usar lo menos posible un ORDER BY dentro de la consulta y
dejarlo del lado del cliente o de la aplicación, ésta es una de las operaciones
que más consume recursos en una consulta.
*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.
*Cuando se realiza una consulta a través de una vista, el Motor de base de datos
se asegura de que todos los objetos de base de datos a los que se hace
referencia en algún lugar de la instrucción existen, que son válidos en el
contexto de la instrucción y que las instrucciones de modificación de datos no
infringen ninguna regla de integridad de los datos. Las comprobaciones que no
son correctas devuelven un mensaje de error. Las comprobaciones correctas
traducen la acción a una acción con las tablas subyacentes.
12. *Una vista solo se puede crear en la base de datos actual. CREATE VIEW debe ser
la primera instrucción en un lote de consultas. Una vista puede tener un máximo
de 1.024 columnas.
*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.
*Conclusiones
13. *Apreciación del Equipo
*Las vistas por lo general solo ayudan a simplificar la búsqueda de algo
*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.