Download - Implementación de vistas. Introducción Introducción a las vistas Ventajas de las vistas Definición de vistas Modificación de datos mediante vistas Optimización.

Transcript
Page 1: Implementación de vistas. Introducción Introducción a las vistas Ventajas de las vistas Definición de vistas Modificación de datos mediante vistas Optimización.

Implementación de vistas

Page 2: Implementación de vistas. Introducción Introducción a las vistas Ventajas de las vistas Definición de vistas Modificación de datos mediante vistas Optimización.

Introducción

Introducción a las vistas

Ventajas de las vistas

Definición de vistas

Modificación de datos mediante vistas

Optimización del rendimiento mediante vistas

Práctica: Implementación de vistas

Page 3: Implementación de vistas. Introducción Introducción a las vistas Ventajas de las vistas Definición de vistas Modificación de datos mediante vistas Optimización.

Introducción a las vistas

EmployeeViewEmployeeViewEmployeeViewEmployeeView

Lastname Lastname Firstname Firstname

Davolio Fuller Leverling

Davolio Fuller Leverling

Nancy Andrew Janet

Nancy Andrew Janet

EmployeesEmployeesEmployeesEmployees

EmployeeIDEmployeeID LastName LastName FirstnameFirstname TitleTitle

123

123

DavolioFullerLeverling

DavolioFullerLeverling

NancyAndrewJanet

NancyAndrewJanet

~~~~~~~~~

~~~~~~~~~

Vista del usuarioVista del usuario

USE NorthwindGOCREATE VIEW dbo.EmployeeViewAS SELECT LastName, FirstnameFROM Employees

USE NorthwindGOCREATE VIEW dbo.EmployeeViewAS SELECT LastName, FirstnameFROM Employees

Page 4: Implementación de vistas. Introducción Introducción a las vistas Ventajas de las vistas Definición de vistas Modificación de datos mediante vistas Optimización.

Ventajas de las vistas

Centrar el interés en los datos de los usuarios

Centrarse sólo en los datos importantes o adecuados

Limitar el acceso a los datos confidenciales

Enmascarar la complejidad de la base de datos

Ocultar el diseño de la base de datos compleja

Simplificar las consultas complejas, incluyendo las consultas distribuidas a datos heterogéneos

Simplificar la administración de los permisos de usuario

Mejorar el rendimiento

Organizar los datos para exportarse a otras aplicaciones

Page 5: Implementación de vistas. Introducción Introducción a las vistas Ventajas de las vistas Definición de vistas Modificación de datos mediante vistas Optimización.

Definición de vistas

Creación de vistas

Ejemplo: Vista de tablas combinadas

Modificación y eliminación de vistas

Evitar la interrupción de las cadenas de pertenencia

Ubicación de la información de definición de vistas

Ocultación de la definición de las vistas

Page 6: Implementación de vistas. Introducción Introducción a las vistas Ventajas de las vistas Definición de vistas Modificación de datos mediante vistas Optimización.

Creación de vistas

Creación de una vista

Restricciones en las definiciones de vistas

No se puede incluir la cláusula ORDER BY

No se puede incluir la palabra clave INTO

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

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

Page 7: Implementación de vistas. Introducción Introducción a las vistas Ventajas de las vistas Definición de vistas Modificación de datos mediante vistas Optimización.

Ejemplo: Vista de tablas combinadas

OrderIDOrderIDOrderIDOrderID

1066310827104271045110515

1066310827104271045110515

CustomerIDCustomerIDCustomerIDCustomerID

BONAP BONAP PICCO QUICKQUICK

BONAP BONAP PICCO QUICKQUICK

~~~ ~~~ ~~~ ~~~ ~~~

~~~ ~~~ ~~~ ~~~ ~~~

RequiredDateRequiredDateRequiredDateRequiredDate

1997-09-241998-01-261997-02-241997-03-051997-05-07

1997-09-241998-01-261997-02-241997-03-051997-05-07

