`
lost-java
  • 浏览: 23410 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

视图作用

阅读更多
转自:http://database.e800.com.cn/articles/2009/719/1248015564465_1.html


视图是从一个或几个基本表(或视图)导出的表。它与基本表不同,是一个虚表。数据库只存放视图的定义,而不存放视图对应的数据,这些数据仍存放在原来的基本表中。所以基本表中的数据发生变化,从视图中查询出的数据也就随之改变了。从这个意义上讲,视图就像一个窗口,透过它可以看到数据库中自己感兴趣的数据及其变化。

既然视图的定义是基于基本表的,哪为什么还要定义视图呢?这是因为合理地使用视图能够带来许多好处:

1、 视图能简化用户操作

视图机制使用户可以将注意力集中在所关心地数据上。如果这些数据不是直接来自基本表,则可以通过定义视图,使数据库看起来结构简单、清晰,并且可以简化用户的的数据查询操作。例如,那些定义了若干张表连接的视图,就将表与表之间的连接操作对用户隐藏起来了。换句话说,用户所作的只是对一个虚表的简单查询,而这个虚表是怎样得来的,用户无需了解。

2、 视图使用户能以多种角度看待同一数据

视图机制能使不同的用户以不同的方式看待同一数据,当许多不同种类的用户共享同一个数据库时,这种灵活性是非常必要的。

3、 视图对重构数据库提供了一定程度的逻辑独立性

数据的物理独立性是指用户的应用程序不依赖于数据库的物理结构。数据的逻辑独立性是指当数据库重构造时,如增加新的关系或对原有的关系增加新的字段,用户的应用程序不会受影响。层次数据库和网状数据库一般能较好地支持数据的物理独立性,而对于逻辑独立性则不能完全的支持。

在关许数据库中,数据库的重构造往往是不可避免的。重构数据库最常见的是将一个基本表“垂直”地分成多个基本表。例如:将学生关系Student(Sno,Sname,Ssex,Sage,Sdept),

分为SX(Sno,Sname,Sage)和SY(Sno,Ssex,Sdept)两个关系。这时原表Student为SX表和SY表自然连接的结果。如果建立一个视图Student:

CREATE VIEW Student(Sno,Sname,Ssex,Sage,Sdept)
AS
SELECT SX.Sno,SX.Sname,SY.Ssex,SX.Sage,SY.Sdept
FROM SX,SY
WHERE SX.Sno=SY.Sno;

这样尽管数据库的逻辑结构改变了(变为SX和SY两个表了),但应用程序不必修改,因为新建立的视图定义为用户原来的关系,使用户的外模式保持不变,用户的应用程序通过视图仍然能够查找数据。

当然,视图只能在一定程度上提供数据的逻辑独立,比如由于视图的更新是有条件的,因此应用程序中修改数据的语句可能仍会因为基本表构造的改变而改变。

4、视图能够对机密数据提供安全保护

有了视图机制,就可以在设计数据库应用系统时,对不同的用户定义不同的视图,使机密数据不出现在不应该看到这些数据的用户视图上。这样视图机制就自动提供了对机密数据的安全保护功能。例如,Student表涉及全校15个院系学生数据,可以在其上定义15个视图,每个视图只包含一个院系的学生数据,并只允许每个院系的主任查询和修改本原系学生视图。

5、适当的利用视图可以更清晰地表达查询

例如经常需要执行这样的查询“对每个学生找出他获得最高成绩的课程号”。可以先定义一个视图,求出每个同学获得的最高成绩:

CREATE VIEW VMGRADE
AS
SELECT Sno,MAX(Grade) Mgrade
FROM SC
GROUP BY Sno;

然后用如下的查询语句完成查询:

SELECT SC.Sno,Cno FROM SC,VMGRADE WHERE SC.Sno = VMGRADE.Sno AND SC.Grade = VMGRADE.Mgrade;
分享到:
评论

相关推荐

    Word快速了解五种常见视图作用.docx

    Word 五种常见视图作用详解 微软 Word 是最广泛使用的文字处理软件之一,它提供了多种视图方式,帮助用户更好地编辑和阅读文档。在本文中,我们将详细介绍 Word 五种常见视图作用,包括页面视图、阅读版式视图、Web...

    oracle系统视图作用大全

    Oracle系统视图是Oracle数据库数据字典的重要组成部分,它们提供了关于数据库结构、状态以及活动的详细信息。这些视图对于数据库管理员(DBA)来说至关重要,因为它们可以帮助监控和管理数据库,解决性能问题,以及...

    TIA博途网络组态时,拓扑视图要不要连接,有什么作用?.docx

    网络视图和拓扑视图是两个不同的但相互关联的概念,它们在工程组态和网络诊断中起到至关重要的作用。 首先,网络视图是TIA博途中用于配置和管理网络通信的核心组件。在这个视图中,用户可以设定设备间的通信参数,...

    sql server视图的作用本篇文章.doc

    视图的主要作用包括: 1. **增强可读性**:视图允许我们将复杂的查询逻辑封装起来,使得查询语句更加简洁易读。例如,如果一个查询涉及多张表的联接和复杂的WHERE条件,创建视图后,只需简单地从视图中选择所需字段...

    9.1.2 视图的作用,视图可以更改么?.md

    9.1.2 视图的作用,视图可以更改么?

    视图的作用视图的作用

    视图在数据库中的作用至关重要,它是数据库管理系统提供的一种数据抽象机制,主要体现在以下几个方面: 1. 数据安全性:视图能够限制用户对原始数据的访问权限。通过创建视图,管理员可以选择性地展示数据,使用户...

    MySQL--视图的定义

    #### 视图的作用 - **简化操作**:视图可以将复杂的查询封装起来,简化用户的操作。 - **安全性增强**:通过定义视图,可以限制用户对敏感数据的访问,例如,不包括基表中的某些敏感字段(如手机号码)。 - **数据...

    Word2021中5种视图模式的作用.docx

    Word2021中的5种视图模式的作用 在Word2021中,用户可以选择多种视图模式来满足不同的需求和应用场景。这些视图模式包括页面视图、阅读版式视图、Web版式视图、大纲视图和草稿视图五种。每种视图模式都有其特点和...

    spring-webflow-reference

    - **操纵视图作用域对象**:修改视图作用域内的对象属性。 #### 总结 Spring Web Flow为开发者提供了一个强大而灵活的工具来管理复杂的业务流程。通过上述知识点的介绍,我们可以了解到其基本概念、核心组件及其...

    数据库中视图操作.doc。这是个图文并茂的教程有作用的

    视图的主要作用包括简化复杂的查询、隐藏数据复杂性、提供安全性以及实现数据的逻辑独立性。视图的修改通常受到限制,因为它们是只读的,除非在创建时指定了`WITH CHECK OPTION`,这样可以允许更新,但必须符合原始...

    oracle实现带参数视图

    在数据库设计与管理过程中,视图(View)作为一种虚拟表,对于简化查询、增强数据安全性和提供数据抽象具有重要作用。然而,标准的视图定义是静态的,无法根据不同的输入参数返回不同的结果集。Oracle 数据库提供了...

    国家开放大学 形考答案 mysql 实验训练4:视图和索引的构建与使用

    实验目的是基于已有的汽车用品网上商城数据库 Shopping,理解视图和索引的概念和作用,练习视图的基本操作,包括视图的建立、视图的查询、视图的更新、视图的删除,体会视图带来的方便;练习索引的创建和删除,对比...

    sql server视图详解

    ### 视图的作用 1. **简化查询**:视图可以隐藏复杂的表结构,用户只需操作视图,无需了解底层数据源的细节。 2. **安全机制**:通过视图,可以限制用户对原始表的访问权限,只允许他们看到和修改特定的数据。 3. **...

    计算机视觉中的多视图几何

    ### 计算机视觉中的多视图几何 #### 引言 在计算机视觉领域中,多视图几何是一项核心技术和理论基础,它涉及到如何从不同视角的图像中恢复三维场景的信息...随着技术的进步,未来多视图几何将在更多领域发挥重要作用。

    UML九种视图总结

    UML九种视图的作用是帮助开发者更好地理解和设计软件系统,提供了一种通用的语言和模型来描述软件系统的各个方面。每种视图都有其特定的目的和应用场景。 在UML类图中,有四种关系:泛化关系、依赖关系、关联关系和...

    sql视图复制工具

    这就是"sql视图复制工具"的作用所在。 视图复制工具的主要功能是自动化地将源数据库中的视图结构和定义安全、高效地移植到目标数据库。这个过程通常包括以下步骤: 1. **分析视图定义**:工具首先读取源数据库中...

    MySQL数据库:使用NAVICAT工具创建和管理视图.pptx

    ### 视图的作用 视图的主要好处在于: - **简化复杂查询**:视图可以封装复杂的SQL查询,使得用户只需要查询视图即可获取所需数据。 - **数据安全**:通过视图,可以限制用户对原始表的访问权限,只允许他们查看和...

    往上拖拉底部视图底部视图会滑动出现并覆盖主视图.rar

    `CoordinatorLayout`是Google推出的用于创建复杂布局的框架,它可以处理子视图之间的相互作用。底部视图可以是一个`BottomSheet`,而`BottomSheetBehavior`可以控制它的滑动行为。在Java或Kotlin代码中,需要设置`...

    ORACLE9I物化视图

    ### ORACLE9I 物化视图 #### 执行概览 随着数据库技术的发展,无论是数据仓库、数据集市还是在线事务处理...随着数据量的增长和技术的进步,物化视图将继续发挥其重要作用,成为现代数据库系统不可或缺的一部分。

    SQL_Server视图和索引

    ### SQL Server 视图与索引详解 #### 一、视图的概念与操作 ##### 1.1 视图的基本概念 视图是基于SQL语句的结果集的一种虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。但是,...

Global site tag (gtag.js) - Google Analytics