数据库系统原理介绍 第五讲.pdf
文本预览下载声明
数据库系统原理
1
关系模型
SQL语言(3)
视图
索引
2
视图
在某些情况下,让所有用户看到整个逻辑模型是不合适的
考虑一个职员需要知道教师的标识、姓名和所在系名,但是没有权限
看到教师的工资值。此人应该看到的关系由如下SQL语句所描述:
select ID, name, dept_name
from instructor
视图就提供了这种机制:向用户隐藏特定的数据
SQL允许通过查询来定义“虚关系”,它在概念上包含查询的结果,
但并不预先计算并存储。像这种作为虚关系对用户可见的关系称为视
图(view)
3
视图定义
在SQL中,我们用create view命令定义视图,命令的格式为:
create view v as query expression
query expression 可以是任何合法的查询表达式
v 表示视图名
使用视图的目的:安全及易于使用
对应地,删除视图,使用命令: drop view v
例,重新考虑需要访问 instructor关系中除salary之外的所有数据,
此视图的定义如下:
create view faculty as
select ID, name, dept_name
from instructor 4
视图定义
例,创建一个视图,列出Physics系在2009年秋季学期开设的所有课
程,以及每个课程在哪栋建筑的哪个房间授课的信息
create view physics_fall_2009 as
select course.course_id, sec_id, building, room_number
from course, section
where course.course_id = section.course_id
and course.dept_name = ’Physics’
and section.semester = ’Fall’
and section.year = ’2009’;
5
视图定义
视图的属性名也可以按下述方式显示指定
例,列出每个系中所有教师的工资总和
create view departments_total_salary (dept_name, total_salary) as
select dept_name, sum (salary)
from instructor
group by dept_name ;
当我们定义一个视图时,数据库系统存储视图定义本身,而不存储定义
该视图的查询表达式的执行结果
6
SQL查询中使用视图
一旦定义了一个
显示全部