购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.2 试题精解

试题1(2009年11月试题5)

在数据库设计的需求分析阶段应完成包括 (5) 在内的文档。

(5)A.E-R图

B.关系模式

C.数据字典和数据流图

D.任务书和设计方案

试题分析

基于数据库系统生命周期的数据库设计可分为五个阶段,分别是规划、需求分析、概念设计、逻辑设计和物理设计。

① 规划

规划阶段的主要任务是进行建立数据库的必要性及可行性分析,确定数据库系统在企业和信息系统中的地位,以及各个数据库之间的联系。

② 需求分析

需求分析的目标是通过调查研究,了解用户的数据和处理要求,并按一定格式整理形成需求说明书。需求说明书包括数据库所涉及的数据、数据的特征、使用频率和数据量的估计,例如,数据名、属性及其类型、主键属性、保密要求、完整性约束条件、更改要求、使用频率和数据量估计等。这些关于数据的数据称为元数据。在设计大型数据库时,这些数据通常由数据字典来管理。用数据字典管理元数据,有利于避免数据的重复或重名,以保持数据的一致性。同时,有利于提高数据库设计的质量,减轻设计者的负担。

③ 概念设计

概念设计也称为概念结构设计,其任务是在需求分析阶段产生的需求说明书的基础上,按照特定的方法将它们抽象为一个不依赖于任何DBMS的数据模型,即概念模型,通常用E-R图表示。概念模型使设计人员的注意力能够从复杂的实现细节中解脱出来,而只集中在最重要的数据的组织结构和处理模式上。为保证所设计的概念模型能正确、完全地反映用户的数据及其相互关系,便于进行所要求的各种处理,在本阶段设计中,可邀请用户参与。

在进行概念设计时,可先设计各个应用的视图,即各个应用所看到的数据及其结构,然后再进行视图集成,以形成一个单一的概念数据模型。

④ 逻辑设计

逻辑设计也称为逻辑结构设计,其任务是将概念模型转化为某个特定的DBMS上的逻辑模型。设计逻辑结构时,首先为概念模型选定一个合适的逻辑模型(例如,关系模型、网状模型或层次模型),然后将其转化为特定DBMS支持的逻辑模型,最后对逻辑模型进行优化。

逻辑设计的目的是将概念设计阶段设计好的E-R图转换为与选用的具体机器上的DBMS所支持的数据模型相符合的逻辑结构,例如,系统如果使用的是关系型数据库,则逻辑设计阶段就需要将E-R图转换为关系模式。

⑤ 物理设计

物理设计也称为物理结构设计,其任务是对给定的逻辑模型选取一个最适合应用环境的物理结构,所谓数据库的物理结构,主要是指数据库在物理设备上的存储结构和存取方法。物理设计的步骤如下。

●设计存储记录结构,包括记录的组成、数据项的类型和长度,以及逻辑记录到存储记录的映射。

●确定数据存储安排。

●设计访问方法,为存储在物理设备上的数据提供存储和检索的能力。

●进行完整性和安全性的分析与设计。

●数据库程序设计。

试题答案

(5)C

试题2(2009年11月试题6)

设有职务工资关系P(职务,最低工资,最高工资),员工关系EMP(员工号,职务,工资),要求任何一名员工,其工资值必须在其职务对应的工资范围之内,实现该需求的方法是 (6)

(6)A.建立“EMP职务”向“P职务”的参照完整性约束

B.建立“P职务”向“EMP职务”的参照完整性约束

C.建立EMP上的触发器程序审定该需求

D.建立P上的触发器程序审定该需求

试题分析

数据库的完整性是指数据库中数据的正确性和相容性。数据库完整性由各种各样的完整性约束来保证,完整性约束可以通过DBMS或应用程序来实现,基于DBMS的完整性约束作为关系模式的一部分存入数据库中。

① 完整性约束条件

保证数据完整性的方法之一是设置完整性检查,即对数据库中的数据设置一些约束条件,这是数据的语义体现。完整性约束条件是指对数据库中数据本身的某些语法或语义限制、数据之间的逻辑约束,以及数据变化时应遵守的规则等。所有这些约束条件一般均以谓词逻辑形式表示,即以具有真假值的原子公式和命题连接词(并且、或者、否定)所组成的逻辑公式表示。完整性约束条件的作用对象可以是关系、元组或属性三种。数据的完整性约束条件一般在关系模式中给出,并在运行时做检查,当不满足条件时立即向用户通报,以便采取措施。

