首页 > 编程知识 正文

数据库中视的作用是,数据库中什么叫视

时间:2023-05-06 08:32:30 阅读:238153 作者:2056

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

既然视图的定义是基于基本表的,那为什么还要定义视图呢?这是因为合理的使用视图能够带来许多好处:
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)ASSELECT SX.Sno,SX.Sname,SY.Ssex,SX.Sage,SY.SdeptFROM SX,SYWHERE SX.Sno=SY.Sno;

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

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

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

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

CREATE VIEW VMGRADEASSELECT Sno,MAX(Grade) MgradeFROM SCGROUP BY Sno;

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

SELECT SC.Sno,CnoFROM SC,VMGRADEWHERE SC.Sno = VMGRADE.Sno AND SC.Grade = VMGRADE.Mgrade;

转自博客:http://blog.csdn.net/sunnyzhangwenhan/article/details/8567996

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。