登记日志文件为什么先写文件
A. 数据库原理及应用基础的常见类型题
1.B 2.C 3.B 4.C 5.D 6.C 7.C 8.D 9.C 10.A
11.A 12.A 13.A - 不知道14。乙evogue2006 - 10 - 24 11点47分01秒15?16.A 17.B 18.A 19.D 20.C
试述事务的概念和事务的四个特性。
A:
事务是一个用户定义的数据库操作序列,这些操作要么全部做或不做的整体,是一个不可分割的工作单元。
事务有四个特点:原子性(原子性),一致性(一致性),隔离(隔离)和持久性(Durability)。这四个特点也被称为ACID属性。
原子性:事务数据库的逻辑工作单元,该交易包括所有的操作,无论是做还是不做。
一致性:事务执行的结果必须更改数据库从一个一致状态转换到另一个一致的状态。
隔离:一个事务的执行不能被其他事务的干扰。一个事务内的操作和使用其他并发事务的数据分离出来,并发执行的个别交易不能互相干扰。
持续性:持续性的,也被称为永久(持久性),指的到交易提交其数据存储在数据库中的变化应该是永久性的。接下来的操作或故障不应该有任何影响其执行结果。
2。为什么事务非正常时间的推移,会影响数据库中数据的正确性,举了一个例子。
A:
事务的执行结果必须更改数据库从一个一致状态转换到另一个一致状态。如果出现故障的数据库系统的操作,一些尚未完成的交易被迫中断,这些未完成的交易的一部分已被写入到物理数据库对数据库所做的更改,然后在数据库中不正确的状态,或者是不一致的状态。
如一个工厂的库存管理系统,它是必要的量Q的某些部分从仓库1仓库2个存储。
你可以定义一个事务T,T包括两个操作; Q1 = Q1-Q,Q2 = Q2 + Q. T改变的终??止,只有当第一个操作,数据库是不一致Q库存没有理由。
3。数据库中为什么要有恢复子系统?它的功能是什么?
A:
是不可避免的,因为计算机系统的硬件故障,软件错误,操作错误和恶意破坏所造成的这些故障从正在运行的事务中发生非正常中断,影响数据库中的数据正确性,而破坏了数据库中,因此,在数据库中的数据的全部或部分损失,因此必须有一个恢复子系统。功能
恢复子系统:数据库从错误状态恢复到一个已知的良好状态(也被称为一致的状态或完整状态)。
4。在数据库中可能出现的故障运行几类?什么故障影响正常执行的交易吗?什么故障破坏数据库中的数据?
A:数据库系统的各种可能发生的故障大致可分为如下几类:
(1)内部交易失败;
(2)系统故障; />(3)介质故障;
(4)计算机病毒。的
交易失败,系统故障和介质故障影响事务的正常执行;介质故障和计算机病毒破坏的数据
库。
5。根据回收技术?
A:
数据转储和登录日志文件是数据库恢复的基本技术。
当一个故障在系统运行过程中,转储数据库的日志文件,你可以将数据库恢复到一致状态,在发生故障之前的备份副本。
6。数据库的转储的意义是什么?各种数据转储方法的比较。
答案:
数据转储是基本的技术,在恢复的数据库。所谓的转储数据库DBA定期复制到磁带或其他磁盘保存。可以重新加载数据库破坏的数据库的备份副本恢复时的状态转储。
静态转储:转储系统操作运行的事务。静态转储,但必须等待用户交易结束之前运行。同样,新的事务必须等待执行转储结束。显然,这将减少数据库的可用性。
动态转储:转储期间允许数据库访问或。动态的转储可以克服静态转储的缺点,它并不需要等待正在运行的用户交易的结束,也不会影响新事务的操作。然而,备份的数据副本结束时的转储和不能保证正确和有效的。 ,因为转储运行在交易过程中可能会一些数据,备份的数据副本是不符合版本的数据库。
为此,我们必须活动期间注册使用mp transaction数据库,以创建一个日志文件(日志文件)。在这样的日志文件的备份副本可以得到正确的数据库状态的时刻。
转储海量转储和增量转储可以分为两种方式。
大规模倾倒每一个转储所有数据库。增量转储每次更新只转储上次转储数据。从恢复的角度来看,大量的转储的备份副本恢复一般更容易。如果该数据库,事务处理,是非常频繁,增量转储方式更实用,更有效。
7。日志文件?为什么要建立一个日志文件?
答案:
(1)日志文件是用来记录交易文件对数据库的更新操作。
(2)建立的日志文件的目的:交易故障恢复系统故障恢复;协助媒体恢复的备份副本。
登记日志文件为什么要写入日志文件后,写入到数据库?
A:
的数据写入到数据库中,两种不同的操作,这个后的日志记录被写入到日志文件中。这两个操作之间可能发生了故障,即这两个写操作只完成了。
先写一个数据库,而不是变化的运行记录中,小数点后不能被恢复这一。如果你写的日志,但没有数据库,恢复执行UNDO操作,不影响数据库的正确性。所以一定要确保你写的日志文件,日志记录写入到日志文件中,然后写入到数据库的变化。
9,测试是针对不同的故障恢复策略和方法。 (也就是说,如何进行交易系统故障恢复故障恢复介质恢复?)
A:
交易故障恢复:
事务故??障的恢复是自动完成的DBMS ,是对用户透明。
DBMS执行恢复步骤:
(1)反向扫描文件日志(即从最后一次扫描日志文件),则该事务更新操作。
(2)事务的更新操作执行逆操作。关于日志记录更新前值吗?写入到数据库中。
(3)反向扫描日志文件,做同样的。
(4)?下去,直到你读的开始标记本次交易,交易失败恢复完整。
A:
系统故障恢复:
系统出现故障可能会导致数据库处于不一致的状态:
首先,没有完成的交易数据库的更新可能已被写入到数据库中;
已提交的交易数据库的更新可能还留在缓冲区中,并没有写入到数据库。
恢复操作(UNDO)的未竟事业出现故障,重做(REDO)已完成的交易。
恢复步骤:
(1)正向扫描日志文件,以确定该交易已提交在故障发生前队列中(REDO队列的)和未完成的事务队列(UNDO队列)。
(2)UNDO处理队列中的个别交易的。
UNDO处理方法是反向扫描日志文件,更新操作执行相反的操作,每一个UNDO事务迫在眉睫的“价值”(前映像)记录写入到数据库中,然后再更新。
(3)治疗重做重做队列事务。
REDO处理方法:正向扫描日志文件,每个REDO事务重新执行操作的日志文件登记。即将推出的日志记录写入到数据库中的更新值“(后映像)。
分辨率:
步骤(1)如何确定的REDO队列和UNDO队列,请考虑一下吧。 BR />的算法如下:
1)创建两个事务队列:
·UNDO-LIST:需要执行undo操作的事务集;
·REDO-LIST:需要执行重做操作事务集;
事务队列最初是空的。
)从日志文件头,正向扫描日志文件
是否有新的开始(遇到BEGIN TRANSACTION)交易钛,钛暂时放入UNDO-LIST队列;
·如果提交的事务(遇到结束事务)TJ TJ从队列undo-list中的REDO-LIST队列;
直到最后的日志文件A:
介质故障恢复:
介质故障是最严重的故障。
恢复方法是重装数据库,然后重做已完成交易的过程是:
(1 )DBA装入最新的数据库备份(从故障时间最近的转储副本),将数据库恢复到一致的状态转储。
(2)DBA的日志文件的副本加载转储结束时间
(3)DBA启动系统恢复命令来完成还原的DBMS的功能,重做已完成的交易。
解析
1)我们假设静态转储的步骤(1)安装数据库的备份副本。
2)如果您使用的是静态和动态转储步骤(1)将数据库的备份副本是不够的,需要同时加载的副本日志文件的转储开始治疗后的时间,以获得正确的数据库的备份副本。
3)(2)步算法来重做已完成的交易:
正向扫描日志文件,以找出识别在故障发生之前提交的交易中,计入的重量队列
B。再次向前扫描日志文件,重做重做队列中的所有交易。即将推出的日志记录写入到数据库中的更新值。
>
10。检查点恢复技术的优势是什么?
A:
测井技术进行数据库恢复,恢复子系统必须搜索日志,以确定哪些事务需要重做,哪些事务需要。一般来说,你需要检查所有的记录。这样做有两个问题:
首先,搜索整个日志将花费大量的时间。
REDO处理的事务实际上写的更新操作数据库恢复子系统又执行这些操作,浪费了大量的时间。
检查点技术,以解决这些问题。
11。师叔检查点的恢复步骤。
①从启动文件的最后一个检查点记录在日志文件中的地址找到最后一个检查点记录在日志文件中找到的地址。
②检查站的检查点记录的建立时间列表中的所有运行的事务ACTIVE-LIST。
创建两个事务队列:
·UNDO-LIST:需要执行undo操作的事务集;
·REDO-LIST:集交易需要执行恢复操作;
ACTIVE-LIST暂时到UNDO-LIST队列,REDO队列暂时空。
③从检查点开始正向扫描日志文件
任何新的起点事务钛undo-list中的Ti暂时放置在队列中;
·如果提交事务TJ,TJ移动从UNDO-LIST队列,REDO-LIST队列,直到最后的日志文件;
>④UNDO操作执行undo-list中的每一笔交易REDO-LIST中的每个事务执行REDO操作。
12。数据库镜像?使用?
答案:
数据库镜像是根据对DBA的要求,自动复制到另一个磁盘上的关键数据在整个数据库或部分。每当主数据库更新时,DBMS自动复制更新后的数据,在过去,DBMS自动保证镜像的一致性
使用数据库镜像的数据和主数据。:
一个用于数据库恢复。当介质故障的镜像磁盘继续提供使用的数据库管理系统自动镜像磁盘数据恢复的数据库,并且不需要关闭系统并重新安装该数据库的副本。
二是要提高无故障,当用户的数据加排他锁来其他用户可以读取的数据的数据库的可用性。镜像数据库,无需等待用户释放该锁。
B. 什么是日志文件为什么要设立日志文件
摘要 日志文件(Logfiles)是包含系统消息的文件,包括内核、服务、在系统上运行的应用程序等。不同的日志文件记载不同的信息。日志文件系统比传统的文件系统安全,因为它用独立的日志文件跟踪磁盘内容的变化。日志文件系统(journalingfilesystem)是一个具有故障恢复能力的文件系统,在这个文件系统中,因为对目录以及位图的更新信息总是在原始的磁盘日志被更新之前写到磁盘上的一个连续的日志上,所以它保证了数据的完整性。当发生系统错误时,一个全日志文件系统将会保证磁盘上的数据恢复到发生系统崩溃前的状态。同时,它还将覆盖未保存的数据,并将其存在如果计算机没有崩溃的话这些数据可能已经遗失的位置,这是对关键业务应用来说的一个很重要的特性。
C. 数据库原理及应用试题
1.B 2.C 3.B 4.C 5.D 6.C 7.C 8.D 9.C 10.A
11.A 12.A 13.A --不太确定 14.B 15.C 16.A 17.B 18.A 19.D 20.C
1.试述事务的概念及事务的四个特性。
答:
事务是用户定义的一个数据库操作序列,这些操作要么全做要么全不做,是一个不可分割的工作单位。
事务具有四个特性:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持续性(Durability)。这个四个特性也简称为ACID特性。
原子性:事务是数据库的逻辑工作单位,事务中包括的诸操作要么都做,要么都不做。
一致性:事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态。
隔离性:一个事务的执行不能被其他事务干扰。即一个事务内部的操作及使用的数据对其他并发事务是隔离的,并发执行的各个事务之间不能互相干扰。
持续性:持续性也称永久性(Permanence),指一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。接下来的其他操作或故障不应该对其执行结果有任何影响。
2.为什么事务非正常结束时会影响数据库数据的正确性,请列举一例说明之。
答:
事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态。如果数据库系统运行中发生故障,有些事务尚未完成就被迫中断,这些未完成事务对数据库所做的修改有一部分已写入物理数据库,这时数据库就处于一种不正确的状态,或者说是不一致的状态。
例如某工厂的库存管理系统中,要把数量为Q的某种零件从仓库1移到仓库2存放。
则可以定义一个事务T,T包括两个操作;Q1=Q1-Q,Q2=Q2+Q。如果T非正常终止时只做了第一个操作,则数据库就处于不一致性状态,库存量无缘无故少了Q。
3.数据库中为什么要有恢复子系统?它的功能是什么?
答:
因为计算机系统中硬件的故障、软件的错误、操作员的失误以及恶意的破坏是不可避免的,这些故障轻则造成运行事务非正常中断,影响数据库中数据的正确性,重则破坏数据库,使数据库中全部或部分数据丢失,因此必须要有恢复子系统。
恢复子系统的功能是:把数据库从错误状态恢复到某一已知的正确状态(亦称为一致状态或完整状态)。
4.数据库运行中可能产生的故障有哪几类?哪些故障影响事务的正常执行?哪些故障破坏数据库数据?
答:数据库系统中可能发生各种各样的故障,大致可以分以下几类:
(1)事务内部的故障;
(2)系统故障;
(3)介质故障;
(4)计算机病毒。
事务故障、系统故障和介质故障影响事务的正常执行;介质故障和计算机病毒破坏数据
库数据。
5.据库恢复的基本技术有哪些?
答:
数据转储和登录日志文件是数据库恢复的基本技术。
当系统运行过程中发生故障,利用转储的数据库后备副本和日志文件就可以将数据库恢复到故障前的某个一致性状态。
6. 数据库转储的意义是什么? 试比较各种数据转储方法。
答:
数据转储是数据库恢复中采用的基本技术。所谓转储即DBA定期地将数据库复制到磁带或另一个磁盘上保存起来的过程。当数据库遭到破坏后可以将后备副本重新装入,将数据库恢复到转储时的状态。
静态转储:在系统中无运行事务时进行的转储操作。静态转储简单,但必须等待正运行的用户事务结束才能进行。同样,新的事务必须等待转储结束才能执行。显然,这会降低数据库的可用性。
动态转储:指转储期间允许对数据库进行存取或修改。动态转储可克服静态转储的缺点,它不用等待正在运行的用户事务结束,也不会影响新事务的运行。但是,转储结束时后援副本上的数据并不能保证正确有效。因为转储期间运行的事务可能修改了某些数据,使得后援副本上的数据不是数据库的一致版本。
为此,必须把转储期间各事务对数据库的修改活动登记下来,建立日志文件(log file)。这样,后援副本加上日志文件就能得到数据库某一时刻的正确状态。
转储还可以分为海量转储和增量转储两种方式。
海量转储是指每次转储全部数据库。增量转储则指每次只转储上一次转储后更新过的数据。从恢复角度看,使用海量转储得到的后备副本进行恢复一般说来更简单些。但如果数据库很大,事务处理又十分频繁,则增量转储方式更实用更有效。
7. 什么是日志文件?为什么要设立日志文件?
答:
(1)日志文件是用来记录事务对数据库的更新操作的文件。
(2)设立日志文件的目的是: 进行事务故障恢复;进行系统故障恢复;协助后备副本进行介质故障恢复。
8. 登记日志文件时为什么必须先写日志文件,后写数据库?
答:
把对数据的修改写到数据库中和把表示这个修改的日志记录写到日志文件中是两个不同的操作。有可能在这两个操作之间发生故障,即这两个写操作只完成了一个。
如果先写了数据库修改,而在运行记录中没有登记这个修改,则以后就无法恢复这个修改了。如果先写日志,但没有修改数据库,在恢复时只不过是多执行一次UNDO操作,并不会影响数据库的正确性。所以一定要先写日志文件,即首先把日志记录写到日志文件中,然后写数据库的修改。
9. 针对不同的故障,试给出恢复的策略和方法。(即如何进行事务故障的恢复?系统故障的恢复?介质故障恢复?)
答:
事务故障的恢复:
事务故障的恢复是由DBMS自动完成的,对用户是透明的。
DBMS执行恢复步骤是:
(1)反向扫描文件日志(即从最后向前扫描日志文件),查找该事务的更新操作。
(2)对该事务的更新操作执行逆操作。即将日志记录中“更新前的值”写入数据库。
(3)继续反向扫描日志文件,做同样处理。
(4)如此处理下去,直至读到此事务的开始标记,该事务故障的恢复就完成了。
答:
系统故障的恢复:
系统故障可能会造成数据库处于不一致状态:
一是未完成事务对数据库的更新可能已写入数据库;
二是已提交事务对数据库的更新可能还留在缓冲区,没来得及写入数据库。
因此恢复操作就是要撤销(UNDO)故障发生时未完成的事务,重做(REDO)已完成的事务。
系统的恢复步骤是:
(1)正向扫描日志文件,找出在故障发生前已经提交的事务队列(REDO队列)和未完成的事务队列(UNDO队列)。
(2)对撤销队列中的各个事务进行UNDO处理。
进行UNDO处理的方法是,反向扫描日志文件,对每个UNDO事务的更新操作执行逆操作,即将日志记录中“更新前的值”(Before Image)写入数据库。
(3)对重做队列中的各个事务进行REDO处理。
进行REDO处理的方法是:正向扫描日志文件,对每个REDO事务重新执行日志文件登记的操作。即将日志记录中“更新后的值”(After Image)写入数据库。
*解析:
在第(1)步中如何找出REDO队列和UNDO队列?请大家思考一下。
下面给出一个算法:
1) 建立两个事务队列:
· UNDO-LIST: 需要执行undo操作的事务集合;
· REDO-LIST: 需要执行redo操作的事务集合;
两个事务队列初始均为空。
2) 从日志文件头开始,正向扫描日志文件
· 如有新开始(遇到Begin Transaction)的事务Ti,把Ti暂时放入UNDO-LIST队列;
· 如有提交的事务(遇到End Transaction)Tj,把Tj从UNDO-LIST队列移到REDO-LIST队列;
直到日志文件结束
答:
介质故障的恢复:
介质故障是最严重的一种故障。
恢复方法是重装数据库,然后重做已完成的事务。具体过程是:
(1)DBA装入最新的数据库后备副本(离故障发生时刻最近的转储副本),使数据库恢复到转储时的一致性状态。
(2)DBA装入转储结束时刻的日志文件副本
(3)DBA启动系统恢复命令,由DBMS完成恢复功能,即重做已完成的事务。
*解析
1)我们假定采用的是静态转储,因此第(1)步装入数据库后备副本便可以了。
2)如果采用的是静动态转储,第(1)步装入数据库后备副本还不够,还需同时装入转储开始时刻的日志文件副本,经过处理后才能得到正确的数据库后备副本。
3)第(2)步重做已完成的事务的算法是:
a. 正向扫描日志文件,找出故障发生前已提交的事务的标识,将其记入重做队列
b. 再一次正向扫描日志文件,对重做队列中的所有事务进行重做处理。即将日志记录中“更新后的值”写入数据库。
10. 具有检查点的恢复技术有什么优点?
答:
利用日志技术进行数据库恢复时,恢复子系统必须搜索日志,确定哪些事务需要REDO,哪些事务需要UNDO。一般来说,需要检查所有日志记录。这样做有两个问题:
一是搜索整个日志将耗费大量的时间。
二是很多需要REDO处理的事务实际上已经将它们的更新操作结果写到数据库中了,恢复子系统又重新执行了这些操作,浪费了大量时间。
检查点技术就是为了解决这些问题。
11. 试述使用检查点方法进行恢复的步骤。
答:
① 从重新开始文件中找到最后一个检查点记录在日志文件中的地址,由该地址在日志文件中找到最后一个检查点记录。
② 由该检查点记录得到检查点建立时刻所有正在执行的事务清单ACTIVE-LIST。
这里建立两个事务队列:
· UNDO-LIST: 需要执行undo操作的事务集合;
· REDO-LIST: 需要执行redo操作的事务集合;
把ACTIVE-LIST暂时放入UNDO-LIST队列,REDO队列暂为空。
③ 从检查点开始正向扫描日志文件
· 如有新开始的事务Ti,把Ti暂时放入UNDO-LIST队列;
· 如有提交的事务Tj,把Tj从UNDO-LIST队列移到REDO-LIST队列,直到日志文件结束;
④ 对UNDO-LIST中的每个事务执行UNDO操作, 对REDO-LIST中的每个事务执行REDO操作。
12. 什么是数据库镜像?它有什么用途?
答:
数据库镜像即根据DBA的要求,自动把整个数据库或者其中的部分关键数据复制到另一个磁盘上。每当主数据库更新时,DBMS自动把更新后的数据复制过去,即DBMS自动保证镜像数据与主数据的一致性。
数据库镜像的用途有:
一是用于数据库恢复。当出现介质故障时,可由镜像磁盘继续提供使用,同时DBMS自动利用镜像磁盘数据进行数据库的恢复,不需要关闭系统和重装数据库副本。
二是提高数据库的可用性。在没有出现故障时,当一个用户对某个数据加排它锁进行修改时,其他用户可以读镜像数据库上的数据,而不必等待该用户释放锁。
D. 登记日志文件应遵循哪些原则,为什么
为保证数据库是可恢复的,登记日志文件时必须遵循两条原则:
1. 登记的次序严格按并发事务执行的时间次序。
2.
必须先写日志文件,后写数据库。
把对数据的修改写到数据库中和把写表示这个修改的日志记录写到日志文件中是两个不同的操作。有可能在这两个操作之间发生故障,即这两个写操作只完成了一个。如果先写了数据库修改,而在运行记录中没有登记下这个修改,则以后就无法恢复这个修改了。如果先写日志,但没有修改数据库,按日志文件恢复时只不过是多执行一次不必要的UNDO操作,并不会影响数据库的正确性。所以为了安全,一定要先写日志文件,即首先把日志记录写到日志文件中,然后写数据库的修改。这就是“先写日志文件”的原则。
E. 奥鹏教育计算机-数据库技术(B)谁会
忽然他居然他放假糊涂人
F. 登记日记文件时为什么必须先写日记文件,后写数据库日志文件能否和数据库存储在一起,为什么
因为日志是用来恢复数据库的。
举例来说,如果先写数据库,后写日志,但是在刚好写了数据库而未写日志的时候崩溃了,那么根据日志恢复出来的数据库就少了一条记录(假设是插入操作)。但反过来的话,完全可以根据日志文件把这条数据恢复出来。
同样的原因,日志文件是不推荐和数据库存储在同一个硬盘的,因为一旦硬盘坏了就会一起死掉。当然,如果已经使用了带容错的RAID,甚至是盘柜之类的设备,那么可以放在一起没有太大问题。
G. 为什么要先写日志文件后写数据库
数据更新并不一定都能成功,日志需要给给回滚段参考用。
H. 我给高分,求重邮试题
这是答案;
答题纸
一、单项选择题(每小题2分,共20分)
题号 1 2 3 4 5 6 7 8 9 10
答案
二、填空题(每空2分,共20分)。
1. 2.
3. 4.
5. 6.
7. 8.
9. 10.
三、简答题(共5小题,每小题4分,共20分)。
四、设计题(共5小题,每小题关系代数式2分,SQL语句2分,共20分)。
五、综合题(共2题,每题10分,共20分)。
2007-9-1 22:44 liaojk123
2005-06-1db-A卷参考答案与评分细则
一、单项选择题(每小题2分,共20分)
题号 1 2 3 4 5 6 7 8 9 10
答案 B B A C A C C C C D
二、填空题(每空2分,共20分)。
1. 数据库系统 2. 外模式/模式映像
3. __选择__ 4. _数据操纵_____
5. __DISTINCT_ 6. _GRANT___
7. _删除异常__ 8. __3__
9. _物理___ 10. __实体__
三、简答题(共5小题,每小题4分,共20分)。
1. 数据结构、数据操作、完整性约束。(错一个扣1分,全错不得分)
2. 需求分析、概念结构设计、逻辑结构设计、物理结构设计、数据库实事、数据库运行和维护。(错一个扣0.5分,全错不得分)
3. 事务是用户定义的一个数据库操作序列,这些操作要么全做要么全不做,是一个不可分割的工作单位。(2分)事务具有原子性、一致性、隔离性和持续性等特性。(每点0.5分)
4. 丢失修改、不可重复读、读“脏”数据。(错一个扣1分,全错不得分)
5. (1)正像扫描日志文件,找出在故障发生前已经提交的事务,将其事务标识记入REDO队列。同时找出故障发生时尚未完成的事务,将其事务标识记入UNDO队列。(2)对UNDO队列中的各个事务进行撤销处理。(3)对REDO队列中的各个事务进行重做处理。(错一个扣1.5分,全错不得分)
四、设计题(共5小题,每小题关系代数式2分,SQL语句2分,共20分)。注意:答案不唯一!
1.检索所有选修了课程号为“C112”的课程的学生的学号和分数;
select 学号,分数 from 学习 where 课程号=’C112’;
∏学号,分数( 课程号=’C112’(学习))
2. 检索“英语”专业学生所学课程的信息,包括学号、姓名、课程名和分数;
select 学习.学号,姓名,课程名,分数
from 学生,课程,学习
where 学习.学号=学生.学号 and 学习.课程号=课程.课程号 and 专业=’英语’;
∏学号,姓名,课程名,分数(∏学号,姓名( 专业=’英语’(学生))∞学习∞∏课程号,课程名(课程))
3. 检索“数据库原理”课程成绩高于90分的所有学生的学号、姓名、专业和分数;
Select 学生.学号,姓名,专业,分数 from 学生,学习
Where 学生.学号=学习.学号 and 分数>90 and 课程号=
(select 课程号 from 课程 where 课程名=‘数据库原理’);
∏学号,姓名,专业,分数(∏学号,姓名,专业(学生)∞( 分数>90( 学习))∞∏课程号,课程名( 课程名=’数据库原理’(课程)))
4.检索不学课程号为“C135”课程的学生信息,包括学号,姓名和专业;
Select 学号,姓名,专业 from 学生
Where 学号 not in
(select 学号 from 学习 where 课程号=‘C135’);
(∏学号(学生)-∏学号( 课程号=‘C135’( 学习)))∞(∏学号,姓名,专业(学生)
5.检索至少学过课程号为“C135”和“C219”的课程的学生的信息,包括学号、姓名和专业。
Select 学号,姓名,专业 from 学生 where 学号 in
(select X1.学号 from 学习 X1,学习 X2 where X1.学号=X2.学号 and X1.课程号=‘C135’and X2。课程号=‘C219’);
(∏学号,课程号(学习)÷∏课程号( 课程号=‘C135’∨课程号=‘C219’ (课程))) ∞∏学号,姓名,专业(学生)
五、综合题(共2题,每题10分,共20分)。
1.现有如下关系模式:借阅(图书编号,书名,作者名,出版社,读者编号,读者姓名,借阅日期,归还日期),基本函数依赖集F={图书编号→(书名,作者名,出版社),读者编号→读者姓名,(图书编号,读者编号,借阅日期)→归还日期}
(1)读者编号是候选码吗?(2分)
(2)写出该关系模式的主码。(2分)
(3)该关系模式中是否存在非主属性对码的部分函数依赖?如果存在,请写出一个。(2分)
(4)该关系模式满足第几范式?并说明理由。(4分)
答:(1)不是。
(2)(图书编号,读者编号,借阅日期)
(3)存在。书名函数依赖于图书编号,图书编号是码的真子集,所以书名部分函数依赖于码。
(4)1NF。因为存在非主属性对码的部分函数依赖。
2. 某工厂生产多种产品,每种产品由不同的零件组装而成,有的零件可用在不同的产品上。产品有产品号和产品名两个属性,零件有零件号和零件名两个属性。根据语义设计ER模型,并将ER模型转换成关系模式,要求关系模式主码加下划线表示。(ER模型4分,关系模型6分)
产品(产品号,产品名)
零件(零件号,零件名)
组装(产品号,零件号)
2007-9-1 22:45 liaojk123
重 庆 邮 电 学 院 2005 ~ 2006 学 年 第 一 学 期
题号 一 二 三 四 五 六 总分
分数
评卷人
计算机学院 《数据库原理》 期末考试题 120分钟
一、单项选择题(本大题共10小题,每小题2分,共20分)
1.模式的逻辑子集通常称为( )
A.存储模式 B.内模式
C.外模式 D.模式
2.DB、DBMS和DBS三者之间的关系是( )
A..DB包括DBMS和DBS B.DBS包括DB和DBMS
C.DBMS包括DB和DBS D.不能相互包括
3.已知两个关系如下:
R A B C
1 b1 c1
2 b2 c2
3 b1 c1
S D E A
d1 e1 1
d2 e2 1
d3 e1 2
假设R的主键是A,S的主键是D,在关系S的定义中包含外键子句:
“FOREIGN KEY (A) REFERENCES R(A) ON DELETE RESTRICT”,
下列SQL语句不能成功执行的是( )
A.DELETE FROM R WHERE A=2
B.DELETE FROM R WHERE A=3
C.DELETE FROM S WHERE A=1
D.DELETE FROM S WHERE A=2
4.在SQL中,与“NOT IN”等价的操作符是( )
A.<>ALL B.<>SOME
C.=SOME D.=ALL
5..如何构造出一个合适的数据逻辑结构是( )主要解决的问题。�
A.关系数据库优化 B.数据字典 �
C.关系数据库规范化理论 D.关系数据库查询
6.将ER模型转换成关系模型,属于数据库的( )
A.需求分析 B.概念设计
C.逻辑设计 D.物理设计
7.如果事务T已在数据R上加了X锁,则其他事务在数据R上( )
A.只可加X锁 B.只可加S锁
C.可加S锁或X锁 D.不能加任何锁
8.“is-part-of”联系是指数据间的( )
A.包含关系 B.分类关系 C.继承关系 D.并关系
9.在分布式数据库中,数据的垂直分片是对全局关系的( )
A.选择操作 B.投影操作
C.自然联接操作 D.半联接操作
10.在数据库设计中,表示用户业务流程的常用方法是( )
A.DFD B.ER图 C.程序流程图 D.数据结构图
二、填空题(每空2分,共20分)
1.数据库的逻辑数据独立性是由___外模式/模式____映象提供的。
2.在数据库设计中,规划存储结构和存取方法属于____物理_______设计。
3.在计算机网络环境中,各个场地采用相同类型的数据模型和DBMS,称之为___同构同质______型分布式数据库系统。
4.SQL语言提供数据库定义、___数据操纵_____、数据控制等功能。
5.关系代数中专门的关系运算包括:选择、投影、连接和__除法______。
6.当数据库被破坏后,如果事先保存了____日志文件____和数据库的副本,就有可能恢复数据库。
7.关系中主码的取值必须唯一且非空,这条规则是__实体____完整性规则。
8.设有学生表S(学号,姓名,班级)和学生选课表SC(学号,课程号,成绩),为维护数据一致性,表S与SC之间应满足__参照____完整性约束。�
9.在函数依赖中,平凡的FD可根据推规则中的___自反律 ___律推出。
10.设关系模式R(A,B,C,D),函数依赖集F={AB→C,D→B},则R的候选码为____ ABD _____
三、简答题(本大题共4小题,每小题5分,共20分)
1.什么是事务?事务具有那些特性?
1.数据库系统中的常见故障有哪些?
3.什么是死锁?
4.简述数据库并发操作通常会带来哪些问题。
四、设计题(本大题共5小题,每小题4分,共20分)
现有关系数据库如下:�
学生(学号,姓名,性别,专业,奖学金)�
课程(课程号,名称,学分)�
学习(学号,课程号,分数)�
分别用关系代数表达式和SQL语句实现下列1—5小题:�
1.检索所有选修了课程号为“C112”的课程的学生的学号和分数;
2.检索“英语”专业学生所学课程的信息,包括学号、姓名、课程名和分数。
3.检索“数据库原理”课程成绩高于90分的所有学生的学号、姓名、专业和分数;
4.检索不学课程号为“C135”课程的学生信息,包括学号,姓名和专业;
5.检索至少学过课程号为“C135”和“C219”的学生信息,包括学号、姓名和专业;
五、综合题(本大题共2题,每题10分,共20分)
1.假设为自学考试成绩管理设计了一个关系R(S#,SN,C#,CN,G,U),其属性的含义依次为考生号、姓名、课程号、课程名、分数和主考学校名称。
规定每个学生学习一门课程只有一个分数;一个主考学校主管多门课程的考试,且一门课程只能属于一个主考学校管理;每名考生有唯一的考号,每门课程有唯一的课程号。
(1)写出关系模式R基本的函数依赖集。(2分)
(2)写出关系模式R的候选码。(2分)
(3)关系模式R最高达到第几范式?为什么?(3分)
(4)将R规范化为3NF。(3分)
2. 某工厂生产多种产品,每种产品由不同的零件组装而成,有的零件可用在不同的产品上。产品有产品号和产品名两个属性,零件有零件号和零件名两个属性。根据语义设计ER模型,并将ER模型转换成关系模式。(ER模型5分,关系模型5分)
2007-9-1 22:46 liaojk123
重 庆 邮 电 学 院 2004 ~ 2005 学 年 第 二 学 期
通信与信息工程学院 《数据库原理》 参考答案与评分标准
一、单项选择题(每小题2分,共20分)
A B B B B B A D B C
二、简述题(每小题5分,共35分)
1. 在数据面向的对象方面:文件系统的管理者是文件系统;数据库系统的管理者是数据库管理系统。(1分)在数据共享程度方面:文件系统共享性差,冗余度大;数据库系统共享性高,冗余小。(1分)在数据独立性方面:文件系统数据独立性差;数据库系统具有高度的物理独立性和一定的逻辑独立性。(1分)在数据结构化方面:文件系统记录内有结构,整体无结构;数据库系统整体结构化。(1分)在数据控制能力方面:文件系统由应用程序自己控制;数据库系统由数据库管理系统控制。(1分)
[说明:指出三点不同都可,上述答案供参考]
2. 数据库系统有外模式、模式和内模式三级模式结构[2分],在这三级模式之间提供了两级映象,即外模式/模式映象和模式/内模式映象[2分]。正是这两层映象保证了数据库系统中的数据能够具有较高的逻辑独立性和物理独立性[1分]。
3. 查询选修了1号课程或3号课程的学生的学号[5分]。
[说明:将或写成和的扣3分]
4. 若关系中的某一个属性组的值能够唯一地标识一个元组,则成该属性组为候选码[2分];若一个关系中有多个候选码,则选定其中一个为主码[1分];设F是关系R中的一个属性组,但不是R的码,如果F与关系S中的主码相对应,则称F为R的外码[2分]。
5. 需求分析、概念设计、逻辑设计、物理设计、数据库实施、数据库运行与维护。[5分,答案不全适当扣分]
6. 并发操作可能会带来的数据不一致性问题包括丢失修改、不可重复度和读脏数据[3分]。产生这些问题的主要原因是并发操作破坏了事务的隔离性[2分]。
7.R属于第一范式[2分],分解为如下两个模式[3分]:
R1(A,D), A为主码;R2(A,B,C), (A,B)为主码,A为外码
三、用SQL语句描述下列数据库操作 (每小题3分,共30分)
1. SELECT * FROM S;
2. SELECT DISTINCT S# FROM SC WHERE G<60;
3. SELECT S#, G FROM SC WHERE C#=3 ORDER BY G DESC;
4. SELECT COUNT(*) FROM S;
5. SELECT SN FROM S WHERE SD IN (‘IS’, ‘CS’);或
SELECT SN FROM S WHERE SD=‘IS’ OR SD=‘CS’;
6. SELECT S#, COUNT(*) FROM SC GROUP BY S#;
7. SELECT S# FROM SC WHERE C#=2 AND G>=90;
8. DELETE FROM SC WHERE S# IN(或=)
(SELECT S# FROM S WHERE SN=’ 王敏’)
9. UPDATE S SET SA=SA+1;
10. CREATE VIEW XXX AS SELECT S#, SN, SA FROM S WHERE SD=’CS’;
I. SQL Server日志作用以及为什么先写日志后写数据
今天在看Oracle的BackupGroundProcess,里边有一段是写到为什么先写日志后写数据的:LGWR, on the other hand, does lots of sequential writes to the redo log. This is an important distinction and one of the reasons that Oracle has a redo log and the LGWR process as well as the DBWn process. Scattered writes are significantly slower than sequential writes. By having the SGA buffer dirty blocks and the LGWR process do large sequential writes that can re-create these dirty buffers, we achieve an increase in performance. 其实SQL Server也是一样,每一个SQL Server的数据库都会按照其修改数据(insert,update,delete)的顺序将对应的日志记录到日志文件.SQL Server使用了Write-Ahead logging技术来保证了事务日志的原子性和持久性.而这项技术不仅仅保证了ACID中的原子性(A)和持久性(D),还大大减少了IO操作,把对数据的修改提交到磁盘的工作交给lazy-writer和checkpoint.预写式日志(Write-Ahead Logging (WAL))SQL Server使用了WAL来确保了事务的原子性和持久性.实际上,不光是SQL Server,基本上主流的关系数据库包括oracle,mysql,db2都使用了WAL技术.WAL的核心思想是:在数据写入到数据库之前,先写入到日志.因为对于数据的每笔修改都记录在日志中,所以将对于数据的修改实时写入到磁盘并没有太大意义,即使当SQL Server发生意外崩溃时,在恢复(recovery)过程中那些不该写入已经写入到磁盘的数据会被回滚(RollBack),而那些应该写入磁盘却没有写入的数据会被重做(Redo)。从而保证了持久性(Durability)但WAL不仅仅是保证了原子性和持久性。还会提高性能.硬盘是通过旋转来读取数据,通过WAL技术,每次提交的修改数据的事务并不会马上反映到数据库中,而是先记录到日志.在随后的CheckPoint和lazy Writer中一并提交,如果没有WAL技术则需要每次提交数据时写入数据库:而使用WAL合并写入,会大大减少磁盘IO:也许你会有疑问,那每次对于修改的数据还是会写入日志文件.同样消耗磁盘IO。上篇文章讲过,每一笔写入日志的记录都是按照先后顺序,给定顺序编号的LSN进行写入的,日志只会写入到日志文件的逻辑末端。而不像数据那样,可能会写到磁盘的各个地方.所以,写入日志的开销会比写入数据的开销小很多。SQL Server修改数据的步骤SQL Server对于数据的修改,会分为以下几个步骤顺序执行:1.在SQL Server的缓冲区的日志中写入”Begin Tran”记录2.在SQL Server的缓冲区的日志页写入要修改的信息3.在SQL Server的缓冲区将要修改的数据写入数据页4.在SQL Server的缓冲区的日志中写入”Commit”记录5.将缓冲区的日志写入日志文件6.发送确认信息(ACK)到客户端(SMSS,ODBC等)可以看到,事务日志并不是一步步写入磁盘.而是首先写入缓冲区后,一次性写入日志到磁盘.这样既能在日志写入磁盘这块减少IO,还能保证日志LSN的顺序.上面的步骤可以看出,即使事务已经到了Commit阶段,也仅仅只是把缓冲区的日志页写入日志,并没有把数据写入数据库.那将要修改的数据页写入数据库是在何时发生的呢?Lazy Writer和CheckPoint上面提到,SQL Server修改数据的步骤中并没有包含将数据实际写入到磁盘的过程.实际上,将缓冲区内的页写入到磁盘是通过两个过程中的一个实现:这两个过程分别为:1.CheckPoint2.Lazy Writer任何在缓冲区被修改的页都会被标记为“脏”页。将这个脏页写入到数据磁盘就是CheckPoint或者Lazy Writer的工作.当事务遇到Commit时,仅仅是将缓冲区的所有日志页写入磁盘中的日志文件:而直到Lazy Writer或CheckPoint时,才真正将缓冲区的数据页写入磁盘文件:前面说过,日志文件中的LSN号是可以比较的,如果LSN2>LSN1,则说明LSN2的发生时间晚于LSN1的发生时间。CheckPoint或Lazy Writer通过将日志文件末尾的LSN号和缓冲区中数据文件的LSN进行对比,只有缓冲区内LSN号小于日志文件末尾的LSN号的数据才会被写入到磁盘中的数据库。因此确保了WAL(在数据写入到数据库之前,先写入日志)。Lazy Writer和CheckPoint的区别Lazy Writer和CheckPoint往往容易混淆。因为Lazy Writer和CheckPoint都是将缓冲区内的“脏”页写入到磁盘文件当中。但这也仅仅是他们唯一的相同点了。Lazy Writer存在的目的是对缓冲区进行管理。当缓冲区达到某一临界值时,Lazy Writer会将缓冲区内的脏页存入磁盘文件中,而将未修改的页释放并回收资源。而CheckPoint存在的意义是减少服务器的恢复时间(Recovery Time).CheckPoint就像他的名字指示的那样,是一个存档点.CheckPoint会定期发生.来将缓冲区内的“脏”页写入磁盘。但不像Lazy Writer,Checkpoint对SQL Server的内存管理毫无兴趣。所以CheckPoint也就意味着在这个点之前的所有修改都已经保存到了磁盘.这里要注意的是:CheckPoint会将所有缓冲区的脏页写入磁盘,不管脏页中的数据是否已经Commit。这意味着有可能已经写入磁盘的“脏页”会在之后回滚(RollBack).不过不用担心,如果数据回滚,SQL Server会将缓冲区内的页再次修改,并写入磁盘。通过CheckPoint的运作机制可以看出,CheckPoint的间歇(Recovery Interval)长短有可能会对性能产生影响。这个CheckPoint的间歇是一个服务器级别的参数。可以通过sp_config进行配置,也可以在SSMS中进行配置:恢复间歇的默认参数是0,意味着由SQL Server来管理这个回复间隔。而自己设置恢复间隔也是需要根据具体情况来进行界定。
J. 1 在下列的数据恢复过程中,()是不一定需要日志文件的 A 事物故障恢复B系统故障恢复C动态转储 D静态转储
c、动态转储;b、聚集;c、子模式;d、所有属性组合为关系的外码;d、视图;b、对象;c、9。
数据信息的表现形式和载体,可以是符号、文字、数字、语音、图像、视频等。而信息是数据的内涵,信息是加载于数据之上,对数据作具有含义的解释。
数据和信息是不可分离的,信息依赖数据来表达,数据则生动具体表达出信息。
(10)登记日志文件为什么先写文件扩展阅读:
数据库的运行管理功能是DBMS的运行控制、管理功能,包括多用户环境下的并发控制、安全性检查和存取限制控制、完整性检查和执行、运行日志的组织管理、事务的管理和自动恢复,即保证事务的原子性。这些功能保证了数据库系统的正常运行。
在某个区间连续变化的物理量,又可以分为图形数据(如点、线、面)、符号数据、文字数据和图像数据等,如声音的大小和温度的变化等。