数据库中数据的语法、语义限制与数据之间的逻辑约束称为静态约束,它反映了数据及其之间的固有逻辑特性,是最重要的一类完整性约束。静态约束包括静态属性级约束(对数据类型的约束、对数据格式的约束、对取值范围或取值集合的约束、对空值的约束、其他约束)、静态元组约束和静态关系约束(实体完整性约束、参照完整性约束、函数依赖约束、统计约束)。

数据库中的数据变化应遵守的规则称为数据动态约束,它反映了数据库状态变迁的约束。动态约束包括动态属性级约束(修改属性定义时的约束、修改属性值时的约束)、动态元组约束和动态关系约束。

完整性控制机制应该具有定义功能和检查功能,定义功能提供定义完整性约束条件的机制,检查功能检查用户发出的操作请求是否违背了完整性约束条件。如果发现用户的操作请求违背了约束条件,则采取一定的动作来保证数据的完整性。

② 实体完整性

实体完整性要求主键中的任一属性不能为空,所谓空值是“不知道”或“无意义”的值。之所以要保证实体完整性,主要是因为在关系中,每个元组的区分是依据主键值的不同,若主键值取空值,则不能标明该元组的存在。例如,对于学生关系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默认的删除方式。仅当参照关系中没有任何元组的外键值与被参照关系中要删除元组的主键值相同时,系统才可以执行删除操作,否则拒绝执行删除操作。

●置空删除。删除被参照关系的元组,并将参照关系中相应元组的外键值置为空值。

同样,还需要考虑在参照关系中插入元组的问题,一般可以采用以下两种方式。

●受限插入。仅当被参照关系中存在相应的元组时,其主键值与参照关系插入元组的外键值相同时,系统才执行插入操作,否则拒绝此操作。

●递归插入。首先向被参照关系中插入相应的元组,其主键值等于参照关系插入元组的外键值,然后向参照关系插入元组。

④ 用户定义的完整性

实体完整性和参照完整性适用于任何关系型DBMS。除此之外,不同的数据库系统根据其应用环境的不同,往往还需要一些特殊的约束条件。用户定义的完整性就是针对某一具体数据库的约束条件,反映某一具体应用所涉及的数据必须满足的语义要求。

如果在一条语句执行完后立即检查,则称立即执行约束;如果在整个事务执行结束后再进行检查,则称延迟执行约束。完整性规则的五元组表示为(D,O,A,C,P),其中D表示约束作用的数据对象,O表示触发完整性检查的数据库操作,A表示数据对象必须满足的断言或语义约束,C表示选择A作用的数据对象值的谓词,P表示违反完整性规则时触发的过程。

⑤ 触发器

触发器是在关系型DBMS中应用得比较多的一种完整性保护措施,其功能比完整性约束要强得多。一般而言,在完整性约束功能中,当系统检查出数据中有违反完整性约束条件时,则仅给出必要提示以通知用户,仅此而已。而触发器的功能则不仅起到提示作用,还会引起系统自动进行某些操作,以消除违反完整性约束条件所引起的负面影响。

所谓触发器,其抽象的含义即是一个事件的发生必然触发(或导致)另外一些事件的发生,其中前面的事件称为触发事件,后面的事件称为结果事件。触发事件一般即为完整性约束条件的否定,而结果事件即为一组操作用于消除触发事件所引起的不良影响。目前,数据库中事件一般表示为数据的插入、修改、删除等操作。触发器除了有完整性保护功能外,还有安全性保护功能。

在本题中,需要达到的效果是EMP中的工资产生变化,则需要判断变化值是否在P关系规定的范围之内,三种完整性约束都无法达到目的,应在EMP上建立触发器。

试题答案

(6)C

试题3(2009年11月试题7~8)

设关系模式R(U, F),其中R上的属性集U={A, B, C, D, E},R上的函数依赖集F={A→B,DE→B,CB→E,E→A,B→D}。 (7) 为关系R的候选关键字。分解 (8) 是无损连接,并保持函数依赖的。

