视图的优缺点

摘要:
在编程之前,必须了解视图的优点和缺点。视图不仅可以简化用户对数据的理解,还可以将常用查询定义为视图,用户只能通过视图查询和修改他们可以看到的数据。数据库授权命令可以将每个用户对数据库的检索限制为特定的数据库对象,并且可以将用户限制为不同的数据子集。视图可以使应用程序表和数据库表在某种程度上独立。程序可以构建在视图上。

视图的优点与缺点

在程序设计的时候必须先了解视图的优缺点,这样可以扬长避短,视图具有如下的一些优点:

● 简单性。视图不仅可以简化用户对数据的理解,也可以简化他们的操作。那些被经常使用的查询可以被定义为视图,从而使用户不必为以后的操作每次都指定全部的条件。

● 安全性。通过视图用户只能查询和修改他们所能见到的数据。数据库中的其他数据则既看不见也取不到。数据库授权命令可以使每个用户对数据库的检索限制到特定的数据库对象上,但不能授权到数据库特定行和特定的列上。通过视图,用户可以被限制在数据的不同子集上。

● 逻辑数据独立性。视图可以使应用程序和数据库表在一定程度上独立。如果没有视图,应用一定是建立在表上的。有了视图之后,程序可以建立在视图之上,从而程序与数据库表被视图分割开来。

视图也存在一些缺点,主要如下。

● 性能:SQL Server必须把视图的查询转化成对基本表的查询,如果这个视图是由一个复杂的多表查询所定义,那么,即使是视图的一个简单查询,SQL Server也把它变成一个复杂的结合体,需要花费一定的时间。

● 修改限制:当用户试图修改视图的某些行时,SQL Server必须把它转化为对基本表的某些行的修改。对于简单视图来说,这是很方便的,但是,对于比较复杂的视图,可能是不可修改的。

所以,在定义数据库对象时,不能不加选择地来定义视图,应该权衡视图的优点和缺点,合理地定义视图。

免责声明:文章转载自《视图的优缺点》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇[省选联考 2021 B 卷] 取模linux shell 学习笔记--变量声明与赋值,循环下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Mysql基础

字段类型 mysql字段定义中INT(x)中的x仅仅指的是显示宽度。该可选显示宽度规定用于显示宽度小于指定的列宽度的值时从左侧填满宽度。显示宽度并不限制可以在列内保存的值的范围,也不限制超过列的指定宽度的值的显示。所以x的定义与存储空间没有任何关系都是4个字节。 超过最大数值不会报错但是根据此字段查询不到,也关联不起来。 查看mysql数据库编码 sho...

Spring配置-数据库连接池proxool[转]

 数据库连接是一种关键的有限的昂贵的资源,这一点在多用户的网页应用程序中体现得尤为突出。对数据库连接的管理能显著影响到整个应用程序的伸缩性和健壮性,影响到程序的性能指标。数据库连接池正是针对这个问题提出来的。   数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而再不是重新建立一个;释放空闲时间超过最大空闲时间的数据...

mvc+EF

---------------------------------------------------------------------数据库先行------------------------------------------------------------------------------------- 这种方式是比较传统的以数据库为核心的开...

【转载】查看MSSQL数据库每个表占用的空间大小的方法

sp_spaceused显示行数、保留的磁盘空间以及当前数据库中的表所使用的磁盘空间,或显示由整个数据库保留和使用的磁盘空间。语法sp_spaceused [[@objname =] 'objname'][,[@updateusage =] 'updateusage']参数[@objname =] 'objname'是为其请求空间使用信息(保留和已分配的空...

sqlserver批量规律修改字段值

最近有这么一个任务,将数据库中现有三千多条数据从800000开始编号,每次增量为1,于是有以下三种解决方法: 1、直接在数据库手动一个一个加(你开心就好) 2、新增一个数据库字段如number,设置number字段为标识列,设置种子和增量,保存后表格自动生成值后再根据需要设置该字段为非标识列和修改字段类型(仅支持int数据类型) 3、使用数据库语句(推荐)...

centos下修改mysql8.0数据库存储目录后出现问题:File './mysql-bin.index' not found (OS errno 13 -Permission denied)

在centos7.6下安装mysql8.0,安装完成后修改数据库存储目录,在配置文件/etc/my.cnf中修改datadir ,socket  修改后进行初始化,初始化完成后启动数据库报如下错误:  解决方案:将/etc/selinux/config中这里改为 disabled,然后重启机器就可以了...