第12章 视图
这张的内容很简单,因为没有涉及具体的sql语句的编写,所以都是概念性的讲述。
什么是视图
视图是由数据库中的一个或多个表中字段组成的虚拟表,它也可以包含取自其他视图中的字段。组成一个视图的表和视图被称为该视图的基表。
在数据库中定义和使用视图的几个理由:
- 可同时处理取自多个表中的数据。
- 反映最新的信息。
- 根据个人或群体的特定需求定制。
- 有助于实施数据完整性。
- 用于保密和安全用途。(拒绝了别人直接操作数据库)
视图之剖析
设计数据库逻辑结构时,可以定义的视图分为3种:数据视图、聚合视图和验证视图。在RDBMS程序中可以定义物化视图和分割视图,不过不再本书的考虑范围内,所以不再介绍。
数据视图
这种视图用于检查和操作来自一个或多个基表的数据。
聚合视图
这种视图用于展示特定一组数据聚合所产生的信息。正如数据视图一样,可以使用一个或多个基表定义聚合视图。然后,再加入一个或多个计算字段,由计算字段包含的函数把数据和一个或多个数据字段聚合成聚合数据。
说句人话就是比起上面的数据视图直接读取现有表中数据,加了几个由函数处理产生的字段。
验证视图
验证视图与验证表类似。它也可以帮助实现数据完整性。当业务规则限制特定字段的值的范围时,也可以借助验证视图实施该限制,和使用验证表一样简单。两者的不同之处在于他们的结构,验证表存储其自身的数据,而验证视图从其基表中提取数据。另外,定义验证视图可以使用一个或多个基表,而验证表通常表示使用一个表,仅包含两个或三个基表的字段。
确立视图
与用户和管理人员合作
- 和代表们一道回顾你的记录
- 回顾设计早期阶段收集的数据输入、报表和演示样本
- 检查表及其结构所表示的主题
- 分析表关系
- 研究业务规则
通过上述过程来确定是否需要视图,以及怎样的视图。
定义视图
根据前面确定的视图需求定义视图,这里不涉及具体的sql语句的编写,所以带过。
酌情使用计算字段
我们在设计数据库表结构的时候已经删除掉计算字段了,但是计算字段还是存在一定优点的,所以可以在视图中使用计算字段。
还有一个基本快被我们遗忘的存在–计算字段列表。
现在就是把该字段通过视图来实现。
使用视图规范表记录视图
没创建一个视图必须对应一个视图规范表。视图规范表用于记录相应视图的特征。
它包含以下几项:
- 名称:该视图的名称
- 类型:数据、聚合或验证视图
- 基表:这里仅记录基表名称,不记录具体字段值
- 计算字段表达式
- 过滤器:指示该视图显示记录的过滤条件
有一个具体的表格:
评审每个视图的文档记录
- 确保正确定义视图
- 确保所创建的计算字段适用于该视图
- 确保明确了解过滤器的检索要求
- 最重要的是,确保每个视图都有对应的示意图和规范表