(7)A.AB   B.DE

C.CE   D.CB

(8)A.p={R 1 (AC),R 2 (ED),R 3 (B)}

B.p={R 1 (AC),R 2 (E),R 3 (DB)}

C.p={R 1 (AC),R 2 (ED),R 3 (AB)}

D.p={R 1 ,(ABC),R 2 (ED),R 3 (ACE)}

试题分析

候选关键字使用规范化理论中的图示法进行求解,对R关系模式画图如图2-1所示。

图2-1 对R关系模式画图

图2-1中C结点为0度结点,所以它必然被包含在候选关键字中,但仅有C结点并不能遍历全图,所以需要加入其他中间结点。若加入B结点,则BC→E,E→A,B→D,能遍历全图。与此同时,加入A、E都能起到同样的效果。所以关系R有三个候选键:BC、EC,AC。

接下来是判断模式分解过程中的无损连接与保持函数依赖的问题。这个问题相对来说比较复杂。如果逐个判断每个选项的无损连接与保持函数依赖,无疑工作量是很大的。所以我们可以先观察这些选项有什么特点,通过观察发现A与B选项都存在单字段的分解。在进行模式分解时,如果出现单字段,同时该字段未在其他分解的子关系模式中出现,并且函数依赖中有此字段的依赖关系,则说明此分解没有保持函数依赖。原因很简单,关于该字段的那个函数依赖,必然在分解中丢失了。所以A与B选项可以先排除。

然后判断C与D是否为无损连接。

对选项C构造初始的判定表如表2-2所示。

表2-2 模式分解C选项初始判定表

由于A→B,属性A的第1行和第3行相同,可以将第1行b 12 改为a2;又由于B→D,属性B的第1行和第3行相同,所以需要将属性D第1行b 14 和第3行b 34 ,改为同一符号,即取行号值最小的b 14 。修改后的判定表如表2-3所示。

表2-3 模式分解C选项修改判定表

反复检查函数依赖集F,无法修改表2-3,所以选项C是有损连接的。

对选项D构造初始的判定表如表2-4所示。

表2-4 模式分解D选项初始判定表

由于A→B,属性A的第1行和第3行相同,可以将第3行b 32 改为a 2 ;E→A,属性E的第2行和第3行相同,可以将属性A第2行b 21 改为a l ;AC→E,属性E的第2行和第3行相同,可以将属性E第1行b 15 改为a 5 ;B→D,属性B的第1行和第3行相同,所以需要将属性D第1行b 14 和第3行b 34 ,改为同一符号,即取行号值最小的b 14 。E→D,属性E的第1~3行相同,可以将属性D第1行b 14 和第3行b 34 改为a 4 。修改后的判定表如表2-5所示。

表2-5 模式分解D选项修改判定表

由于表2-5第一行全为a,故分解无损。

所以本空应选D。

试题答案

(7)C  (8)D

试题4(2009年11月试题40)

以下关于RDBMS数据分布的叙述中,错误的是 (40)

(40)A.数据垂直分割是将不同表的数据存储到不同的服务器上

B.数据水平分割是将不同行的数据存储到不同的服务器上

C.数据复制是将数据的多个副本存储到不同的服务器上

D.数据复制中由RDBMS维护数据的一致性

试题分析

数据分割和数据复制是数据分布的两种重要方式。数据分割是指将数据库中的表智能地分布在多个磁盘(或服务器)上,即可以将一个表的数据分布在不同的磁盘空间上,从而有效地提高并行处理的性能和高可用性。数据分割可以分为水平分割和垂直分割两种。

水平分割是将表中不同行的数据存储到不同的磁盘上。例如,当多个事务频烦访问数据表的不同行时,水平分割表,并消除新表中的冗余数据列。若个别事务要访问整个数据,则要用连接操作。水平分割会给应用增加复杂度,它通常在查询时需要多个表名,查询所有数据需要并操作。在许多数据库应用中,这种复杂性会超过它带来的优点,因为只要索引关键字不大,则在索引用于查询时,表中增加两到三倍数据量,查询时也就增加读一个索引层的磁盘次数。

