3.5.1 视图概述

3.5.1 视图概述

1)视图的概念

视图(View)是一种常用的数据库对象,是从基本表或视图导出的虚表。数据库中只存放视图的定义,不存放视图对应的数据,这些数据仍存放在原来的基本表中。所以一旦基本表中的数据发生改变,从视图中查询出的数据也就随之改变了。从这个意义上讲,视图就像一个窗口,通过它可以看到数据库中用户感兴趣的数据及其变化。

2)视图的特点

①视图是个虚表。数据库中只存放视图的定义,不存放视图对应的数据,因此从这个角度来说,视图是表的抽象和在逻辑意义上建立的一个新的关系。

②视图是个窗口。视图是从一个或多个基本表或视图中导出来的表,数据仍存放在原来的基本表中。

③视图对应于数据库系统中的外模式。从用户的角度看,视图和基本表是一样的。

④视图创建后,用户可以像基本表那样对其进行查询以及增删改操作,也可以在其基础上再定义其他视图。建立或者删除视图不会影响基本表,但对视图的增删改操作最终都会转换为对基本表的操作,会直接影响到基本表。

3)视图的作用

(1)视图能简化用户的操作,方便用户使用数据

视图机制使用户可以将注意力集中在所关心的数据上,如果这些数据不是直接来自基本表,则可以通过定义视图使数据库看起来结构简单、清晰。利用视图可以把对基本表(尤其是多个基本表)的复杂连接操作隐藏起来,从而可以简化用户的操作。在设计视图时,还可对某些属性列重新命名,使用更符合用户习惯的别名,以便用户使用。

(2)视图为数据提供了一定程度的逻辑独立性

当数据库重构时,数据库的整体逻辑结构将发生改变。数据库重构往往是不可避免的,重构数据库最常见的是将一个基本表“水平”或“垂直”地分成多个基本表。这时可以通过定义一个视图将分成的多个基本表合并成为一个基本表。这样尽管数据库的逻辑结构改变了,但应用程序不必修改,因为新建立的视图定义为用户原来的关系,使用户的外模式保持不变,用户的应用程序通过视图仍然能够查找数据。注意,视图只能在一定程度上提供数据的逻辑独立性。

(3)视图有利于数据的保密,提供数据的安全性保护机制

视图使用户能从多个角度看待同一数据,可以对不同级别的用户定义不同的视图,以保证数据的安全性。通过只授予用户访问自己视图的权限,而不授予用户直接访问视图基础表的权限,这样用户就只能查询和修改他们所能见到的数据,而无法看到其他用户的数据。