什么是DBMS中的物化视图?
物化视图是一个其内容被计算并存储的视图。物化视图也是一个逻辑虚拟表,但在这种情况下,查询的结果存储在表或磁盘中。由于数据存储在磁盘中,因此物化视图的性能优于普通视图。
它也称为索引视图,因为查询后创建的表被索引,并且可以更快、更有效地访问。
示例
考虑以下给出的视图:
Create view branchloan(branch-name, total-loan) as select branch-name , sum(amount) from loan groupby branch-name;
如果经常需要总贷款金额,则对上述视图进行物化将特别有用。
它节省了查找多个元组并将它们的金额加起来的麻烦。
保持物化视图与底层数据同步的任务称为物化视图维护。它可以通过在每次更新时重新编译来维护。
一个更好的选择是使用增量视图维护。它将数据库关系的更改用于计算物化视图的更改,然后更新物化视图。
视图维护可以通过以下方式完成:
在视图定义中每个关系的插入、删除和更新上手动定义触发器。
手动编写代码以在更新数据库关系时更新视图。
由数据库直接支持。
增量视图维护
对关系或表达式的插入和删除等更改被称为其差分,插入到关系r和从关系r删除的元组集分别表示为ir和dr。
为了简化我们的描述,让我们考虑插入和删除,我们将对元组的更新替换为删除该元组,然后插入更新后的元组。
我们描述了如何在给定对其输入的更改的情况下计算每个关系运算结果的更改。然后,我们概述了如何处理关系代数表达式。
物化视图选择
必须根据系统工作负载做出物化视图选择决策。索引就像物化视图一样,索引选择的难题与物化视图选择密切相关,尽管它更简单。
一些数据库系统提供工具来帮助数据库管理员进行索引和物化视图选择。
广告