问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

视图的作用是什么?

发布网友 发布时间:2022-04-30 08:39

我来回答

3个回答

懂视网 时间:2022-04-30 13:01


 
数据库虽然可以存储海量数据,但是在数据表设计上却不可能为每种关系创建数据表。例如,对于学生表,存储了学生信息,学生的属性包括学号、姓名、年龄、家庭地址等信息;而学生成绩表只存储了学生学号、科目、成绩等信息。现需获得学生姓名及成绩信息,那么就需要创建一个关系,该关系需要包含学生姓名、科目、成绩。但为该关系创建一个新的数据表,并利用实际信息进行填充,以备查询使用,是不适宜的。因为这种做法很明显的造成了数据库中数据的大量冗余。
 
视图则是解决该问题的最佳策略。因为视图可以存储查询定义(或者说关系运算),那么,一旦使用视图存储了查询定义,就如同存储了一个新的关系。用户可以直接对视图中所存储的关系进行各种操作,就如同面对的是真实的数据表。
 
2.灵活的控制安全性
 
一个数据表可能含有很多列。但是这些列的信息,对于不同角色的用户,可访问的权限有可能不同。例如,在员工表中,可能存在着员工工号、员工姓名、员工年龄、员工职位、员工家庭住址、员工社会关系等信息。对于普通用户(例如普通员工),有可能需要访问员工表,来查看某个工号的员工的姓名、职位等信息,而不允许查看家庭住址、社会关系等信息;对于高级用户(例如人事经理),则需要关注所有信息。那么,这就涉及数据表的安全性。
 
利用视图可以灵活地实现这一策略。例如,可以首先创建名为vw_employees的视图。该视图的查询定义为,选择员工表中员工工号、员工姓名、员工职位等3列。这相当于在员工关系中,进行投影运算,即选择员工工号、员工姓名、员工职位这3个属性,形成新的关系,如图1所示。
 
 技术分享


图1  利用投影运算获得普通用户使用的视图vw_employees
同样,对于高级用户,可以创建名为vw_employees_hr的视图,该视图选择员工表中所有列,如图2所示。
 技术分享
图2  利用投影运算获得HR用户使用的视图vw_employees_hr
 
然后,对于两种角色,分别分配两个视图的查询权限,与实际的数据表employees隔离开来,从而控制数据访问的安全性。

数据库中为什么要建立视图,它有什么好处?

标签:

热心网友 时间:2022-04-30 10:09

视图作用:

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

2, 安全性。通过视图用户只能查询和修改他们所能见到的数据。但不能授权到数据库特定行和特定的列上。

通过视图,用户可以被*在数据的不同子集上:使用权限可被*在另一视图的一个子集上,或是一些视图和基表合并后的子集上。

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

扩展资料:

视图优点:

1. 视点集中

视图集中即是使用户只关心它感兴趣的某些特定数据和他们所负责的特定任务。这样通过只允许用户看到视图中所定义的数据而不是视图引用表中的数据而提高了数据的安全性。

2. 简化操作

视图大大简化了用户对数据的操作。因为在定义视图时,若视图本身就是一个复杂查询的结果集,这样在每一次执行相同的查询时,不必重新写这些复杂的查询语句,只要一条简单的查询视图语句即可。可见视图向用户隐藏了表与表之间的复杂的连接操作。

3. 定制数据

视图能够实现让不同的用户以不同的方式看到不同或相同的数据集。因此,当有许多不同水平的用户共用同一数据库时,这显得极为重要。

4. 合并分割数据

在有些情况下,由于表中数据量太大,故在表的设计时常将表进行水平分割或垂直分割,但表的结构的变化却对应用程序产生不良的影响。如果使用视图就可以重新保持原有的结构关系,从而使外模式保持不变,原有的应用程序仍可以通过视图来重载数据。

5. 安全性

视图可以作为一种安全机制。通过视图用户只能查看和修改他们所能看到的数据。其它数据库或表既不可见也不可以访问。如果某一用户想要访问视图的结果集,必须授予其访问权限。视图所引用表的访问权限与视图权限的设置互不影响。

参考资料:百度百科-----视图

热心网友 时间:2022-04-30 11:27

数据库视图的作用只要有:1. 数据库视图隐藏了数据的复杂性。2. 数据库视图有利于控制用户对表中某些列的访问。3. 数据库视图使用户查询变得简单。视图是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。但是,视图并不在数据库中以存储的数据值集形式存在。行和列数据来自由定义视图的查询所引用的表,并且在引用视图时动态生成。对其中所引用的基础表来说,视图的作用类似于筛选。定义视图的筛选可以来自当前或其它数据库的一个或多个表,或者其它视图。分布式查询也可用于定义使用多个异类源数据的视图。如果有几台不同的服务器分别存储组织中不同地区的数据,而您需要将这些服务器上相似结构的数据组合起来,这种方式就很有用。通过视图进行查询没有任何*,通过它们进行数据修改时的*也很少。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
逆水寒手游庄园怎么邀请好友同住 逆水寒手游 逆水寒不同区可以一起组队吗? 逆水寒手游 逆水寒怎么进入好友世界? 逆水寒手游 逆水寒怎么去别人的庄园? 使用puppeteer实现将htmll转成pdf 内卷时代下的前端技术-使用JavaScript在浏览器中生成PDF文档 【译】将HTML转为PDF的几种实现方案 变形金刚08动画怎么样 变形金刚08动画的问题 变形金刚08动画日语版剧情介绍 我的盒子打开ADB的时候是个二维码呀,这个怎么计算? 法人、执行董事、经理、监事哪个责任大 法定代表人和执行董事到底什么关系 执行董事和大股东谁的控制权大? a和b各占四份股份,a是法人,b是执行董事,谁权利大 国企执行董事不是法人代表和总经理是法人代表谁大 我是公司法人,是执行董事,持股30%,其他两人各占30%和40%股份,这种情况谁的权利大? 集团成立子公司,但子公司不设董事会,那么子公司法人和执行董事哪个权力大_百度问一问 请问一下,银行卡怎么挂失 银行卡怎样挂失 怎样给银行卡挂失? 山川大海尽少年,读后感400字怎么写? 刺激战场怎么进别人的自定义房间 华为手机录制屏幕怎么设置?那个双指敲击没反应哪? 华为录屏我的没有录屏键怎么办? 华为nova4上面录屏功能的停止键怎样去掉 别人支付宝转账给我银行卡上怎么收不到钱 从支付宝余额转账到自己的银行卡需要手续费吗 支付宝转账给我的银行卡钱一直没到账怎么办 别人银行卡的钱用支付宝转账给我,我在转账到我卡里这是套现应为吗? b860AV2.1-a2 ADB是多少? 中兴c56525的ADB密码 close的名词是什么 有谁知道close的名词形式? 2pm尼坤出演过哪些电影电视剧 close,closing,closed的区别 尼坤演过主演过那些电视及电影? 2pm尼坤出演过哪些电影电视剧? 更换显卡需要换主板吗 请教关于close单词? 有什么尼坤演的电视剧 尼坤演过什么电视 尼坤演过哪些电视剧 用好的显卡必须得用好的主板吗 close的复词形式是什么??? 尼坤主演的电视剧&电影? 显卡对主板有要求吗 主板配显卡有要求吗 尼坤演过什么电视剧??? 换显卡需要 换主板吗? 尼坤演过什么电视剧?