垂直分割是将表中不同字段的数据存储到不同的磁盘上。例如,当多个事务频繁访问表的不同列时,可将该表垂直分成多个表。垂直分割可以使得数据行变小(因为列少了,一行数据就变小),一个数据页就能存放更多的数据,在查询时就会减少I/O 次数。其缺点是需要管理冗余列,查询所有数据时需要连接操作。

数据分割增加了维护数据完整性的代价。

数据复制是为了提升数据访问效率而采用的一种增加数据冗余的方法,它将数据的多个副本存储到不同的服务器上,由RDBMS负责维护数据的一致性。

试题答案

(40)A

试题5(2010年11月试题5)

在数据库设计的 (5) 阶段进行关系规范化。

(5)A.需求分析   B.概念设计

C.逻辑设计   D.物理设计

试题分析

由试题1的分析可知,在数据库设计的逻辑设计阶段将E-R模型转换成关系模式,并使用规范化理论对关系模式进行优化处理,一般需要达到第三范式或BC范式。

试题答案

(5)C

试题6(2010年11月试题6~7)

某数据库中有员工关系E(员工号,姓名,部门,职称,月薪);产品关系P(产品号,产品名称,型号,尺寸,颜色);仓库关系W(仓库号,仓库名称,地址,负责人);库存关系I(仓库号,产品号,产品数量)。

a.若数据库设计中要求:

① 仓库关系W中的“负责人”引用员工关系的员工号

② 库存关系I中的“仓库号,产品号”唯一标识I中的每一个记录

③ 员工关系E中的职称为“工程师”的月薪不能低于3500元

则①②③依次要满足的完整性约束是 (6)

(6)A.实体完整性、参照完整性、用户定义完整性

B.参照完整性、实体完整性、用户定义完整性

C.用户定义完整性、实体完整性、参照完整性

D.实体完整性、用户定义完整性、参照完整性

b.若需得到每种产品的名称和该产品的总库存量,则对应的查询语句为:

(7)A.ORDER BY产品名称

B.ORDER BY 产品数量

C.GROUP BY产品名称

D.GROUP BY 产品数量

试题分析

第(6)空考查数据库完整性约束。首先需要了解实体完整性、参照完整性和用户定义完整性的概念。

实体完整性:实体完整性要求主键中的任一属性不能为空,所谓空值是“不知道”或“无意义”的值。之所以要保证实体完整性,主要是因为在关系中,每个元组的区分是依据主键值的不同,若主键值取空值,则不能标明该元组的存在。例如,对于学生关系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元”属于用户自定义完整性。

第(7)空要求“得到每种产品的名称和该产品的总库存量”,要达到该效果需要对数据表的数据进行分组统计。由于现在要根据产品名称来统计库存量,而分组的依据应是产品名称,所以应使用“GROUP BY 产品名称”。

试题答案

(6)B   (7)C

试题7(2010年11月试题8)

若对关系R(A,B,C,D)和S(C,D,E)进行关系代数运算,则表达式π 3,4,7 ( σ 4<5 ( R × S ))与 (8) 等价。

(8)A.π C,D,E ( σ D<C ( R × S ))

B.π R.C,R.D,E ( σ R.D<S.C ( R × S ))

C.π C,D,E ( σ R.D<S.C ( R × S ))

D.π R.C,R.D,E ( σ D<C ( R × S ))

试题分析

解题的关键在于了解关系代数式子中的数字下标所表达的意思。在π 3,4,7 ( σ 4<5 ( R × S ))中,首先是R与S做笛卡尔积运算,运算结果为RS(R.A,R.B,R.C,R.D,S.C,S.D,S.E),然后进行选择操作,操作条件为:4<5,此时RS中的第4列为:R.D,第5列为S.C,所以“4<5”相当于“R.D<S.C”,最后进行投影操作,操作条件为:3,4,7,他们所对应的列为:R.C,R.D,S.E,列的写法可以进行精简,如S.E,可以直接写为E,但需要注意,由于R与S两个关系都有C和D字段,所以R.C和R.D不能简写为:C,D。

试题答案

(8)B

试题8(2011年11月试题5~7)

某企业工程项目管理数据库的部分关系模式如下所示,其中带实下画线的表示主键,虚下画线的表示外键。

