数据库视图的作用是什么?
发布网友
发布时间:2022-04-08 07:42
我来回答
共3个回答
懂视网
时间:2022-04-08 12:03
数据库虽然可以存储海量数据,但是在数据表设计上却不可能为每种关系创建数据表。例如,对于学生表,存储了学生信息,学生的属性包括学号、姓名、年龄、家庭地址等信息;而学生成绩表只存储了学生学号、科目、成绩等信息。现需获得学生姓名及成绩信息,那么就需要创建一个关系,该关系需要包含学生姓名、科目、成绩。但为该关系创建一个新的数据表,并利用实际信息进行填充,以备查询使用,是不适宜的。因为这种做法很明显的造成了数据库中数据的大量冗余。
视图则是解决该问题的最佳策略。因为视图可以存储查询定义(或者说关系运算),那么,一旦使用视图存储了查询定义,就如同存储了一个新的关系。用户可以直接对视图中所存储的关系进行各种操作,就如同面对的是真实的数据表。
2.灵活的控制安全性
一个数据表可能含有很多列。但是这些列的信息,对于不同角色的用户,可访问的权限有可能不同。例如,在员工表中,可能存在着员工工号、员工姓名、员工年龄、员工职位、员工家庭住址、员工社会关系等信息。对于普通用户(例如普通员工),有可能需要访问员工表,来查看某个工号的员工的姓名、职位等信息,而不允许查看家庭住址、社会关系等信息;对于高级用户(例如人事经理),则需要关注所有信息。那么,这就涉及数据表的安全性。
利用视图可以灵活地实现这一策略。例如,可以首先创建名为vw_employees的视图。该视图的查询定义为,选择员工表中员工工号、员工姓名、员工职位等3列。这相当于在员工关系中,进行投影运算,即选择员工工号、员工姓名、员工职位这3个属性,形成新的关系,如图1所示。
图1 利用投影运算获得普通用户使用的视图vw_employees
同样,对于高级用户,可以创建名为vw_employees_hr的视图,该视图选择员工表中所有列,如图2所示。
图2 利用投影运算获得HR用户使用的视图vw_employees_hr
然后,对于两种角色,分别分配两个视图的查询权限,与实际的数据表employees隔离开来,从而控制数据访问的安全性。
数据库中为什么要建立视图,它有什么好处?
标签:
热心网友
时间:2022-04-08 09:11
我也是刚刚接触这方面的东西!也想问问视图到底是做什么用的!呵呵!
视图
视图是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。但是,视图并不在数据库中以存储的数据值集形式存在。行和列数据来自由定义视图的查询所引用的表,并且在引用视图时动态生成。
对其中所引用的基础表来说,视图的作用类似于筛选。定义视图的筛选可以来自当前或其它数据库的一个或多个表,或者其它视图。分布式查询也可用于定义使用多个异类源数据的视图。如果有几台不同的服务器分别存储组织中不同地区的数据,而您需要将这些服务器上相似结构的数据组合起来,这种方式就很有用。
通过视图进行查询没有任何*,通过它们进行数据修改时的*也很少。
权限方面:
视图可以隐藏基表。
可以禁止所有用户访问数据库表,而要求用户只能通过视图操作数据。这种方法可以保护用户和应用程序不受某些数据库修改的影响。例如,如果可以创建一个名为 "本月销售额 "的视图。在每月的第一天,可以相应地修改视图的定义。如果没有这个视图,用户每月都必须重新编写查询以选择相应月份的销售额。
将用户限定在表中的特定行上。
例如,只允许雇员看见工作跟踪表内记录其工作的行。
将用户限定在特定列上。
例如,对于那些不负责处理工资单的雇员,只允许他们看见雇员表中的姓名列、办公室列、工作电话列和部门列,而不能看见任何包含工资信息或个人信息的列。
将多个表中的列联接起来,使它们看起来象一个表。
聚合信息而非提供详细信息。
例如,显示一个列的和,或列的最大值和最小值。
热心网友
时间:2022-04-08 10:29
我不知道你这三种是根据什么定义的,我学的时候是五种
1、单源表视图
视图的数据可以只取自一个基本表的部分行、列,这样的视图行列与基本表行列对应。这样定义的视图一般可以进行查询和更改数据操作。
2、多源表视图
视图的数据可以来自多个表中,这样定义的视图一般只用于查询,不用于修改数据。
3、在已有视图上定义的新视图
可以在视图上再建立视图,这时作为数据源的视图必须是已经建立好的。
4、带表达式的视图
在定义基本表时,为减少数据库中的冗余数据,表中只存放基本数据,由基本数据经过各种计算派生出的数据一般是不存储的。但由于视图中的数据并不实际存储,所以定义视图时可以根据需要设置一些派生属性列,在这些派生属性列中保存经过计算的值。这些派生属性由于在基本表中并不实际存在,因此,也称它们为虚拟列。包含虚拟列的视图也称为带表达式的视图。
5、含分组统计信息的视图
含分组统计信息的视图是指定义视图的查询语句中含有GROUP BY子句,这样的视图只能用于查询,不能用于修改数据。
这些是我考数据库工程师时学的,如果你想例子我这有。
另外,站长团上有产品团购,便宜有保证
数据库视图有什么作用?
视图作用:1,简单性。看到的就是需要的。视图不仅可以简化用户对数据的理解,也可以简化他们的操作。那些被经常使用的查询可以被定义为视图,从而使得用户不必为以后的操作每次指定全部的条件。2, 安全性。通过视图用户只能查询和修改他们所能见到的数据。但不能授权到数据库特定行和特定的列上。通过视图...
什么是视图视图的作用
二、视图的作用 1. 简化复杂查询:当需要对复杂的数据进行筛选和汇总时,可以创建视图来简化查询操作。通过预先定义好复杂的查询语句,用户只需查询这个视图,而无需知道背后的复杂查询逻辑。2. 提高数据安全性:视图可以用来限制用户对基表数据的访问。通过创建只包含部分列的视图,或者只包含特定行的视图...
数据库中视图的作用
1、简单性,看到的就是需要的。视图不仅可以简化用户对数据的理解,也可以简化他们的操作。被经常使用的查询可以被定义为视图,从而使得用户不必为每次操作指定全部的条件。2、安全性,通过视图用户只能查询和修改他们所能见到的数据。数据库中的其它数据则既看不见也取不到。数据库授权命令可以使每个用户...
视图的作用包括:
视图的作用主要包括简化复杂查询、实现数据抽象和安全性控制。首先,视图可以简化复杂查询。在数据库中,经常需要执行一些复杂的查询操作,这些查询可能涉及多个表、多个条件以及复杂的连接和聚合操作。通过使用视图,可以将这些复杂的查询封装起来,只暴露给用户一个简单的查询接口。这样,用户就不需要了解底层的...
数据库视图的作用是什么
数据库视图是一个虚拟表,它是一个查询语句的查询结果集的展示。它代表了一个从原始数据表或视图中获取数据的查询。视图提供了一种访问数据的方式,就像从表的表面看一样。它可以让用户以不同的方式查看数据,并隐藏原始数据表的复杂性。视图还可以提高数据的安全性,因为它可以限制对数据的访问权限。通...
视图的作用是什么?
视图的主要作用是简化复杂的数据库操作、增加数据的安全性以及实现数据的逻辑独立性。首先,视图能够简化复杂的数据库操作。通过创建视图,用户可以将复杂的SQL查询语句封装起来,形成一个简单的视图界面。这样,用户就可以通过操作这个视图来间接地操作背后的复杂数据,而无需关心底层的具体实现细节。比如,在...
视图的作用是什么?
数据库视图的作用只要有:1. 数据库视图隐藏了数据的复杂性。2. 数据库视图有利于控制用户对表中某些列的访问。3. 数据库视图使用户查询变得简单。视图是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。但是,视图并不在数据库中以存储的数据值集形式存在。行...
数据库中的视图有什么用,我们为什么要用视图?
用来进行数据展示和分析。使用视图可以定制用户数据,聚焦特定的数据。视图是原始数据库数据的一种变换,是查看表中数据的另外一种方式。可以将视图看成是一个移动的窗口,通过它可以看到感兴趣的数据。视图是从一个或多个实际表中获得的,这些表的数据存放在数据库中。那些用于产生视图的表叫做该视图的基...
视图是什么意思
视图的作用:通过视图用户只能查询和修改他们所能见到的数据。数据库中的其它数据则既看不见也取不到。数据库授权命令可以使每个用户对数据库的检索限制到特定的数据库对象上,但不能授权到数据库特定行和特定的列上。通过视图,用户可以被限制在数据的不同子集上:使用权限可被限制在另一视图的一个子集...
什么是视图?使用视图的优点是什么?
视图是一种虚拟的数据表,它是从一个或多个实际表中获得的,用户可以通过视图访问数据,但不需要了解数据是如何存储的。简而言之,视图是一个“窗口”,通过这个“窗口”可以看到数据表中感兴趣的部分数据。使用视图的优点主要表现在几个方面。首先,视图能够简化复杂的SQL查询,提供...