第11章视图 数据库的真实数据都是存在于数据表中,数据表总是 反映现实世界的实体关系。但是,为现实世界的所有关系创 建数据表是不现实的。数据库中的视图解决了这一问题。视 图以物理数据为基础,利用更灵活的策略来实现关系。本章 的主要内容包括: 视图简介 关系视图的创建和使用 内嵌视图的使用 对象视图的使用 物化视图的使用 通过本章的学习,读者可以了解视图的本质,掌握如 何创建和使用各种视图,并对各种视图之间的区别有清晰的 了解
11.1视图简介 视图是各种数据库的通用概念。用户可以像操作普通 表一样操作视图。视图往往不占用数据库额外的存储空间, 而只存储定义
11.1.1什么是视图 视图是由已存在的数据,通过一定的运算规则,来获 得新的数据集合。这使得用户可以更加灵活的自定义数据集 合。视图同时为数据安全性提供了一种控制策略。 1.视图的产生 2.视图的本质
12
11.1.1什么是视图 下一 employees employee_id(员IID) employee_name(员工姓名) employee position(员工职位) employee_age(员工年龄) employee_.address(员工住址) vw employee salary employee id(员工ID) 关系运算 salary employee name(员工姓名) month(月份) salary_id(工资ID) salary(工资) employee_.id(员IID) month(月份)】 salary(工资) currency(货币种类)
salary salary_id (工资ID) employee_id (员工ID) month (月份) salary (工资) currency (货币种类) vw_employee_salary employee_id (员工ID) employee_name (员工姓名) month (月份) salary (工资) employees employee_id (员工ID) employee_name (员工姓名) employee_position (员工职位) employee_age (员工年龄) employee_address (员工住址) 关系运算
11.1.1什么是视图 employees vw employees employee id employee name 投影 employee_id employee position employee name employee age employee position employee address employees vw_employees_hr employee_id employee id employee name 投 employee name employee position employee_position employee age employee age employee_address employee_address
vw_employees employee_id employee_name employee_position 投影 employees employee_id employee_name employee_position employee_age employee_address vw_employees_hr employee_id employee_name employee_position employee_age employee_address 投影 employees employee_id employee_name employee_position employee_age employee_address
11.1.2为什么使用视图 视图是绝大部分数据库开发中都会使用的概念。使用 视图大致有两个方面的原因。 1.封装查询 2.灵活的控制安全性
1 2
11.2创建和使用关系视图 Oracle中的视图,按照创建和使用方式的不同,可以分 为四类:关系视图、内嵌视图、对象视图和物化视图。关系 视图是四种视图中最简单,同时也是最常用的视图。正如 11.1节所述,关系视图可以看作对简单或复杂查询的定义。 它的输出可以看作一个虚拟的表
Oracle 11.1
11.2.1创建关系视图 Oracle视图是作为数据库对象存在的,因此,创建之后 也可以通过工具或数据字典来查看视图的相关信息。本小节 将讲述关系视图的创建以及如何查看视图的属性信息。 1.创建关系视图 2.查看视图定义
Oracle 1 2
11.2.1创建关系视图 白宣Mews +▣AQSDEFs_.AQCALL 由AQSDEFS_AQERROR +香MVIEW_EVALUATIONS +昏MVIEW_.EXCEPTIONS SQL Oulput Statistics ⊕容MVIEW_FILTER create or replace view vw employees as 由MVIEW_FILTERINSTA select employee id,employee name,employee position 中每MVIEW_LOG from employees; 由▣MVIEW_RECOMMEND 8 MVIEW_WORKLOAD 由▣OV_EMPLOYEES +▣PRODUCT_.PRIVS 每WB0oKS 昏W_EMPLOYEES W_EMPLOYEE_SALA 中南N FMPIOYFF SAIF
11.2.2使用关系视图 视图一旦创建,用户可以像查询数据表一样查询视图 中的数据。但是,对于插入和更新操作来说,情况则有些不 同。 1.查询视图 2.更新视图数据 3.向视图插入数据 4.总结利用关系视图修改数据
1. 2. 34