请问在数据库中视图的作用有多大,或者不用行不行

来源:互联网 发布:电脑ktv唱歌软件 编辑:程序博客网 时间:2024/05/16 09:48

 来源:大富翁论坛

来自:唐太宗, 时间:2003-2-15 17:32:00, ID:1624217 [显示:小字体 | 大字体] 

我感觉我在写程序中,没有感到使用视图的必要性,而且很多数据通过
SQL查询就行了,请大家讲讲视图的主要用处以及经常会用到的情况. 

----
视图是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。但是,视图并不在数据库中以存储的数据值集形式存在。行和列数据来自由定义视图的查询所引用的表,并且在引用视图时动态生成。  
   
  对其中所引用的基础表来说,视图的作用类似于筛选。定义视图的筛选可以来自当前或其它数据库的一个或多个表,或者其它视图。分布式查询也可用于定义使用多个异类源数据的视图。如果有几台不同的服务器分别存储组织中不同地区的数据,而您需要将这些服务器上相似结构的数据组合起来,这种方式就很有用。  
   
  通过视图进行查询没有任何限制,通过它们进行数据修改时的限制也很少。  
-----

来自:LuJuhe, 时间:2003-2-15 17:42:00, ID:1624230
小系统中作用不很明显,大系统中用得很多。

主要是查询的方便性和安全性两个方面的作用。 


来自:bigroute, 时间:2003-2-15 17:44:00, ID:1624237
当然可以不用,视图实际上就是一条SQL的查询语句。 


来自:唐太宗, 时间:2003-2-15 17:48:00, ID:1624243
TO LuJuhe,我做的系统不小的,表都有几百个了的(300左右) 


来自:天真, 时间:2003-2-15 17:53:00, ID:1624254
如果说不用当然也可以,但如果是多表连接查询时,你不是要写很多语句吗?
不要啊?
 


来自:唐太宗, 时间:2003-2-15 18:12:00, ID:1624280
TO 天真:
我是会有很多查询,但是查询总要传入参数的,视图允许我传入指定的参数吗.
请指教. 


来自:yangxiao_jiang, 时间:2003-2-15 19:05:00, ID:1624382
可以 


来自:zhj09, 时间:2003-2-15 21:40:00, ID:1624504
用不用问题不是很大。
反正都是sql语句。
但为了方便.使用有助于少写一点代码。 


来自:sentiment, 时间:2003-2-15 21:43:00, ID:1624507
再提高查询速度上视图是很有用的,有种materialed view可以提高查询速度 


来自:唐太宗, 时间:2003-2-15 21:54:00, ID:1624520
TO 各位:
    大家不说可以不可以,最好能够从最佳的方面说明一下,什么情况下使用视图
比较好些,而且什么典型的情况最好使用视图,我做数据库的程序不少,但是真
还没有发现视图有什么指得一用的地方,请大家指点一下,谢谢各位. 


来自:西门, 时间:2003-2-15 22:39:00, ID:1624574
当有多个表嵌套查询时,视图的作用就明显了,视图起到临时表的作用这样表的数量可以减少

 


来自:张自骞, 时间:2003-2-15 22:47:00, ID:1624579
多用存储过程。。。。。

关于数据视图

1、如果采用第一范式表结构等于视图结构
2、由于采用第三范式,用户视图被分别放在了不同的表结构中,
   要将视图呈现给用户,需要用多表联接的方式来根据关系组合视图;
3、用户视图当然可以不用,说穿了它们就是一组由系统帮助创建的SQL语句;
   需要的时候供客户端调用
4、视图的效率低于存储过程,因为视图是数据库外部行为,而存储过程是数据库内部的行为。。。。。 


来自:唐太宗, 时间:2003-2-17 8:50:00, ID:1625839
TO  张自骞:
    我也觉得使用存储过程是不错的方法,我三层结构,在数据库端定义存储过程,
然后中间层定应义调用的方法,使用很方便的,
    视图的作用看来没什么必要性,

//    请大家继续发言. 


来自:xzh2000, 时间:2003-2-17 15:09:00, ID:1627017
视图是为了方便数据库开发才出现的,
如果你不相方便,写SQL也可以的。 


来自:唐太宗, 时间:2003-2-17 16:04:00, ID:1627234
to xzh2000,
  怎么样的情况下方便些,请举一两个例子吧,我感觉一般的查询
都会带参数的,是不是视图只是静态,无法动态赋参数值呀.

//请多指教,最好能够举一两个例子. 


来自:zjok, 时间:2003-2-17 16:15:00, ID:1627286
同感!我也想知道。 


来自:lajfox, 时间:2003-2-17 17:39:00, ID:1627541
一般情况下,视图完全可以用SQL语句替代,但试图有很多作用,而且几乎不可取代:
1.方便,至少可以少写SQL语句(不用说明了吧)
2.多了一个逻辑层,就多了一层控制(我做的一个项目中视图的一个应用是,用视图把
英文字段转换为中文字段,并隐藏了控制字段,然后作为用户自定义报表的数据源)
3.安全性的要求(数据库管理是要管理数据库连接帐户的,同一个表分配给不同帐户时
的权限是不同的,可以用视图滤掉记录和字段)
...
... 


来自:天空还下着沙, 时间:2003-3-4 10:14:00, ID:1653183
终于在 lajfox 的回答中提到了安全性

呵呵,我要说的也就这一句:安全性。

可以分配用户帐号允许使用某些视图。

假设在数据库系统里有三个帐号DepartA, DepartB, DepartC

DepartA是财务,DepartB是员工,DepartC是部门主管
在软件中,财务部的所有终端是用DepartA联接的,所
以,财务部的小张,小袁,小刘都可以看到所有视图
(怎么分配了)。而DepartB帐号登陆的普通员工是不
能看到这些视图的 


来自:lphjj, 时间:2003-3-4 16:31:00, ID:1654670
在视图中无法用到临时表,无法汇总计算,而在存储过程中又无法按字段来查询。 


来自:唐太宗, 时间:2004-3-24 10:35:19, ID:2518838
接受答案了. 
 

原创粉丝点击