其中供应关系是 (5) 的联系。若一个工程项目可以有多个员工参加,每个员工可以参加多个项目,则项目和员工之间是 (6) 联系。对项目和员工关系进行设计时, (7) 设计成一个独立的关系模式。

(5)A.2个实体之间的1: n

B.2个实体之间的 n : m

C.3个实体之间的1: n : m

D.3个实体之间的 k : n : m

(6)A.1:1   B.1: n C. n : m D. n :1

(7)A.多对多的联系在向关系模型转换时必须

B.多对多的联系在向关系模型转换时无须

C.只需要将一端的码并入多端,所以无须

D.不仅需要将一端的码并入多端,而且必须

试题分析

题目虽然有多个问题,但实际上只考查了一个知识点——实体之间的联系。

供应关系中,有属性:项目号,零件号,供应商号。这些属于分别来自供应商、项目、零件这三个关系,并且,一个供应商可以向多个项目供应零件,一个供应商可以供应多种零件,一个项目可以由多个供应商供应零件,一个项目可以使用多种零件,而一种零件可以由多个不同供应商来提供,一种零件可用于不同项目。这说明供应关系涉及3个实体,这3个实体之间的关系是 k : n : m

从题目的描述“若一个工程项目可以有多个员工参加,每个员工可以参加多个项目”可以得知,项目和员工的关系是 n : m

在实体转关系模式过程中,存在3种类型的联系,他们的处理方式如下:

●1:1联系:在两个关系模式中的任意一个模式中,加入另一个模式的键和联系类型的属性;

●1:n联系:在n端实体类型对应的关系模式中加入1端实体类型的键和联系类型的属性;

●m:n联系:将联系类型也转换成关系模式,属性为两端实体类型的键加上联系类型的属性。

试题中是 m : n 联系,所以需要把联系单独转成一个关系模式。

试题答案

(5)D (6) C(7)A

试题9(2011年11月试题8)

给定学生S(学号,姓名,年龄,入学时间,联系方式)和选课SC(学号,课程号,成绩)关系,若要查询选修了1号课程的学生学号、姓名和成绩,则该查询与关系代数表达式 (8) 等价。

(8)A.π 1,2,8 ( σ 1 =6∧7='1' ( S SC ))

B.π 1,2,7 ( σ 6='1' ( S SC ))

C.π 1,2,7 ( σ 1=6 ( S SC ))

D.π 1,2,8 ( σ 7='1' ( S SC ))

试题分析

解答本题需要对关系代数中的自然连接有一定了解。自然连接操作会自动以两个关系模式中共有属性值相等作为连接条件,对于连接结果,将自动去除重复的属性。所以在本题中,连接条件为两个表的学号相等,当连接操作完成以后,形成的结果表,有属性“学号,姓名,年龄,入学时间,联系方式,课程号,成绩”,此时要选择1号课程的学生记录,应使用条件6=“1”,其含义是表中的第6个属性值为“1”。

试题答案

(8)B

试题10(2011年11月试题35~36)

企业战略数据模型可分为两种类型: (35) 描述日常事务处理中的数据及其关系; (36) 描述企业管理决策者所需信息及其关系。

(35)A.元数据模型

B.数据库模型

C.数据仓库模型

D.组织架构模型

(36)A.元数据模型

B.数据库模型

C.数据仓库模型

D.组织架构模型

试题分析

企业中使用的数据模型分两大类,一类针对于处理日常事务的应用系统,即数据库。另一类针对高层决策分析,即数据仓库。

试题答案

(35)B   (36)C

试题11(2012年11月试题5~6)

在数据库设计的需求分析阶段应当形成 (5) ,这些文档可以作为 (6) 阶段的设计依据。

(5)A.程序文档、数据字典和数据流图

B.需求说明文档、程序文档和数据流图

C.需求说明文档、数据字典和数据流图

D.需求说明文档、数据字典和程序文档

(6)A.逻辑结构设计

B.概念结构设计

C.物理结构设计

D.数据库运行和维护

试题分析

对于题目所考查的内容,我们可以用一个图来完美地诠释,如图2-2所示。

图2-2 数据库开发流程示意图

试题答案

