正确答案:

题目:在数据库系统中,“事务”是访问数据库并可能更新各种数据项的一个程序执行单元。为了保证数据完整性,要求数据库系统维护事务的原子性、一致性、隔离性和持久性。针对事务的这4种特性,考虑以下的架构设计场景。假设在某一个时刻只有一个活动的事务,为了保证事务的原子性,对于要执行写操作的数据项,数据库系统在磁盘上维护数据库的一个副本,所有的写操作都在数据库副本上执行,而保持原始数据库不变,如果在任一时刻操作不得不中止,系统仅需要删除副本,原数据库没有受到任何影响。这种设计策略称为(1)。事务的一致性要求在没有其他事务并发执行的情况下,事务的执行应该保证数据库的一致性。数据库系统通常采用(2)机制保证单个事务的一致性。事务的隔离性保证操作并发执行后的系统状态与这些操作以某种次序顺序执行(即可串行化执行)后的状态是等价的。两阶段锁协议是实现隔离性的常见方案,该协议(3)。持久性保证一旦事务完成,该事务对数据库所做的所有更新都是永久的,如果事务完成后系统出现故障,则需要通过恢复机制保证事务的持久性。假设在日志中记录所有对数据库的修改操作,将一个事务的所有写操作延迟到事务提交后才执行,则在日志中(4)。当系统发生故障时,如果某个事务已经开始,但没有提交,则该事务应该(5)。

解析:本题主要考查数据库系统架构设计知识。在数据库系统中,“事务”是访问并可能更新各种数据项的一个程序执行单元。为了保证数据完整性,要求数据库系统维护事务的原子性、一致性、隔离性和持久性。题干中第1个架构设计场景描述了数据库设计中为了实现原子性和持久性的最为简单的策略:“影子拷贝”。该策略假设在某一个时刻只有一个活动的事务,首先对数据库做副本(称为影子副本),并在磁盘上维护一个dp_pointer指针,指向数据库的当前副本。对于要执行写操作的数据项,数据库系统在磁盘上维护数据库的一个副本,所有的写操作都在数据库副本上执行,而保持原始数据库不变,如果在任一时刻操作不得不中止,系统仅需要删除新副本,原数据库副本没有受到任何影响。题干中的第2个架构设计场景主要考查考生对事务一致性实现机制的理解。事务的一致性要求在没有其他事务并发执行的情况下,事务的执行应该保证数据库的一致性。数据库系统通常采用完整性约束检查机制保证单个事务的一致性。题干中的第3个架构设计场景主要考查数据库的锁协议。两阶段锁协议是实现事务隔离性的常见方案,该协议通过定义锁的增长和收缩两个阶段约束事务的加锁和解锁过程,能够保证事务的串行化执行,但由于事务不能一次得到所有需要的锁,因此该协议可能会导致死锁。题干中的第4个架构设计场景主要考查数据库的恢复机制,主要描述了基于日志的延迟修改技术(Deferred-ModificationTechruque)的设计与恢复过程。该技术通过在日志中记录所有对数据库的修改操作,将一个事务的所有写操作延迟到事务提交后才执行,日志中需要记录“事务开始”和“事务提交”时间,还需要记录数据项被事务修改后的新值,无须记录数据项被事务修改前的原始值。当系统发生故障时,如果某个事务已经开始,但没有提交,则该事务对数据项的修改尚未体现在数据库中,因此无须做任何恢复动作。

查看原题 查看所有试题

