Вы находитесь на странице: 1из 14

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

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

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

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 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

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 1996-08-21 Laurence Lebihan 1996-08-30 1996-08-29 Georg Pipps 1996-09-12 1996-09-11 Horst Kloss

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

Eliminacin de vistas
DROP VIEW dbo.ShipStatusView

Ubicacin de las definiciones de vistas


No disponible si la vista fue creada con la opcin WITH ENCRYPTION

Ubicacin de las dependencias de una vista


Muestra los objetos de los que depende una vista Muestra los objetos que dependen de una vista

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

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

Consideraciones acerca del rendimiento Uso de vistas para dividir datos

Customers 1 Orders ~ ~ ~ n Order Details 1 ~ ~ ~ n


2 ~ 1 32~~ 2 43~~ 3 54~~ 4 65~~ 6 5~ 6 ~ ~ ~ ~ ~ ~

~ n ~ ~ ~~ ~~yn ~ ~ ~~ ~~yy ~ ~ ~~ ~~ny ~ ~ ~~ ~~yn ~ ~ ~ ~y ~ ~

~
~ ~ ~ ~

USE Northwind GO CREATE VIEW dbo.TopSalesView AS SELECT * FROM dbo.TotalPurchaseView WHERE Subtotal > 50000 GO

TotalPurchaseView 1 2 3 4 5 6 ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~

TopSalesView ~ ~ ~ ~ ~ ~ ~ ~ ~

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

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

Вам также может понравиться