(5)C  (6)B

试题12(2012年11月试题7~8)

某商场商品数据库的商品关系模式P(商品代码,商品名称,供应商,联系方式,库存量),函数依赖集F={商品代码→商品名称,(商品代码,供应商)→库存量,供应商→联系方式}。商品关系模式P达到 (7) ;该关系模式分解成 (8) 后,具有无损连接的特性,并能够保持函数依赖。

(7)A.1NF  B.2NF  C.3NF  D.BCNF

(8)A.P1(商品代码,联系方式),P2(商品名称,供应商,库存量)

B.Pl(商品名称,联系方式),P2(商品代码,供应商,库存量)

C.Pl(商品代码,商品名称,联系方式),P2(供应商,库存量)

D.Pl(商品代码,商品名称),P2(商品代码,供应商,库存量),P3(供应商,联系方式)

试题分析

要分析一个关系模式的范式,第一步应找出该关系模式的主键,接下来需要判断关系模式是否消除了非主属性对主键的部分依赖、传递依赖,这样便可得出结论。

首先可采用图示法求关系模式的主键(若不懂图示法,可参看《系统架构设计师考试考点突破、案例分析、试题实战一本通》)。将关系模式P,使用图示法表达,如图2-3所示。

图2-3 P关系函数依赖示意图

从图中可以看出,只有商品代码与供应商的组合键才能遍历全图,所以只有它们的组合能充当主键。

由于(商品代码,供应商)是主键,而又有函数依赖:商品代码→商品名称,这便形成了部分依赖。所以在此关系模式中,部分依赖未消除,其范式只能达到1NF。

接下来的这个问题,对于经验丰富的考生,看完这几个选项,应该是能直接判断出应选D的。因为D是最佳分拆方案,能达到的范式级别很高。

如无经验,可考虑先分析是否为保持函数依赖的分解。

A选项分析:P1(商品代码,联系方式)未保持任何原有的函数依赖。而P2(商品名称,供应商,库存量)也未保持任何原有的函数依赖。

B选项分析:Pl(商品名称,联系方式)未保持任何原有的函数依赖。P2(商品代码,供应商,库存量)只保持了函数依赖:(商品代码,供应商)→库存量。这样整体来说,就丢失了两个函数依赖关系。

C选项分析:Pl(商品代码,商品名称,联系方式)保持了函数依赖:商品代码→商品名称,P2(供应商,库存量)未保持任何原有的函数依赖。这样整体来说,就丢失了两个函数依赖关系。

D选项分析:Pl(商品代码,商品名称)保持了函数依赖:商品代码→商品名称,P2(商品代码,供应商,库存量)保持了函数依赖:(商品代码,供应商)→库存量,P3(供应商,联系方式)保持了函数依赖:供应商→联系方式。这样将各个分拆关系的函数依赖整合起来,能构成原关系的函数依赖,所以这个分解是保持了函数依赖的分解。

试题答案

(7)A  (8)D

试题13(2012年11月试题44~48)

在数据库系统中,“事务”是访问数据库并可能更新各种数据项的一个程序执行单元。为了保证数据完整性,要求数据库系统维护事务的原子性、一致性、隔离性和持久性。针对事务的这4种特性,考虑以下的架构设计场景。

假设在某一个时刻只有一个活动的事务,为了保证事务的原子性,对于要执行写操作的数据项,数据库系统在磁盘上维护数据库的一个副本,所有的写操作都在数据库副本上执行,而保持原始数据库不变,如果在任一时刻操作不得不中止,系统仅需要删除副本,原数据库没有受到任何影响。这种设计策略称为 (44)

事务的一致性要求在没有其他事务并发执行的情况下,事务的执行应该保证数据库的一致性。数据库系统通常采用 (45) 机制保证单个事务的一致性。

事务的隔离性保证操作并发执行后的系统状态与这些操作以某种次序顺序执行(即可串行化执行)后的状态是等价的。两阶段锁协议是实现隔离性的常见方案,该协议 (46)

持久性保证一旦事务完成,该事务对数据库所做的所有更新都是永久的,如果事务完成后系统出现故障,则需要通过恢复机制保证事务的持久性。假设在日志中记录所有对数据库的修改操作,将一个事务的所有写操作延迟到事务提交后才执行,则在日志中 (47) 。当系统发生故障时,如果某个事务已经开始,但没有提交,则该事务应该 (48)

