0
Module 4     Designing andImplementing Views
Module Overview• Introduction to Views• Creating and Managing Views• Performance Considerations for Views
Lesson 1: Introduction to Views• What is a View?• Types of Views• Advantages of Views• Working with System Views• Dynamic ...
What is a View?• A view is a database object referenced like a table• A view is like a SELECT query with a name    Employe...
Types of Views• Standard views     Combine data from one or more base tables into a new virtual      table• System Views ...
Advantages of Views• Focus the data for a user• Mask database complexity• Simplify management of user permissions• Organiz...
Working with System ViewsThere are several types of system views:• Catalog Views     Return information used by the SQL S...
Dynamic Management Views• Return server state information• Named like sys.dm_*• Some are implemented as functions, some as...
Demonstration 1A: System and DynamicManagement ViewsIn this demonstration, you will see how to:• Query system views• Query...
Lesson 2: Creating and Managing Views• Creating Views• Dropping Views• Altering Views• Ownership Chains and Views• Sources...
Creating Views• Use the CREATE VIEW Transact-SQL statement: CREATE VIEW HumanResources.EmployeeList AS SELECT EmployeeID, ...
Dropping Views• Drop by using the DROP VIEW Transact-SQL statement:      DROP VIEW HumanResources.EmployeeList;• Also drop...
Altering Views• Alter by using the ALTER VIEW Transact-SQL statement: ALTER VIEW HumanResources.EmployeeList AS SELECT Emp...
Ownership Chains and Views
Sources of Information About Views     SQL Server Management Studio                 Source                            Info...
Updatable Views• Views do not maintain a separate copy of data• Updates to views modify the base tables• Updates are restr...
Obfuscating View Definitions• WITH ENCRYPTION clause• Encrypts view definition stored in SQL Server• Protects view creatio...
Demonstration 2A: Implementing ViewsIn this demonstration, you will see how to:• Create a view• Query a view• Query the de...
Lesson 3: Performance Considerations for Views• Views and Dynamic Resolution• Nested View Considerations• Partitioned View...
Views and Dynamic Resolution• Dynamic resolution in view optimization can assist performance• SQL Server does not retrieve...
Nested View Considerations• Views can provide a convenient layer of abstraction in coding• Views can be nested up to 32 le...
Partitioned Views  Joins partitioned data from set of tables across serversSQLServerNorth.Sales.Sale     SQLServerSouth.Sa...
Demonstration 3A: Views and PerformanceIn this demonstration, you will see how:• Views are eliminated in query plans• View...
Lab 4: Designing and Implementing Views• Exercise 1: Design, Implement and Test the WebStock Views• Exercise 2: Design and...
Lab ScenarioA new web-based stock promotion system is being rolledout. Your manager is very concerned about providing acce...
Lab Review• What considerations are there for views that involve multiple tables?• What is required for columns in views t...
Module Review and Takeaways• Review Questions• Best Practices
Upcoming SlideShare
Loading in...5
×

6232 b 04

