Sei sulla pagina 1di 17

Implementacin de vistas

Introduccin

Introduccin a las vistas Ventajas de las vistas

Definicin de vistas
Modificacin de datos mediante vistas Optimizacin del rendimiento mediante vistas Prctica: Implementacin de vistas

Introduccin a las vistas


Employees
EmployeeID 1 2 3 LastName Davolio Fuller Leverling Firstname Nancy Andrew Janet Title ~~~ ~~~ ~~~
USE Northwind GO CREATE VIEW dbo.EmployeeView AS SELECT LastName, Firstname FROM Employees

EmployeeView
Lastname Davolio Fuller Leverling Firstname Nancy Andrew Janet Vista del usuario

Ventajas de las vistas

Centrar el inters en los datos de los usuarios


Centrarse slo en los datos importantes o adecuados


Limitar el acceso a los datos confidenciales

Enmascarar la complejidad de la base de datos


Ocultar el diseo de la base de datos compleja


Simplificar las consultas complejas, incluyendo las consultas distribuidas a datos heterogneos

Simplificar la administracin de los permisos de usuario Mejorar el rendimiento Organizar los datos para exportarse a otras aplicaciones

Definicin de vistas

Creacin de vistas Ejemplo: Vista de tablas combinadas

Modificacin y eliminacin de vistas


Evitar la interrupcin de las cadenas de pertenencia Ubicacin de la informacin de definicin de vistas Ocultacin de la definicin de las vistas

Creacin de vistas
Creacin de una vista

CREATE VIEW dbo.OrderSubtotalsView (OrderID, Subtotal) AS SELECT OD.OrderID, SUM(CONVERT(money,(OD.UnitPrice*Quantity*(1-Discount)/100))*100) FROM [Order Details] OD GROUP BY OD.OrderID GO

Restricciones en las definiciones de vistas


No se puede incluir la clusula ORDER BY No se puede incluir la palabra clave INTO

Ejemplo: Vista de tablas combinadas


Orders
OrderID 10663 10827 10427 10451 10515

Customers
CustomerID CompanyName
BONAP PICCO QUICK

CustomerID RequiredDate ShippedDate


BONAP BONAP PICCO QUICK QUICK 1997-09-24 ~~~ 1998-01-26 ~~~ 1997-02-24 ~~~ 1997-03-05 ~~~ 1997-05-07 ~~~ 1997-10-03 1998-02-06 1997-03-03 1997-03-12 1997-05-23

ContactName

Bon app' Laurence Lebihan Piccolo und mehr Georg Pipps QUICK-Stop Horst Kloss

USE Northwind GO CREATE VIEW dbo.ShipStatusView AS SELECT OrderID, ShippedDate, ContactName FROM Customers c INNER JOIN Orders o ON c.CustomerID = O.CustomerID WHERE RequiredDate < ShippedDate

ShipStatusView
OrderID ShippedDate ContactName
10264 10271 10280 1996-08-23 Laurence Lebihan 1996-08-21 1996-08-30 Georg Pipps 1996-08-29 1996-09-12 Horst Kloss 1996-09-11

Modificacin y eliminacin de vistas

Alteracin de vistas
USE Northwind GO ALTER VIEW dbo.EmployeeView AS SELECT LastName, FirstName, Extension FROM Employees

Conserva los permisos asignados Hace que la instruccin SELECT y las opciones reemplacen la definicin existente
DROP VIEW dbo.ShipStatusView

Eliminacin de vistas

Evitar la interrupcin de las cadenas de pertenencia


Objetos dependientes con propietarios distintos Ejemplo: Maria ejecuta:

maria.view2

lucia.view1
GRANT SELECT ON view2 TO pierre

Pierre ejecuta:
SELECT * FROM maria.view2

lucia.table1

Ubicacin de la informacin de definicin de vistas

Ubicacin de las definiciones de vistas

No disponible si la vista fue creada con la opcin WITH ENCRYPTION Muestra los objetos de los que depende una vista

Ubicacin de las dependencias de una vista

Muestra los objetos que dependen de una vista

Ocultacin de la definicin de las vistas

Uso de la opcin WITH ENCRYPTION No elimine las entradas de la tabla syscomments

USE Northwind GO CREATE VIEW dbo.[Order Subtotals] WITH ENCRYPTION AS SELECT OrderID, Sum(CONVERT(money,(UnitPrice*Quantity*(1-Discount)/100))*100) AS Subtotal FROM [Order Details] GROUP BY OrderID GO

Modificacin de datos mediante vistas

No pueden afectar a ms de una tabla subyacente No pueden afectar a ciertas columnas

Pueden provocar errores si afectan a columnas a las que la vista no hace referencia
Se comprueba si se ha especificado WITH CHECK OPTION

Optimizacin del rendimiento mediante vistas

Consideraciones acerca del rendimiento Uso de vistas indizadas

Uso de vistas para dividir datos

Consideraciones acerca del rendimiento


Customers 1 Orders ~ ~ ~ n Order Details n 1 ~ ~ ~
2 ~ 1 32~~ 2 43~~ 3 54~~ 4 65~~ 6 5~ ~ ~ ~ ~ ~ ~ ~ n ~ ~ ~~ ~~yn ~ ~ ~~ ~~yy ~ ~ ~~ ~~ny ~ ~ ~~ ~~yn ~ ~ ~ ~y USE Northwind GO CREATE VIEW dbo.TopSalesView AS SELECT * FROM dbo.TotalPurchaseView WHERE Subtotal > 50000 GO

~ ~ ~ ~ ~

~ TopSalesView
~ ~ ~ ~ ~ ~ SELECT * FROM dbo.TopSalesView WHERE CompanyName = 'Ernst Handel' ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~

TotalPurchaseView 1 2 3 4 5 6

Uso de vistas indizadas

Las vistas indizadas almacenan el conjunto de resultados en la base de datos

Creacin de una vista indizada


Recomendaciones para la creacin de vistas indizadas Utilizar si:

El rendimiento mejora el costo del incremento en el mantenimiento Los datos subyacentes no se actualizan con frecuencia Las consultas realizan una gran cantidad de combinaciones y operaciones de agregado

Restricciones en la creacin de vistas indizadas

Uso de vistas para dividir datos

Puede utilizar las vistas para dividir los datos en varios servidores o instancias de SQL Server Cmo utiliza SQL Server las vistas para dividir datos Cmo las vistas divididas mejoran el rendimiento

Prctica: Implementacin de vistas

Potrebbero piacerti anche