乱谈SQL Server数据库视图
来源:互联网 发布:淘宝特种经营有什么用 编辑:程序博客网 时间:2024/06/08 05:50
数据库里存储着大量的数据,但是为了保证数据的安全也为了方便,并不是所有用户的都可浏览所有数据。为此SQL Server里用权限、角色、视图来解决这一系列问题。本篇博客我先介绍视图。
概念:视图是从一个或多个关联表中派生出的一个虚拟表,换句话说就是以一个或多个表中的部分数据组成的虚拟“表”。
特点:
一、分割数据,简化视点:即通过SELECT和WHERE语句来选择你关心的数据,而去除无关的数据。
二、简化操作:视图可以避免对表的访问和存取操作,同时视图是一个很好的查询窗口。
三、保护数据:针对用户创建视图,自动屏蔽权限外的数据。
四、为数据重构提供一定的逻辑独立性:在关系型数据库中数据重构是不可避免的,最常见的是垂直分割为两个表,那么由于表中的数据类型和值并没有改变,所以只要稍微改动视图的定义既可以满足变更之后的表
五、自动更新:在数据库结构不变的情况下,如果基表中的数据改变,会被自动的反应到视图中
疑问:对于视图是一个对象,又是“虚拟表”,还具有自动更新的特点,引发了我对视图存储的思考:视图是对象说明视图创建后即被实例化,那么它应该是实际存在于数据库中的,它也确实存在。但是它是虚拟表又怎么解释呢?首先,它只能是以结果集的方式存储,每次打开就打开结果集,但是这样的话如何自动更新;或者是以T-SQL 语句才方式存储,每次打开便执行一次语句,这样就可以解释自动更新了,但问题是视图可能很大每次执行浪费资源。所以这两种存储方式并不科学。
我查了一些资料,也咨询了学长、学姐,结果是没有结果。但经过讨论我认为,视图应该是以结果集的形式来存储的,同时存在着一种类似于触发器的机制来时时更新视图里的内容。这样的话视图的性质和特点就都可以解释了。当然这只是我的推断,不是事实,写出来只是想寻找答案。
- 乱谈SQL Server数据库视图
- SQL Server数据库视图
- SQL server 导出数据库表关系视图
- sql server 2005数据库同步 表,存储过程,视图.
- 数据库视图的作用---[Microsoft Sql Server 2005]
- sql server 判断是否存在数据库,表,列,视图
- sql Server 2000 分区视图的运用(分布式数据库)
- 导图 SQL Server之数据库对象管理 之 视图管理
- sql server 判断是否存在数据库,表,列,视图
- sql server 判断是否存在数据库,表,列,视图...
- SQL Server 2008 检索数据库、表、视图、存储过程等
- sql server 判断是否存在数据库,表,列,视图
- 006 sql server界面视图分析 数据库结构
- sql server 判断是否存在数据库,表,列,视图
- sql server 判断是否存在数据库,表,列,视图
- SQL Server创建视图
- SQL Server 视图创建
- SQL Server系统视图
- C++类别转换之char*与string的互转换
- CPPNIUT使用过程常见问题FAQ
- delete与delete [] 真正区别
- android学习-DDMS使用
- hdu 1999-不可摸数
- 乱谈SQL Server数据库视图
- 人件--读书笔记2
- 01.struts2_msb
- 进行链表的排序的一种方法,
- golang信号量处理
- linux线程属性的设置(转)
- ads1115寄存器操作
- VS 2005 创建DLL工程,并进行调用与调试例子
- servlet struts2清除页面缓存代码