(61)引起的数据库异常,其破坏性最大。

admin2019-06-08  30

问题 (61)引起的数据库异常,其破坏性最大。

选项 A、事务故障
B、系统故障
C、介质故障
D、病毒引起故障

答案C

解析 数据库系统中可能发生各种各样的故障,大致可以分以下几类。
   (1)事务内部的故障
   事务内部的故障有的是可以通过事务程序本身发现的(见下面转账事务的例子),有的是非预期的,不能由事务程序处理。
   例如,银行转账事务。这个事务把一笔金额从一个账户甲转给另一个账户乙。
   BEGIN TRANSACTION
   读账户甲的余额BALANCE;
   BALANCE=BALANCE - AMOUNT;(AMOUNT为转账金额)
   IF  (BALANCE<0)  THEN
   {
   打印,金额不足,不能转账’;
   ROLLBACK;(撤销刚才的修改,恢复事务)
   }
   ELSE
   {
   读账户乙的余额BALANCE1;
   BALANCE1=BALANCE1+AMOUNT;
   写回BALANCE1;
   COMMIT;
   }
   这个例子说明事务是一个“完整的”工作单位,它所包括的一组更新操作要么全部完成要么全部不做,否则就会使数据库处于不一致状态,例如只把账户甲的余额减少了而没有把账户乙的余额增加。
   在这段程序中若产生账户甲余额不足的情况,应用程序可以发现并让事务滚回,撤销错误的修改,恢复数据库到正确状态。
   事务内部更多的故障是非预期的,是不能由应用程序处理的。如运算溢出、并行事务发生死锁而被选中撤销该事务等,以后,事务故障仅指这—类故障。
   事务故障意味着事务没有到达预期的终点(COMMIT或者显式的ROLLBACK),因此,数据库可能处于不正确状态。系统就要强行滚回此事务,即撤销该事务已经做出的任何对数据库的修改,使得该事务好像根本没有启动一样。
   (2)系统范围内的故障
   系统故障是指造成系统停止运转的任何事件,使得系统要重新启动。例如中央处理器故障、操作系统故障、突然停电等,这类故障影响正在运行的所有事务,但不破坏数据库。这时主存内容,尤其是数据库缓冲区(在内存)中的内容都被丢失,使得运行事务都非正常终止,从而造成数据库可能处于不正确的状态,恢复子系统必须在系统重新启动时让所有非正常终止的事务滚回,把数据库恢复到正确的状态。
   (3)介质故障
   系统故障常称为软故障(SoftCrash),介质故障称为硬故障(HardCrash)。硬故障指外存故障,如磁盘的磁头碰撞、瞬时的强磁场干扰等。这类故障将破坏数据库或部分数据库,并影响正存取这部分数据的所有事务,这类故障比前两类故障发生的可能性小得多,但破坏性最大。   
   (4)计算机病毒
   计算机病毒是一种人为的故障或破坏,是一些恶作剧者研制的一种计算机程序,这种程序与其他程序不同,它像微生物学所称的病毒一样可以繁殖和传播,并造成对计算机系统包括数据库的危害。
   病毒的种类很多,不同病毒有不同的特征。小的病毒只有20条指令,不到50字节。大的病毒像一个操作系统,由上万条指令组成。计算机病毒已成为计算机系统的主要威胁,自然也是数据库系统的主要威胁,为此计算机的安全工作者己研制了许多预防病毒的“疫苗”,检查、诊断、消灭计算机病毒的软件也在不断发展。但是,至今还没有一种使得计算机“终生”免疫的疫苗。因此数据库一旦被破坏仍要用恢复技术把数据库加以恢复。
   总结各类故障,对数据库的影响有两种可能性,一是数据库本身被破坏,二是数据库没有破坏,但数据可能不正确,这是因为事务的运行被终止造成的。
转载请注明原文地址:https://jikaoti.com/ti/hCJ7FFFM
0

最新回复(0)