视图是提供给用户以多种角度观察数据库中数据的重要机制。尽管在对视图作查询和更新时有各种限制,但只要用户对 DM_SQL 语言熟悉,合理使用视图对用户建立自己的管理信息系统会带来很多的好处和方便,归纳起来,主要有以下几点:

1.用户能通过不同的视图以多种角度观察同一数据

可针对不同需要建立相应视图,使他们从不同的需要来观察同一数据库中的数据。

2.简化了用户操作

由于视图是从用户的实际需要中抽取出来的虚表,因而从用户角度来观察这种数据库结构必然简单清晰。另外,由于复杂的条件查询已在视图定义中一次给定,用户再对该视图查询时也简单方便得多了。

3.为需要隐蔽的数据提供了自动安全保护

所谓“隐蔽的数据”是指通过某视图不可见的数据。由于对不同用户可定义不同的视图,使需要隐蔽的数据不出现在不应该看到这些数据的用户视图上,从而由视图机制自动提供了对机密数据的安全保密功能。

4.为重构数据库提供了一定程度的逻辑独立性

在建立调试和维护管理信息系统的过程中,由于用户需求的变化、信息量的增长等原因,经常会出现数据库的结构发生变化,如增加新的基表,或在已建好的基表中增加新的列,或需要将一个基表分解成两个子表等,这称为数据库重构。数据的逻辑独立性是指当数据库重构时,对现有用户和用户程序不产生任何影响。

在管理信息系统运行过程中,重构数据库最典型的示例是将一个基表垂直分割成多个表。将经常要访问的列放在速度快的服务器上,而不经常访问的列放在较慢的服务器上。

例如将 PRODUCT 表分解成两个基表。

PRODUCT(PRODUCTID,NAME,AUTHOR,PUBLISHER,PUBLISHTIME,PRODUCT_CATEGORYID,PRODUCTNO,DESCRIPTION,PHOTO,SATETYSTOCKLEVEL,ORIGINALPRICE,NOWPRICE,DISCOUNT,TYPE,PAPERTOTAL,WORDTOTAL,SELLSTARTTIME,SELLENDTIME)

分解为两个基表:

PRODUCT_1(PRODUCTID,NAME,AUTHOR,PUBLISHER,NOWPRICE)

PRODUCT_2(PRODUCTID,PUBLISHERTIME,PRODUCT_CATEGORYID,PRODUCTNO,DESCRIPTION,PHOTO,SATETYSTOCKLEVEL,ORIGINALPRICE,NOWPRICE,DISCOUNT,TYPE,PAPERTOTAL,WORDTOTAL,SELLSTARTTIME,SELLENDTIME)

并将 PRODUCT 表中的数据分别插入这两个新建表中,再删去 PRODUCT 表。这样一来,原有用户程序中有 PRODUCT 表的操作就均无法进行了。为了减少对用户程序影响,这时可在 PRODUCT_1 和 PRODUCT_2 两基表上建立一个名字为 PRODUCT 的视图,因为新建视图维护了用户外模式的原状,用户的应用程序不用修改仍可通过视图查询到数据,从而较好支持了数据的逻辑独立性。