您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > SQL2005PPT8
第8章实现视图SQLServer2005数据库开发与实现第1章:SQLServer2005启航第2章:安装和配置SQLServer2005第3章:创建数据库和数据库文件第4章:创建数据类型和表第5章:使用Transact-SQL查询数据库第6章:创建和优化索引第7章:实现数据完整性第8章:实现视图第9章:实现存储过程和函数第10章:使用XML第11章:灾难恢复第12章:管理安全性第13章:监视SQLServer第14章:维持高可用性第15章:自动执行管理任务第16章:使用ServiceBroker第17章:传输数据第18章:复制功能简介第8章:实现视图视图简介创建和管理视图使用视图优化性能实验习题视图Employee(table)EmployeeIDLastNameFirstNameTitle…287Mensa-AnnanTeteMr.…288AbbasSyedMr.…289ValdezRachelNULL…vEmployee(view)LastNameFirstNameMensa-AnnanTeteAbbasSyedValdezRachel8.1.1视图视图类型标准视图标准视图将来自一个或多个基表的数据合并到一个新的虚拟表中索引视图通过在视图上创建唯一的聚集索引具体化视图分区视图分区视图将来自一个或多个服务器上的一个或多个基表的已分区数据进行横向联接8.1.2视图类型视图的优点为用户集中数据掩盖数据库复杂性简化用户权限的管理提高性能组织数据以便于导出到其他应用程序8.1.3视图的优点第8章:实现视图视图简介创建和管理视图使用视图优化性能实验习题创建视图使用视图设计器创建视图使用CREATEVIEW语句:约束嵌套深度不能超过32层包含的列不能查过1024列不能使用COMPUTE、COMPUTEBY或者INTO不能使用不带有TOP的ORDERBYCREATEVIEW[schema_name.]view_name[(column[,···,n])][WITH[ENCRYPTION][SCHEMABINDING][VIEW_METADATA]]ASselect_statement[;][WITHCHECKOPTION]8.2.1创建视图演示:创建视图在这个演示中,你将看到如何:使用SQLSeverManagementStudio中的图形化设计器创建显示多表数据的视图查询视图生成该视图的Transact-SQL脚本创建视图的最佳实践利用视图实现架构绑定防止数据库管理员错误地删除表或者表中的行不能防止数据库管理员有目的地删除表或者表中的行8.2.3创建视图的最佳实践修改和删除视图使用可视化数据库工具修改视图使用Transact-SQL语句修改视图使用可视化数据库工具删除视图使用Transact-SQL语句删除视图ALTERVIEW[schema_name.]view_name[(column[,···,n])][WITH[ENCRYPTION][SCHEMABINDING][VIEW_METADATA]]ASselect_statement[;][WITHCHECKOPTION]8.2.4修改和删除视图DROPVIEW[schema_name.]view_name[···,n][;]所有权链对视图的影响访问视图从属从属用户:John1视图所有者:Mary2表所有者:Tim4视图所有者:Mary38.2.5所有权链对视图的影响SQLServerManagementStudioTransact-SQL有关视图的信息的来源来源信息对象资源管理器数据库中视图列表访问视图上定义的列、触发器、索引以及统计表视图属性对话框视图属性来源信息sys.views数据库中视图列表sp_helptext非加密视图的定义sys.sql_dependencies从属与其他对象的对象(或者视图)8.2.6有关视图的信息的来源视图加密在CREATEVIEWTransact-SQL语句上使用WITHENCRYPTION选项在sys.syscomments表中加密视图定义保护视图定义逻辑CREATEVIEW[HumanResources].[vEmployee]WITHENCRYPTIONASSELECTe.[EmployeeID],c.[Title],c.[FirstName],c.[MiddleName],c.[LastName],c.[Suffix],e.[Title]AS[JobTitle],c.[Phone],c.[EmailAddress]FROM[HumanResources].[Employee]eINNERJOIN[Person].[Contact]cONc.[ContactID]=e.[ContactID]8.2.7视图加密在ALTERVIEW语句上使用WITHENCRYPTION保留加密在视图中修改数据的注意事项视图并不保留单独的数据副本(索引视图例外)对视图的修改将修改基表限制:只能影响一个基表不能修改从聚合函数或者计算派生的列不能修改受GROUPBY、HAVING或者DISTINCT子句影响的列只能使用WITHCHECKOPTION去修改视图8.2.8在视图中修改数据的注意事项多媒体:向视图中插入数据数据库存在Production.vExpensiveExpiredProduct视图,该视图来自于Production.ExpiredProduct表。用户无法向该视图中插入数据,你需要找到问题所在并排除故障。在本交互式多媒体中,你可以了解如何使用Transact-SQL语句对视图进行操作,以及触发器对于视图的影响。课堂练习:创建视图本次课堂练习的目标是能够使用Transact-SQL创建视图。视图的概念使用CREATVIEW语句第8章:实现视图视图简介创建和管理视图使用视图优化性能实验习题视图的性能注意事项视图将导致性能开销,因为视图是动态生成的嵌套视图存在性能上的风险评估非加密嵌套视图的定义使用“SQLServerProfiler”评估性能索引视图和分区视图能够提高性能8.3.1视图的性能注意事项索引视图CREATEUNIQUECLUSTEREDINDEX[IX_vStateProvinceCountryRegion]ON[Person].[vStateProvinceCountryRegion]([StateProvinceID]ASC,[CountryRegionCode]ASC)唯一聚集索引的视图具体化视图,提高性能在查询解决方案中允许使用查询优化器使用场合查询性能收益大于维护开销底层数据更新不频繁查询执行大量处理多行或由很多用户频繁执行的联接和聚合操作8.3.2索引视图vSales分区视图横向联接跨一个或多个服务器的一组成员表中的已分区数据CREATEVIEWvSalesASSELECT*FROMSQLServerNorth.Sales.SaleUNIONALLSELECT*FROMSQLServerSouth.Sales.SaleSQLServerSouth.Sales.SaleSQLServerNorth.Sales.Sale8.3.3分区视图第8章:实现视图视图简介创建和管理视图使用视图优化性能实验习题实验在与人力资源部门的协商后,高级数据库开发人员确定了一些将改善数据库使用并简化未来开发的视图。高级数据库开发人员要求你执行以下任务:创建一个新视图。因为你以后需要对该视图创建索引,所以创建视图时需要使用SCHEMABINDING。在测试了该视图之后,为视图创建唯一聚集索引,将其转变为索引视图。在数据库上创建分布式分区视图。8.4实验第8章:实现视图视图简介创建和管理视图使用视图优化性能实验习题习题1.下列情况中,哪个不适宜用索引视图?A.查询性能收益大于维护开销B.底层数据更新不频繁C.底层数据更新很频繁D.查询执行大量处理多行或由很多用户频繁执行的联接和聚合操作8.5习题习题(续)2.小王正在创建一个连接SQLServer2005数据库中Customers和Orders表格的视图。他需要确定视图不受对潜在表格架构的修改的影响。小王想通过最简便的方法达到这个目的,他应当怎么做?A.在表格上创建CHECK约束B.创建DDL触发器,使得如果表格的修改影响到视图中的列的时候,对表格的修改进行回滚C.创建视图,指定WITHSCHEMABINDING选项D.创建视图,指定WITHCHECK选项8.5习题习题(续)3.小王负责维护一个SQLServer2005数据库。公司的商务分析人员通常使用一个名为v_CustomerSales的视图去连接数据库中的Customers和Sales表格。他们使用视图合计每月每个客户总的销售量。小王需要提高视图的查询性能,他应当怎么做?A.使用Customers和Sales表格的一个外部连接更新视图B.在v_CustomerSales视图上创建一个聚集索引C.创建两个不包含任何连接视图的单独的视图,一个是Customers表格的名为v_Customers的视图,另一个是Sales表格的名为v_Sales的视图D.为商务分析人员创建一个使用v_CustomerSales视图的存储过程8.5习题习题(续)4.小王负责维护一个电信公司的数据库,不久前他在数据库上创建了一个视图vwOrders,并且在创建视图时使用了WITHSCHEMABINDING选项。现在他要修改这个vwOrders视图,增加一个WITHCHECKOPTION的选项。要求不能改动原有的选项,小王要怎么做呢?(双项选择)A.删除vwOrders,并用WITHSCHEMABINDING和WITHCHECKOPTION选项重建视图B.删除vwOrders,并用WITHCHECKOPTION选项重建视图C.改变视图,并用WITHSCHEMABINDING和WITHCHECKOPTION选项D.改变视图,并用WITHCHECKOPTION选项8.5习题习题(续)5.用下述语句创建视图:CREATEVIEWProductsViewASSELECTProductID,Price,CompanyFROMSupplierINNERJOINProductsONSuppliers.ID=Products.SupplierIDORDERBYProductID但出现错误,请问为什么,应如何修改?8.5习题习题(续)6.在视图定义中使用WITHCHECKOPTION有什么益处?8.5习题习题(续)7.假设已经实现了联接Customer、Orders和OrderDetails表的查询,它列出了顾客订单的详细情况,例如物品的数量和要求的交货日期。在顾客改变现有的订单时,雇员需要更新Orders表和OrderDetails表。在不具有访问基表权限的情况下应如何完成该任务?8.5习题
本文标题:SQL2005PPT8
链接地址:https://www.777doc.com/doc-3226560 .html