251

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
251
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
8
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "6232 b 04"

  1. 1. Module 4 Designing andImplementing Views
  2. 2. Module Overview• Introduction to Views• Creating and Managing Views• Performance Considerations for Views
  3. 3. Lesson 1: Introduction to Views• What is a View?• Types of Views• Advantages of Views• Working with System Views• Dynamic Management Views• Demonstration 1A: System and Dynamic Management Views
  4. 4. What is a View?• A view is a database object referenced like a table• A view is like a SELECT query with a name Employee (table) EmployeeID LastName FirstName Title BirthDate … 287 Mensa-Annan Tete Mr. 3/2/1984 … 288 Abbas Syed Mr. 4/5/1976 … 289 Valdez Rachel NULL 9/8/1973 … EmployeeList (view) EmployeeID LastName FirstName 287 Mensa-Annan Tete 288 Abbas Syed 289 Valdez Rachel
  5. 5. Types of Views• Standard views  Combine data from one or more base tables into a new virtual table• System Views  Provide state information for SQL Server and catalogs• Indexed views  View that has been computed and stored. You index a view by creating a unique clustered index on it• Partitioned views  Joins horizontally partitioned data from a set of tables across one or more servers
  6. 6. Advantages of Views• Focus the data for a user• Mask database complexity• Simplify management of user permissions• Organize data for export to other applications• Provide backward compatibility• Structure data for reporting applications
  7. 7. Working with System ViewsThere are several types of system views:• Catalog Views  Return information used by the SQL Server Database Engine• Compatibility Views  Many system tables available in earlier versions are now available as system views• Information Schema Views  Provide catalog information as defined in the ISO standard for the INFORMATION_SCHEMA.
  8. 8. Dynamic Management Views• Return server state information• Named like sys.dm_*• Some are implemented as functions, some as views• Monitor server health• Diagnose problems, tune performance
  9. 9. Demonstration 1A: System and DynamicManagement ViewsIn this demonstration, you will see how to:• Query system views• Query dynamic management views
  10. 10. Lesson 2: Creating and Managing Views• Creating Views• Dropping Views• Altering Views• Ownership Chains and Views• Sources of Information about Views• Updatable Views• Obfuscating Views Definitions• Demonstration 2A: Implementing Views
  11. 11. Creating Views• Use the CREATE VIEW Transact-SQL statement: CREATE VIEW HumanResources.EmployeeList AS SELECT EmployeeID, LastName, FirstName FROM HumanResources.Employee;• Restrictions on creating views:  Cannot nest more than 32 levels deep  Cannot use ORDER BY without TOP
  12. 12. Dropping Views• Drop by using the DROP VIEW Transact-SQL statement: DROP VIEW HumanResources.EmployeeList;• Also drops all permissions associated with the view• Multiple views can be dropped in a single statement  Comma-delimited list of views
  13. 13. Altering Views• Alter by using the ALTER VIEW Transact-SQL statement: ALTER VIEW HumanResources.EmployeeList AS SELECT EmployeeID, LastName, FirstName, PostalCode FROM HumanResources.Employee;• Replaces the definition of a view• Does not alter permissions associated with the view
  14. 14. Ownership Chains and Views
  15. 15. Sources of Information About Views SQL Server Management Studio Source Information List of views in database Object Explorer Access to columns, triggers, indexes, and statistics defined on views View Properties dialog box Properties of individual views Transact-SQL Source Information sys.views List of views in database Function that returns definition of non- OBJECT_DEFINITION() encrypted views Objects (including views) that depend sys.sql_expression_dependencies on other objects
  16. 16. Updatable Views• Views do not maintain a separate copy of data• Updates to views modify the base tables• Updates are restricted by using the WITH CHECK OPTION• Restrictions:• Cannot affect more than one base table• Cannot modify columns derived from functions or expressions• Cannot modify columns affected by GROUP BY, HAVING, or DISTINCT clauses
  17. 17. Obfuscating View Definitions• WITH ENCRYPTION clause• Encrypts view definition stored in SQL Server• Protects view creation logic to a limited extent• Generally not recommended CREATE VIEW HumanResources.EmployeeList WITH ENCRYPTION AS SELECT EmployeeID, LastName, FirstName FROM HumanResources.Employee;Use WITH ENCRYPTION on ALTER VIEW to retain encryption
  18. 18. Demonstration 2A: Implementing ViewsIn this demonstration, you will see how to:• Create a view• Query a view• Query the definition of a view• Use the WITH ENCRYPTION option• Drop a view• Generate a script for an existing view
  19. 19. Lesson 3: Performance Considerations for Views• Views and Dynamic Resolution• Nested View Considerations• Partitioned Views• Demonstration 3A: Views and Performance
  20. 20. Views and Dynamic Resolution• Dynamic resolution in view optimization can assist performance• SQL Server does not retrieve data that it doesn’t need• Single query plan for both query and view• Query plans do not show standard views• SELECT * needs special consideration in views  Should be avoided
  21. 21. Nested View Considerations• Views can provide a convenient layer of abstraction in coding• Views can be nested up to 32 levels• Nested views can hide code complexity  More difficult to troubleshoot performance issues  More difficult to understand code complexity
  22. 22. Partitioned Views Joins partitioned data from set of tables across serversSQLServerNorth.Sales.Sale SQLServerSouth.Sales.Sale CREATE VIEW Sales.AllSales AS SELECT * FROM SQLServerNorth.Sales.Sale vSales UNION ALL SELECT * FROM SQLServerSouth.Sales.Sale;
  23. 23. Demonstration 3A: Views and PerformanceIn this demonstration, you will see how:• Views are eliminated in query plans• Views are expanded and integrated into the outer query before being optimized
  24. 24. Lab 4: Designing and Implementing Views• Exercise 1: Design, Implement and Test the WebStock Views• Exercise 2: Design and Implement the Contacts View• Challenge Exercise 3: Modify the AvailableModels View (only if time permits)Logon informationVirtual machine 623XB-MIA-SQLUser name AdventureWorksAdministratorPassword Pa$$w0rdEstimated time: 45 minutes
  25. 25. Lab ScenarioA new web-based stock promotion system is being rolledout. Your manager is very concerned about providing accessfrom the web-based system directly to the tables in yourdatabase. She has requested you to design some views thatthe web-based system could connect to instead.Details of organizational contacts are held in a number oftables. The relationship management system being used bythe account management team needs to be able to gainaccess to these contacts. However, they need a single viewthat comprises all contacts. You need to design, implementand test the required view.Finally, if you have time, a request has been received fromthe new Marketing team that the catalog description of theproduct models should be added to the AvailableModelsview. They would appreciate you modifying the view toprovide this additional column.
  26. 26. Lab Review• What considerations are there for views that involve multiple tables?• What is required for columns in views that are created from expressions?
  27. 27. Module Review and Takeaways• Review Questions• Best Practices
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×