(44)A.主动冗余  B.影子拷贝

C.热备份   D.多版本编程

(45)A.逻辑正确性检查

B.物理正确性检查

C.完整性约束检查

D.唯一性检查

(46)A.能够保证事务的可串行化执行,可能发生死锁

B.不能保证事务的可串行化执行,不会发生死锁

C.不能保证事务的可串行化执行,可能发生死锁

D.能够保证事务的可串行化执行,不会发生死锁

(47)A.无需记录“事务开始执行”这一事件

B.无需记录“事务已经提交”这一事件

C.无需记录数据项被事务修改后的新值

D.无需记录数据项被事务修改前的原始值

(48)A.重做    B.撤销

C.什么都不做 D.抛出异常后退出

试题分析

在数据库系统中,运行的基本工作单位是事务,事务是用户定义的一个数据库操作序列,这些操作序列要么全做,要么全不做,是一个不可分割的工作单位。事务具有以下特性。

① 原子性(Atomicity)。事务是数据库的逻辑工作单位,事务的原子性保证事务包含的一组更新操作是原子不可分的,也就是说,这些操作是一个整体,不能部分地完成。

② 一致性(Consistency)。一致性是指使数据库从一个一致性状态变到另一个一致性状态。例如,在转账的操作中,各账户金额必须平衡。一致性与原子性是密切相关的,一致性在逻辑上不是独立的,它由事务的隔离性来表示。

③ 隔离性(Isolation)。隔离性是指一个事务的执行不能被其他事务干扰,即一个事务内部的操作及使用的数据对并发的其他事务是隔离的,并发执行的各个事务之间不能互相干扰。它要求即使有多个事务并发执行,但看上去每个事务按串行调度执行一样。这一性质也称为可串行性,也就是说,系统允许的任何交错操作调度等价于一个串行调度。

④ 持久性(Durability)。持久性也称为永久性,是指事务一旦提交,改变就是永久性的,无论发生何种故障,都不应该对其有任何影响题干中第1个架构设计场景描述了数据库设计中为了实现原子性和持久性的最为简单的策略:“影子拷贝”。该策略假设在某一个时刻只有一个活动的事务,首先对数据库做副本(称为影子副本),并在磁盘上维护一个dp_pointer指针,指向数据库的当前副本。对于要执行写操作的数据项,数据库系统在磁盘上维护数据库的一个副本,所有的写操作都在数据库副本上执行,而保持原始数据库不变,如果在任一时刻操作不得不中止,系统仅需要删除新副本,原数据库副本没有受到任何影响。

题干中的第2个架构设计场景主要考查考生对事务一致性实现机制的理解。事务的一致性要求在没有其他事务并发执行的情况下,事务的执行应该保证数据库的一致性。数据库系统通常采用完整性约束检查机制保证单个事务的一致性。

题干中的第3个架构设计场景主要考查数据库的锁协议。两阶段锁协议是实现事务隔离性的常见方案,该协议通过定义锁的增长和收缩两个阶段约束事务的加锁和解锁过程,能够保证事务的串行化执行,但由于事务不能一次得到所有需要的锁,因此该协议会可能会导致死锁。

题干中的第4个架构设计场景主要考查数据库的恢复机制,主要描述了基于日志的延迟修改技术(deferred-modification technique)的设计与恢复过程。该技术通过在日志中记录所有对数据库的修改操作,将一个事务的所有写操作延迟到事务提交后才执行,日志中需要记录“事务开始”和“事务提交”时间,还需要记录数据项被事务修改后的新值,无需记录数据项被事务修改前的原始值。当系统发生故障时,如果某个事务已经开始,但没有提交,则该事务对数据项的修改尚未体现在数据库中,因此无需做任何恢复动作。

试题答案

(44)B  (45)C  (46)A  (47)D  (48)C TlOk3TsUeHWvkjDgo3rIhELWtDZTzoQrmN6wT7sfwrTXJ7wj7vAigMARc6RGJR8V

点击中间区域
呼出菜单
上一章
目录
下一章
×