视图
2017-01-16 14:21
197 查看
视图
视图是指计算机数据库中的视图,是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。但是,视图并不在数据库中以存储的数据值集形式存在。
行和列数据来自由定义视图的查询所引用的表,并且在引用视图时动态生成。
1.视图含义:
从用户角度来看,一个视图是从一个特定的角度来查看数据库中的数据,
从数据库系统内部来看,一个视图是由SELECT语句组成的查询定义的虚拟表。
从数据库内部来看,视图是由一张或多张表中的数据组成的,从数据库系统外部来看,
视图就如同一张表一样,对表能够进行的一般操作都可以应用于视图,例如查询,插入,修改,删除操作等。
2.视图作用:
简单性:看到的就是需要的。视图不仅可以简化用户对数据的理解,也可以简化他们的操作。
那些被经常使用的查询可以被定义为视图,从而使得用户不必为以后的操作每次指定全部的条件。
安全性:通过视图用户只能查询和修改他们所能见到的数据。但不能授权到数据库特定行和特定的列上。
通过视图,用户可以被限制在数据的不同子集上:使用权限可被限制在另一视图的一个子集上,
或是一些视图和基表合并后的子集上。
逻辑数据独立性:视图可帮助用户屏蔽真实表结构变化带来的影响。
3.视图优点:
视图有很多优点,主要表现在:
①·视点集中
②·简化操作
③·定制数据
④·合并分割数据
⑤·安全性
①. 视点集中:
视图集中即是使用户只关心它感兴趣的某些特定数据和他们所负责的特定任务。
这样通过只允许用户看到视图中所定义的数据而不是视图引用表中的数据而提高了数据的安全性。
②. 简化操作:
视图大大简化了用户对数据的操作。因为在定义视图时,若视图本身就是一个复杂查询的结果集,
这样在每一次执行相同的查询时,不必重新写这些复杂的查询语句,只要一条简单的查询视图语句即可。
可见视图向用户隐藏了表与表之间的复杂的连接操作。
③. 定制数据:
视图能够实现让不同的用户以不同的方式看到不同或相同的数据集。
因此,当有许多不同水平的用户共用同一数据库时,这显得极为重要。
④. 合并分割数据:
在有些情况下,由于表中数据量太大,故在表的设计时常将表进行水平分割或垂直分割,
但表的结构的变化却对应用程序产生不良的影响。如果使用视图就可以重新保持原有的结构关系,
从而使外模式保持不变,原有的应用程序仍可以通过视图来重载数据。
⑤. 安全性:
视图可以作为一种安全机制。通过视图用户只能查看和修改他们所能看到的数据。
其它数据库或表既不可见也不可以访问。如果某一用户想要访问视图的结果集,必须授予其访问权限。
视图所引用表的访问权限与视图权限的设置互不影响。
4.视图的安全性:
视图的安全性可以防止未授权用户查看特定的行或列,使用户只能看到表中特定行的方法如下:
①. 在表中增加一个标志用户名的列;
②. 建立视图,是用户只能看到标有自己用户名的行;
③.把视图授权给其他用户。
5.逻辑数据独立性:
视图可以使应用程序和数据库表在一定程度上独立。如果没有视图,应用一定是建立在表上的。
有了视图之后,程序可以建立在视图之上,从而程序与数据库表被视图分割开来。
视图可以在以下几个方面使程序与数据独立:
①. 如果应用建立在数据库表上,当数据库表发生变化时,可以在表上建立视图,
通过视图屏蔽表的变化,从而应用程序可以不动。
②. 如果应用建立在数据库表上,当应用发生变化时,可以在表上建立视图,通过视图屏蔽应用的变化,
从而使数据库表不动。
③. 如果应用建立在视图上,当数据库表发生变化时,可以在表上修改视图,通过视图屏蔽表的变化,
从而应用程序可以不动。
④.如果应用建立在视图上,当应用发生变化时,可以在表上修改视图,通过视图屏蔽应用的变化,
从而数据库可以不动。