最近在做的一个项目,主要是数据库的操作,终于有时间来整理数据库的相关知识了。
表:表是数据库中存储数据的基本单位,保存的是实际的数据,是占据物理存储空间的。
视图:视图是从一个或多个表中查询数据的另外一种形式,其结构和数据是建立在对表的查询基础之上的。视图本身不包含数据,它只是一个查询语句的结果。
从SQL角度讲,视图就是一张表,视图和表是相同的。两者的区别就在于表中保存的是实际的数据,而视图中保存的是select语句。
我们从视图中读取数据,视图会在内部执行该select语句并创建出一张临时表。
使用视图的好处:
①视图可以集中数据、简化和定制不同用户对数据库的不同数据要求。
②使用视图可以屏蔽数据的复杂性,用户不必了解数据库的结构,就可以方便的使用和管理数据,简化数据权限管理和重新组织数据以便输出到其他应用程序中。
③视图可以使用户只关心自己感兴趣的某些特定的数据和所负责的特定任务,而那些不需要的或者无用的数据则不在视图中显示。
④视图提供了一个简单而有效的安全机制,他可以查询表指定的列展现给用户,而不必让使用者完全看见表的所以字段。
⑤可以将频繁使用的select语句保存成视图,这样就不用每次都重新书写了。
实体化视图:相对于普通的视图来说,实体化视图的不同之处在于实体化视图管理存储数据,占据数据库的物理空间。
实体化视图的结果会保存在一个普通的数据表中,在对实体化视图进行查询的时候不再会对创建实体化视图的基表进行查询,而是直接查询实体化视图对应的结果表,然后通过定期的刷新机制来更新实体化视图表中的数据。
实体化视图在实际中的主要作用:
1、减轻网络负担:通过实体化视图将数据从一个数据库分发到多个不同的数据库上,通过对多个数据库访问来减轻对单个数据库的网络负担。
2、搭建分发环境:通过从一个中央数据库将数据分发到多个节点数据库,达到分发数据的目的。
3、复制数据子集:实体化视图可以进行行级/列级的筛选,这样可以复制需要的那一部分数据。
4、实体化视图是用于汇总,预计算,复制或分发数据的对象, 在大型的数据库中使用它可以提高涉及到的SUM,COUNT,AVG,MIN,MAX等的表的查询的速度。
5、物化视图的快速刷新采用了增量的机制,在刷新时,只针对基表上发生变化的数据进行刷新。因此快速刷新是物化视图刷新方式的首选。