Oracle数据库-视图的概念

Oracle数据库-视图的概念,第1张

一 视图概念

视图是原始数据库数据的一种变换 是查看表中数据的另外一种方式 可以将视图看成是一个移动的窗口 通过它可以看到感兴趣的数据

视图是从一个或多个实际表中获得的 这些表的数据存放在数据库中 那些用于产生视图的表叫做该视图的基表 一个视图也可以从另一个视图中产生

视图的定义存在数据库中 与此定义相关的数据并没有再存一份于数据库中 通过视图看到的数据存放在基表中

视图看上去非常象数据库的物理表 对它的 *** 作同任何其它的表一样 当通过视图修改数据时 实际上是在改变基表中的数据 相反地 基表数据的改变也会自动反映在由基表产生的视图中 由于逻辑上的原因 有些视图可以修改对应的基表 有些则不能(仅仅能查询)

二 视图的作用

* 简单性 看到的就是需要的 视图不仅可以简化用户对数据的理解 也可以简化他们的 *** 作 那些被经常使用的查询可以被定义为视图 从而使得用户不必为以后的 *** 作每次指定全部的条件

* 安全性 通过视图用户只能查询和修改他们所能见到的数据 数据库中的其它数据则既看不见也取不到 数据库授权命令可以使每个用户对数据库的检索限制到特定的数据库对象上 但不能授权到数据库特定行和特定的列上 通过视图 用户可以被限制在数据的不同子集上

使用权限可被限制在基表的行的子集上

使用权限可被限制在基表的列的子集上  

使用权限可被限制在基表的行和列的子集上  

使用权限可被限制在多个基表的连接所限定的行上  

使用权限可被限制在基表中的数据的统计汇总上

使用权限可被限制在另一视图的一个子集上 或是一些视图和基表合并后的子集上

* 逻辑数据独立性 视图可帮助用户屏蔽真实表结构变化带来的影响

三 视图的安全性

视图的安全性可以防止未授权用户查看特定的行或列 是用户只能看到表中特定行的方法如下

在表中增加一个标志用户名的列

建立视图 是用户只能看到标有自己用户名的行

把视图授权给其他用户

四 逻辑数据独立性

视图可以使应用程序和数据库表在一定程度上独立 如果没有视图 应用一定是建立在表上的 有了视图之后 程序可以建立在视图之上 从而程序与数据库表被视图分割开来 视图可以在以下几个方面使程序与数据独立

如果应用建立在数据库表上 当数据库表发生变化时 可以在表上建立视图 通过视图屏蔽表的变化 从而应用程序可以不动

如果应用建立在数据库表上 当应用发生变化时 可以在表上建立视图 通过视图屏蔽应用的变化 从而使数据库表不动

如果应用建立在视图上 当数据库表发生变化时 可以在表上修改视图 通过视图屏蔽表的变化 从而应用程序可以不动

lishixinzhi/Article/program/Oracle/201311/16872

1、视图(View)创建使用,视图(View)实际上是一张或者多张表上的预定义查询,这些表称为基表。从视图中查询信息与从表中查询信息的方法完全相同。只需要简单的SELECT?FROM即可。

2、OR REPLACE:如果视图已经存在,则替换旧视图。

3、FORCE:即使基表不存在,也可以创建该视图,但是该视图不能正常使用,当基表创建成功后,视图才能正常使用。

4、NOFORCE:如果基表不存在,无法创建视图,该项是默认选项。

5、 WITH READ ONLY:默认可以通过视图对基表执行增删改 *** 作,但是有很多在基表上的限制(比如:基表中某列不能为空,但是该列没有出现在视图中,则不能通过视图执行insert *** 作),WITH READ ONLY说明视图是只读视图,不能通过该视图进行增删改 *** 作。现实开发中,基本上不通过视图对表中的数据进行增删改 *** 作。

视图具有以下优点:可以限制用户只能通过视图检索数据。这样就可以对最终用户屏蔽建表时底层的基表。可以将复杂的查询保存为视图。可以对最终用户屏蔽一定的复杂性。 限制某个视图只能访问基表中的部分列或者部分行的特定数据。这样可以实现一定的安全性。从多张基表中按一定的业务逻辑抽出用户关心的部分,形成一张虚拟表。

缺点: 数据及时性不好,如果服务器配置较⾼此缺点可以忽略sql server必须把视图查询转化成对基本表的查询,如果这个视图是由一个复杂的多表查询所定义,那么,即使是视图的一个简单查询,sql server也要把它变成一个复杂的结合体,需要花费一定的时间。

 2)修改限制

当用户试图修改试图的某些信息时,数据库必须把它转化为对基本表的某些信息的修改,对于简单的试图来说,这是很方便的,但是,对于比较复杂的试图,可能是不可修改的。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6460511.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-22
下一篇 2023-03-22

发表评论

登录后才能评论

评论列表(0条)

保存