内容简介
本书是一本SQL的入门书,介绍如何使用最常用的SQL语言维护和查询数据库信息。书中介绍了各种DBMS,关系模型理论,SQL语法,从表中检索数据,操作符和函数,汇总和分组数据,联结,子查询,集合操作,创建、更改和删除表,索引,视图,事务和SQL技巧等。本书比较了各种DBMS中的SQL实现,并给出大量实例代码及经验技巧。
本书适合SQL初学者,同时也可作为数据库应用开发人员和最终用户的参考书。
书摘与插图
事务日志。事务日志文件(transactionlogfile)或日志(log)是有关事务对数据库进行修改的一系列记录。事务日志记录了每个事务开始、数据的变化以及撤销或重新执行事务(如果将来需要)的足够信息。日志随着数据库事务的执行不断增长。
尽管保证每个事务本身的完整性是DBMS的职责,但依据组织或公司规章来开始和结束事务以保证数据逻辑的一致性则是数据库开发人员的责任。事务应该仅包含能做出一致修改的必要的SQL语句——不多不少。所有引用表中的数据在事务开始前和事务结束后必须保持一致。在设计和执行事务时,要重点考虑以下方面。
事务相关的SQL语句会修改数据,所以执行事务要得到数据库管理员的授权。
事务过程应用于那些改变数据和数据库对象的语句(INSERT、UPDATE、UPDETE、DELETE、CREATE、ALTER、
DROP——因不同DBMS而异)。对于工作中用到的数据库,每一条这样的语句都应该作为事务的一部分执行。
提交了的事务被称作持久化,意味着永久性改变,即便系统发生故障仍能保持。
DBMS的数据恢复机制依赖于事务。当DBMS在故障之后被在线复原,DBMS检查事务日志确认是否所有事务都提交给了数据库。如发现没有提交(部分执行)的事务,依据日志将它们回滚。必须重新提交回滚的事务(尽管一些DBMS能够自动完成没有结束的事务)。
DBMS的备份/恢复设备依赖于事务。备份设备获得例行的数据库快照并将它们和随后的事务日志存储在备份盘上。假定使用的硬盘发生故障使得数据和事务日志不可读。可以借助于恢复设备,它将采用最近的数据库备份并执行,或前滚所有从快照到故障前最后执行并在日志中提交的事务。这个恢复操作使数据库恢复到故障发生前的正确状态(注意,要再次提交没有提交的事务)。
显然,应该将数据库和它的事务日志存储于不同的物理硬盘。