事务 , 视图 , 和索引

01. 事务

什么是事务?

事务是单个的工作单元 如在某一项事务成功,则在该事务中进行的所有数据更改均会提交,成为数据库中的永久组成部分.如果事务遇到错误且必须取消或回滚,则所有数据更改均被清楚

为什么需要事务?

在银行业务中,有一条记账原则 ,即又借有贷,借贷相等,为了保证这种原则,每发生一笔银行业务,就必须确保会记账目上  借方科目和贷方科目至少各记一笔,并且这两笔账要么同时成功,要么同时失败.

视图使得人们可以为一个或者多个数据表定义一个特殊的表现形式。视图在表现行为上与表没有差别,可以select查询,也可以用insert,update,delete来修改数据。

一般使用视图的理由有两个,一个是安全,例如一个表中包含了员工的个人资料,那像电话姓名这些是所有人都可以查询的,但是像薪水这些东西就只有特定的人能查询了,因此最好的办法就是将所有人都可以访问的数据部分创建为一个视图,供别人查询。另一个是方便,视图使用起来很方便,不用输入复制的命令

在视图里修改数据:能不能修改某个视图中的数据取决于视图的select命令,可刷新的视图需要满足以下几个条件:

(1)当初定义的select中不得包含group by、distinct、limit、union或having等子命令

(2)如果视图中的数据来自一个以上的表,那它总是不可刷新的

(3)视图中应包含主键索引,唯一索引,外间约束条件所涉及到的所有数据列

 

事务

        为什么要使用事务操作? 有助于提高数据库系统的运行效率和安全性,举个例子,要从一个人的账户装100美元到另一个的账户中,需要两步操作,更新第一个人的账户余额,更新第二个人的账户余额,如果第一个操作执行完以后系统出了问题,那后果就严重了。如果有事务的话,如果成功了,那就最好,如果在执行到一半的时候失败了,那执行了的部分也会被撤销。事务也可以保证同一批数据不会被两位用户同时修改,并发控制。

ACID原则:

原子性:这意味事务就想原子那样是不可分割的

稳定性:这意味着事务执行完毕后数据库必须处于一个稳定的状态

隔离性:多个事务可以独立运行,不受彼此干扰,如果有一个事务提交了,所有受到影响的事务将自动撤销并返回错误信息,这样便于用户进行操作处理

可靠性:事务一定能够经受住软、硬件或者其他意外故障,故障消除后能够继续执行

视图

从用户角度来看,一个视图是从一个特定的角度来查看数据库中的数据。从数据库系统内部来看,一个视图是由SELECT语句组成的查询定义的虚拟表。从数据库系统内部来看,视图是由一张或多张表中的数据组成的,从数据库系统外部来看,视图就如同一张表一样,对表能够进行的一般操作都可以应用于视图,例
 视图
如查询,插入,修改,删除操作等。
视图是一个虚拟表,其内容由查询定义。同真实的表一样,视图的作用类似于筛选。定义视图的筛选可以来自当前或其它数据库的一个或多个表,或者其它视图。分布式查询也可用于定义使用多个异类源数据的视图。
视图是存储在数据库中的查询的SQL 语句,它主要出于两种原因:安全原因, 视图可以隐藏一些数据,另一原因是可使复杂的查询易于理解和使用。
视图:查看图形或文档的方式。
视图一经定义便存储在数据库中,与其相对应的数据并没有像表那样又在数据库中再存储一份,通过视图看到的数据只是存放在基本表中的数据。对视图的操作与对表的操作一样,可以对其进行查询、修改(有一定的限制)、删除。
当对通过视图看到的数据进行修改时,相应的基本表的数据也要发生变化,同时,若基本表的数据发生变化,则这种变化也可以自动地反映到视图中。
 

视图视图的作用

* 简单性。看到的就是需要的。视图不仅可以简化用户对数据的理解,也可以简化他们的操作。那些被经常使用的查询可以被定义为视图,从而使得用户不必为以后的操作每次指定全部的条件。
* 安全性。通过视图用户只能查询和修改他们所能见到的数据。但不能授权到数据库特定行和特定的列上。通过视图,用户可以被限制在数据的不同子集上:
使用权限可被限制在另一视图的一个子集上,或是一些视图和基表合并后的子集上。
* 逻辑数据独立性。视图可帮助用户屏蔽真实表结构变化带来的影响。
软道语录
视图:
视图是由一个或者多个表组成的虚拟表。

 视图的优点:

03.索引

 

原文地址:https://www.cnblogs.com/Smile-123/p/5265926.html