ShippedDateShippedDateShippedDateShippedDate

1997-10-031998-02-061997-03-031997-03-121997-05-23

1997-10-031998-02-061997-03-031997-03-121997-05-23

Orders Customers

ShipStatusViewUSE NorthwindGOCREATE VIEW dbo.ShipStatusViewASSELECT OrderID, ShippedDate, ContactNameFROM Customers c INNER JOIN Orders o ON c.CustomerID = O.CustomerIDWHERE RequiredDate < ShippedDate

USE NorthwindGOCREATE VIEW dbo.ShipStatusViewASSELECT OrderID, ShippedDate, ContactNameFROM Customers c INNER JOIN Orders o ON c.CustomerID = O.CustomerIDWHERE RequiredDate < ShippedDate

CustomerIDCustomerIDCustomerIDCustomerID

BONAPPICCOQUICK

BONAPPICCOQUICK

CompanyNameCompanyNameCompanyNameCompanyName

Bon app'Piccolo und mehrQUICK-Stop

Bon app'Piccolo und mehrQUICK-Stop

ContactNameContactNameContactNameContactName

Laurence LebihanGeorg PippsHorst Kloss

Laurence LebihanGeorg PippsHorst Kloss

OrderIDOrderIDOrderIDOrderID

102641027110280

102641027110280

1996-08-211996-08-291996-09-11

1996-08-211996-08-291996-09-11

ShippedDateShippedDateShippedDateShippedDate

1996-08-231996-08-301996-09-12

1996-08-231996-08-301996-09-12

ContactNameContactNameContactNameContactName

Laurence LebihanGeorg PippsHorst Kloss

Laurence LebihanGeorg PippsHorst Kloss

Page 8: Implementación de vistas. Introducción Introducción a las vistas Ventajas de las vistas Definición de vistas Modificación de datos mediante vistas Optimización.

Modificación y eliminación de vistas

Alteración de vistas

Conserva los permisos asignados

Hace que la instrucción SELECT y las opciones reemplacen la definición existente

Eliminación de vistas

USE NorthwindGOALTER VIEW dbo.EmployeeViewAS SELECT LastName, FirstName, ExtensionFROM Employees

USE NorthwindGOALTER VIEW dbo.EmployeeViewAS SELECT LastName, FirstName, ExtensionFROM Employees

DROP VIEW dbo.ShipStatusViewDROP VIEW dbo.ShipStatusView

Page 9: Implementación de vistas. Introducción Introducción a las vistas Ventajas de las vistas Definición de vistas Modificación de datos mediante vistas Optimización.

GRANT SELECT ON view2 TO pierreGRANT SELECT ON view2 TO pierre

SELECT * FROM maria.view2SELECT * FROM maria.view2

Objetos dependientes conpropietarios distintos

Ejemplo:

Maria ejecuta:

Pierre ejecuta:

Evitar la interrupción de las cadenas de pertenencia

maria.view2

lucia.view1

lucia.table1

Page 10: Implementación de vistas. Introducción Introducción a las vistas Ventajas de las vistas Definición de vistas Modificación de datos mediante vistas Optimización.

Ubicación de la información de definición de vistas

Ubicación de las definiciones de vistas

No disponible si la vista fue creada con la opciónWITH ENCRYPTION

Ubicación de las dependencias de una vista

Muestra los objetos de los que depende una vista

Muestra los objetos que dependen de una vista

Page 11: Implementación de vistas. Introducción Introducción a las vistas Ventajas de las vistas Definición de vistas Modificación de datos mediante vistas Optimización.

Ocultación de la definición de las vistas

Uso de la opción WITH ENCRYPTION

No elimine las entradas de la tabla syscomments

USE NorthwindGOCREATE VIEW dbo.[Order Subtotals] WITH ENCRYPTIONASSELECT OrderID, Sum(CONVERT(money,(UnitPrice*Quantity*(1-Discount)/100))*100) AS SubtotalFROM [Order Details]GROUP BY OrderIDGO