学习资料的答案和解析:

  • [单选题]若对表2-12按()进行运算,可以得到表2-13。
  • 解析:表2-13保持了表2-12的所有属性和部分元组,因此是选择操作。从3个选择操作来看,只有C满足要求。

  • [单选题]关系数据库中,实现实体之间的联系是通过表与表之间的公共()
  • 属性

  • 解析:关系数据库中,实现实体之间的联系是通过表与表之间的公共属性。

  • [单选题]若要使某用户只能查询表EMP中的部分记录,应采取的策略是()
  • 构建该部分记录的行级视图,并将该视图的查询权限赋予该用户

  • 解析:选项A是错误的,因为具有DBA特权的用户可操作数据库的所有资源。选项B是错误的,因为选项B是将表EMP的查询权限赋予该用户,即全部记录,而题目只允许某用户查询表EMP中的部分记录。选项C是错误的,因为编写查询表EMP的存储过程仍然是查询表EMP的所有记录。选项D是正确的,因为是构建该部分记录的行级视图,并将该视图的查询权限赋予该用户。

  • [单选题]设有员工实体Employee(employeeID,name,sex,age,tel,departID),其中employeeID为员工号,name为员工姓名,sex为员工性别,age为员工年龄,tel为员工电话,记录该员工的手机号码、办公室电话等,departID为员工所在部门号,参照另一部门实体Department的主码departID。Employee实体中存在派生属性(1)。Employee实体中还存在多值属性(2)。对属性departID的约束是(3)。
  • 解析:所谓派生属性,是表示其值可以从一个相关属性和属性集的值派生得到的属性,这个属性在实体中不是必需的。根据这个定义,age是一个派生属性,因为用属性birth(出生时间)替换age并可计算age。多值属性是指可同时由多个值表示的属性。例如,包含关于雇员信息的数据库可能包含关于他们个人兴趣的数据。一个雇员可能有几个兴趣:运动、电影、投资、烹调,并且由于这些值的任何一个或所有这些值可能同时是雇员的兴趣,所以这些数据应作为数据类型列表合成到资源。对于多值属性的处理,一般是提升为单独的一个或多个实体。因为departID为员工所在部门号,参照另一部门实体Department的主码departID,因此,在实体Employee中,departID为外键。

  • [单选题]关系R(A,B,C,D)和S(B,C,D)进行笛卡儿运算,其结果集为(1)元关系。3个实体及它们之间的多对多联系至少应转换成(2)个关系模式。
  • 解析:关系R为4元关系,关系S为3元关系,因此,其笛卡儿积为7元关系。3个以上实体间的一个多元联系可以转换为一个独立的关系模式,与该联系相连的各实体的码和联系本身的属性均转换为关系的属性,而关系的码为各实体码的组合。因此,3个实体及它们之间的多对多联系至少应转换成4个关系模式。

  • [单选题]某公司的部门(部门号,部门名,负责人,电话)、商品(商品号,商品名称,单价,库存量)和职工(职工号,姓名,住址)3个实体之间的关系如表2-18、表2-19和表2-20所示。假设每个部门有一位负责人和一部电话,但有若干名员工;每种商品只能由一个部门负责销售。部门关系不属于第三范式的原因是(1)。如果用户要求得到表2-21所示的结果,需要(2),并增加关系模式(3)。
  • 解析:在部门(部门号,部门名,负责人,电话)关系模式中,部门号是主码,所以不存在对码的部分依赖问题。根据试题假设,每个部门有一位负责人和一部电话,也就是说,存在"责人一电话"样的函数依赖,即存在对主码的传递函数依赖。在表2-21中,有职工号、姓名、部门、月销售额4个属性,其中职工号和姓名可以由表2-20得出,但是,由表2-19至表2-20无法得出职工所在的部门,因此,应该在表2-20中增加"部门号"属性。同时,要计算出职工的月销售总额,还需要一个表来记录职工销售的数据。该表需要包括的属性有职工号、商品号、日期、数量。

  • [单选题]某数据库中有员工关系E(员工号,姓名,部门,职称,月薪);产品关系P(产品号,产品名称,型号,尺寸,颜色);仓库关系W(仓库号,仓库名称,地址,负责人);库存关系I(仓库号,产品号,产品数量)。a.若数据库设计中要求:①仓库关系W中的"负责人"引用员工关系的员工号。②库存关系I中的"仓库号,产品号"唯一标识I中的每一个记录。③员工关系E中的职称为"工程师"的月薪不能低于3500元。则①②③依次要满足的完整性约束是(1)。b.若需得到每种产品的名称和该产品的总库存量,则对应的查询语句为:SELELCT产品名称,SUM(产品数量)FROMP,IWHEREP.产品号=I.产品号(2)
  • 解析:本题考查关系的完整性约束和SQL的基本知识及应用。第(1)空考查数据库完整性约束。首先需要了解实体完整性、参照完整性和用户定义完整性的概念。实体完整性:实体完整性要求主键中的任一属性不能为空,所谓空值是"不知道"或"无意义"的值。之所以要保证实体完整性,主要是因为在关系中,每个元组的区分是依据主键值的不同,若主键值取空值,则不能标明该元组的存在。例如,对于学生关系S(Sno,Sname,Ssex),其主键为Sno,在插入某个元组时,就必须要求Sno不能为空。更加严格的DBMS,则还要求Sno不能与已经存在的某个元组的Sno相同。参照完整性:若基本关系R中含有与另一基本关系S的主键PK相对应的属性组FK(FK称为R的外键),则参照完整性要求,对R中的每个元组在FK上的值必须是S中某个元组的PK值,或者为空值。参照完整性的合理性在于,R中的外键只能对S中的主键引用,不能是S中主键没有的值。例如,对于学生关系S(Sno,Sname,Ssex)和选课关系C(Sno,Cno,Grade)两个关系,C中的Sno是外键,它是S的主键,若C中出现了某个S中没有的Sno,即某个学生还没有注册,却已有了选课记录,这显然是不合理的。用户定义的完整性:实体完整性和参照完整性适用于任何关系型DBMS。除此之外,不同的数据库系统根据其应用环境的不同,往往还需要一些特殊的约束条件。用户定义的完整性就是针对某一具体数据库的约束条件,反映某一具体应用所涉及的数据必须满足的语义要求。从以上概念说明可以看出"仓库关系W中的"负责人"引用员工关系的员工号"属于参照完整性,"库存关系I中的"仓库号,产品号"唯一标识I中的每一个记录"属于实体完整性,"员工关系E中的职称为"工程师"的月薪不能低于3500元"属于用户自定义完整性。第(2)空要求"得到每种产品的名称和该产品的总库存量",要达到该效果需要对数据表的数据进行分组统计。由于现在是要根据产品名称来统计库存量,所以分组的依据应是产品名称,所以应使用"GROUPBY产品名称"。

  • [单选题]某数据库中有员工关系E(员工号,姓名,部门,职称,月薪);产品关系P(产品号,产品名称,型号,尺寸,颜色);仓库关系W(仓库号,仓库名称,地址,负责人);库存关系I(仓库号,产品号,产品数量)。a.若数据库设计中要求:①仓库关系W中的"负责人"引用员工关系的员工号。②库存关系I中的"仓库号,产品号"唯一标识I中的每一个记录。③员工关系E中的职称为"工程师"的月薪不能低于3500元。则①②③依次要满足的完整性约束是(1)。b.若需得到每种产品的名称和该产品的总库存量,则对应的查询语句为:SELELCT产品名称,SUM(产品数量)FROMP,IWHEREP.产品号=I.产品号(2)

  • 推荐下载科目: 面向对象方法题库 系统可靠性题库 系统安全性和保密性题库 分布式系统题库 系统开发基础知识题库 专业英语题库 应用数学题库 信息系统基础知识题库 操作系统题库 系统架构设计论文题库
    @2019-2025 必典考网 www.51bdks.net 蜀ICP备2021000628号 川公网安备 51012202001360号