zoukankan      html  css  js  c++  java
  • Java&SQL5

    事务

    事务是作为最小的控制单元来使用的,特别使用与多用户同时操作的数据库系统。

    事务(transaction)是指将一系列数据操作捆绑成为一个整体进行统一管理,如果某一事务执行成功,则在该事务中进行的所有数据均会提交, 成为数据库中永久的组成部分。如果事务执行遇到错误且必须取消或回滚,则数据将全部恢复到操作前的状态,所有数据的更改均被清除。

    1原子性(Atomicity)。事务是一个完整的操作,事务的各个元素是不可分的(原子性)。事务中的所有元素必须作为一个整体提交或回滚。

    2一致性(consistency)。当事务完成时,数据必须处于一致状态。也就是说,在事务开始之前,数据库中存储的数据处于一致状态,在正在进行的事务中,数据可能处于不一致的状态,如数据可能有部分修改。然而当事务完成时,数据必须再次回到已知的一致状态。

    3隔离性(lsolation)。对数据库修改的所有并发事务是彼此隔离的,当一个事务正在执行修改时,另一个事务不能同时进行修改,必须等到第一个事务完毕后才能操作,因此表明事务必须时独立的。

    4持久性(durability)。事务的持久性是指不管系统是否发生了故障,事务处理的结果都是永久的。

    MySQL提供了多种存储引擎支持事务,支持事务的存储引擎有InnoDB和BDB。InnoDB存储引擎事务主要时通过UNDO日志和REDO日志,MyISAM存储引擎不支持事务。

    任何一种数据库,都有各种各样的日志,用来记录数据库的运行情况,日常操作,错误信息等。

    UNDO日志:复制事务执行前的数据,用于事务在发生异常时回滚数据。

    REDO日志:记录事务在执行中,每条对数据库进行更新的操作,当事务被提交时,该内容将被刷新到磁盘。

    执行事务的语法:

    1 开始事务:begin;或者start  transaction;

    2提交事务:commit;

    3回滚(撤销)事务:rollback;

                     执行事务的示例:

                       /*开始事务*/向学生表插入一批学生成绩

    BEGIN;

    INSERT INTO `result` VALUES

    (100000,2,NOW(),100),

    (100001,1,NOW(),90),

    (100002,2,NOW(),80);

    SELECT * FROM `result`;#如果用SQLyog会显示已经在表里面更新了数据,实际上数据库并没有更新数据

    COMMIT;#提交

    SELECT * FROM `result`;#提交过后数据库里面会更新数据

    BEGIN;

    INSERT INTO `result` VALUES

    (100003,2,NOW(),110),

    (100004,1,NOW(),900);

    ROLLBACK;#回滚

    SELECT * FROM `result`;#执行回滚后查询数据没有任何变化

    事务尽可能简短。在多用户系统中,较大的事务会占用大量的资源,会影响软件的运行性能,甚至导致系统崩溃。

    事务中访问的数据量尽量最少。当并发执行时,数据操作的数据量越少,事务之间对数据的争夺就越少。

    查询数据时尽量不要使用事务。查询操作并不会更新数据库,反而会浪费系统资源。

    在事务处理过程中尽量不要出现等待用户输入的操作。如果在事务的执行过程中,如果需要等待用户输入数据,那么该事务会长事件的占用系统资源,可能造成系统阻塞。

    视图

    在实际工作中,不同身份的用户所关注的数据库数据可能不同,不同职位的人对数据库中查询的数据范围权限也不同。

    数据库管理系统提供的视图这类数据库对象,可以把重复使用的复杂的查询结果保存成视图,也可以设定不同访问范围的视图,不同岗位的员工根据自己的权限来查看相关的数据,以保证数据访问的安全性。

    视图是另一种查看数据库中一个或多个表中的数据的方法,视图是一种虚拟表,通常作为一个或多个表的行或列的子集创建的。

     视图通常用来进行的四项操作:

    1.筛选表中的行

    2.防止未经许可的用户访问敏感的数据表

    3.将多个物理数据表抽象为一个逻辑数据表

    4.降低数据的复杂程度

    视图对用户的好处:

    1.结果更加容易理解。创建视图时可以将列名改为更加有意义的列名,而不会影响物理的数据库数据。

    2.获得数据更加容易。可以直接通过视图查看数据,不需要自己写查询语句。

    视图对开发人员的好处:

    1.限制数据检索更容易。可以有效的隐藏某些敏感数据

    2.维护应用程序更方便。调试视图比调试查询更容易。

    语法:CREATE  VIEW  视图名

                       AS

             <SELECT  语句>;

    在SQL语句命名规范中,视图一般是以view_xxx或v_xxx的样式来命名的。

    索引:

    索引的分类

    1.普通索引

    2.唯一索引

    3.主键索引

    4.复合索引

    5.全文索引

    6.空间索引

  • 相关阅读:
    《WF编程》系列之17 工作流与外部事件:工作流参数 居然有两个多月没有更新WF笔记,这段时间也许真的太忙了,毕业的事情,工作的事情,从今天起继续更新.
    《WF编程》系列之13 XAML激活 2.3.3 XAML激活
    《WF编程》系列之9 编译工作流:使用WFC.EXE
    《WF编程》系列之11 编译工作流:使用MSBUILD
    《WF编程》系列之15 顺序工作流与SequenceActivity 3 顺序工作流
    《WF编程》系列之16 工作流与外部世界:生存周期事件 3.2 工作流与外部世界
    windows2003技巧
    ASP.NET ViewState 初探
    FreeTextBox实现机制
    .NET实用设计模式:工厂模式(Factory)
  • 原文地址:https://www.cnblogs.com/guijiaxin/p/7606074.html
Copyright © 2011-2022 走看看