USE NorthwindGOCREATE VIEW dbo.[Order Subtotals] WITH ENCRYPTIONASSELECT OrderID, Sum(CONVERT(money,(UnitPrice*Quantity*(1-Discount)/100))*100) AS SubtotalFROM [Order Details]GROUP BY OrderIDGO

Page 12: Implementación de vistas. Introducción Introducción a las vistas Ventajas de las vistas Definición de vistas Modificación de datos mediante vistas Optimización.

Modificación de datos mediante vistas

No pueden afectar a más 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

Page 13: Implementación de vistas. Introducción Introducción a las vistas Ventajas de las vistas Definición de vistas Modificación de datos mediante vistas Optimización.

Optimización del rendimiento mediante vistas

Consideraciones acerca del rendimiento

Uso de vistas indizadas

Uso de vistas para dividir datos

Page 14: Implementación de vistas. Introducción Introducción a las vistas Ventajas de las vistas Definición de vistas Modificación de datos mediante vistas Optimización.

Consideraciones acerca del rendimiento

USE NorthwindGOCREATE VIEW dbo.TopSalesViewASSELECT *FROM dbo.TotalPurchaseViewWHERE Subtotal > 50000GO

USE NorthwindGOCREATE VIEW dbo.TopSalesViewASSELECT *FROM dbo.TotalPurchaseViewWHERE Subtotal > 50000GO

TotalPurchaseTotalPurchaseViewViewTotalPurchaseTotalPurchaseViewView

11 ~~ ~~ ~~ ~~

22 ~~ ~~ ~~ ~~

33 ~~ ~~ ~~ ~~

44 ~~ ~~ ~~ ~~

55 ~~ ~~ ~~ ~~

66 ~~ ~~ ~~ ~~

CustomersCustomersCustomersCustomers

11 ~~ ~~ ~~ nn

22 ~~ ~~ ~~ nn

33 ~~ ~~ ~~ yy

44 ~~ ~~ ~~ yy

55 ~~ ~~ ~~ nn

66 ~~ ~~ ~~ yy

OrdersOrdersOrdersOrders

11 ~~ ~~ ~~ nn

22 ~~ ~~ ~~ nn

33 ~~ ~~ ~~ yy

44 ~~ ~~ ~~ yy

55 ~~ ~~ ~~ nn

66 ~~ ~~ ~~ yy

Order DetailsOrder DetailsOrder DetailsOrder Details

11 ~~ ~~ ~~ ~~

22 ~~ ~~ ~~ ~~

33 ~~ ~~ ~~ ~~

44 ~~ ~~ ~~ ~~

55 ~~ ~~ ~~ ~~

66 ~~ ~~ ~~ ~~

SELECT *FROM dbo.TopSalesViewWHERE CompanyName = 'Ernst Handel'

SELECT *FROM dbo.TopSalesViewWHERE CompanyName = 'Ernst Handel'

TopSalesViewTopSalesViewTopSalesViewTopSalesView

~~ ~~ ~~

~~ ~~ ~~

~~ ~~ ~~

Page 15: Implementación de vistas. Introducción Introducción a las vistas Ventajas de las vistas Definición de vistas Modificación de datos mediante vistas Optimización.

Uso de vistas indizadas

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

Creación de una vista indizada

Recomendaciones para la creación 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 creación de vistas indizadas

Page 16: Implementación de vistas. Introducción Introducción a las vistas Ventajas de las vistas Definición de vistas Modificación de datos mediante vistas Optimización.

Uso de vistas para dividir datos

Puede utilizar las vistas para dividir los datos en varios servidores o instancias de SQL Server

Cómo utiliza SQL Server las vistas para dividir datos

Cómo las vistas divididas mejoran el rendimiento

Page 17: Implementación de vistas. Introducción Introducción a las vistas Ventajas de las vistas Definición de vistas Modificación de datos mediante vistas Optimización.

Práctica: Implementación de vistas