`
ethen
  • 浏览: 122234 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

数据库中视图的作用

阅读更多

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

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

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;

分享到:
评论

相关推荐

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

    数据库中的视图是一种虚拟表,它不存储实际数据,而是基于一个或多个表或视图的查询结果。视图提供了一种方式来封装特定的查询,使得数据的访问更为简单和安全。以下是对视图操作的详细介绍: 1. **创建视图**: -...

    sql 创建数据库表、视图语句

    若要修改视图中的数据,需要更新底层的实际表。 在网站开发中,正确设计数据库表和视图对于优化查询性能、确保数据一致性以及提供用户友好的接口至关重要。通过熟练运用`CREATE TABLE`和`CREATE VIEW`语句,你可以...

    视图的作用视图的作用

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

    数据库中视图的概念和作用.doc

    数据库中视图的概念和作用

    实验7 数据库的视图定义及维护实验.doc

    数据库视图定义及维护实验 本实验的目的是使学生掌握视图的定义与维护操作,加深对视图在关系数据库中的作用的理解。视图是根据子模式建立的虚拟表,一个视图可以由一个表构造,也可以由多个表构造。利用企业管理器...

    数据库实验报告 视图的定义及使用实验(详细版有截图的)

    4. `UPDATE`, `INSERT`, `DELETE`等命令可以用来更新视图中的数据,这些操作同样遵循与基本表相同的规则,但需要注意的是,某些视图可能受到限制,不允许进行数据修改,这取决于视图的定义。 实验任务分为四个部分...

    连接其他oracle数据库信息创建本地视图

    数据库链接允许我们在一个Oracle实例中创建对另一个Oracle实例的逻辑连接,从而能够查询远程数据库中的表或视图,就像它们是本地对象一样。这种方式不仅提供了实时的数据共享,还避免了数据复制带来的资源消耗。 ...

    Oracle数据库视图管理

    ### Oracle数据库视图管理知识点详解 #### 一、Oracle数据库对象概述 在Oracle数据库中,数据对象主要包括表和视图,此外还有约束、序列、函数、存储过程、包、触发器等多种类型。这些数据对象构成了Oracle数据库...

    MySQL数据库:数据视图概述.pptx

    在MySQL数据库中,视图是通过执行`SELECT`语句从一个或多个基本表或已有视图中导出的虚拟表。这种虚拟表并不在数据库中存储实际数据,而是在用户查询时动态生成,这被称为“按需计算”。 **视图的概念** 视图是...

    用其它oracle数据库表内容创建本地视图

    数据库链接是一种逻辑路径,用于从当前数据库访问远程数据库中的对象(如表或视图)。创建数据库链接后,可以从当前数据库通过该链接查询远程数据库中的数据,就好像它们是在同一个数据库中一样。 ##### 2. 创建...

    数据库设计视图生成器 word 格式 包括 字段、类型、键

    数据库设计视图生成器 word 格式 包括 字段 类型 键 这个工具可以方便的导出数据库设计视图,是我自己用来向编程人员提供开发文档的数据库导出工具 需要安装word 2003

    用于刷新数据库所有视图

    刷视图代码 用于刷新新增表字段对应的所有试图

    达梦数据库常用系统视图及查询语句.pdf

    本文将详细介绍达梦数据库中的常用系统视图及查询语句,帮助管理员更好地监控和管理数据库。 一、常用的系统视图: 1. `dba_objects`:此视图显示数据库中所有对象的详细信息,包括表、视图、索引、过程等。通过...

    c# 动态获得数据库中所有查询和视图

    在C#编程中,动态获取数据库中的所有查询和视图是一项关键任务,这通常涉及到数据库的元数据操作。本文将深入探讨如何利用C#来获取这些信息,特别是关于视图和存储过程的详细内容。 首先,我们需要连接到数据库。在...

    MySQL数据库:视图的使用.pptx

    MySQL 数据库视图的使用 MySQL 数据库中的视图是一种虚拟表,基于基本表的数据,它可以简化复杂的查询操作,提高数据的可读性和可维护性。本文将详细介绍 MySQL 数据库中的视图的使用,包括可更新视图的条件、通过...

    数据库视图的创建和使用

    #### 一、数据库视图的概念与作用 数据库视图(View)是关系数据库中的一种重要抽象概念,它基于一个或多张表,并且可以根据需求进行定制化显示。简单来说,视图可以看作是从一个或多个表中选取的数据的虚拟表。...

    数据库表/视图的创建与维护实验

    3. **视图的构建与管理**:熟悉在Sybase数据库中创建与维护视图的方法,理解视图概念,包括单表与多表视图。 4. **数据导入技术**:熟练运用方法将Excel数据导入Sybase数据库,包括CSV文件的生成与导入流程。 #### ...

    数据库视图的详细用法讲解

    数据库视图是数据库管理系统中的一个重要概念,它提供了一种虚拟表的形式,允许用户从一个或多个实际表中选择和组织数据,以满足特定查询需求。视图并不存储数据,而是根据用户的需求动态生成数据,因此它是一种逻辑...

Global site tag (gtag.js) - Google Analytics