- 1、本文档共69页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第9章视图和索引
数据库原理与应用教程―SQL Server 第9章 视图和索引 数据库的基本表是按照数据库设计人员的观点设计的,并不一定符合用户的需求。SQL Server可以根据用户需求重新定义表的数据结构,这种数据结构就是视图。视图是关系数据库系统提供给用户以多种角度观察数据库中数据的重要机制,其结构和数据是建立在对表的查询基础上的。 索引是以表列为基础的数据库对象,它保存着表中排序的索引列,并且记录了索引列在数据表中的物理存储位置,实现了表中数据的逻辑排序。数据库中的索引与书籍中的目录类似,在一本书中,目录可以方便用户不必阅读整本书就能找到需要的内容。在数据库中,索引可以使数据库程序在最短的时间内找到所需要的数据,而不必查找整个数据库,这样可以节省时间,提高查找效率。 在数据库的三级模式结构当中,索引对应的是内模式部分,基本表对应的是模式部分,而视图对应的是外模式部分。 本章主要介绍视图的基本概念,视图的创建、修改和删除,利用视图实现对基本表中数据的操作;索引的基本概念,索引的分类以及创建、修改和删除索引等操作。 9.1 视图 视图(View)是关系数据库系统提供给用户以多种角度观察数据库中数据的重要机制,是从一个或几个表导出来的表,不是真实存在的基本表而是一张虚表;视图所对应的数据并不实际地以视图结构存储在数据库中,而是存储在视图所引用的表中,视图实际上是一个查询结果。在用户看来,视图是通过不同路径去看一个实际表,就像一个窗口,我们通过窗口去看外面的高楼,可以看到高楼的不同部分,而透过视图可以看到数据库中自己感兴趣的内容。 9.1.1 视图概述 视图作为一种数据库对象,为用户提供了一个可以检索数据表中数据的方式。视图是一个虚表,可以视为另一种形式的表,是从一个或多个表中使用SELECT语句导出的虚拟表,那些用来导出视图的表称为基本表。 用户通过视图来浏览数据表中感兴趣的部分或全部数据,而数据的物理存储位置仍然在基本表中。所以视图并不是以一组数据的形式存储在数据库中,数据库中只存储视图的定义,而不存储视图对应的数据,这些数据仍存储在导出视图的基本表中。当基本表中的数据发生变化时,从视图中查询出来的数据也随之改变。 使用视图可以集中、简化和定制用户的数据库显示,用户可以通过视图来访问数据,而不必直接去访问该视图的基本表。 1. 视图的优点 (1) 为用户集中数据,简化用户的数据查询和处理。使得分散在多个表中的数据,通过视图定义在一起,屏蔽了数据库的复杂性,用户不必输入复杂的查询语句,只需针对此视图做简单的查询即可。 (2)保证数据的逻辑独立性。对于视图的操作,例如,查询只依赖于视图的定义,当构成视图的基本表需要修改时,只需要修改视图定义中的子查询部分,而基于视图的查询不用改变。简化查询操作,屏蔽了数据库的复杂性。 (3) 重新定制数据,使得数据便于共享;合并分割数据,有利于数据输出到应用程序中。 (4) 数据必威体育官网网址。对不同的用户定义不同的视图,使用户只能看到与自己有关的数据。同时简化了用户权限的管理,增加了安全性。 2. 视图的分类 SQL Server 2008中,视图可以分为标准视图、索引视图和分区视图。 (1)标准视图 标准视图组合了一个或多个表中的数据,可以获得使用视图的大多数好处,可以实现对数据库的查询、修改和删除等基本操作。 (2)索引视图 索引视图是被具体化了的视图,它已经过计算并存储。可以为视图创建索引,即对视图创建一个唯一的聚集索引。索引视图可以显著提高某些类型查询的性能。索引视图尤其适于聚合许多行的查询,但不太适合于经常更新的基本数据集。 (3)分区视图 分区视图在一台或多台服务器间水平连接一组成员中的分区数据。这样,数据看上去如同来自于一个表。 9.1.2 创建视图 要使用视图,首先必须创建视图。视图在数据库中是作为一个独立的对象存储的,必须遵循以下原则。 (1)只能在当前数据库中创建视图。但是,如果使用分布式查询定义视图,则新视图所引用的表和视图可以存在于其他数据库中,甚至其他服务器上。 (2)视图名称必须遵循标识符的规则,且对每个用户必须唯一。此外,该名称不得与该用户拥有的任何表的名称相同。 (3)用户可以在其他视图之上建立视图。 (4)如果视图中的某一列是一个算术表达式、内置函数或常量派生而来,而且视图中两个或者更多的不同列拥有一个相同的名字(这种情况通常是因为在视图的定义中有一个连接,而且这两个或者多个来自不同表的列拥有相同的名字),此时,用户需要为视图的每一列指定特定的名称。 (5)定义视图的查询不可以包含ORDER BY、COMPUTE或COMPUTE BY子句或INTO关键字。 (6)不能在视图上定义全文索引定义。 (7)不能创建临时视图,也不能在临时表上创建视图。 (8)不能对视图执行全文查
文档评论(0)